Raspberry en écoute continue sur une installation myHOME

Démarré par myHOME68, 05 Août 2019 à 21:31:04

« précédent - suivant »

0 Membres et 2 Invités sur ce sujet

Bonjour à tous,

Nouveau chez K-net, je rencontre un problème avec un Raspberry en écoute sur une système domotique myHOME.
Le système myHOME fonctionne sans problème, pour ce qu'il est sensé faire.

A ce système myHOME j'ai ajouté un Raspberry qui écoute via le Webserveur LEGRAND MH200N, les trames qui transitent sur le bus SCS.
Donc pour répondre à ce sujet, il faudra éventuellement avoir quelques connaissances en protocole myHOME.

Avant j'étais chez Free et n'avait aucun problème. Mon script écrit en python tournait 24h/24 7j/7 sans plantage.
Depuis que je suis chez K-net, le script démarre bien, tourne 30min, 45min, parfois moins, puis plus rien.... Les trames ne sont plus lues sur le socket. La boucle tourne, mais affiche du vide !

Je peux rouvrir une autre session terminal sur le Raspberry et lancer le script d'écoute, ça fonctionne jusqu'au moment de ne plus fonctionner et ainsi de suite...
Par des CRON je lance des scripts qui ouvrent aussi un socket sur ce même port, ça fonctionne.

En résumé le script python d'écoute fonctionne un petit moment puis affiche du vide.
Selon un site internet, j'ai pu lire que si le socket renvoie du vide, c'est que la connexion a été fermée par l'hôte.
Peut-être... mais avant (avec Free) cela fonctionnait sans aucun problème. Y a t-il quelque chose à paramétrer au niveau de la box K-net ? Et dans ce cas où ?

Quelqu'un aurait-il une idée ?

Le script python d'écoute est des plus simple :

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import socket

#Paramètres de connexion à la passerelle BUS/SCS
buffer_size =2048
ip_F455='adresse_IP'
port_F455=20000

#ouverture du socket
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip_F455,port_F455))
data=s.recv(buffer_size)
print data
s.send("*99*1##")
data=s.recv(buffer_size)
print data

while True:

    data = s.recv(buffer_size)
    print data

s.close()

Merci de votre aide.

Avez-vous le moyen de sniffer le traffic (genre avec Wireshark) ? Pour savoir si le problème vient de l'écoute sur le Raspberry (mais bon le script est ne peut plus simple) ou si les paquets en prevenance du serveur sont simplement "droppés" par le routeur.
Il y a t'il des logs sur le serveur indiquant quelque chose de pas normal en rapport avec les connections ?
Sans relancer le script python mais en rebootant le routeur ça se remet à fonctionner / plus longtemps ?
Le serveur web est sur le LAN de la box ou sur sur l'internet ?

Le fait que le problème soit lié au temps semble indiquer que quelque chose se remplit jusqu'à saturation, ou il y a un "time out" quelque part...

Votre script ne devrait-il pas terminer la boucle infinie si rien n'est reçu ? Pour donner au socket une chance de se fermer proprement.
Si le serveur est sur l'internet et que vous lancez le script trop de fois peut-être que vous saturez la table NAT, comme expliqué ici https://superuser.com/questions/764701/home-adsl-modem-dropping-packets

Bonjour,

Merci pour votre réponse.

Non je n'ai rien pour sniffer ce qui transite sur le LAN.
Et le webserver n'a pas de log.

Le WebServer n'est pas directement sur Internet.
En fait, je sors d'un port de la box, vais sur un switch et sur ses sorties sont branchés le webserver F455, le gestionnaire de scénario MH200 et le Raspberry.
Si je déconnecte la liaison de la box et la met sur ma box Free, cela fonctionne sans problème.
Je pense aussi à une histoire de timeout de la box k-net, mais pourquoi.

En effet le script pourrait prévoir un arrêt propre en cas de réception vide, mais comme jusqu'a présent ça fonctionnait, je ne me suis pas posé cette question. Je vais peut être même prévoir une fermeture/réouverture du socket en cas de réception vide.

Je vais essayer votre proposition de relancer la box sans toucher au Raspberry.

A suivre...



Bonjour Vinz67, Bonjour aux autres....

J'ai effectué le test :
Socket affiche du vide (donc session fermée) reboot hard de la box -> Idem.
Ceci est en fait normal, car sans qu'une nouvelle session n'ait été réouverte, l'ancienne reste fermée.

J'ai également branché directement le Raspberry sur l'un des ports de la BOX (avant je passais par un switch) -> Idem

Même si cela semble être un timeout, cela à l'air totalement aléatoire, même si peut-être cela ne l'est pas !
Parfois la session se ferme au bout de 15min, parfois 1h30...

En attendant de trouver mieux, je vais m'orienter par une réouverture automatique de la session, via le python.

Si quelqu'un a une idée, je suis preneur...
Merci

Bonjour à tous,

Pas de grandes nouvelles !

Par contre comme par "magie" après avoir effectué plusieurs reboot di F454... La connexion a tenue.
J'ai pu faire diverses modifications du programme avec à chaque fois des transferts FTP et ce pendant au moins 15 jours.

Content de la situation, j'ai déménagé le Rasp. au s/sol (même réseau que celui de l'étage) ... et plof... retour à la situation initiale.
Du coup, je me suis dit, qu'il y a un truc avec les switches. Remis sur la connexion qui tenait = plus bon.
J'ai rebooté hard le webserveur, me disant que quelque chose ne se passe pas bien à l'intérieure de celui-ci, quand on "déménage le Rasp.) = pareil. Ca ne tient plus.

Là, je suis un peu à court d'idée. Avant d'oublier le projet qui du coup, ne me sert à rien s'il ne fonctionne pas.
Dernière tentative : laisser la connexion FTP ouverte, au cas où .... et voir ce qui se passe le temps de comprendre.

Toujours pas de possesseur d'une installation myHOME avec webserver F454 chez K-net ?

Michael