Réseau Zigbee instable?

Bonjour à tous,

J’écris ce message pour avoir un peu d’aide sur mon réseau Zigbee, je commence à regretter sérieusement d’y être passé et pour autant je crois que ce problème et très ciblé mais je n’arrive pas à mettre la main dessus.

J’ai écris toute ma config et histoire ici depuis le début de la domotique chez moi :wink:

Pendant ce temps, mon réseau Zwave, enocean, rfxcom fonctionnent eux sans erreurs depuis des mois…

Mon réseau Zigbee est constitué de 54 appareils dont la moitié sont des routeurs.

Tout d’abord ce qui fonctionne bien :

  • Je n’ai aucun problème pour les modules qui donnent de l’info (capteurs, détecteurs)
  • aucun problème avec les actionneurs prises

Voilà mon problème :

J’ai des erreurs de communication, surtout sur des modules interrupteurs (et toujours aux mêmes endroits) .
Il s’agit de mon bureau, du séjour, du salon, de la chambre
Ces interrupteurs sont donc encastrés, ce sont des son-off non routeur.

Aléatoirement, ils fonctionnent, parfois normalement, parfois avec une lenteur de 10/15 secondes, parfois pas du tout avec le message habituel.

zigpy.exceptions.DeliveryError: Failed to deliver message: <sl_Status.ZIGBEE_DELIVERY_FAILED: 3074>

Ma configuration :
J’ai une clé Son-off avec le dernier firmware : 7.4.4.0 build 0
Mon réseau wifi est sur le canal 1 et 6
Mon réseau Zigbee sur le canal 25
Mon pônt Hue sur le canal 11
Ma clé est éloignée de mon matériel d’au moins 50 centimètres avec un câble blindé usb.
Ma VM est paramétrée en USB 2 sur les ports.

Mon réseau est constitué comme cela :

Ce qui me frappe donc c’est que ce réseau est fonctionnent pour quasiment tous les modules, sauf pour ceux là.

Dans ces quatre pièces (bureau, du séjour, du salon, de la chambre) , il y a des modules prises qui font routeurs et aucun module ne s’y « attachent ».

Ce sont des modules prises : TS011F (prise Nous)

Si je zoom sur le graph pour le bureau par exemple:

L’interrupteur du bureau se connecte à la prise de l’épicerie qui est à 7 mètres, alors que la prise de l’imprimante est à 1 mètre…

On dirait que les prises NOUS ne font pas leur travail de routeur.

Bon bref, pour le moment à part cette constatation, j’ai tout essayé et je ne parviens pas à avoir un réseau stable.

Help me ! :wink: :sos:

Encore un bon exemple du foutoir qu’est devenu le zigbee avec tuya. Et la réponse sera la même pour ma part :

  • Oublier tuya qui ne respecte pas les standards
  • Ajouter des bons vrais routeur (extendeur aeotec, prise HUE…) alimenté 24h\24.

Pour ton problème deux solutions :

  • Forcer la liaison avec les prises les plus proches mais c’est pas très propre
  • Ajouter un extendeur aeotec dans le réseau au centre des modules récalcitrant ça fait des miracles.
2 « J'aime »

Complètement en phase sur ton analyse.
Et quand tu n’y prête pas attention à l’achat et bien tu es dans la mouise, comme moi :smiley:

Pourtant je ne suis pas un néophyte mais la je me retrouve coincé.
La domotique est loin de se démocratiser…

Merci pour la mise en visibilité de l’Aoetec, je vais regarder et probablement en acheter un.

Bonjour,
mettre a jour la clé en 8.0.2 https://github.com/Nerivec/silabs-firmware-builder/releases/download/v2024.6.2-update7/sonoff_zbdonglee_zigbee_ncp_8.0.2.0_115200_sw_flow.gbl
Ca corrige pas mal de soucis.

C’est pas le meilleur canal. Plus le canal est haut, plus la couverture sera moindre que les autres.
J’aurais mis le 15 pour ton réseau zigbee.

1 « J'aime »

Ha merci pour l’info, je n’avais pas vu qu’une mise à jour était disponible !

Ok pour le canal, mais si je le change je dois réappairer tous les modules, n’est ce pas ?

Oui image

1 « J'aime »

Bon je ne suis pas prêt de changer de canal pour le moment :wink:

Je viens de changer de firmware, on verra bien.
c’est quoi ce fork ? ce n’est pas le repo officiel ça ?

