[Fermé] Coordinateur USB Sonoff Dongle Plus-E

Forum dédié au plugin ZigBeeForDomoticZ : installation, paramétrage, utilisation, interfaces ...
Deufo
Messages : 280
Inscription : 26 févr. 2019, 16:25

Re: Coordinateur USB Sonoff Dongle Plus-E

Message par Deufo »

SynoKernel USB Serial drivers permet l'installation des drivers USB non présents sur le NAS, c'est pratique, je vais voir pour mettre à jour le wiki avec, ça simplifie la procédure, merci pour l'info.

Synocli ne sert à rien pour nous, c'est des outils.

Si le script au démarrage est bien lancé, il n'y aura pas de souci pour redémarrer l'ensemble.
yahtala
Messages : 39
Inscription : 15 févr. 2023, 17:42

Re: Coordinateur USB Sonoff Dongle Plus-E

Message par yahtala »

Bonjour Deufo,

Il doit y avoir autre chose par ce que j'ai testé ce matin le redémarrage du plugin et j'ai eu le même problème :

Log du Plugin

Code : Tout sélectionner

2023-03-05 11:49:44,237 INFO    : [    ZigpyCom_9 45] Started radio ezsp port: /dev/ttyACM0
2023-03-05 11:49:44,237 DEBUG   :Using selector: EpollSelector
2023-03-05 11:49:49,241 ERROR   :Couldn't start application
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/serial/serialposix.py", line 322, in open
    self.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK)
