Menu
Just 4 Fun
  • Accueil
  • Jeux
    • Stadia
  • Domotique
    • Home-Assistant
  • Technique
    • Proxmox
    • Protocoles
      • Zigbee
      • MQTT
  • Infos
    • Generate icons from prefabs
    • Contact
  • Suivez-moi
    • Twitter
    • Ma chaîne youtube
Just 4 Fun

Zigbee2Mqtt : La configuration package ultime

Posted on 27 octobre 201913 novembre 2019 by manthoR

Zigbee2mqtt c’est la vie. Tout ikea, philips xiaomi sans aucun hub. Sans aucun cloud…
Et en plus, zigbee2mqtt+HomeAssistant = AESD (amour éternel sans divorce…) Configurer tout ca dans Home Assistant ? Deux copier/coller !

Zigbee2Mqtt : Le package ?

Les packages dans HA c’est la possibilité de créer sensors, scripts, automation et tout le reste autour d’un sujet particulier dans un fichier unique. l’avantage : Pas besoin de retoucher tous les fichiers et une logique fonctionnelle très forte.

Voici donc mon package pour zigbee2mqtt :
Il suffit de copier/coller le contenu dans un fichier zigbee2mqtt.yaml et le placer dans config/packages/

Ca ajoutera :

  • La conf du niveau de log
  • La possibilité de renommer les topics facilement (autre tuto à venir)
  • L’activation pour le permit-join ou la suppression d’un pairing en un clic
  • …
# Input select for Zigbee2mqtt debug level
input_select:
  zigbee2mqtt_log_level:
    name: Niveau de log
    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: Ancien nom
  zigbee2mqtt_new_name:
    name: Nouveau nom
  zigbee2mqtt_remove:
    name: Device à retirer

# Scripts for renaming & removing devices
script:
  zigbee2mqtt_rename:
    alias: Renommer le device
    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: Retirer le device
    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: Temps restant
    duration: 120

sensor:
  # Sensor for monitoring the bridge state
  - platform: mqtt
    name: 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
  - platform: mqtt
    name: Zigbee2mqtt Networkmap
    # if you change base_topic of Zigbee2mqtt, change state_topic accordingly
    state_topic: zigbee2mqtt/bridge/networkmap/raw
    value_template: >-
      {{ now().strftime('%Y-%m-%d %H:%M:%S') }}
    # again, if you change base_topic of Zigbee2mqtt, change json_attributes_topic accordingly
    json_attributes_topic: zigbee2mqtt/bridge/networkmap/raw

# 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

Plus qu’à référencer le package dans votre configuration.yaml

homeassistant:
  ...
  packages:
    zigbee2mqtt: !include packages/zigbee2mqtt.yaml

Voilà, vous avez tout le nécessaire pour vous créer une vue lovelace complète.
Voici en exemple la mienne :
Note : j’ai ajouté la custom card sympa custom:zigbee2mqtt-networkmap

- badges:
      - sensor.bridge_state
      - sensor.zigbee2mqtt_version
      - sensor.coordinator_version
      - switch.zigbee2mqtt_main_join
    cards:
      - cards:
          - entities:
              - input_select.zigbee2mqtt_log_level
              - switch.zigbee2mqtt_main_join
              - timer.zigbee_permit_join
            show_header_toggle: false
            title: Paramètres généraux
            type: entities
        type: vertical-stack
      - cards:
          - entity: sensor.zigbee2mqtt_networkmap
            type: 'custom:zigbee2mqtt-networkmap'
        type: vertical-stack
      - cards:
          - aspect_ratio: 8/1
            icon: 'mdi:eye-plus'
            name: Mqtt devices
            tap_action:
              action: navigate
              navigation_path: >-
                /config/integrations/config_entry/d92e4ee0f4f24d3db6d0ca8282c1c484
            type: 'custom:button-card'
          - aspect_ratio: 8/1
            icon: 'mdi:eye-plus'
            name: Zigbee2Mqtt add-on et logs
            tap_action:
              action: navigate
              navigation_path: /hassio/addon/7ad98f9c_zigbee2mqtt
            type: 'custom:button-card'
          - entities:
              - input_text.zigbee2mqtt_old_name
              - input_text.zigbee2mqtt_new_name
              - script.zigbee2mqtt_rename
              - type: divider
              - input_text.zigbee2mqtt_remove
              - script.zigbee2mqtt_remove
            show_header_toggle: false
            title: Boite à outils
            type: entities
        type: vertical-stack
    icon: 'mdi:zigbee'
    path: mqtt
    title: Mqtt
Le rendu sur lovelace

Prochain article : le workflow d’ajout !

Vous aimez, partagez !

0shares

Dans le même genre :

Zigbee2Mqtt : introduction Zigbee2Mqtt : Le workflow d’ajout propre Météo France

Derniers articles

  • Le prix des jeux Stadia et autre nouveautés
  • Stadia : 22 jeux au lancement, pas 14 !
  • Stadia : Hype ou pas ?
  • Google Nest Hub Max, la caméra qui change tout
  • Plex dans proxmox + nuc

On essaye de ranger un peu

  • Domotique
    • Du joli !
    • Home-Assistant
      • Automations
      • Intégration
    • Plex
  • Jeux
    • Stadia
  • Le bowdel
  • Technique
    • Protocoles
      • MQTT
      • Zigbee
    • Proxmox

C’est quoi ce nom pourri ?


Just4Fun c’est les tribulation d’un papa geek.  Trop pour sa femme, pas assez pour son fils.

Parti du gamedev indie, me voici à parler de jeux-vidéos, de domotique, d’home assistant, et tout ce qui gravite autour pour se faire une vie de confort.

Paradis Artificiels

Venez me retrouver et échanger sur le forum de la plus grosse communauté Home-Assistant française
Et le discord est fou tellement il est rempli...

Méta

  • Connexion
  • Flux des publications
  • Flux des commentaires
  • Site de WordPress-FR
©2019 Just 4 Fun | Powered by WordPress & Superb Themes