Tu as celui de darkxxst

ou Nerivec un peu plus à jour

ils sont kif kif après.

1 « J'aime »

Bon après quelques essais, le firmware ne change rien, mais au moins ma clé est à jour :smiley:

Enregistreur: zigpy.zcl
Source: runner.py:154
S'est produit pour la première fois: 14:45:34 (4 occurrences)
Dernier enregistrement: 16:03:10

[0x0463:1:0x0020] Traceback (most recent call last): File "/usr/local/lib/python3.13/site-packages/zigpy/endpoint.py", line 270, in request return await self.device.request( ^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<11 lines>... ) ^ File "/usr/local/lib/python3.13/site-packages/zigpy/device.py", line 378, in request await send_request() File "/usr/local/lib/python3.13/site-packages/zigpy/application.py", line 841, in request await self.send_packet( ...<14 lines>... ) File "/usr/local/lib/python3.13/site-packages/bellows/zigbee/application.py", line 929, in send_packet raise zigpy.exceptions.DeliveryError( f"Failed to deliver message: {send_status!r}", send_status ) zigpy.exceptions.DeliveryError: Failed to deliver message: <sl_Status.ZIGBEE_DELIVERY_FAILED: 3074> The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/general.py", line 630, in check_in_response await self.checkin_response(True, self.CHECKIN_FAST_POLL_TIMEOUT, tsn=tsn) File "/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/__init__.py", line 85, in wrapper with wrap_zigpy_exceptions(): ~~~~~~~~~~~~~~~~~~~~~^^ File "/usr/local/lib/python3.13/contextlib.py", line 162, in __exit__ self.gen.throw(value) ~~~~~~~~~~~~~~^^^^^^^ File "/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/__init__.py", line 77, in wrap_zigpy_exceptions raise ZHAException(message) from exc zha.exceptions.ZHAException: Failed to send request: Failed to deliver message: <sl_Status.ZIGBEE_DELIVERY_FAILED: 3074>
[0x2EAA:35:0x0020] Traceback (most recent call last): File "/usr/local/lib/python3.13/site-packages/zigpy/endpoint.py", line 270, in request return await self.device.request( ^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<11 lines>... ) ^ File "/usr/local/lib/python3.13/site-packages/zigpy/device.py", line 378, in request await send_request() File "/usr/local/lib/python3.13/site-packages/zigpy/application.py", line 841, in request await self.send_packet( ...<14 lines>... ) File "/usr/local/lib/python3.13/site-packages/bellows/zigbee/application.py", line 929, in send_packet raise zigpy.exceptions.DeliveryError( f"Failed to deliver message: {send_status!r}", send_status ) zigpy.exceptions.DeliveryError: Failed to deliver message: <sl_Status.ZIGBEE_DELIVERY_FAILED: 3074> The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/general.py", line 630, in check_in_response await self.checkin_response(True, self.CHECKIN_FAST_POLL_TIMEOUT, tsn=tsn) File "/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/__init__.py", line 85, in wrapper with wrap_zigpy_exceptions(): ~~~~~~~~~~~~~~~~~~~~~^^ File "/usr/local/lib/python3.13/contextlib.py", line 162, in __exit__ self.gen.throw(value) ~~~~~~~~~~~~~~^^^^^^^ File "/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/__init__.py", line 77, in wrap_zigpy_exceptions raise ZHAException(message) from exc zha.exceptions.ZHAException: Failed to send request: Failed to deliver message: <sl_Status.ZIGBEE_DELIVERY_FAILED: 3074>
[0x9D8A:1:0x0020] Traceback (most recent call last): File "/usr/local/lib/python3.13/site-packages/zigpy/endpoint.py", line 270, in request return await self.device.request( ^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<11 lines>... ) ^ File "/usr/local/lib/python3.13/site-packages/zigpy/device.py", line 378, in request await send_request() File "/usr/local/lib/python3.13/site-packages/zigpy/application.py", line 841, in request await self.send_packet( ...<14 lines>... ) File "/usr/local/lib/python3.13/site-packages/bellows/zigbee/application.py", line 929, in send_packet raise zigpy.exceptions.DeliveryError( f"Failed to deliver message: {send_status!r}", send_status ) zigpy.exceptions.DeliveryError: Failed to deliver message: <sl_Status.ZIGBEE_DELIVERY_FAILED: 3074> The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/general.py", line 630, in check_in_response await self.checkin_response(True, self.CHECKIN_FAST_POLL_TIMEOUT, tsn=tsn) File "/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/__init__.py", line 85, in wrapper with wrap_zigpy_exceptions(): ~~~~~~~~~~~~~~~~~~~~~^^ File "/usr/local/lib/python3.13/contextlib.py", line 162, in __exit__ self.gen.throw(value) ~~~~~~~~~~~~~~^^^^^^^ File "/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/__init__.py", line 77, in wrap_zigpy_exceptions raise ZHAException(message) from exc zha.exceptions.ZHAException: Failed to send request: Failed to deliver message: <sl_Status.ZIGBEE_DELIVERY_FAILED: 3074>
[0x9AE5:1:0x0020] Traceback (most recent call last): File "/usr/local/lib/python3.13/site-packages/zigpy/endpoint.py", line 270, in request return await self.device.request( ^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<11 lines>... ) ^ File "/usr/local/lib/python3.13/site-packages/zigpy/device.py", line 378, in request await send_request() File "/usr/local/lib/python3.13/site-packages/zigpy/application.py", line 841, in request await self.send_packet( ...<14 lines>... ) File "/usr/local/lib/python3.13/site-packages/bellows/zigbee/application.py", line 929, in send_packet raise zigpy.exceptions.DeliveryError( f"Failed to deliver message: {send_status!r}", send_status ) zigpy.exceptions.DeliveryError: Failed to deliver message: <sl_Status.ZIGBEE_DELIVERY_FAILED: 3074> The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/general.py", line 630, in check_in_response await self.checkin_response(True, self.CHECKIN_FAST_POLL_TIMEOUT, tsn=tsn) File "/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/__init__.py", line 85, in wrapper with wrap_zigpy_exceptions(): ~~~~~~~~~~~~~~~~~~~~~^^ File "/usr/local/lib/python3.13/contextlib.py", line 162, in __exit__ self.gen.throw(value) ~~~~~~~~~~~~~~^^^^^^^ File "/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/__init__.py", line 77, in wrap_zigpy_exceptions raise ZHAException(message) from exc zha.exceptions.ZHAException: Failed to send request: Failed to deliver message: <sl_Status.ZIGBEE_DELIVERY_FAILED: 3074>

