Intégrer des composants Zigbee a Home Assistant via zigbee2mqtt (partie 2)

8 minutes de lecture
OBJECTIFS DU GUIDE:
CONCEPTS FACE:
  • Utilisation et configuration du logiciel
COMPOSANTS LOGICIELS UTILISÉS:
Pré-requis:
DISPOSITIFS PHYSIQUES UTILISÉS:
  • L'ordinateur sur lequel il réside Home Assistant
  • le composant ZigBee être intégré
GUIDE plus indiqué pour:

Tous les environnements

Notes et avertissement
  • qualsiasi modifica all'impianto elettrico dev'essere progettata ed effettuata da personale qualificato;
  • tout changement mis en œuvre dans proavant est un prola responsabilité personnelle, ainsi que propremier risque et danger (le contenu de la présente page est purement pédagogique);
  • tout changement mis en œuvre dans proavant un appareil, il annule la garantie, les approbations de qualité et les certifications.
Avis de conduite: 1.1

Abstrait

Il proprotocole ZigBee.

Comme sappIAMO l'interopérabilité avec le bureau entre les composants basés sur cette protocollo mais de différents types et différent proproducteurs c’est souvent, voire presque toujours, un proBlema. Il existe en effet des composants très intéressants mais des lignes très différentes les uns des autres et, ne pouvant penser à acheter un BRIDGE/Gateway pour chacune des lignes proune fois que vous avez appris, vous êtes souvent confronté au choix de devoir "régler" une ligne profait en abandonnant peut-être d'autres composants simples que nous serions intéressés à introduire dans la domotique.

Autre prode cette situation est souvent l'impossibilité d'intégrer le BRIDGE/Gateway (et donc les composants ZigBee connecté à celui-ci) avec proprio HUB personnel, comme dans le cas de celui de la ligne LUMI Aqara - N’est-ce pas heureusement que les composants (très valables) de cette ligne sont gérables même à partir du gateway Xiaomi Mijia, qui peut être intégré avec Home Assistant. Quand des composants ZigBee ils ne sont autrement pas contrôlables sinon avec "proprio " gateway (peut-être pas intégrable avec le nôtre Home Assistant), ils deviennent essentiellement inutiles, sinon dans le contexte de la proson écosystème et ses proavant app téléphones.

Pour sauver chèvre et le chou existe une excellente solution, ou celle de la mise en œuvre d'un BRIDGE/Gateway ZigBee↔︎TCP/IP divorcé de la logique de l'individu proproducteurs: la réponse est donnée par la synergie de zigbee2mqtt (composant logiciel) le dongle USB CC2531 (composant matériel), une combinaison qui permet d’enquêter le plus grand nombre de composants ZigBee possible en contournant i proproblèmes mentionnés ci-dessus. Évidemment, ces BRIDGE/Gateway "Standard" est la tartenamepeut être intégré avec Home Assistant.

Dans ce guide, nous verrons quelles sont les étapes intégrer un composant ZigBee su Home Assistant aide appgraisseux zigbee2mqtt qui BRIDGE/Gateway, ce qui signifie déjà installé et configuré.

Nb Ce guide, "partie 2“, Sert à comprendre comment intégrer les composants ZigBee a Home Assistant. Le "partie 1”Au lieu de cela illustre comment installer et configurer zigbee2mqtt (condition sine qua non / prose rendre avec le présent). Ce "guide de la pièce 1" est disponible pour les utilisateurs qui ont Home Assistant installé comme applicencié sur Raspbian ou qu'ils utilisent la distribution HASSIO.

Nb Alternative au binôme zigbee2mqtt + CC2531 est l'adoption de deCONZ+ConBee/RaspBee, pas le sujet de ce guide spécifique.

Il commence

Comment ça marche

Avant prosuivez, posez-vous la question: est-ce que je connais MQTT? Si la réponse est oui, eh bien, sinon provvedere à un approfondation sur cette proprotocole. Le guide prend pour acquis qu'en se référant aux commandes MQTT et à la télémétrie, ouiappce dont nous parlons, du moins en termes généraux.

