Intégrer CC2531 avec Home Assistant (HASSIO) Via zigbee2mqtt (partie 1)

9 minutes de lecture
OBJECTIFS DU GUIDE:
  • intégrer un BRIDGE/Gateway ZigBee↔︎TCP/IP CC2531 avec Home Assistant (distribution HASSIO) par l'adoption de son équivalent logiciel zigbee2mqtt. Cette intégration permet d'intégrer des composants ZigBee de plusieurs producers a Home Assistant.
  • Niveau de difficulté: medio
CONCEPTS FACE:
  • Utilisation et configuration du logiciel
COMPOSANTS LOGICIELS UTILISÉS:
Pré-requis:
DISPOSITIFS PHYSIQUES UTILISÉS:
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.0

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.

CC2531
le dongle USB CC2531.

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. De toute évidence, cette BRIDGE/Gateway "Standard" est la tartenamepeut être intégré avec Home Assistant.

Dans ce guide, nous verrons quelles sont les étapes pour l’intégrer sur Home Assistant en distribution HASSIO.
Le guide dédié à ceux qui l'utilisent à la place Home Assistant installé comme applicence sur le système d'exploitation Raspbian est disponible ici.

Nb Ce guide, "partie 1“, Sert à réaliser la pleine intégration de zigbee2mqtt. La "partie 2" - disponible ici - expliquer comment ajouter des composants ZigBee al BRIDGE/Gateway ZigBee fait avec ce guide.

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

Il commence

Installer l'antenne

Tout d'abord c'est nécessaire installez correctement le dongle USB CC2531. Comme on doit le savoir, ce composant (contrairement à son concurrent ConBee) n'est pas prone pas utiliser, mais en a besoin ripropoids du firmware en amont. Le présent procast prend pour acquis le fait riprogrammation de la même.

Une fois pronta, la clé peut être connecté à l'un des ports USB de l'ordinateur sur lequel il fonctionne HASSIO, après quoi il est nécessaire de terminer l’installation en effectuant un redémarrage (élément de menu "HASS.io">"SYSTÈME">"REBOOT").

CONTROLE POST-INSTALLATION

Après avoir installé l'antenne et mis en marche HASSIO, accédez à ce dernier et, sous le point de menu "HASS.io">"SYSTÈME">"MATÉRIEL”Vérifiez si, dans la liste du matériel installé, appque ce soit ou non le composant, généralement une voix de ce type:

/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B00076887D9-if00

Au cas où appà l'installation sera considéré comme valide; marquez la ficelle d'un côté, elle servira plus tard.

Nb Parfois, l’antenne est simplement reconnue comme / Dev / ttyAMA0 .

Installer le courtier MQTT

Comme son nom l'indique, le logiciel zigbee2mqtt requiert la présence pour fonctionner d'un courtier MQTT sur le réseau local sur lequel l'ordinateur qui l'exécute est connecté. Bien que personne ne vous interdise d'installer ce composant sur un autre host présente sur le net, la pratique la plus couramment utilisée consiste à utiliser HASSIO à cette fin, en utilisant leadd-on "Courtier Mosquitto"Qui, pour leappoint, installez un courtier appelé MQTT Eclipse Mosquitto.