Je pense effectivement que le problème vient du manque de routeur puisque les prises NOUS n’ont pas l’air de jouer ce rôle. (pourtant de très bon avis partout sur le net).

Je vais donc acheter un Aoetec et voir si cela corrige le problème.
D’un autre côté essayer de trouver pourquoi ces prises ne jouent pas le rôle de routeur.

Après, tu es sur ZHA. Tu as des issues sûr c’est erreur qui n’ont pas l’air corrigé.

ZHA, c’est bien pour commencer, mais Z2M est bien mieux au final et bien plus maintenu que ZHA.

1 « J'aime »

Oui après un temps passé, je me rends compte que j’aurai du tout de suite installer Z2M.
Venant de Jeedom, je me suis trop précipité en pensant que ce serait plus secure d’utiliser le composant officiel. :frowning:

Basculer vers Z2M va être une galère, je vais tout perdre, je ne suis pas prêt :smiley:

Si tu dois changer de canal zigbee, autant passer sur Z2M vu qu’il faudra tout réappairer de toute façon.

Si besoin un tuto:

1 « J'aime »

Merci pour vos conseils messieurs ! :pray:
Oui je vais devoir y passer je pense bien, je vais regarder ce tuto.

Une dernière chose, si je migre vers Z2M, quelles sont les recommandations de migration ?

J’ai vu ce post :

Je comprends qu’il faut dans les étapes :

  • Backup de HA
  • Suppression de zha
  • Restart HA
  • Re-Backup de HA
  • Démarrage container z2m
  • Appairage des devices
  • Fin

J’ai vu aussi que pour éviter de tout refaire dans les automatisations, il faut préparer un fichier de configuration mais je n’arrive pas à trouver les étapes pour le réaliser.

j’ai trouvé ça :

dans /config/zigbee2mqtt/devices.yaml tu as ce genre de trucs:

'0x00158d00054c43f4':
  friendly_name: Porte_Entrée
'0x5c0272fffe03a5c3':
  friendly_name: Sonde_Salon