OSError: [Errno 5] Input/output error: '/dev/ttyACM0'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/domoticz/userdata/plugins/Zigate/Classes/ZigpyTransport/AppBellows.py", line 58, in startup
    await self.connect()
  File "/opt/domoticz/userdata/plugins/Zigate/bellows/zigbee/application.py", line 124, in connect
    self._ezsp = await bellows.ezsp.EZSP.initialize(self.config)
  File "/opt/domoticz/userdata/plugins/Zigate/bellows/ezsp/__init__.py", line 101, in initialize
    await ezsp.connect(use_thread=zigpy_config[conf.CONF_USE_THREAD])
  File "/opt/domoticz/userdata/plugins/Zigate/bellows/ezsp/__init__.py", line 118, in connect
    self._gw = await bellows.uart.connect(self._config, self, use_thread=use_thread)
  File "/opt/domoticz/userdata/plugins/Zigate/bellows/uart.py", line 382, in connect
    protocol, connection_done = await thread.run_coroutine_threadsafe(
  File "/opt/domoticz/userdata/plugins/Zigate/bellows/uart.py", line 361, in _connect
    transport, protocol = await zigpy.serial.create_serial_connection(
  File "/opt/domoticz/userdata/plugins/Zigate/zigpy/serial.py", line 37, in create_serial_connection
    transport, protocol = await pyserial_asyncio.create_serial_connection(
  File "/usr/local/lib/python3.9/dist-packages/serial_asyncio/__init__.py", line 448, in create_serial_connection
    serial_instance = serial.serial_for_url(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/serial/__init__.py", line 90, in serial_for_url
    instance.open()
  File "/usr/local/lib/python3.9/dist-packages/serial/serialposix.py", line 325, in open
    raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg))
serial.serialutil.SerialException: [Errno 5] could not open port /dev/ttyACM0: [Errno 5] Input/output error: '/dev/ttyACM0'
2023-03-05 11:49:49,251 ERROR   : [       ZigpyCom_9] Error at startup 'NoneType' object has no attribute 'networkState'
Log Domoticz

Code : Tout sélectionner

2023-03-05 11:49:44.238  Status: Zigate: Started radio ezsp port: /dev/ttyACM0
2023-03-05 11:49:49.251  Error: Zigate: Error at startup 'NoneType' object has no attribute 'networkState'
2023-03-05 11:49:49.259  Status: Zigate: Network settings
2023-03-05 11:49:49.259  Status: Zigate:   Channel: 0
2023-03-05 11:49:49.261  Status: Zigate:   PAN ID: 0xFFFE
2023-03-05 11:49:49.262  Status: Zigate:   Extended PAN ID: ff:ff:ff:ff:ff:ff:ff:ff
2023-03-05 11:49:49.262  Status: Zigate:   Device IEEE: ff:ff:ff:ff:ff:ff:ff:ff
2023-03-05 11:49:49.262  Status: Zigate:   Device NWK: 0xFFFE
2023-03-05 11:49:49.263  Error: Zigate: Coordinator not correctly initialized
J'ai donc essayer avec ta méthode décrite dans le wiki pour installer les driver au boot mais pareil ensuite quand j'ai redémarré le plugin.
Par contre le redémarrage de DSM permet de passer et ensuite ça fonctionne.

Si tu as des idées, je suis preneur, ça serait dommage de devoir relancer DSM à chaque mise à jour du plugin.
Merci d'avance

Ma config :
DomoticZ 2023.1 - docker stable
Python Version: 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
Domoticz + Z4D : Synology DS-415+ DSM 7.1.1-42962 Update 4
Sonoff Zigbee Dongle Plus-E - UNK - 6.10.3.0 build 297
Plugin version 6.3.011
Yannick

Ma config :
DomoticZ 2023.1 - docker stable
Python Version: 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
Domoticz + Z4D : Synology DS923+ DSM 7.1.1-42962 Update 4
Deufo
Messages : 280
Inscription : 26 févr. 2019, 16:25

Re: Coordinateur USB Sonoff Dongle Plus-E

Message par Deufo »

Je vérifierai deux choses :
- est-ce que le conteneur est exécuté avec les "hauts priviléges" ?
- est ce que lorsque tu redémarres le conteneur le port USB est toujours vu ? soit via la page hw de domoticz sur le plugin, voir si dans la liste déroulante, le port existe encore via le terminal du conteur, faire un ls de /dev/.

Dans le wiki, j'ai mis que cdc-acm suffit mais il faut probablement également ch341.ko. il y a trop de variantes, je vais modifier pour conseiller synokernel USB. Je vais faire quelques tests avec dès que j'ai un peu de temps libre.
yahtala
Messages : 39
Inscription : 15 févr. 2023, 17:42

Re: Coordinateur USB Sonoff Dongle Plus-E

Message par yahtala »

Merci pour ta réponse,

- Oui le conteneur à bien les "hauts privilèges"
- en redémarrant le conteneur le port USB est toujours vu et apparaît toujours dans Hw de domoticz et dans /dev

Je viens de faire plusieurs tests :
- un premier était de redémarrer le conteneur via portainer pour voir si l'erreur apparaissait
Résultat = à la première tentative le port était bien vu, pas d'erreur d'accès et le plugin a bien redémarré, j'étais content, mais c'était de courte durée.
- ensuite j'ai redémarré le plugin via l'interface Z4D
Résultat = l'erreur est apparue
- Après redémarrage de DSM, j'ai retenté de redémarrer le conteneur.
Résultat = l'erreur est apparue également pourtant il n'y avait pas de différence avec la fois précédent
- La recréation du conteneur ne change rien (via docker-compose ou depuis portainer)
- au démarrage de DSM les permissions de ttyATM0 sont en rw------- seulement et ça fonctionne, j'ai quand même tenté de les passer en rwxrwxrwx mais pas de changement.
- Quand ça fonctionne, un "lsof /dev/ttyACM0" dans le conteneur montre :

Code : Tout sélectionner

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
domoticz   1 root   46u   CHR  166,0      0t0 138226 /dev/ttyACM0
Sinon c'est vide quand l'erreur est présente.

J'ai un autre comportement étrange, je ne sais pas si c'est lié, le redémarrage du plugin entraîne à chaque fois le redémarrage du conteneur, je ne sais pas si c'est normal.
Par rapport à cela en étudiant les logs j'ai pu constater que lors du restart du conteneur j'ai parfois une erreur
Error: Domoticz(pid:1, tid:624('Zigate')) received fatal signal 11 (Segmentation fault)
Zigate est le nom du plugin créé dans la page Hw de domoticz
est ensuite un crash du conteneur qui redémarre automatiquement.
La fois ou j'ai redémarrer le conteneur et que le plugin a bien démarré, il n'y a pas eu ce problème.

Donc pour le moment seul le redémarrage de DSM permet de revenir à la normal.

Si tu as des pistes, ou qqn d'autre, merci d'avance :)
Yannick

Ma config :
DomoticZ 2023.1 - docker stable
Python Version: 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
Domoticz + Z4D : Synology DS923+ DSM 7.1.1-42962 Update 4
Deufo
Messages : 280
Inscription : 26 févr. 2019, 16:25

Re: Coordinateur USB Sonoff Dongle Plus-E

Message par Deufo »

Je vais essayer de faire quelques tests mais comme ça je ne vois pas trop.
Quelle image utilises tu ?
C'est vrai que ces derniers temps, j'avais tendance à redémarrer le conteneur pour mettre à jour le plugin.

Je vais tester le synokernel USB, voir s'il se charge bien à chaque fois.
yahtala
Messages : 39
Inscription : 15 févr. 2023, 17:42

Re: Coordinateur USB Sonoff Dongle Plus-E

Message par yahtala »

Je suis en domoticz/domoticz:stable
J’ai également essayé avec la 2022.2 et latest mais c’était pareil.
J’ai flashé avec ELElabs utility avec le firmware non signé https://github.com/xsp1989/zigbeeFirmwa ... 115200.gbl
J’avais essayé aussi avec le firmware d’origine mais pareil.
Ce soir je vais essayer de flasher avec securecrt, on verra s’il y a une différence, mais je n’y crois pas trop.

Je pense à un problème matériel peut-être.


Envoyé de mon iPhone en utilisant Tapatalk
Yannick

Ma config :
DomoticZ 2023.1 - docker stable
Python Version: 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
Domoticz + Z4D : Synology DS923+ DSM 7.1.1-42962 Update 4
yahtala
Messages : 39
Inscription : 15 févr. 2023, 17:42

Re: Coordinateur USB Sonoff Dongle Plus-E

Message par yahtala »

Alors petites nouveautés :
J’ai reflashé le dongle avec le même firmware mais en utilisant l’outil securecrt :
ncp-uart-sw_6.10.3_115200.gbl https://github.com/xsp1989/zigbeeFirmwa ... 115200.gbl
Et
nvm3_initfile.gbl https://github.com/xsp1989/zigbeeFirmwa ... itfile.gbl

Ensuite j’avais arrêté le plugin Z4D avant d’enlever le dongle
J’ai rebranché le dongle au nas, j’ai rajouter les droit rwxrwxrwx à /dev/ttyACM0 (chez moi)
J’ai relancé le docker pour qu’il retrouve le fichier /dev/ttyACM0 avec les mêmes droits

J’ai modifié le plugin Z4D en mode réinitialisation, avec le bon port USB, et remis en available.
Résultat le dongle se charge correctement mais au redémarrage après l’initialisait on j’ai une erreur disant qu’il ne connaît par les modules « chardet » et « cchardet », je les installes dans le docker (pip3 install chardet et pip3 install cchardet)
Mais cette fois j’ai cette erreur qui apparaît :

Code : Tout sélectionner

 2023-03-06 14:13:33.040 Error: Zigate: Call to function 'onStart' failed, exception details:
2023-03-06 14:13:33.047 Error: Zigate: Traceback (most recent call last):
2023-03-06 14:13:33.047 Error: Zigate: File "/usr/local/lib/python3.9/dist-packages/aiohttp/client_reqrep.py", line 70, in <module>
2023-03-06 14:13:33.047 Error: Zigate: import cchardet as chardet
2023-03-06 14:13:33.047 Error: Zigate: File "/usr/local/lib/python3.9/dist-packages/cchardet/__init__.py", line 1, in <module>
2023-03-06 14:13:33.047 Error: Zigate: from cchardet import _cchardet
2023-03-06 14:13:33.047 Error: Zigate: ImportError: Interpreter change detected - this module can only be loaded into one interpreter per process.
2023-03-06 14:13:33.047 Error: Zigate:
2023-03-06 14:13:33.047 Error: Zigate: During handling of the above exception, another exception occurred:
2023-03-06 14:13:33.047 Error: Zigate:
2023-03-06 14:13:33.047 Error: Zigate: Traceback (most recent call last):
2023-03-06 14:13:33.048 Error: Zigate: File "/opt/domoticz/userdata/plugins/Zigate/plugin.py", line 1537, in onStart
2023-03-06 14:13:33.048 Error: Zigate: _plugin.onStart()
2023-03-06 14:13:33.048 Error: Zigate: File "/opt/domoticz/userdata/plugins/Zigate/plugin.py", line 605, in onStart
2023-03-06 14:13:33.048 Error: Zigate: from Classes.ZigpyTransport.Transport import ZigpyTransport
2023-03-06 14:13:33.048 Error: Zigate: File "/opt/domoticz/userdata/plugins/Zigate/Classes/ZigpyTransport/Transport.py", line 12, in <module>
2023-03-06 14:13:33.048 Error: Zigate: import zigpy.application
2023-03-06 14:13:33.048 Error: Zigate: File "/opt/domoticz/userdata/plugins/Zigate/zigpy/application.py", line 18, in <module>
2023-03-06 14:13:33.048 Error: Zigate: import zigpy.ota
2023-03-06 14:13:33.048 Error: Zigate: File "/opt/domoticz/userdata/plugins/Zigate/zigpy/ota/__init__.py", line 18, in <module>
2023-03-06 14:13:33.048 Error: Zigate: import zigpy.ota.provider
2023-03-06 14:13:33.048 Error: Zigate: File "/opt/domoticz/userdata/plugins/Zigate/zigpy/ota/provider.py", line 15, in <module>
2023-03-06 14:13:33.048 Error: Zigate: import aiohttp
2023-03-06 14:13:33.048 Error: Zigate: File "/usr/local/lib/python3.9/dist-packages/aiohttp/__init__.py", line 6, in <module>
2023-03-06 14:13:33.048 Error: Zigate: from .client import (
2023-03-06 14:13:33.048 Error: Zigate: File "/usr/local/lib/python3.9/dist-packages/aiohttp/client.py", line 59, in <module>
2023-03-06 14:13:33.048 Error: Zigate: from .client_reqrep import (
2023-03-06 14:13:33.048 Error: Zigate: File "/usr/local/lib/python3.9/dist-packages/aiohttp/client_reqrep.py", line 72, in <module>
2023-03-06 14:13:33.048 Error: Zigate: import charset_normalizer as chardet # type: ignore[no-redef]
2023-03-06 14:13:33.048 Error: Zigate: File "/usr/local/lib/python3.9/dist-packages/charset_normalizer/__init__.py", line 24, in <module>
2023-03-06 14:13:33.048 Error: Zigate: from .api import from_bytes, from_fp, from_path
2023-03-06 14:13:33.048 Error: Zigate: File "/usr/local/lib/python3.9/dist-packages/charset_normalizer/api.py", line 5, in <module>
2023-03-06 14:13:33.048 Error: Zigate: from .cd import (
2023-03-06 14:13:33.048 Error: Zigate: File "/usr/local/lib/python3.9/dist-packages/charset_normalizer/cd.py", line 9, in <module>
2023-03-06 14:13:33.048 Error: Zigate: from .md import is_suspiciously_successive_range
2023-03-06 14:13:33.048 Error: Zigate: SystemError: initialization of md__mypyc did not return an extension module
Ce qui ma interpellé c’est le « ImportError: Interpreter change detected - this module can only be loaded into one interpreter per process. »

J’ai donc testé plusieurs choses :
1. Redémarrer le plugin via Z4D => Errno 5
2. Plugin disabled + update dans domoticz HW et restart => Errno 5
3. Redémarrage de docker => Errno 5
4. Plugin disabled + update dans domoticz HW et ensuite redémarrage du docker, après initialisation de domoticz, restart du plugin via domoticz HW (étable + update) => Démarrage du dongle

Donc je ne sais pas trop pourquoi cela fait ça mais la procédure chez moi pour relancer le plugin c’est :
1. Stopper le plugin dans domoticz HW
2. Relancer le docker et attendre un peu
3. Démarrer le plugin dans domoticz HW

Si Deufo, tu arrives a reproduire le comportement ça pourrait être bien. Sinon c’est qu’il y a autre chose chez moi qui perturbe.
Yannick

Ma config :
DomoticZ 2023.1 - docker stable
Python Version: 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
Domoticz + Z4D : Synology DS923+ DSM 7.1.1-42962 Update 4
pipiche
Messages : 4677
Inscription : 04 avr. 2018, 16:16
Contact :

Re: Coordinateur USB Sonoff Dongle Plus-E

Message par pipiche »

quels sont les autres plugin python3 que tu utilises ?
Peux-tu essayer en activant uniquement le plugin Z4D ?
yahtala
Messages : 39
Inscription : 15 févr. 2023, 17:42

Re: Coordinateur USB Sonoff Dongle Plus-E

Message par yahtala »

Bonjour Pipiche,
J’ai seulement le plugin freebox et RFXCom après ce sont des dummy.
J’ai tout arrêté et j’ai redémarré depuis le plugin Z4D et depuis Docker mais le Dongle n’a as démarré.

Code : Tout sélectionner

 2023-03-06 17:06:16.246  Status: Zigate: Started radio ezsp port: /dev/ttyACM0
2023-03-06 17:06:21.258  Error: Zigate: Error at startup 'NoneType' object has no attribute 'networkState'
2023-03-06 17:06:21.272  Status: Zigate: Network settings
2023-03-06 17:06:21.273  Status: Zigate:   Channel: 0
2023-03-06 17:06:21.273  Status: Zigate:   PAN ID: 0xFFFE
2023-03-06 17:06:21.274  Status: Zigate:   Extended PAN ID: ff:ff:ff:ff:ff:ff:ff:ff
2023-03-06 17:06:21.274  Status: Zigate:   Device IEEE: ff:ff:ff:ff:ff:ff:ff:ff
2023-03-06 17:06:21.274  Status: Zigate:   Device NWK: 0xFFFE
2023-03-06 17:06:21.276  Error: Zigate: Coordinator not correctly initialized
Après avoir tout remis, j’ai suivi ma procédure de redémarrage et ça a fonctionné.
Yannick

Ma config :
DomoticZ 2023.1 - docker stable
Python Version: 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
Domoticz + Z4D : Synology DS923+ DSM 7.1.1-42962 Update 4
Deufo
Messages : 280
Inscription : 26 févr. 2019, 16:25

Re: Coordinateur USB Sonoff Dongle Plus-E

Message par Deufo »

J'ai remis mon système à plat, j'utilise le minimum et ça fonctionne :

2023-03-06 21:47:37.877 Status: zigbee: Plugin with Zigpy, Coordinator Unknown Silicon Labs firmware UNK - 6.10.3.0 build 297 correctly initialized

Mon script à l'init :

Code : Tout sélectionner

insmod /lib/modules/usbserial.ko > /dev/null 2>&1
insmod /lib/modules/ftdi_sio.ko > /dev/null 2>&1
insmod /lib/modules/cdc-acm.ko > /dev/null 2>&1
J'ai fait plein de redémarrage du plugin, toujours de retour. Je n'ai pas flashé la clé, elle est arrivée sur cette version, je n'ai pas regardé pour la mettre à jour pour le moment.
Répondre