ZHA - Zigpy Zigate Wifi - Fermeture de connection vers ZHA

Salut, il semblerait que j’ai le même problème.
As-tu trouvé une solution fonctionnelle ? As tu flashé la zigate en 3.1e ?

Bonjour, oui j’ai flashé en 3.1e, par contre tout le monde semble s’en foutre de seproblème … voir mes tickets sur github …

La solution fonctionnelle que j’ai trouvé, c’est de faire des scripts bash dans un cron, qui quand il détecte l’erreur vont redémarrer HASS …

Salut, ah oué. le problème c’est que chez moi les capteurs ne tiennent pas plus de 30min et après plus de mise à jour, sauf recharger le plugin ou redémarrer home assistant. ça m’embête beaucoup de redémarrer ha toute les 30min. J’ai déjà mise à jour le firemware wifi mais toujours le problème.
J’ai vu qu’il y a une version 3.1f de sortie. Je vais tenter ça en réinitialisant bien ma zigate mais je suis très septique.

Pardon, je n’ai pas été assez précis, je ne redémarre pas HASS, je redémarre uniquement l’intégration. Mais sinon oui je suis d’accord c’est lourd, je suis prenneur de ton retour sur 3.1f

bon toujours même problème.

je vais me la tenter par le code avec la bibliothèque doudz/zigate

je vais voir comme ça si c’est matériel ou si c’est vraiment le plugin.
si ça déconne pas, j’alimenterais mes devices en template en attendant une éventuelle correction

Penses à aller commenter les « issues » github que j’ai ouvert pour faire réagir les devs !

Comme je l’ai écrit sur le github, même problème.
Pour les courageux on peut mettre à jour la librairie zigpy-zigate avec la version non releasee par Doudz qui est supposée implémenter le reconnect. Les essais que j’ai fait à l’époque où il a modifié la lib n’avaient pas été concluants mais comme le code de homeassistant évolue rapidement peut-être que ça corrige, je n’ai pas refait de test récent.
Si je trouve du temps, je tente de mon côté, voir j’ajoute du code pour logger la détection de disconnect / reconnect (j’ai peur que le code ajouté par doudz ne soit pas suffisant et qu’il faille ajouter des choses côté zha, mais mon niveau en python est loin d’être aussi bon que dans d’autres langages de programmation)

Merci de ce message, par contre l’implémentation aurait du être faite à qu’elle niveau ? dans hass core ?

il faut attendre que doudz release une nouvelle version de zigpy-zigate (cf. zigpy-zigate 0.8.0 or newer 0.8.x release with later fixes already added? · Issue #93 · zigpy/zigpy-zigate · GitHub). Une fois qu’il l’aura fait, la nouvelle version sera disponible via pypi puis les développeurs de HA pourront mettre à jour les dépendances de HA pour qu’elle soit inclue dans le core…

si on veut tester en avance faut aller bidouiller la lib à la main pour écraser les fichiers standards par ceux que doudz a commité dans sa branche dev (à ma demande pour le reconnect)

edit : je vois qu’on a travaillé dessus en décembre 2020… ça vaudrait vraiment le coup de tester à nouveau (add reconnect feature · zigpy/zigpy-zigate@e9b8bf1 · GitHub)

allez, je viens de forcer le nouveau code sur mon HA et j’ai désactiver mon cron qui force le rechargement de Zigbee, on va bien voir !

Je viens d’aller voir effectivement le code semble inclure la déconnexion, dommage que ça n’ait pas été encore poussé depuis !

n’ai pas de regrets, ça ne fonctionne pas :frowning:

2021-06-14 14:51:37 DEBUG (MainThread) [zigpy_zigate.uart] Closed serial connection

et pas de reconnection derrière, sans trop savoir si ça vient de zigpy ou de zigpy-zigate

Dès que je trouve du temps, je vais aller voir le code directement et me mettre en mode dev :frowning:

J’essaye de comprendre comment ça marche et je vous suis pour trouver une solution.

Souhaitez vous que nous nous m’étions en visio pour essayer de faire une session de travail commune ?

J’ai des compétences en réseau python et je suis sous docker swarm.

Pas nécessairement dans l’immédiat. Je regarde un peu comment ça fonctionne et après je vais tester 2/3 choses. Sinon on peut se retrouver aussi sur Discord

J’ai tenté des choses ultra simpliste du genre:

   async def command(self, cmd, data=b'', wait_response=None, wait_status=True):
        tries = 200
        while tries > 0:
           tries -= 1
           try:
             return await  self.command2(cmd=cmd, data=data, wait_response=wait_response, wait_status=wait_status)
           except NoResponseError as nre:
             if tries > 0:
                 LOGGER.warning("Reconnect")
                 self.close()
                 await asyncio.sleep(1)
                 await self.connect()
             else:
                 raise nre


    async def command2(self, cmd, data=b'', wait_response=None, wait_status=True):

La reconnexion fonctionne très bien, malheureusement je me retrouve avec d’autres erreurs:

2021-06-19 13:36:22 DEBUG (MainThread) [zigpy_zigate.zigbee.application] zigate_callback_handler [233, 1, 8, <Address address_mode=ADDRESS_MODE.NWK a│
│2021-06-19 13:36:22 DEBUG (MainThread) [zigpy_zigate.zigbee.application] APS Data confirm Fail 67 233                                                │
│2021-06-19 13:36:22 WARNING (MainThread) [zigpy_zigate.zigbee.application] Unexpected message send failure                                           │
│2021-06-19 13:36:22 DEBUG (MainThread) [zigpy_zigate.uart] Frame received: 8012000a320001080202e444000300                                            │
│2021-06-19 13:36:22 DEBUG (MainThread) [zigpy_zigate.api] data received 0x8012 b'0001080202e4440003' LQI:0       

Certains modules n’apparaissent plus dans la carte réseau…

On va pas pouvoir couper court à se plonger dans le protocol pour résoudre le problème, or c’est pas forcément ma priorité, je me pose la question de balancer la zigate et passer sur une Phoscon conbeeII :thinking:

Phoscon conbeeII est en usb ?
Car pour ma part ma zigate en usb marche bien mais pas en wifi.
Mon intérêt est que Home Assistnat tourne sur synology est que la prochaine version ne prend plus en charge les dongles.

Oui la conbee II est en usb, mais comme pour ma zigate je l’ai branché sur un pi3 dans mon salon qui sert aussi à la commande vocale. Comme il y a un soft déjà existant qui sert de passerelle, pour mon HA c’est vue comme une application distante (addresse ip/port). La configuration est même automatique, j’ai juste lancé l’intégration et il m’a proposé direct l’adresse IP ou ma conbeeII était branchée :scream: