Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maestro mcz problème de communication #3

Closed
PeterKalel opened this issue Feb 1, 2022 · 12 comments
Closed

Maestro mcz problème de communication #3

PeterKalel opened this issue Feb 1, 2022 · 12 comments

Comments

@PeterKalel
Copy link

Bonjour

Je viens d'installer l'addon mais quand je regarde dans les logs voici ce que j'obtiens : Sending packet PING data None
Received packet PONG data None

Et lorsque je lance l'application MCZ MEASTRO sur mon smartphone, je vois les informations du poêle revenir dans les journaux.

@SkyPhilHome
Copy link
Contributor

Salut

Je remarque une petite erreur dans les instruction d'installation.
Il faut modifier le fichier config.py à la place de maestro.py.
Il n'y a plus rien à modifier dans maestro.py

Dans le log, ce qui est important :
2022-02-01 22:02:46,740 :: INFO :: Attempting polling connection to http://app.mcz.it:9000/socket.io/?transport=polling&EIO=3
2022-02-01 22:02:46,745 :: DEBUG :: Starting new HTTP connection (1): app.mcz.it:9000
2022-02-01 22:02:46,813 :: DEBUG :: http://app.mcz.it:9000 "GET /socket.io/?transport=polling&EIO=3&t=1643749366.7408097 HTTP/1.1" 200 103
2022-02-01 22:02:46,815 :: INFO :: Polling connection accepted with {'sid': 'muZ1BhqiYAAj14kha-QE', 'upgrades': ['websocket'], 'pingInterval': 25000, 'pingTimeout': 5000}
2022-02-01 22:02:46,815 :: INFO :: Engine.IO connection established
2022-02-01 22:02:46,816 :: INFO :: Sending packet MESSAGE data 0
2022-02-01 22:02:46,816 :: INFO :: Received packet MESSAGE data 0
2022-02-01 22:02:46,817 :: INFO :: Attempting WebSocket upgrade to ws://app.mcz.it:9000/socket.io/?transport=websocket&EIO=3
2022-02-01 22:02:46,817 :: INFO :: Namespace / is connected
2022-02-01 22:02:46,818 :: INFO :: Emitting event "join" [/]
==> La connexion avec le serveur MCZ est bien établie

2022-02-01 22:02:46,895 :: INFO :: Connection en cours au broker MQTT (IP:127.0.0.1 PORT:1883)
2022-02-01 22:02:46,899 :: INFO :: Souscription au topic SUBmczPipo avec un Qos=1
2022-02-01 22:02:46,899 :: INFO :: Connecté au broker MQTT avec le code : 0
==> La connexion vers le broker MQTT est bien établie

