Impossible d'identifier ma clé Conbee II sous Docker et RPi4

Bonjour chère communauté Jeedom !

Je vous écris aujourd’hui en désespoir de cause, car après des jours à chercher à résoudre mon problème, je laisse tomber, et je décide de demander de l’aide.

Voilà ma situation :

  • je suis sous Raspberry Pi 4, arm64/v8 donc, sur Ubuntu Server 20.04,
  • j’utilise Docker,
  • je fais tourner dans un conteneur Deconz pour ma clé Conbee II et tout est parfaitement fonctionnel,
  • j’ai installé Jeedom et ma base mysql via Docker,
  • installation au poil, tous les processus tournent,
  • installation du plugin Deconz sans encombre,
  • le plugin tourne,
  • mais quand je chercher à identifier l’ID et la clef API de ma clé Conbee II, rien ne se passe. Il détecte ma clé via l’adresse IP 127.0.0.1 et le port 8484, mais ça s’arrête là (bien sûr j’active l’authentification de la clé dans l’interface de Deconz).

Voici les détails de mes 2 conteneurs :

docker run --name jeedom-mysql -v /opt/jeedom/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=XXXX -e MYSQL_USER=jeedom -e MYSQL_PASSWORD=XXX --detach --publish 3306:3306 --restart always mariadb:latest

docker run --name jeedom-server --link jeedom-mysql -v /opt/jeedom/html:/var/www/html --device /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2228491-if00:/dev/ttyACM0 -p 9080:80 --link jeedom-mysql -d sgoubaud/jeedom

Je ne vois pas que cela en debug :
[2021-01-31 19:00:04][DEBUG] : Found gateway : []
[2021-01-31 19:00:05][DEBUG] : 127.0.0.1:8484/api type : POST

Si vous avez une idée, ou une explication à me donner sur le pourquoi ça ne veut pas marcher, je suis preneur.

Auparavant mon installation de Jeedom tournait sur la même machine, mais sur une distribution Raspbian en 32 bits. Jeedom ni Deconz ne tournaient alors sur Docker.
Je préfère Docker car c’est plus pratique pour l’installation, et que Deconz ne peut pas s’installer par défaut sur un système 64 bits.

Merci à vous pour votre aide.

Suma

Le problème c’est Docker.

Voir ici eut être pour quelques explications :

Bonsoir Yves,

Malheureusement je ne vois pas trop où tu veux en venir, je ne saisis pas en quoi le docker Deconz pose problème. J’ai installé Homebridge en natif sur le Pi, et il détecte très bien la clé. Je ne vois donc pas pourquoi Jeedom ne pourrait pas en faire autant, d’ailleurs voici les derniers logs :

[2021-01-31 18:10:23.276][DEBUG] : Client connected to [127.0.0.1:50438]
[2021-01-31 18:10:23.277][DEBUG] : Message read from socket: b’{« apikey »:« MXd87QsBNfmCInf4jOdUheJsLQqSIpXc »,« cmd »:« addgateway »,« gateways »:[{« id »:« undefined »,« name »:« undefined »,« internalipaddress »:« 127.0.0.1 »,« internalport »:« 8484 »,« websocketport »:« 20877 »,« apikey »:« undefined »,« manageTimeZone »:« 0 »}]}’
[2021-01-31 18:10:23.277][DEBUG] : Client disconnected from [127.0.0.1:50438]

La clé semble être détectée un bref instant, puis il la perd à nouveau, sans que jamais la clef ne s’affiche dans les paramètres du plugin.

Merci

Soit c’est la ConBee2 qui a un soucis (cf ici [Tuto] Programmer (flasher) clef Zigbee ConBee2 ) soit c’est l’installation au travers de docker qui pose pb (voir article message précédent)

du nouveau dans les logs, un problème de droits ?

[2021-01-31 19:19:38][DEBUG] : Found gateway : []
[2021-01-31 19:19:41][DEBUG] : 127.0.0.1:8484/api type : POST
Exception in thread deconz_127.0.0.1:
Traceback (most recent call last):
File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "/var/www/html/plugins/deconz/resources/deconzd/deconzd.py", line 133, in wshandling
globals.WS[str(gatewayInfos['internalipaddress'])] = create_connection("ws://" + str(gatewayInfos['internalipaddress']) + ":" + str(gatewayInfos['websocketport']))
File "/usr/local/lib/python3.7/dist-packages/websocket/_core.py", line 515, in create_connection
websock.connect(url, **options)
File "/usr/local/lib/python3.7/dist-packages/websocket/_core.py", line 223, in connect
options.pop('socket', None))
File "/usr/local/lib/python3.7/dist-packages/websocket/_http.py", line 121, in connect
sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
File "/usr/local/lib/python3.7/dist-packages/websocket/_http.py", line 201, in _open_socket
raise err
File "/usr/local/lib/python3.7/dist-packages/websocket/_http.py", line 176, in _open_socket
sock.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused
[2021-01-31 18:19:43.667][DEBUG] : Client connected to [127.0.0.1:52414]
[2021-01-31 18:19:43.668][DEBUG] : Message read from socket: b'{"apikey":"MXd87QsBNfmCInf4jOdUheJsLQqSIpXc","cmd":"addgateway","gateways":[{"internalipaddress":"127.0.0.1","internalport":"8484","websocketport":"20877"}]}'
[2021-01-31 18:19:43.668][DEBUG] : Client disconnected from [127.0.0.1:52414]
[2021-01-31 18:19:43.677][DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[2021-01-31 18:19:43.678][DEBUG] : Closing All Websockets
[2021-01-31 18:19:44.679][ERROR] : 'name'
[2021-01-31 19:19:52][DEBUG] : 127.0.0.1:8484/api type : POST
[2021-01-31 19:21:12][DEBUG] : 127.0.0.1:8484/api type : POST
[2021-01-31 19:21:15][DEBUG] : Found gateway : []
[2021-01-31 19:21:16][DEBUG] : 127.0.0.1:8484/api type : POST

Mon conteneur Deconz est configuré de la manière suivante :

docker run -d
–name=deconz
–net=host
–restart=always
-v /etc/localtime:/etc/localtime:ro
-v /opt/deconz:/root/.local/share/dresden-elektronik/deCONZ
–device=/dev/ttyACM0
marthoc/deconz