[Résolu] Pb port série installation ZHA

Bonjour a tous

Je suis en train d’essayer de configurer un nouveau serveur HA sur un Raspi4 avec disque dur.

Malheureusement je bute depuis plusieurs jours sur un problème avec ZHA.
Lors de son intégration, il me demande le port série et je réponds « saisie manuelle ». Ensuite je choisi ZIGATE.
Et il me demande de saisir le port série : tcp://192.168.1.6:10208, mais la la réponse est Unknown error occurred

j’ai essayé avec socket://192.168.1.6:10208 mais le message est le même.
Du coup l’installation de ZHA ne peut être terminée.

Pour info, j’utilise une PIZIGATE+ montée sur un raspi , le tout placé à un endroit stratégique (pour une bonne couverture et un bon maillage), le port série est redirigé sur le port ethernet via SER2NET. La pizigate est sur la dernière version du firmware, et SER2NET aussi. Cet ensemble est bien configuré et fonctionnait parfaitement sur ma précédente installation (mqtt+node-red+zigbee2mqtt).

dans le fichier log je suis tombé là dessus :

 File "/usr/local/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.9/site-packages/zigpy_zigate/api.py", line 283, in _probe
    await self.connect()
  File "/usr/local/lib/python3.9/site-packages/zigpy_zigate/api.py", line 101, in connect
    self._uart = await zigpy_zigate.uart.connect(self._config, self)
  File "/usr/local/lib/python3.9/site-packages/zigpy_zigate/uart.py", line 153, in connect
    _, protocol = await serial_asyncio.create_serial_connection(
  File "/usr/local/lib/python3.9/site-packages/serial_asyncio/__init__.py", line 445, in create_serial_connection
    serial_instance = serial.serial_for_url(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/serial/__init__.py", line 85, in serial_for_url
    raise ValueError('invalid URL, protocol {!r} not known'.format(protocol))
ValueError: invalid URL, protocol 'tcp' not known

Le protocole tcp ne semble pas reconnu

avec le port serie en socket://192.168.1.6:10208 le log indique:

File "/usr/local/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.9/site-packages/zigpy_zigate/api.py", line 283, in _probe
    await self.connect()
  File "/usr/local/lib/python3.9/site-packages/zigpy_zigate/api.py", line 101, in connect
    self._uart = await zigpy_zigate.uart.connect(self._config, self)
  File "/usr/local/lib/python3.9/site-packages/zigpy_zigate/uart.py", line 139, in connect
    _, protocol = await loop.create_connection(
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1056, in create_connection
    raise exceptions[0]
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 1041, in create_connection
    sock = await self._connect_sock(
  File "/usr/local/lib/python3.9/asyncio/base_events.py", line 955, in _connect_sock
    await self.sock_connect(sock, address)
  File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 502, in sock_connect
    return await fut
  File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 537, in _sock_connect_cb
    raise OSError(err, f'Connect call failed {address}')
ConnectionRefusedError: [Errno 111] Connect call failed ('192.168.1.6', 10208)

Je fouille l’internet depuis 4 jours mais je comprends toujours pas pourquoi la connexion est refusée

J’espère que vous allez pouvoir m’aider
A+ Fred

Déjà ça c’est côté serveur que ça coince, pas côté HA.
T’es sûr de la config de ton PiZiGate ?

Et t’as suivi ça aussi, car ils disent clairement d’utiliser socket://

Merci pour ta réponse.

C’est grâce à l’article que tu cites que j’ai essayé avec socket, car sur l’installation que j’avais avant, il fallait utiliser tcp.

J’ai tout revérifié sur mon raspi+zigate. l’application zigate-test donne tout en OK, et SER2NET était connecté il y a encore 4 jours sans aucun soucis et ceci depuis plus de 2ans.

Comment pourrais vérifier l’accés à distance sur le port série ?

En faisant:

telnet 192.168.1.6 10208

Si ça répond, ça veut dire que ser2net marche (très probablement). Tu ne pourras rien faire de plus avec cette commande, mais, ça prouve qu’une appli attend sur ce port. Ca doit être faisable avec putty ou un autre client telnet.

Merci @golfvert
oui avec putty c’est possible, c’est expliquer au paragraphe Premiers tests avec un module ZiGate de la page Hack -Détournement de la passerelle Lidl silvercrest – Faire soi-même . Le gros avantage de putty, c’est multi plateforme.

De mon côté j’ai trouvé l’application PACKET SENDER qui permet d’envoyer des messages et même de recevoir les réponses.

Pour la communication et le test du port serie, tout est expliqué sur Débuter avec la passerelle ZiGate - ZiGate , il y a plusieurs solutions de présentées en bas de la page.

J’ai passé beaucoup de temps pour ne rien obtenir avec le zigbee. Mais du coup il va falloir que je rattrape le retard au niveau boulot. Je laisse ça de côté un jour ou deux.

Dés que j’ai fait des tests, je vous tiens au courant

A+ Fred

Comme il m’a été suggéré, le port série n’était pas disponible suite à un problème semble t’il de ser2net. J’ai fait beaucoup de tests et de recherches mais je n’ai pas réussi à régler le problème.

Du coup j’ai abandonné la solution dépannage pour passer à la méthode radical : formatage et installation d’un raspbian tout neuf (ça c’est facile). La communication via GPIO avec la Pizigate a été un peu plus compliquée car la librairie wiringpi n’est plus disponible…
Une fois ce problème résolu, installation de SOCAT (en remplacement de ser2net) et voila un communication serie avez le zigbee disponible.

Connexion a ZHA du premier coup puis ajout de plusieurs appareils zigbee :

  • multiprise lidl → sans soucis sur les 3 prises
  • ampoule rgb lidl → sans soucis
  • barre de led rgb lidl → sans soucis
  • prise OSRAM → sans soucis

demain je connecte le reste de mes appareils mais je suis très confiant.

Merci pour votre aide
et a bientôt pour de nouvelles aventures (j’ai deux NSpanel a configurer avec un relooking complet de l’interface)

A+Fred