doudz / homeassistant-zigate

zigate component for Home Assistant
MIT License
48 stars 15 forks source link

Problème avec relais Xiaomi et mise à jour du PiZigate. #128

Open Cyrus40 opened 3 years ago

Cyrus40 commented 3 years ago

Bonjour,

J'ai quelques problèmes avec le PiZigate, enfin pour l'instant avec le module relais Xiaomi 2 voies. Vous savez sans doute que le relais Xiaomi permet d'être utilisé aussi avec des interrupteurs physiques.

Le problème est que, aléatoirement, et même systématiquement après une coupure de courant, je pers la possibilité de contrôler mon relais avec l'interrupteur physique. La module est toujours connecté au PiZigate, il fonctionne encore sur Home Assistant mais je ne peux plus le commander avec le bouton physique.

Si je fais un reset sur le module Xiaomi sans le reconnecter au PiZigate, je n'ai jamais de problème, le bouton physique fonctionne bien. Si je veux le faire fonctionner avec Home Assistant, je suis obliger de supprimer toutes les entités, le supprimer de la PiZigate, le ré-appairer et recréer toutes les entités... puis au bout de quelques jours, rebelote, le bouton physique ne fonctionne plus.

D'ailleurs, en parlant de la version du PiZigate, la mise à jour ne fonctionne pas. Voici le message d'erreur quand j'appelle le service zigate.upgrade_firmware : Échec d'appel du service "zigate/upgrade_firmware". ZiGate not found

Avez-vous une solution à m'apporter?

Infos : Home Assistant avec HassOS / Raspberry 3 /PiZigate en version 3.1a / Lib en version 40.3 Si vous avez besoin d'autres infos n'hésitez pas, je suis néophyte mais j'essaierai de faire ce que vous me demandez.

doudz commented 3 years ago

Pour ma part, je ne peux pas vous aider concernant le problème avec le bouton physique, à voir peut être avec @fairecasoimeme ?

Concernant la mise à jour du module, pourrais je avoir un log complet en mode debug ?

fairecasoimeme commented 3 years ago

Bonjour, Etrange pour le bouton physique, car justement, lui ne doit pas passer par la radio mais bien activer le relais directement. Donc, il doit fonctionner même si le module n'est pas appairé. Fred

Cyrus40 commented 3 years ago

Bonjour et merci de vos réponses à tous les deux.

@doudz Voici le log complet quand je lance la commande d'upgrade :

2020-08-24 16:08:12 DEBUG (SyncWorker_5) [zigate.flasher] Command 7 None False 2020-08-24 16:08:12 DEBUG (SyncWorker_5) [zigate.flasher] Command 9 None True 2020-08-24 16:08:12 DEBUG (SyncWorker_5) [zigate.flasher] Command 11 <LH False 2020-08-24 16:08:12 DEBUG (SyncWorker_5) [zigate.flasher] Command 31 <LH False 2020-08-24 16:08:12 DEBUG (SyncWorker_5) [zigate.flasher] Command 37 None False 2020-08-24 16:08:12 DEBUG (SyncWorker_5) [zigate.flasher] Command 39 !B False 2020-08-24 16:08:12 DEBUG (SyncWorker_5) [zigate.flasher] Command 44 <BL False 2020-08-24 16:08:12 DEBUG (SyncWorker_5) [zigate.flasher] Command 50 None False 2020-08-24 16:08:12 DEBUG (SyncWorker_5) [zigate.flasher] Command 54 B False 2020-08-24 16:08:12 DEBUG (SyncWorker_5) [zigate] Saving persistent file 2020-08-24 16:08:12 DEBUG (SyncWorker_5) [zigate] Acquire Lock to save persistent file 2020-08-24 16:08:12 DEBUG (SyncWorker_5) [zigate] Release Lock of persistent file 2020-08-24 16:08:13 INFO (SyncWorker_5) [zigate] Searching ZiGate port 2020-08-24 16:08:13 ERROR (SyncWorker_5) [zigate] ZiGate not found 2020-08-24 16:08:13 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.1860630104] ZiGate not found Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 125, in handle_call_service await hass.services.async_call( File "/usr/src/homeassistant/homeassistant/core.py", line 1281, in async_call task.result() File "/usr/src/homeassistant/homeassistant/core.py", line 1320, in _execute_service await self._hass.async_add_executor_job(handler.func, service_call) File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/config/custom_components/zigate/init.py", line 633, in upgrade_firmware flash(port, save=backup_filename) File "/usr/local/lib/python3.8/site-packages/zigate/flasher.py", line 357, in flash serialport = discover_port(serialport) File "/usr/local/lib/python3.8/site-packages/zigate/transport.py", line 381, in discover_port raise ZIGATE_NOT_FOUND('ZiGate not found') zigate.transport.ZIGATE_NOT_FOUND: ZiGate not found

@fairecasoimeme C'est bien pour cela que j'ai voulu installer ces appareils : pour garder un bouton physique au cas où. Il n'a jamais dysfonctionné en étant connecté à la centrale Xiaomi et je pensais également que cette fonctionnalité était dissocié de la partie "domotique" et que ce relais agissait comme un simple télérupteur ! Mais apparemment non ! De temps en temps, le bouton physique ne fonctionne plus et si je le dé-associe de la Zigate, il fonctionne bien à nouveau...

Merci de votre aide.

vgelot commented 3 years ago

@Cyrus40 Pour la partie upgrade du firmware, il faut que ton fichier configuration.yaml comporte ces lignes (ajout de la ligne port)

zigate:
  gpio: true
  port: /dev/ttyAMA

C'est ce qui a marché chez moi (raspberry pi 3b+) D'après le site de la zigate, le port peut aussi être /dev/serial0 en fonction de ta raspberry

Cyrus40 commented 3 years ago

@vgelot

Si j'utilise les lignes que tu m'indiques (que ce soit ttyAMA ou serial0) le zigate n'est plus détectée et je n'ai plus du tout accès à mes capteurs. Existe-t-il d'autres noms de port possible?

vgelot commented 3 years ago

@Cyrus40 J'avais le même comportement que toi avec /dev/serial0 D'après la doc, d'autres possibilités sont (https://www.raspberrypi.org/documentation/configuration/uart.md) : /dev/ttyS0 /dev/ttyAMA0 /dev/serial0 /dev/serial1 N'oublie pas de redémarrer HA pour chaque essai Quelle raspberry as tu?