From cfdedd7c080ed39eb235a094f3fe2269f2b2f459 Mon Sep 17 00:00:00 2001 From: Giorgio Ravera Date: Mon, 27 Dec 2021 16:49:26 +0100 Subject: [PATCH] Review Zigbee2mqtt due to big changes of software --- .storage/lovelace.lovelace_settings | 15 +- .storage/lovelace_resources | 2 +- packages/zigbee2mqtt.yaml | 308 ++++++++++++++++------------ 3 files changed, 193 insertions(+), 132 deletions(-) diff --git a/.storage/lovelace.lovelace_settings b/.storage/lovelace.lovelace_settings index 41697652..0f89af61 100644 --- a/.storage/lovelace.lovelace_settings +++ b/.storage/lovelace.lovelace_settings @@ -1,5 +1,6 @@ { "version": 1, + "minor_version": 1, "key": "lovelace.lovelace_settings", "data": { "config": { @@ -221,10 +222,15 @@ "background": "#62717b" } }, - "switch.zigbee2mqtt_abilita_join", + { + "entity": "switch.zigbee2mqtt_abilita_join" + }, { "entity": "timer.zigbee_permit_join" }, + { + "entity": "input_number.zigbee2mqtt_join_minutes" + }, { "type": "divider", "style": { @@ -257,6 +263,9 @@ { "entity": "input_text.zigbee2mqtt_remove" }, + { + "entity": "input_boolean.zigbee2mqtt_force_remove" + }, { "entity": "script.zigbee2mqtt_remove" }, @@ -270,7 +279,9 @@ "background": "#62717b" } }, - "input_select.zigbee2mqtt_log_level" + { + "entity": "input_select.zigbee2mqtt_log_level" + } ], "show_header_toggle": false, "title": "Operazioni Sistema Zigbee2mqtt", diff --git a/.storage/lovelace_resources b/.storage/lovelace_resources index 705613a5..2ada66ed 100644 --- a/.storage/lovelace_resources +++ b/.storage/lovelace_resources @@ -30,7 +30,7 @@ "url": "/hacsfiles/hass-shutter-card/hass-shutter-card.js?hacstag=269011342130" }, { - "url": "/hacsfiles/battery-state-card/battery-state-card.js?hacstag=256292682201", + "url": "/hacsfiles/battery-state-card/battery-state-card.js?hacstag=256292682202", "type": "module", "id": "74408ca439a142a1838d883c03a0142c" }, diff --git a/packages/zigbee2mqtt.yaml b/packages/zigbee2mqtt.yaml index f9780569..723b33b8 100644 --- a/packages/zigbee2mqtt.yaml +++ b/packages/zigbee2mqtt.yaml @@ -1,3 +1,119 @@ +###################################################################### +# Zigbee2mqtt Package - Input select +###################################################################### + +input_select: + # Zigbee2mqtt log level + zigbee2mqtt_log_level: + name: "Zigbee2MQTT: Log Level" + options: + - debug + - info + - warn + - error + initial: info + icon: mdi:format-list-bulleted + +###################################################################### +# Zigbee2mqtt Package - Input Number +###################################################################### + +# Input number for joining time remaining (in minutes) +input_number: + zigbee2mqtt_join_minutes: + name: "Zigbee2MQTT: Tempo per il join" + initial: 2 + min: 1 + max: 5 + step: 1 + mode: slider + +###################################################################### +# Zigbee2mqtt Package - Input Text +###################################################################### + +input_text: + zigbee2mqtt_old_name: + name: "Device da Rinominare" + initial: "" + + zigbee2mqtt_new_name: + name: "Nuovo nome Device" + initial: "" + + zigbee2mqtt_remove: + name: "Device da Rimuovere" + initial: "" + +###################################################################### +# Zigbee2mqtt Package - Input boolean +###################################################################### + +input_boolean: + zigbee2mqtt_force_remove: + name: "Zigbee2MQTT: Rimozione Forzata" + initial: false + icon: mdi:alert-remove + +###################################################################### +# Zigbee2mqtt Package - Script +###################################################################### + +script: + ###################################################################### + # Restart Bridge + ###################################################################### + zigbee2mqtt_restart: + alias: "Zigbee2MQTT: Riavvia Bridge" + sequence: + - service: shell_command.zigbee2mqtt_restart + data: + docker_host: !secret docker_host + docker_username: !secret docker_username + icon: mdi:restart + + ###################################################################### + # Rename Device + ###################################################################### + zigbee2mqtt_rename: + alias: "Zigbee2MQTT: Rinomina Device" + sequence: + service: mqtt.publish + data_template: + topic: zigbee2mqtt/bridge/request/device/rename + payload_template: >- + { + "from": "{{ states.input_text.zigbee2mqtt_old_name.state | string }}", + "to": "{{ states.input_text.zigbee2mqtt_new_name.state | string }}" + } + icon: mdi:form-textbox + + ###################################################################### + # Delete Device + ###################################################################### + zigbee2mqtt_remove: + alias: "Zigbee2MQTT: Rimuovi Device" + sequence: + service: mqtt.publish + data_template: + topic: zigbee2mqtt/bridge/request/device/remove + payload_template: >- + { + "id": "{{ states.input_text.zigbee2mqtt_remove.state | string }}", + "force": {% if states.input_boolean.zigbee2mqtt_force_remove.state == "off" %}false{% else %}true{% endif %} + } + icon: mdi:link-variant-remove + +###################################################################### +# Zigbee2mqtt Package - Timer +###################################################################### + +timer: + # Timer for joining time remaining (120 sec = 2 min) + zigbee_permit_join: + name: Tempo rimasto per il join + duration: 120 + ###################################################################### # Zigbee2mqtt Package - Sensor ###################################################################### @@ -7,52 +123,61 @@ sensor: # Sensor for monitoring the bridge state ###################################################################### - platform: mqtt - name: "Zigbee2mqtt: Stato Bridge" + name: "Zigbee2MQTT: Stato Bridge" state_topic: "zigbee2mqtt/bridge/state" icon: mdi:router-wireless ###################################################################### - # Sensor for monitoring the permit_join state + # Sensor for Showing the Zigbee2MQTT Version ###################################################################### - platform: mqtt - name: "Zigbee2mqtt: Stato permit join" - state_topic: "zigbee2mqtt/bridge/config" - value_template: "{{ value_json.permit_join }}" - icon: mdi:link-lock + name: "Zigbee2MQTT: Versione Bridge" + state_topic: "zigbee2mqtt/bridge/info" + value_template: "{{ value_json.version }}" + icon: mdi:zigbee ###################################################################### - # Sensor for monitoring the log_level state + # Sensor for Showing the Coordinator Type + ###################################################################### + #- platform: mqtt + # name: "Zigbee2MQTT: Tipo Coordinator" + # state_topic: "zigbee2mqtt/bridge/info" + # value_template: "{{ value_json.coordinator.type }}" + # icon: mdi:chip + + ###################################################################### + # Sensor for Showing the Coordinator Version ###################################################################### - platform: mqtt - name: "Zigbee2mqtt: Stato log level" - state_topic: "zigbee2mqtt/bridge/config" - value_template: "{{ value_json.log_level }}" - icon: mdi:file-document-outline + name: "Zigbee2MQTT: Versione Coordinator" + state_topic: "zigbee2mqtt/bridge/info" + value_template: "{{ value_json.coordinator.meta.revision }}" + icon: mdi:chip ###################################################################### - # Sensor for Showing the Zigbee2mqtt Version + # Sensor for monitoring the permit_join state ###################################################################### - platform: mqtt - name: "Zigbee2mqtt: Versione Bridge" - state_topic: "zigbee2mqtt/bridge/config" - value_template: "{{ value_json.version }}" - icon: mdi:zigbee + name: "Zigbee2MQTT: Stato permit join" + state_topic: "zigbee2mqtt/bridge/info" + value_template: "{{ value_json.permit_join }}" + icon: mdi:link-lock ###################################################################### - # Sensor for Showing the Coordinator Version + # Sensor for monitoring the log_level state ###################################################################### - platform: mqtt - name: "Zigbee2mqtt: Versione Coordinator" - state_topic: "zigbee2mqtt/bridge/config" - value_template: "{{ value_json.coordinator.meta.revision }}" - icon: mdi:chip + name: "Zigbee2MQTT: Stato log level" + state_topic: "zigbee2mqtt/bridge/info" + value_template: "{{ value_json.log_level }}" + icon: mdi:file-document-outline ###################################################################### # Sensor for Showing the Channel ###################################################################### - platform: mqtt - name: "Zigbee2mqtt: Canale" - state_topic: "zigbee2mqtt/bridge/config" + name: "Zigbee2MQTT: Canale" + state_topic: "zigbee2mqtt/bridge/info" value_template: "{{ value_json.network.channel }}" icon: mdi:access-point-network @@ -60,9 +185,9 @@ sensor: # Sensor for Showing the PanID ###################################################################### - platform: mqtt - name: "Zigbee2mqtt: PanID" - state_topic: "zigbee2mqtt/bridge/config" - value_template: "{{ value_json.network.panID }}" + name: "Zigbee2MQTT: PanID" + state_topic: "zigbee2mqtt/bridge/info" + value_template: "{{ value_json.network.pan_id }}" icon: mdi:lan ###################################################################### @@ -70,15 +195,15 @@ sensor: ###################################################################### #- platform: mqtt # name: "Zigbee2mqtt: Extended PanID" - # state_topic: "zigbee2mqtt/bridge/config" - # value_template: "{{ value_json.network.extendedPanID }}" + # state_topic: "zigbee2mqtt/bridge/info" + # value_template: "{{ value_json.network.extended_pan_id }}" # icon: mdi:lan ###################################################################### # Zigbee2mqtt Networkmap ###################################################################### - platform: mqtt - name: Zigbee2mqtt Networkmap + name: Zigbee2MQTT Networkmap state_topic: zigbee2mqtt/bridge/response/networkmap value_template: >- {{ now().strftime('%Y-%m-%d %H:%M:%S') }} @@ -92,51 +217,13 @@ sensor: switch: # Switch for enabling joining - platform: mqtt - name: "Zigbee2mqtt: Abilita join" - state_topic: "zigbee2mqtt/bridge/config/permit_join" - command_topic: "zigbee2mqtt/bridge/config/permit_join" + name: "Zigbee2MQTT: Abilita join" + state_topic: "zigbee2mqtt/bridge/info" + value_template: '{{ value_json.permit_join | lower }}' + command_topic: "zigbee2mqtt/bridge/request/permit_join" payload_on: "true" payload_off: "false" - -###################################################################### -# Zigbee2mqtt Package - Input select -###################################################################### - -input_select: - # Zigbee2mqtt log level - zigbee2mqtt_log_level: - name: "Zigbee2mqtt Log Level" - options: - - debug - - info - - warn - - error - initial: info - icon: mdi:format-list-bulleted - -###################################################################### -# Zigbee2mqtt Package - Input Text -###################################################################### - -input_text: - zigbee2mqtt_old_name: - name: "Device da Rinominare" - - zigbee2mqtt_new_name: - name: "Nuovo nome Device" - - zigbee2mqtt_remove: - name: "Device da Rimuovere" - -###################################################################### -# Zigbee2mqtt Package - Timer -###################################################################### - -timer: - # Timer for joining time remaining (120 sec = 2 min) - zigbee_permit_join: - name: Tempo rimasto per il join - duration: 120 + icon: mdi:link-lock ###################################################################### # Zigbee2mqtt Package - Shell Command @@ -145,48 +232,6 @@ timer: shell_command: zigbee2mqtt_restart: 'ssh {{ docker_username }}@{{ docker_host }} -oStrictHostKeyChecking=no -i /config/credentials/id_rsa docker container restart zigbee2mqtt' -###################################################################### -# Zigbee2mqtt Package - Script -###################################################################### - -script: - ###################################################################### - # Restart Bridge - ###################################################################### - zigbee2mqtt_restart: - alias: "Zigbee2mqtt: Riavvia Bridge" - sequence: - - service: shell_command.zigbee2mqtt_restart - data: - docker_host: !secret docker_host - docker_username: !secret docker_username - - ###################################################################### - # Rename Device - ###################################################################### - zigbee2mqtt_rename: - alias: "Zigbee2mqtt: Rinomina 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 }}" - } - - ###################################################################### - # Delete Device - ###################################################################### - zigbee2mqtt_remove: - alias: "Zigbee2mqtt: Rimuovi Device" - sequence: - service: mqtt.publish - data_template: - topic: zigbee2mqtt/bridge/config/remove - payload_template: "{{ states.input_text.zigbee2mqtt_remove.state | string }}" - ###################################################################### # Zigbee2mqtt Package - Automation ###################################################################### @@ -196,7 +241,7 @@ automation: # Automation to change log level ###################################################################### - id: zigbee2mqtt_change_log_level - alias: "Zigbee2mqtt: Cambia Log Level" + alias: "Zigbee2MQTT: Cambia Log Level" trigger: platform: state entity_id: input_select.zigbee2mqtt_log_level @@ -204,13 +249,13 @@ automation: - service: mqtt.publish data: payload_template: "{{ states('input_select.zigbee2mqtt_log_level') }}" - topic: zigbee2mqtt/bridge/config/log_level + topic: zigbee2mqtt/bridge/request/config/log_level ###################################################################### # Automation to start timer when enable join is turned on ###################################################################### - id: zigbee2mqtt_join_enabled - alias: "Zigbee2mqtt: Abilita Join" + alias: "Zigbee2MQTT: Abilita Join" trigger: platform: state entity_id: switch.zigbee2mqtt_abilita_join @@ -218,12 +263,14 @@ automation: action: service: timer.start entity_id: timer.zigbee_permit_join + data_template: + duration: "{{ '00:0%i:00' % (states('input_number.zigbee2mqtt_join_minutes') | int ) }}" ###################################################################### # Automation to stop timer when switch turned off and turn off switch when timer finished ###################################################################### - id: zigbee2mqtt_join_disabled - alias: "Zigbee2mqtt: Disabilita Join" + alias: "Zigbee2MQTT: Disabilita Join" trigger: - platform: event event_type: timer.finished @@ -243,24 +290,27 @@ automation: # Automation to notify when a device joined zigbee2mqtt network ###################################################################### - id: "zigbee2mqtt_notification_on_successfull_interview" - alias: "Zigbee2mqtt: Device aggiunto alla rete Zigbee2mqtt" + alias: "Zigbee2MQTT: Device aggiunto alla rete Zigbee2mqtt" trigger: platform: mqtt - topic: 'zigbee2mqtt/bridge/log' - condition: '{{trigger.payload_json.type == "pairing" and trigger.payload_json.message == "interview_successful"}}' + topic: 'zigbee2mqtt/bridge/event' + condition: + condition: template + value_template: '{{trigger.payload_json.type == "device_interview" and trigger.payload_json.data.status == "successful" and trigger.payload_json.data.supported}}' action: - service: persistent_notification.create data_template: title: "Device aggiunto alla rete Zigbee2mqtt" - message: "Name: {{trigger.payload_json.meta.friendly_name}}, - Vendor: {{trigger.payload_json.meta.vendor}}, - Description: {{trigger.payload_json.meta.description}}" + message: "Name: {{trigger.payload_json.data.friendly_name}}, + Vendor: {{trigger.payload_json.data.definition.vendor}}, + Model: {{trigger.payload_json.data.definition.model}}, + Description: {{trigger.payload_json.data.definition.description}}" ###################################################################### # Automation to restart zigbee2mqtt to refresh sensor state ###################################################################### - id: zigbee2mqtt_startup_automation - alias: "Zigbee2mqtt: Startup Automation" + alias: "Zigbee2MQTT: Startup Automation" trigger: - platform: homeassistant event: start @@ -271,7 +321,7 @@ automation: # Automation to restart zigbee2mqtt in case of bridge offline for 1m ###################################################################### - id: zigbee2mqtt_restart_automation - alias: "Zigbee2mqtt: Restart Automation" + alias: "Zigbee2MQTT: Restart Automation" trigger: - platform: state entity_id: sensor.zigbee2mqtt_stato_bridge @@ -296,7 +346,7 @@ history: - sensor.zigbee2mqtt_stato_log_level - sensor.zigbee2mqtt_versione_bridge - sensor.zigbee2mqtt_versione_coordinator - #- sensor.zigbee2mqtt_nuova_versione_disponibile + - sensor.zigbee2mqtt_tipo_coordinator - sensor.zigbee2mqtt_canale - sensor.zigbee2mqtt_panid - sensor.zigbee2mqtt_extended_panid @@ -315,7 +365,7 @@ logbook: - sensor.zigbee2mqtt_stato_log_level - sensor.zigbee2mqtt_versione_bridge - sensor.zigbee2mqtt_versione_coordinator - #- sensor.zigbee2mqtt_nuova_versione_disponibile + - sensor.zigbee2mqtt_tipo_coordinator - sensor.zigbee2mqtt_canale - sensor.zigbee2mqtt_panid - sensor.zigbee2mqtt_extended_panid @@ -334,7 +384,7 @@ recorder: - sensor.zigbee2mqtt_stato_log_level - sensor.zigbee2mqtt_versione_bridge - sensor.zigbee2mqtt_versione_coordinator - #- sensor.zigbee2mqtt_nuova_versione_disponibile + - sensor.zigbee2mqtt_tipo_coordinator - sensor.zigbee2mqtt_canale - sensor.zigbee2mqtt_panid - sensor.zigbee2mqtt_extended_panid -- 2.47.3