'0xa4c138b9dec0b291':
  friendly_name: led_plan
'0x000474000014acb2':
  friendly_name: Convecteur_bureau
'0x00158d0004017abe':
  friendly_name: Chevet1_suite

L’astuce c’est de remplir cette liste AVANT avec le même nom que dans ZHA… Comme ça tu réappaires, ça prends le même nom et pas besoin de retoucher aux automatisations (sauf si les fonctions/attributs varient)

Mais je ne sais pas à quel moment il faut faire cette étape et comment trouver les noms « techniques »

Enfin si je fais tout cela, est-ce que je garde les historique ?

Une sauvegarde de HA. Tu désinstalles ZHA et reboot HA. Tu auras une nouvelle proposition d’installation de ZHA et il faut l’ignorer (très important). Tu devras surement redémarrer plusieurs fois avant d’avoir la proposition ( ou faire un redémarrage complet de HA).
Tu suis le tuto que je t’ai proposé et réappaire les équipements. Avant de réappairer change ton canal zigbee, il est sur 11 par défaut sur Z2M.

Oui, pas besoin d’un devices.yaml, tu peux tout faire du configuration.yaml de Z2M.
exemple:

devices:
  '0x00158d0001d82999':
    friendly_name: 'my_occupancy_sensor'

ou tu peux le faire directement du dashboard de Z2M , avec le bouton renommé

récupère tous les noms des appareils, avant de désinstaller ZHA. Prépare-toi un fichier texte.
C’est après que tu auras installé Z2M, puis démarrer et appairé les appareils. Tu les renommeras .
Tu trouveras les noms des appareils sur ZHA, dans paramètres / appareils et services, puis l’intégration ZHA.

Si tu renommes les entités pareilles, oui, tu auras l’historique.

1 « J'aime »

Merci encore pour ton aide et propositions.
Je vais réaliser cette migration prochainement et je posterai ici les étapes pour les personnes futures.

Merci encore ! :+1:

Des petites news et surtout pour partager à celui qui en aurait besoin un jour.
J’ai donc migré de ZHA vers Z2M.

Pour le démarrage, j’ai donc utilisé le super tuto de @WarC0zes (bravo pour ça, c’est vraiment très clair)
Zigbee2mqtt : choisir, installer et configurer.

Avant de démarrer, j’ai installé « ZHA :toolbox: Toolkit », afin de me permettre d’exporter l’ensemble de mes modules et csv.
Objectifs, retrouver tous les noms et pouvoir ensuite les réutiliser.

Cela donne un fichier très intéressant :

Ce qui m’a permis d’avoir un plan d’intégration, les routeurs d’abord et les plus proches, ensuite les EndDevice.

En synthèse, dans les grandes étapes, j’ai :

  • création d’un user zigbee2mqtt : :negative_squared_cross_mark:
  • Installer Mosquitto broker : (déjà installé avec Enocean) : :negative_squared_cross_mark:
  • Installation de zigbee2mqtt : :negative_squared_cross_mark:
  • Paramétrage de zigbee2mqtt et changement de canal dès le départ (canal 15) : :negative_squared_cross_mark:
  • Désinstallation ZHA
  • Redémarrage de HA
  • Démarrage de zigbeemqtt

Ensuite j’ai inclus chaque module que j’ai renommé avec l’ancien nom dès la fin de l’inclusion.
Donc jusque là tout est parfait.

Je constate que malgré le renommage, j’ai toutes mes automatisations à refaire.
49… :smiley:

image

Allez au boulot, je reviendra avec mes constatations entre ZHA et Z2M plus tard.

1 « J'aime »

Salut,
du coup c’est bon depuis ton changement sur Z2M et de canal zigbee 15 ?

Hello !
Oui je voulais attendre un peu avant de poster.
J’ai d’ailleurs répondu dans un autre post pour essayer d’aider quelqu’un.

Alors, depuis 6 jours et la migration, je n’ai pas eu le problème que j’avais précédemment avec mes modules enddevice.

Je sous donc passé sur Z2M
Changé de canal en 15
Mis mes modules à jour (impossible de le faire sous ZHA)

Mon réseau est carré sous Z2M !

Je peux aussi dire que c’est beaucoup plus réactif.

Dans les journaux, je n’ai plus aucunes erreurs.

Je pense que cette migration est un succès !
Merci encore pour ton aide :+1:

1 « J'aime »