Menu

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.

Voir les contributions Menu

Sujets - myHOME68

#1
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.