Ensuite :
2022-02-01 22:02:46,985 :: INFO :: Received packet MESSAGE data 2["rispondo",{"stringaRicevuta".......
==> indique une réception de données du serveur MCZ

2022-02-01 22:02:46,990 :: INFO :: Publication sur le topic MQTT PUBmczPipo le message suivant : .....
Indique un envoi de données vers le broker MQTT

2022-02-01 22:03:11,896 :: INFO :: Sending packet PING data None
2022-02-01 22:03:11,921 :: INFO :: Received packet PONG data None
sont également présent dans mon log sans interférence avec le bon fonctionnement.
Les infos sont bien présentes et rafraichies dans mon broker MQTT

@PeterKalel
Copy link
Author

super merci beaucoup pour votre réponse et aussi rapide.
Si je comprend bien quand il y a les lignes : "Sending packet PING data None
Received packet PONG data None" c'est qu'il n'y a pas de changement d'état du poele si je comprend bien ?
J'utilise cette addon : https://github.com/SebLz/ha-addons/tree/main/maestro_gateway
Est ce que je dois modifier le fichier config.py malgré tout ? et si oui où se trouve ce fichier en question car je ne l'ai pas trouvé ?
voici ma config de l'addon :
Options

  • USE_MCZ_CLOUD
  • MQTT_ip
    192.168.*******
  • MQTT_port
    1883
  • MQTT_authentication
    True
  • MQTT_user

  • MQTT_pass

  • MQTT_TOPIC_SUB
    Maestro/Command
  • MQTT_TOPIC_PUB
    Maestro/State
  • MQTT_PAYLOAD_TYPE
    TOPIC
  • WS_RECONNECTS_BEFORE_ALERT
    5
  • MCZip
    192.168.*******
  • MCZport
    81
  • MCZ_device_serial

  • MCZ_device_MAC

Merci pour votre aide car je dois pas être loin de faire fonctionner mon poêle

@SkyPhilHome
Copy link
Contributor

Salut

En fait, le script maestro de Pipolaq et le add-on de SebLz sont 2 choses complètement différentes.
Du coup, si tu utilise le add-on, il est peut-être normal de ne pas trouver le fichier config.py

Si j'ai bien compris, le add-on est conçu pour HA et pas pour Jeedom. N'ayant aucune connaissance de HA, je vais avoir du mal à t'aider.

Si il n'y a pas de changement d'état, les données du poêle sont quand même reçues.
Il semble donc y avoir un soucis de connexion.

@SebLz
Copy link

SebLz commented Feb 5, 2022

Bonjour @SkyPhilHome et @PeterKalel
En fait mon add-on ne fait qu'encapsuler dans un container HA le script présent sur ce Github, ils fonctionne donc exactement de la même manière.
Lorsqu'on configure les paramètres dans HA, l'addon écrit ces paramètres dans config.py.
Je n'ai investigué en détail mais je pense avoir déjà observé le même souci que celui évoqué ici. Après un certain temps et pour une raison que j'ignore, il arrive que le rafraichissement s'arrête et le fait de lancer l'appli MCZ semble débloquer la situation. Tout fonctionne normalement la plupart du temps pourtant.

@SkyPhilHome
Copy link
Contributor

@PeterKalel , le problème serait donc une perte de connexion. Au lancement, tu reçois bien les données en retour du serveur MCZ mais à un certains moment, plus rien ?

Pour info, les messages
2022-02-05 14:54:15,441 :: INFO :: Sending packet PING data None
2022-02-05 14:54:16,220 :: INFO :: Received packet PONG data None
viennent de l'implémentation de socketio/websocket.

Une ligne du log nous donne quelques infos :
2022-02-01 22:02:46,815 :: INFO :: Polling connection accepted with {'sid': 'muZ1BhqiYAAj14kha-QE', 'upgrades': ['websocket'], 'pingInterval': 25000, 'pingTimeout': 5000}
Il y a un mécanisme de heartbeat
Il y a un ping automatique toute les 25sec (pingInterval) et on attend la réponse (PONG) pendant max 5sec (ping Timeout)
Si pas de réponse dans les 5sec, la connexion est considérée comme perdue.
Le PING/PONG est fait des 2 cotés (serveur MCZ et le client) et donc le serveur MCZ peux aussi considérer la connexion comme perdue

Il faudrait voir si dans vos log, il y aurait à un certains moment "Disconnected"
Si c'est le cas, c'est que la connexion websocket est bien perdue à un certain moment.
Le pourquoi dépend surement d'internet en général.

La solution définitive serait alors d'améliorer la gestion des déconnexions pour refaire une connexion automatiquement

@SkyPhilHome
Copy link
Contributor

Salut,
SocketIO gère la reconnexion automatique.
Par contre, le code actuel envoie les commandes même si la connexion est fermée, ce qui peut causer quelques soucis.
J'ai fait des petits changement dans le code qui seront dispo après le merge de la pull request
#4

@SebLz
Copy link

SebLz commented Feb 6, 2022

Salut, SocketIO gère la reconnexion automatique. Par contre, le code actuel envoie les commandes même si la connexion est fermée, ce qui peut causer quelques soucis. J'ai fait des petits changement dans le code qui seront dispo après le merge de la pull request #4

Merci pour cette update, j'ai intégré ces modifs dans l'addon HA : SebLz/ha-addons@a9d4ae3

@PeterKalel : tu peux essayer la nouvelle version de @SkyPhilHome et voir ce que ça donne. Pour voir le log complet, tu peux utiliser Portainer:
image

@PeterKalel
Copy link
Author

Bonjour à vous deux

Je reviens tout juste de week-end et je vois que le post a avancé et avant tout merci pour cela car je commençais à désespérer.
Je fais la MAJ et reviens vers vous.

Merci encore

@PeterKalel
Copy link
Author

@SebLz apparemment l'addon Portainer n'est plus accessible de ce que je comprend sur le github
https://github.com/hassio-addons/addon-portainer

@SebLz
Copy link

SebLz commented Feb 7, 2022

@SebLz apparemment l'addon Portainer n'est plus accessible de ce que je comprend sur le github https://github.com/hassio-addons/addon-portainer

C'est nouveau (et décevant), mais il y a déjà des forks apparemment:
https://github.com/alexbelgium/hassio-addons/tree/master/portainer

@SkyPhilHome
Copy link
Contributor

SkyPhilHome commented Feb 9, 2022

Il semble que le problème soit la connexion avec le broker MQTT

File "/maestro/cloud/maestro.py", line 237, in client.connect(_MQTT_ip, _MQTT_port) File "/usr/local/lib/python3.7/site-packages/paho/mqtt/client.py", line 937, in connect return self.reconnect() File "/usr/local/lib/python3.7/site-packages/paho/mqtt/client.py", line 1071, in reconnect sock = self._create_socket_connection() File "/usr/local/lib/python3.7/site-packages/paho/mqtt/client.py", line 3522, in _create_socket_connection return socket.create_connection(addr, source_address=source, timeout=self._keepalive) File "/usr/local/lib/python3.7/socket.py", line 728, in create_connection raise err File "/usr/local/lib/python3.7/socket.py", line 716, in create_connection sock.connect(sa) **ConnectionRefusedError: [Errno 111] Connection refused**

ConnectionRefusedError: [Errno 111] Connection refused
Problème de config peut-être ? IP et/ou port du broker ? User/password ?

@PeterKalel
Copy link
Author

C'est bon tout fonctionne effectivement c'était bien mon serveur MQTT qui déconnait

Merci encore pour votre aide

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants