ConBee2, ZigBee2Mqtt, Node Red : J'y suis presque

Bonjour à tous,
Après bien des galères j’ai réussi à appairer mon bloc 4 boutons (TuYa TS004F control via MQTT | Zigbee2MQTT) via ma conBee2 et ZigBee2Mqtt

Il me reste une dernière étape pour atteindre le nirvana de la domotique : configurer le « serveur » dans Node Red

J’ai chargé ce flow : node-red-contrib-zigbee2mqtt (node) - Node-RED et tenté de configurer ce Node :
image
avec les infos suivantes :
image

Pas d’erreur sur les logs ZigBee2Mqtt, mais mon Mosquitto Broker m’affiche ça :

1634836987: New connection from 172.30.32.2 on port 1883.
1634836987: Socket error on client <unknown>, disconnecting.
1634837107: New connection from 172.30.32.2 on port 1883.
1634837107: Socket error on client <unknown>, disconnecting.
1634837223: New connection from 192.168.1.80 on port 1883.
1634837223: New client connected from 192.168.1.80 as NodeRed-25507fa4356a4ff0-tmp (p2, c1, k60).
1634837227: New connection from 172.30.32.2 on port 1883.
1634837227: Socket error on client <unknown>, disconnecting.
1634837228: Socket error on client NodeRed-25507fa4356a4ff0-tmp, disconnecting.

Et la, j’avoue que je sèche un peu …

Je prends toute suggestion !!!

Merci de votre aide,

Ma configuration


System Health

version: core-2021.9.1
installation_type: Home Assistant Supervised
dev: false
hassio: true
docker: true
user: root
virtualenv: false
python_version: 3.9.6
os_name: Linux
os_version: 5.10.17-v7l+
arch: armv7l
timezone: Europe/Paris

logged_in: false
can_reach_cert_server: ok
can_reach_cloud_auth: ok
can_reach_cloud: failed to load: timeout

host_os: Raspbian GNU/Linux 10 (buster)
update_channel: stable
supervisor_version: supervisor-2021.10.0
docker_version: 20.10.5
disk_total: 29.0 GB
disk_used: 7.2 GB
healthy: true
supported: failed to load: Unsupported
supervisor_api: ok
version_api: ok
installed_addons: Node-RED (10.0.0), Log Viewer (0.9.1), Zigbee2mqtt (1.21.2-1), Mosquitto broker (6.0.1)

dashboards: 1
resources: 0
views: 3
mode: storage


Salut,

Tu es certain d’avoir besoin de passer par ce flow ?
Zigbee2mqtt créer automatiquement pour chaque device (Zigbee2Mqtt → Broker → HA), les entités qui vont bien… Entités HA qui sont directement exploitable dans Nodered

Merci de té réponse.
Hélas je ne vois pas grand chose quand je tente d’ajouter une entité directement (domain : mqtt)
Et puis il y a zigbee2mqttassistant qui refuse aussi de démarrer, et je suppose que c’est pour les même raisons :

Starting Zigbee2MqttAssistant v0.3.157+Branch.master.Sha.ea388c3bbc2d43c4c9c62f27bb6764911ba4acc9...
Hosting environment: Production
Content root path: /app
Now listening on: http://[::]:80
Application started. Press Ctrl+C to shut down.
warn: Zigbee2MqttAssistant.Services.MqttConnectionService[0]
      Unable to connect to MQTT server 192.168.1.80.

Je continue à creuser !

Effectivement, il te manque de la config probablement

Ce qui fait double emploi avec zigbee2mqtt qui propose déjà une interface graphique …
Tu as gagné un truc en moins à installer

Alors j’ai réussi ma config en forçant un couple user/password coté Node-Red, et coté Mosquitto Broker

image

image

Ca fonctionne aussi pour zigbee2mqttassistant

Maintenant mon pad « 4 bouttons » apparait encore comme une entité unique …
Mais je vais y arriver !

OK. Mais comme dit plus haut, tu as installé beaucoup plus de trucs que le nécessaire.
Le Flow nodered et l’assistant sont complètement opérationnels. J’irai pas jusqu’à dire que ça va t’apporter plus d’ennuis que de fonctions mais je le pense.

L’installation de zigbee2mqttassistant m’a permis de trouver pourquoi ça ne fonctionnait pas, je n’aurai jamais trouvé sans, mais je suis d’accord pour dire que ça n’apporte pas grand chose.
Quand au flow sur RedNode, je ne sais pas faire autrement, surtout sur un bouton exotique comme le TS004F (pour lequel j’ai enfin 6 fonctions sur les 12 prévues au début …)
Il faut dire que je ne comprends rien au Yaml, et que NodeRed est ma bouée de secours … Mais je commence à bien maitriser, je crois …

Zigbeeassistant c’est l’ancêtre de l’interface actuelle donc les différences doivent vraiment être mineures au niveau des fonctions.
Par contre Nodered, je ne propose pas t’en passer mais d’éviter d’ajouter le module (qui dialogue directement en mqtt) mais de passer par le module ha de nodered qui permet de piloter tout (et pas que les trucs reliés à mqtt). Ya pas de yaml dans l’histoire

J’ai viré Zigbeeassistant.

Puis j’ai cherché encore … et j’ai trouvé ça comme config, qui ne fait pas appel à des flows annexes :
image
Il y a peut-être moyen de se passer du parser json, mais je ne sais pas comment interpréter ça directement dans mon switch node :
{"action":"brightness_step_up","action_step_size":51,"action_transition_time":0.1,"battery":79,"linkquality":255}

Mais ça fonctionne !

Je ne fais pas du tout comme ça …
Repérer l’action d’un bouton:
image

Vérifier quel type de clic:
image

Récupérer l’état d’une lumière:
image

Changer une couleur/instensité

Comme tu peux le voir, il n’y a pas de notion de mqtt …(c’est un objet HA comme un autre, il pourrait être en morse que ça sera pareil)
Donc le seul composant dont j’ai besoin c’est celui de HA

Moi si… :face_with_hand_over_mouth:
Avoir le bouton dans Home Assistant ne me sert à rien. Donc, il n’est pas déclaré dans HA et j’écoute en MQTT depuis NR.
J’ai d’autres trucs en DYI sous NodeRed (un capteur d’empreinte digitale, un lecteur wiegand,…) et pour ceux-là, je fais seulement dans NR. Je n’ai dans HA que les capteurs/switches/… dont l’état (et/ou l’action) m’importe pour affichage dans lovelace par exemple. Donc, ça se discute :wink:
En tout cas, choisir sa logique et s’y tenir pour tout ce que l’on fait.

Tout à fait

Le bouton en soit ne me sert pas non plus, mais passer par HA me permet de me dispenser complètement de la couche technique dans les flows. 1 seul point d’entrée/sortie (1 seul point de plantage aussi) Et ça me semble pas facile de se dispenser du composant HA de toute façon…
Et du coup, ta logique voudrait que chacun de tes ‹ ponts › soit directement relié à NR aussi… je sais pas si c’est plus souple du coup