En conséquence, viennent funziona zigbee2mqtt, et parce que cela nous permet d'intégrer des composants ZigBee?
Arrivé jusqu'à présent, cela devrait déjà être clair, mais si ce n'était pas le cas, repetita iuvant.

zigbee2mqtt permet, à travers l'antenne CC2531, pour servir de pont entre le proprotocole ZigBee et le protocollo MQTT; ce dernier est bien compris et géré par Home Assistant, qui parvient ainsi à intégrer tous les composants ZigBee compatible avec zigbee2mqtt. Ce "pontage" signifie "traduire" le proprotocole ZigBee dans les messages MQTT, vers et depuis le composant.

Il proServeur Cessus de zigbee2mqtt c'est lui-même un client MQTT donc, pour contrôler son comportement et celui de ses composants ZigBee connecté, il va sans dire que les messages MQTT sont utilisés.

Lors de la connexion d'un composant ZigBee a zigbee2mqtt (procedura de pairing), il enregistre - pour ainsi dire - l’identité unique générant ainsi un ensemble de commandes de télémétrie et MQTT de et vers le composant. A partir de là, son travail sera terminé. Quand une télémétrie arrive via ZigBee À partir du composant (par exemple une température d'un capteur thermique), publiera sur le courtier MQTT le message de télémétrie, évidemment "baptisé" avec le "nom" du composant qui l'a généré. Étant donné que zigbee2mqtt aura également souscrit sur le courtier les sujets de commande pour ce composant, si une commande MQTT est publiée sur le courtier. zigbee2mqtt le recevra et le transmettra au composant via zigbee. Et ainsi de suite.

Par conséquent, il est clair que zigbee2mqtt ne se connecte pas directement à Home Assistant, mais limitez-vous à "parler" avec le courtier MQTT.