En cas de MQTT est déjà présent sur le réseauVous pouvez proabandonner, en s'assurant seulement d'avoir MQTT actif et connecté à ce courtier préexistant (avec “découverte"Actif, aussi appelé" Activer l'identification ") dans propremière configuration Home Assistant.

Dans le cas contraire, provoir pour installer Mosquitto Broker seguendo étape par étape le guide suivant:

Configurez MQTT correctement sur HASSIO (version addon à partir de v3)

Nb Procéder dans ce guide sans avoir proÉtant donné que l’installation correcte du courtier MQTT causera évidemment un dysfonctionnementnamepas de zigbee2mqtt.

Installer zigbee2mqtt

À ce stade, avec MQTT en fonctionnement et antenne installée Est-il possible provoir l'installation de zigbee2mqtt, qui est exécuté comme proaccès en ajoutant un add-on HASSIO. C'est cependant d'un add-on coutume donc pas disponible nativement à laadd-on magasin de HASSIO. Pour l'installer il faut donc avant tout ajouter un référentiel à la liste de ceux déjà présents, en particulier cette adresse:

https://github.com/danielwelch/hassio-zigbee2mqtt

Pour l'ajouter, allez dans le menu "Hass.io">"ADD-ON Boutique"Et cliquez sur" Ajouter un nouveau référentiel par URL ":

zigbee2mqtt - HASSIO add-on - ajouter un référentiel

Une fois l'adresse indiquée ci-dessus entrée, cliquez sur “AJOUTER».

Immédiatement après dans la liste des add-on disponible appla voix aussi "zigbee2mqtt ». Cliquez dessus pour accéder à l'onglet Détails, puis cliquez sur "INSTALLER":

zigbee2mqtt - HASSIO add-on - installation

A la fin de l'installation, ne lance pas le plugin: vous devez d'abord le configurer.

configuration zigbee2mqtt

La configuration de zigbee2mqtt ce n'est pas particulièrement complexe mais important. C’est dans cette phase, en effet, que les caractéristiques de connexion du BRIDGE/Gateway de là rapprenvoyé au réseau ZigBee et au courtier MQTT.

Cette configuration est toujours faite à partir de page de détail de laadd-on zigbee2mqtt; en descendant la page, la boite "Config"Affiche une configuration par défaut à peu près comme ceci:

{
  "data_path": "/share/zigbee2mqtt",
  "devices": "devices.yaml",
  "groups": "groups.yaml",
  "homeassistant": true,
  "permit_join": false,
  "mqtt": {
    "base_topic": "zigbee2mqtt",
    "server": "mqtt://core-mosquitto",
    "user": "my_user",
    "password": "my_password"
  },
  "serial": {
    "port": "/dev/ttyACM0"
  },
  "advanced": {
    "pan_id": 6754,
    "channel": 11,
    "network_key": [
      1,
      3,
      5,
      7,
      9,
      11,
      13,
      15,
      0,
      2,
      4,
      6,
      8,
      10,
      12,
      13
    ],
    "availability_blacklist": []
  },
  "ban": [],
  "whitelist": [],
  "queue": {},
  "socat": {
    "enabled": false,
    "master": "pty,raw,echo=0,link=/dev/ttyZ2M,mode=777",
    "slave": "tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5",
    "restartdelay": 1,
    "initialdelay": 1,
    "options": "-d -d",
    "log": false
  }
}

Les champs à personnaliser sont principalement trois: "serveur","utilisateur"Et"Mot de passe».

Dans le premier ("serveur“) Notre courtier MQTT doit être indiqué: si vous utilisez un proTout d'abord, sur le réseau, il est évidemment nécessaire d'indiquer dans ce champ l'adresse IP correcte; sinon, si vous avez suivi notre guide pour installer Mosquitto Broker en tant que add-on HASSIO, alors il faut simplement indiquer "MQTT: // homeassistant».

Dans les champs "utilisateur"Et"Mot de passe"Au lieu de cela, il est nécessaire d'indiquer les informations d'identification pour accéder au courtier MQTT, quel que soit son emplacement.

Une fois la configuration terminée, cliquez sur "Tu économises"Et puis, en haut, en haut"DÉMARREZ": Le BRIDGE/Gateway sera en cours d'exécution:

zigbee2mqtt - HASSIO add-on

VERIFICATION

Pour vérifier que tout s'est bien passé, allez au bas de la page et cliquez sur "REFRESH"Dans la boîte"Bûche": Si tout va bien, il devrait appcréer un journal semblable au suivant:

zigbee2mqtt - HASSIO add-on - les startups

qui identifie un début correct de zigbee2mqtt et une connexion réussie avec le courtier MQTT.

Intégration avec Home Assistant

À ce stade, l'intégration, en fait, est déjà arrivé, car la présence de la découverte automatique du composant MQTT entraîne les services de zigbee2mqtt peut être utilisé immédiatement. Ce que vous devez faire est de les rendre accessibles à l'utilisateur. Tout d’abord, ceux qui sont nécessaires pour activer l’appariement avec des accessoires ZigBee que vous souhaitez intégrer Home Assistant.

Pour obtenir le but, nous utiliserons le "Les packs“, Ou une composante de Home Assistant qui vous permet de définir un ou plusieurs fichiers de configuration spécifique au service (dans ce cas zigbee2mqtt), regroupant ainsi toutes ses configurations en un seul endroit. Comment ça se passe dans la subdivision des fichiers de configuration, nous allons ajouter une entrée dans la configuration ("paquets:") Configuré pour pointer vers un dossier contenant ce fichier.

À travers "Configurateur"(Ou à la main via SSH, ou via Samba ou d'autres techniques) créez un dossier ci-dessous"config”(Celui qui contient la configuration de Home Assistant, pour comprendre) appeler "paquets». Dans ce dossier, créez un fichier appelé "zigbee2mqtt.yaml”Et copiez le code suivant pour internal:

# Input select for Zigbee2mqtt debug level
input_select:
  zigbee2mqtt_log_level:
    name: Zigbee2mqtt Log Level
    options:
      - debug
      - info
      - warn
      - error
    initial: info
    icon: mdi:format-list-bulleted

# Input text to input Zigbee2mqtt friendly_name for scripts
input_text:
  zigbee2mqtt_old_name:
    name: Zigbee2mqtt Old Name
  zigbee2mqtt_new_name:
    name: Zigbee2mqtt New Name
  zigbee2mqtt_remove:
    name: Zigbee2mqtt Remove

# Scripts for renaming & removing devices
script:
  zigbee2mqtt_rename:
    alias: Zigbee2mqtt Rename
    sequence:
      service: mqtt.publish
      data_template:
        topic: zigbee2mqtt/bridge/config/rename
        payload_template: >-
          {
            "old": "{{ states.input_text.zigbee2mqtt_old_name.state | string }}",
            "new": "{{ states.input_text.zigbee2mqtt_new_name.state | string }}"
          }
  zigbee2mqtt_remove:
    alias: Zigbee2mqtt Remove
    sequence:
      service: mqtt.publish
      data_template:
        topic: zigbee2mqtt/bridge/config/remove
        payload_template: "{{ states.input_text.zigbee2mqtt_remove.state | string }}"

# Timer for joining time remaining (120 sec = 2 min)
timer:
  zigbee_permit_join:
    name: Time remaining
    duration: 120

sensor:
  # Sensor for monitoring the bridge state
  - platform: mqtt
    name: Zigbee2mqtt Bridge state
    state_topic: "zigbee2mqtt/bridge/state"
    icon: mdi:router-wireless
  # Sensor for Showing the Zigbee2mqtt Version
  - platform: mqtt
    name: Zigbee2mqtt Version
    state_topic: "zigbee2mqtt/bridge/config"
    value_template: "{{ value_json.version }}"
    icon: mdi:zigbee
  # Sensor for Showing the Coordinator Version
  - platform: mqtt
    name: Coordinator Version
    state_topic: "zigbee2mqtt/bridge/config"
    value_template: "{{ value_json.coordinator }}"
    icon: mdi:chip

# Switch for enabling joining
switch:
  - platform: mqtt
    name: "Zigbee2mqtt Main join"
    state_topic: "zigbee2mqtt/bridge/config/permit_join"
    command_topic: "zigbee2mqtt/bridge/config/permit_join"
    payload_on: "true"
    payload_off: "false"

automation:
  # Automation for sending MQTT message on input select change
  - alias: Zigbee2mqtt Log Level
    initial_state: "on"
    trigger:
      platform: state
      entity_id: input_select.zigbee2mqtt_log_level
    action:
      - service: mqtt.publish
        data:
          payload_template: "{{ states('input_select.zigbee2mqtt_log_level') }}"
          topic: zigbee2mqtt/bridge/config/log_level
  # Automation to start timer when enable join is turned on
  - id: zigbee_join_enabled
    alias: Zigbee Join Enabled
    hide_entity: true
    trigger:
      platform: state
      entity_id: switch.zigbee2mqtt_main_join
      to: "on"
    action:
      service: timer.start
      entity_id: timer.zigbee_permit_join
  # Automation to stop timer when switch turned off and turn off switch when timer finished
  - id: zigbee_join_disabled
    alias: Zigbee Join Disabled
    hide_entity: true
    trigger:
      - platform: event
        event_type: timer.finished
        event_data:
          entity_id: timer.zigbee_permit_join
      - platform: state
        entity_id: switch.zigbee2mqtt_main_join
        to: "off"
    action:
      - service: timer.cancel
        data:
          entity_id: timer.zigbee_permit_join
      - service: switch.turn_off
        entity_id: switch.zigbee2mqtt_main_join

puis enregistrez le fichier et revenez dans le dossier "config", Ouvrez le fichier"configuration.yaml”Et ajoutez la ligne suivante en bas:

homeassistant:
  packages: !include_dir_named packages

Nb Si le bloc "homeassistant:"Existe déjà, proil suffit de regarder vous y compris sous la ligne "packages:! include_dir_named paquets».

Enfin enregistrer et quitter. Aller au point de menu "Configuration">"Gestion de serveur"Et cliquez sur"VÉRIFIEZ LA CONFIGURATION": Si - et seulement si - la configuration est correcte, provoir un redémarrage de Home Assistant (voix "RESTART"Au bas de la page).

Au redémarrage, de nouveaux entité de nature différente sera appbrûlé à Home Assistant.

L'extrémité avant

Il est temps de gérer via interface web /app Lovelace UI il BRIDGE/Gateway ZigBee appEna créé.

Se contrôle de l'interface Lovelace a été laissé automatique, laissant "payer un lei", Alors ils seront certainement appbrûlé de nouvelles interfaces, comme suit:

zigbee2mqtt - Home Assistant - Lovelace automatique

c'est bien sûr seul de la rappreconnaissance visuelle de nouvelles entités appena nate: si ce n'est pas affiché le tout est certainement parce que Lovelace a été personnalisé par l'utilisateur et donc ces interfaces ne sont pas appautomatiquement aiono (ou quelque chose qui clochait précédemment dans la mise en œuvre du guide). Pour couper la tête du taureau, il suffit de vérifier l’existence d’une entité ("Outils de développement">"United") En nom capteur.zigbee2mqtt_bridge_STATE, qui a été "en ligne". Cela confirme que l'intégration s'est déroulée correctement.

CARTE PERSONNALISÉE

La meilleure chose à faire est de créer un carte personnalisée Lovelace pour obtenir uniquement l'interface de contrôle minimale du réseau ZigBee. Pour ce faire, cliquez simplement sur les trois points dans le coin supérieur droit, puis sur "Configurer l'interface utilisateur".

À ce stade, cliquez en bas à droite sur le "+", puis sélectionnez "CARTE MANUELLE».

Puis entrez ici:

Home Assistant - Lovelace - Nouvelle carte manuelle

le suivant code:

title: Zigbee2mqtt
type: entities
show_header_toggle: false
entities:
  - entity: sensor.zigbee2mqtt_bridge_state
  - entity: sensor.zigbee2mqtt_version
  - entity: sensor.coordinator_version
  - entity: input_select.zigbee2mqtt_log_level
  - type: divider
  - entity: switch.zigbee2mqtt_main_join
  - entity: timer.zigbee_permit_join
  - type: divider
  - entity: input_text.zigbee2mqtt_old_name
  - entity: input_text.zigbee2mqtt_new_name
  - entity: script.zigbee2mqtt_rename
  - type: divider
  - entity: input_text.zigbee2mqtt_remove
  - entity: script.zigbee2mqtt_remove

enfin, sauver et sortir.
À l'interface de Home Assistant appune boîte apparaîtra comme suit:

zigbee2mqtt - Carte manuelle Lovelace

qui contiendra tous les éléments strictement nécessaires pour l'administration future du réseau Zigbee.

Utiliser

À ce stade, le BRIDGE/Gateway à Home Assistant è proutilisable et utilisable afin d'intégrer des composants ZigBee compatible avec le CC2531 /zigbee2mqtt. C'est le sujet de la partie 2 de cette projet disponible ici.


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