Home Assistantpour sa part il est également connecté au courtier MQTT: si la découverte automatique est active (ce que nous recommandons d'activer dans la "partie 1" du guide), à ​​la première publication sur le courtier par zigbee2mqtt de la disponibilité d'un nouveau composant ZigBee à travers elle interrogée (communiqué avec un message spécial "présentation" de MQTT, pour ainsi dire), Home Assistant proil voit créer automatiquement des entité qui, bien sûr, recevront des états et enverront des commandes via MQTT dans la logique décrite ci-dessus.

zigbeeArchitecture 2mqtt

Pairing

Il pairing, ou l'association d'un appareil ZigBee avec zigbee2mqtt, cela se fait en définissant ce dernier dans ce mode spécifique. Pour ce faire, il est possible de suivre deux chemins:

  • définissez-le "fixe", de sorte que le BRIDGE/Gateway est toujours à l'écoute de nouveaux composants (fortement déconseillé);
  • l'activer temporairement:
    • vi commande manuelle;
    • via l'interface.
PAIRING FIXE

Pour s'assurer que zigbee2mqtt est perpétuellement actif dans le mode pairing (mais nous le déconseillons vivement pour des raisons de performance et de fonctionnement correctnamento) est nécessaire:

  • su Home Assistant installé comme applicence sur Rasbian, éditez le fichier "opt/zigbee2mqtt/data/configuration.yaml"Réglage à"true"Le champ"permit_join"Et puis redémarrer le service (commande du terminal"sudo systemctl restart zigbee2mqtt»);
  • su HASSIO, changez la configuration duadd-on (en l’arrêtant d’abord) en réglant sur "true"Le champ"permit_join"(Et puis enregistrez et redémarrez leadd-on).

À ce stade (après le redémarrage du service / de laadd-on) appuyez simplement sur le bouton pairing placé sur le composant ZigBee à intégrer (reportez-vous à la documentation officielle du composant lui-même pour savoir comment activer le pairing) et attendez quelques secondes. Le composant, si compatible avec zigbee2mqtt, sera intégré au BRIDGE/Gateway.

PAIRING TEMPORAIRE

Activer temporairement le mode pairing lato zigbee2mqtt doit être publié une commande MQTT spécifique sur les courtiers. Cette commande est généralement:

zigbee2mqtt/bridge/config/permit_join true

tandis que cela pour interrompre le mode de pairing:

zigbee2mqtt/bridge/config/permit_join false

Pour envoyer cette commande MQTT, il est possible:

  • faites-le manuellement via le client MQTT;
  • l'envoyer automatiquement via l'interface Home Assistant.

Faire cela Manualmente vous pouvez utiliser n'importe quel client MQTT connecté au courtier ou au client Home Assistant à son interface ("Outils de développement">"MQTT").

Si au lieu de cela il a suivi à la lettre la "partie 1" de ce guide (voir les liens dans laAbstrait) vous pouvez activer automatiquement le mode de pairing simplement en activant l'interrupteur "Zigbee2mqtt Main join", Quel autre n’envoie pas - sous le capot - les commandes MQTT mentionnées ci-dessus:

Home Assistant  -  zigbee2mqtt mqin joindre un commutateur

Pendant les deux minutes suivantes (selon le chronomètre «Temps restant") Il sera possible de se connecter à BRIDGE/Gateway un nouveau composant ZigBee: à ce stade, il suffira d'appuyer sur le bouton pairing placé sur le composant ZigBee à intégrer (reportez-vous à la documentation officielle du composant lui-même pour savoir comment activer le pairing) et attendez quelques secondes. Le composant, si compatible avec zigbee2mqtt, sera intégré au BRIDGE/Gateway.

Nb Le couplage temporaire - bien que recommandé - peut parfois causer proproblèmes, le plus typique est celui de ne pas permettre aux membres ZigBee que vous essayez d'intégrer pour entrer dans le réseau. Au cas où, utilisez le pairing Fixe.

Home Assistant

Comme expliqué précédemment, après c'est arrivé pairing zigbee2mqtt "présente" ce nouveau composant via un message MQTT publié sur le courtier, après quoi il commence à activer toute télémétrie MQTT et à écouter toutes les commandes MQTT destinées à ce composant.

INTEGRATION AUTOMATIQUE

Si le guide "démarre 1" (voir les liens dans leAbstrait) a été réalisée à la lettre, Home Assistant recueillir - grâce à la présence de la découverte automatique MQTT - le message "présentation" du composant publié par zigbee2mqtt, qui contient toutes les "coordonnées" de configurations utiles pourHUB pour générer des entités qui exploiteront la télémétrie et les commandes à destination et en provenance du composant (acheminées via MQTT) appena intégré. C'est l'itinéraire le plus facile et le plus recommandé.

rechapage: est Home Assistant l’autodécouverte MQTT (comme indiqué dans la "partie 1" du guide), ensuite pairing d'un composant ZigBee avec zigbee2mqtt appde nouvelles entités seront auHUB si automatico.

Par exemple, voici la liste des entités issues de l'intégration d'un Capteur thermique Xiaomi:

Home Assistant - Capteur de température Xiaomi zigbee2mqtt

Étant donné que non "amical name”Est ​​attribué à l'entité, à la face avant Lovelace UI les noms donnés sont les originaux. Comme nous le lisons dans l'image, toutes les entités ont un nom qui commence par "0x0 ...", Stretch distinctif des entités intégrées via zigbee2mqtt (ce n'est pas seulement une question de culture: c'est quelque chose que vous devez savoir plus tard).

Nb Su HASSIO il est possible de "découvrir" les noms attribués automatiquement aux composants intégrés au "HASSIO">"Tableau de bord">"zigbee2mqtt"Et au bas de la carte, vérifiez la" nouvelle entrée "via le LOG.
INTEGRATION MANUELLE

Où - pour des raisons qui peuvent être les plus diverses à partir du désir de personnalisation poussé - vous ne voulez pas utiliser la découverte automatique, zigbee2mqtt laisse à l'utilisateur la liberté de configurer, à sa guise, le proentité à Home Assistant.

Pour ce faire, reportez-vous àl base de données des composants pris en charge: chaque composant a la propremière liste de codes ajouter à la configuration di Home Assistant.

Dans le cas du capteur ci-dessus, utilisé à titre d'exemple, la carte de référence est-ce: dans son cas, le code est:

sensor:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/NOME_COMPONENTE"
    availability_topic: "zigbee2mqtt/bridge/state"
    unit_of_measurement: "°C"
    device_class: "temperature"
    value_template: "{{ value_json.temperature }}"

sensor:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/NOME_COMPONENTE"
    availability_topic: "zigbee2mqtt/bridge/state"
    unit_of_measurement: "%"
    device_class: "humidity"
    value_template: "{{ value_json.humidity }}"

sensor:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/NOME_COMPONENTE"
    availability_topic: "zigbee2mqtt/bridge/state"
    unit_of_measurement: "hPa"
    device_class: "pressure"
    value_template: "{{ value_json.pressure }}"

sensor:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/NOME_COMPONENTE"
    availability_topic: "zigbee2mqtt/bridge/state"
    unit_of_measurement: "%"
    device_class: "battery"
    value_template: "{{ value_json.battery }}"

sensor:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/NOME_COMPONENTE"
    availability_topic: "zigbee2mqtt/bridge/state"
    unit_of_measurement: "-"
    value_template: "{{ value_json.linkquality }}"

Évidemment le "name_of_component"Sera personnalisé avec la chaîne utilisée par zigbee2mqtt pour "baptiser" le composant; dans l'exemple ci-dessus ce serait "0x00158d0002f2dccc».

Pour découvrir cette ficelle il est nécessaire d'écouter le courtier MQTT en consultant tous les messages qui passent pour comprendre son nom; si vous utilisez RRaspbian (et Mosquitto), une commande typique pourrait être la suivante:

mosquitto_sub -d -v -t +/# -h localhost -u username -P password | grep zigbee2mqtt

Sinon, il est possible, dans le même but, d’utiliser un client MQTT pour se connecter au courtier MQTT et s’abonner aux messages "zigbee2mqtt / #"(C'est" tous ceux qui commencent par 'zigbee2mqtt'").

annulation

Annuler: dépend que veut-on dire. C’est une chose d’annuler l’entité à Home Assistant, c’est une chose de retirer le pairing d'un composant ZigBee à zigbee2mqtt.

Dans le premier cas, la pratique à suivre varie selon la manière dont elle a été créée: automatiquement (via la détection automatique) ou manuellement (via la configuration manuelle). Dans ce dernier cas, pour éliminer l'entité duHUB (mais pas de zigbee2mqtt) supprimez simplement la configuration manuelle et redémarrez Home Assistant. Dans le premier cas (découverte automatique), il est nécessaire de supprimer le pairing du composant à zigbee2mqtt.

Pour enlever le pairing d'un composant, il est nécessaire d'envoyer à zigbee2mqtt, via mqtt, une commande spécifique:

zigbee2mqtt/bridge/config/remove NOME_COMPONENTE

où, bien sûr, le "name_of_component”Est ​​la chaîne avec laquelle le composant est nommé par zigbee2mqtt.

Pour envoyer cette commande MQTT, il est possible:

  • faites-le manuellement via le client MQTT;
  • l'envoyer automatiquement via l'interface Home Assistant.

Faire cela Manualmente vous pouvez utiliser n'importe quel client MQTT connecté au courtier ou au client Home Assistant à son interface ("Outils de développement">"MQTT").

Si au lieu de cela il a suivi à la lettre la "partie 1" de ce guide (voir les liens dans laAbstrait) vous pouvez activer automatiquement le mode depairing simplement en activant l'interrupteur "Zigbee2mqtt Supprimer", Quel autre n’envoie pas - sous le capot - la commande MQTT mentionnée ci-dessus:

Home Assistant  -  zigbee2mqtt supprimer

Évidemment, avant de cliquer "RUN"Il faudra insérer, dans le champ de texte, le nom du composant à supprimer (au lieu de "inconnu").

En résumé et conclusion:

  • les utilisateurs configurés pour la découverte automatique peuvent simplement supprimer la parination;
  • Les utilisateurs configurés manuellement doivent d'abord supprimer la configuration de Home Assisatnt liée au composant à supprimer, puis ils peuvent supprimer le pairing.


Home Assistant Logo officielATTENZIONE: rappelez-vous qu'il y a sur notre communauté FORUM une section ad hoc dédiée à Home Assistantpour tout doute, question, information sur le mérite spécifique de ces composants.


Veuillez commenter ci-dessous