]> git.giorgioravera.it Git - homeassistant.git/commitdiff
dos2unix and minor fixes
authorGiorgio Ravera <giorgio.ravera@gmail.com>
Mon, 22 May 2023 21:16:42 +0000 (23:16 +0200)
committerGiorgio Ravera <giorgio.ravera@gmail.com>
Mon, 22 May 2023 21:16:42 +0000 (23:16 +0200)
12 files changed:
automations/startup.yaml
automations/update_notifications.yaml
customizations/automations.yaml
customizations/certificates.yaml
customizations/hacs.yaml
customizations/person.yaml
input_boolean/update.yaml
packages/alarm/alarm_engine.yaml
packages/qnap.yaml
packages/zigbee2mqtt.yaml
templates/speech_message.yaml
templates/welcome_message.yaml

index 8191fca314970d605ba8350399db3f4ad4111f60..6d80ea701f69f2401111553de111e00e6298aa1a 100644 (file)
@@ -1,29 +1,29 @@
-######################################################################\r
-# Startup Automation: Restart on Error\r
-######################################################################\r
-\r
-- alias: "Home Assistant - Startup: Restart on Error"\r
-\r
-  trigger:\r
-    - platform: homeassistant\r
-      event: start\r
-\r
-  action:\r
-    - delay: 00:00:60\r
-    - condition: state\r
-      entity_id: persistent_notification.invalid_config\r
-      state: 'notifying'\r
-    - service: script.homeassistant_restart\r
-\r
-######################################################################\r
-# Startup Automation: Google Sync\r
-######################################################################\r
-\r
-- alias: "Home Assistant - Startup: Google Sync"\r
-\r
-  trigger:\r
-    - platform: homeassistant\r
-      event: start\r
-\r
-  action:\r
-    - service: script.homeassistant_google_home_sync\r
+######################################################################
+# Startup Automation: Restart on Error
+######################################################################
+
+- alias: "Home Assistant - Startup: Restart on Error"
+
+  trigger:
+    - platform: homeassistant
+      event: start
+
+  action:
+    - delay: 00:00:60
+    - condition: state
+      entity_id: persistent_notification.invalid_config
+      state: 'notifying'
+    - service: script.homeassistant_restart
+
+######################################################################
+# Startup Automation: Google Sync
+######################################################################
+
+- alias: "Home Assistant - Startup: Google Sync"
+
+  trigger:
+    - platform: homeassistant
+      event: start
+
+  action:
+    - service: script.homeassistant_google_home_sync
index 2b7c380cf905844b097edea03f54597688c5ecd0..d49784711d59851065ede5003de390891efb13b0 100644 (file)
@@ -1,60 +1,60 @@
-######################################################################\r
-# Update Notification: HACS\r
-######################################################################\r
-\r
-- alias: "Update Notification: HACS"\r
-\r
-  trigger:\r
-    - platform: numeric_state\r
-      entity_id: sensor.hacs\r
-      above: 0\r
-\r
-    - platform: homeassistant\r
-      event: start\r
-\r
-  condition:\r
-    condition: numeric_state\r
-    entity_id: sensor.hacs\r
-    above: 0\r
-\r
-  action:\r
-    - delay: '00:00:15'\r
-    - service: script.notify_text\r
-      data_template:\r
-        title: "HACS - Aggiornamento"\r
-        message: >\r
-          {% set update_number = states('sensor.hacs') %}\r
-          {% if is_state('sensor.hacs', '1') %}\r
-            E' disponibile un aggiornamento per i moduli HACS:\r
-          {% else %}\r
-            Sono disponibili {{ update_number }} aggiornamenti per i moduli HACS:\r
-          {% endif %}\r
-          {% for update in states.sensor.hacs.attributes['repositories'] %}\r
-            - {{ update['display_name'] }}: {{ update['available_version'] }}\r
-          {%- endfor %}\r
-        notification_id: "update"\r
-        enable_persistent: true\r
-\r
-    - service: input_boolean.turn_on\r
-      entity_id: input_boolean.update_hacs\r
-\r
-######################################################################\r
-# Update: Aknowledge update\r
-#\r
-# Actions:\r
-# - persistent_notification.dismiss\r
-######################################################################\r
-- alias: "Update: Riconoscimento Aggiornamenti"\r
-\r
-  trigger:\r
-    platform: state\r
-    entity_id:\r
-      - input_boolean.update_homeassistant\r
-      - input_boolean.update_shelly\r
-      - input_boolean.update_hacs\r
-    to: 'off'\r
-\r
-  action:\r
-    - service: persistent_notification.dismiss\r
-      data_template:\r
-        notification_id: "update"\r
+######################################################################
+# Update Notification: HACS
+######################################################################
+
+- alias: "Update Notification: HACS"
+
+  trigger:
+    - platform: numeric_state
+      entity_id: sensor.hacs
+      above: 0
+
+    - platform: homeassistant
+      event: start
+
+  condition:
+    condition: numeric_state
+    entity_id: sensor.hacs
+    above: 0
+
+  action:
+    - delay: '00:00:15'
+    - service: script.notify_text
+      data_template:
+        title: "HACS - Aggiornamento"
+        message: >
+          {% set update_number = states('sensor.hacs') %}
+          {% if is_state('sensor.hacs', '1') %}
+            E' disponibile un aggiornamento per i moduli HACS:
+          {% else %}
+            Sono disponibili {{ update_number }} aggiornamenti per i moduli HACS:
+          {% endif %}
+          {% for update in states.sensor.hacs.attributes['repositories'] %}
+            - {{ update['display_name'] }}: {{ update['available_version'] }}
+          {%- endfor %}
+        notification_id: "update"
+        enable_persistent: true
+
+    - service: input_boolean.turn_on
+      entity_id: input_boolean.update_hacs
+
+######################################################################
+# Update: Aknowledge update
+#
+# Actions:
+# - persistent_notification.dismiss
+######################################################################
+- alias: "Update: Riconoscimento Aggiornamenti"
+
+  trigger:
+    platform: state
+    entity_id:
+      - input_boolean.update_homeassistant
+      - input_boolean.update_shelly
+      - input_boolean.update_hacs
+    to: 'off'
+
+  action:
+    - service: persistent_notification.dismiss
+      data_template:
+        notification_id: "update"
index d7211146b9ef15ae33eab3d8b67409bdbb879d8c..2082b83550662d338358b2829e04085cb0f3bb8a 100644 (file)
@@ -1,12 +1,12 @@
-######################################################################\r
-# Customization: Automations\r
-######################################################################\r
-\r
-automation.risveglio_giorgio:\r
-  icon: mdi:alarm\r
-\r
-automation.home_assistant_startup_restart_on_error:\r
-  icon: mdi:restart-alert\r
-\r
-automation.home_assistant_startup_google_sync:\r
-  icon: mdi:google-assistant\r
+######################################################################
+# Customization: Automations
+######################################################################
+
+automation.risveglio_giorgio:
+  icon: mdi:alarm
+
+automation.home_assistant_startup_restart_on_error:
+  icon: mdi:restart-alert
+
+automation.home_assistant_startup_google_sync:
+  icon: mdi:google-assistant
index bcec1d7af3bde3f2f6932ee684546a84f7a4a28b..c4cbbda3f1aa7dcde0738db64f45a9132d11b2de 100644 (file)
@@ -1,6 +1,6 @@
-######################################################################\r
-# Customization: Certificates\r
-######################################################################\r
-\r
-sensor.cert_expiry_timestamp_server_giorgioravera_it:\r
-  friendly_name: Scadenza Certificato SSL\r
+######################################################################
+# Customization: Certificates
+######################################################################
+
+sensor.cert_expiry_timestamp_server_giorgioravera_it:
+  friendly_name: Scadenza Certificato SSL
index 2119e52bdc7021199e1e9dd19402dfbf47fa8211..ec703cde77d9340f36416c4d8e039b9c07e852e2 100644 (file)
@@ -1,6 +1,6 @@
-######################################################################\r
-# Customization: Hacs\r
-######################################################################\r
-\r
-sensor.hacs:\r
-  friendly_name: Aggiornamenti HACS\r
+######################################################################
+# Customization: Hacs
+######################################################################
+
+sensor.hacs:
+  friendly_name: Aggiornamenti HACS
index 3982a1ab7b23e1dc5e73fb47627a0ea7ccb2d121..101971aae3b419f53f4424bbb975a8fad15dd35f 100644 (file)
@@ -1,15 +1,15 @@
-######################################################################\r
-# Customization: Person\r
-######################################################################\r
-\r
-person.giorgio:\r
-  entity_picture: "https://lh5.googleusercontent.com/-XA71SeQatCE/AAAAAAAAAAI/AAAAAAABf8U/EWQJ3bwMgK8/photo.jpg"\r
-\r
-person.laura:\r
-  entity_picture: "https://lh4.googleusercontent.com/-MzGTo7hJlzQ/AAAAAAAAAAI/AAAAAAAAHBg/enCMtB-4rrs/photo.jpg"\r
-\r
-person.anna:\r
-  entity_picture: "https://lh3.googleusercontent.com/-jKAuS0EKCo0/AAAAAAAAAAI/AAAAAAAAIz4/Edk7vyRSPc4/photo.jpg"\r
-\r
-person.assunta:\r
-  entity_picture: "https://lh6.googleusercontent.com/-4VDO1evGw1U/AAAAAAAAAAI/AAAAAAAAAC4/5BymNaSNWcc/photo.jpg"\r
+######################################################################
+# Customization: Person
+######################################################################
+
+person.giorgio:
+  entity_picture: "https://lh5.googleusercontent.com/-XA71SeQatCE/AAAAAAAAAAI/AAAAAAABf8U/EWQJ3bwMgK8/photo.jpg"
+
+person.laura:
+  entity_picture: "https://lh4.googleusercontent.com/-MzGTo7hJlzQ/AAAAAAAAAAI/AAAAAAAAHBg/enCMtB-4rrs/photo.jpg"
+
+person.anna:
+  entity_picture: "https://lh3.googleusercontent.com/-jKAuS0EKCo0/AAAAAAAAAAI/AAAAAAAAIz4/Edk7vyRSPc4/photo.jpg"
+
+person.assunta:
+  entity_picture: "https://lh6.googleusercontent.com/-4VDO1evGw1U/AAAAAAAAAAI/AAAAAAAAAC4/5BymNaSNWcc/photo.jpg"
index 756ae2d4412de481e56f696709f0c2b40341aab2..d81bb04e3addadeb95636385f920e08f4d0b3ab0 100644 (file)
@@ -1,26 +1,26 @@
-######################################################################\r
-# Update: Home Assistant\r
-######################################################################\r
-\r
-update_homeassistant:\r
-  name: Aggiornamento Home Assistant\r
-  initial: off\r
-  icon: mdi:cellphone-arrow-down\r
-\r
-######################################################################\r
-# Update: Shelly\r
-######################################################################\r
-\r
-update_shelly:\r
-  name: Aggiornamento Shelly\r
-  initial: off\r
-  icon: mdi:cellphone-arrow-down\r
-\r
-######################################################################\r
-# Update: HACS\r
-######################################################################\r
-\r
-update_hacs:\r
-  name: Aggiornamenti HACS\r
-  initial: off\r
-  icon: mdi:cellphone-arrow-down\r
+######################################################################
+# Update: Home Assistant
+######################################################################
+
+update_homeassistant:
+  name: Aggiornamento Home Assistant
+  initial: off
+  icon: mdi:cellphone-arrow-down
+
+######################################################################
+# Update: Shelly
+######################################################################
+
+update_shelly:
+  name: Aggiornamento Shelly
+  initial: off
+  icon: mdi:cellphone-arrow-down
+
+######################################################################
+# Update: HACS
+######################################################################
+
+update_hacs:
+  name: Aggiornamenti HACS
+  initial: off
+  icon: mdi:cellphone-arrow-down
index 8d36ee870b2cb393c024e9aadf37c90ed531844e..481be562f90669b6f8f737c12a22aacfae8fc288 100644 (file)
@@ -26,7 +26,6 @@ automation:
   # Alarm Automation: Aknowledge Alarms\r
   #\r
   # Actions:\r
-  # - persistent_notification.dismiss\r
   # - script.stop_alarm\r
   ######################################################################\r
   - alias: "Allarmi: Riconoscimento Allarmi"\r
index fd5eecdaf1988ebfe8ca6cdf3e905714e4140984..7b3d7c69b23d23edc6fedf55a9ba3d3db99f3594 100644 (file)
@@ -1,87 +1,87 @@
-######################################################################\r
-# QNAP Package - Switch\r
-######################################################################\r
-\r
-switch:\r
-  - platform: wake_on_lan\r
-    mac: !secret nas_mac\r
-    name: NAS\r
-    host: !secret nas_host\r
-    turn_off: \r
-      service: shell_command.nas_turn_off\r
-      data:\r
-        nas_host: !secret nas_host\r
-        nas_username: !secret nas_username\r
-\r
-######################################################################\r
-# QNAP Package - Shell Command\r
-######################################################################\r
-\r
-shell_command:\r
-  nas_turn_off: 'ssh {{ nas_username }}@{{ nas_host }} -oStrictHostKeyChecking=no -i /config/credentials/id_rsa halt'\r
-  plex_start: 'ssh {{ nas_username }}@{{ nas_host }} -oStrictHostKeyChecking=no -i /config/credentials/id_rsa  /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/plex.sh start'\r
-  plex_restart: 'ssh {{ nas_username }}@{{ nas_host }} -oStrictHostKeyChecking=no -i /config/credentials/id_rsa  /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/plex.sh restart'\r
-  plex_stop: 'ssh {{ nas_username }}@{{ nas_host }} -oStrictHostKeyChecking=no -i /config/credentials/id_rsa  /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/plex.sh stop'\r
-\r
-######################################################################\r
-# QNAP Package - Script\r
-######################################################################\r
-\r
-script:\r
-  plex_start:\r
-    alias: "Avvia Plex"\r
-    sequence:\r
-      - service: shell_command.plex_start\r
-        data:\r
-          nas_host: !secret nas_host\r
-          nas_username: !secret nas_username\r
-\r
-  plex_restart:\r
-    alias: "Riavvia Plex"\r
-    sequence:\r
-      - service: shell_command.plex_restart\r
-        data:\r
-          nas_host: !secret nas_host\r
-          nas_username: !secret nas_username\r
-\r
-  plex_stop:\r
-    alias: "Ferma Plex"\r
-    sequence:\r
-      - service: shell_command.plex_stop\r
-        data:\r
-          nas_host: !secret nas_host\r
-          nas_username: !secret nas_username\r
-\r
-######################################################################\r
-# QNAP Package - Google Assistant\r
-######################################################################\r
-\r
-google_assistant:\r
-  entity_config:\r
-    switch.nas:\r
-      name: NAS\r
-      expose: true\r
-      room: Studio\r
-    script.plex_start:\r
-      name: Avvia Plex\r
-      expose: true\r
-      room: Routine\r
-    script.plex_stop:\r
-      name: Ferma Plex\r
-      expose: true\r
-      room: Routine\r
-\r
-######################################################################\r
-# QNAP Package - Customizations\r
-######################################################################\r
-\r
-homeassistant:\r
-  customize:\r
-    switch.nas:\r
-      icon: mdi:nas\r
-    script.plex_start:\r
-      icon: mdi:plex\r
-    script.plex_restart:\r
-      icon: mdi:plex\r
-    script.plex_stop:\r
-      icon: mdi:plex\r
+######################################################################
+# QNAP Package - Switch
+######################################################################
+
+switch:
+  - platform: wake_on_lan
+    mac: !secret nas_mac
+    name: NAS
+    host: !secret nas_host
+    turn_off: 
+      service: shell_command.nas_turn_off
+      data:
+        nas_host: !secret nas_host
+        nas_username: !secret nas_username
+
+######################################################################
+# QNAP Package - Shell Command
+######################################################################
+
+shell_command:
+  nas_turn_off: 'ssh {{ nas_username }}@{{ nas_host }} -oStrictHostKeyChecking=no -i /config/credentials/id_rsa halt'
+  plex_start: 'ssh {{ nas_username }}@{{ nas_host }} -oStrictHostKeyChecking=no -i /config/credentials/id_rsa  /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/plex.sh start'
+  plex_restart: 'ssh {{ nas_username }}@{{ nas_host }} -oStrictHostKeyChecking=no -i /config/credentials/id_rsa  /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/plex.sh restart'
+  plex_stop: 'ssh {{ nas_username }}@{{ nas_host }} -oStrictHostKeyChecking=no -i /config/credentials/id_rsa  /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/plex.sh stop'
+
+######################################################################
+# QNAP Package - Script
+######################################################################
+
+script:
+  plex_start:
+    alias: "Avvia Plex"
+    sequence:
+      - service: shell_command.plex_start
+        data:
+          nas_host: !secret nas_host
+          nas_username: !secret nas_username
+
+  plex_restart:
+    alias: "Riavvia Plex"
+    sequence:
+      - service: shell_command.plex_restart
+        data:
+          nas_host: !secret nas_host
+          nas_username: !secret nas_username
+
+  plex_stop:
+    alias: "Ferma Plex"
+    sequence:
+      - service: shell_command.plex_stop
+        data:
+          nas_host: !secret nas_host
+          nas_username: !secret nas_username
+
+######################################################################
+# QNAP Package - Google Assistant
+######################################################################
+
+google_assistant:
+  entity_config:
+    switch.nas:
+      name: NAS
+      expose: true
+      room: Studio
+    script.plex_start:
+      name: Avvia Plex
+      expose: true
+      room: Routine
+    script.plex_stop:
+      name: Ferma Plex
+      expose: true
+      room: Routine
+
+######################################################################
+# QNAP Package - Customizations
+######################################################################
+
+homeassistant:
+  customize:
+    switch.nas:
+      icon: mdi:nas
+    script.plex_start:
+      icon: mdi:plex
+    script.plex_restart:
+      icon: mdi:plex
+    script.plex_stop:
+      icon: mdi:plex
index 98bc658379109d585c6b217174dafd84abb0fb93..c8b75d7f176a662b5a40596aa75239bea1155182 100644 (file)
-######################################################################\r
-# Zigbee2mqtt Package - Input select\r
-######################################################################\r
-\r
-input_select:\r
-  # Zigbee2mqtt log level\r
-  zigbee2mqtt_log_level:\r
-    name: "Zigbee2MQTT: Log Level"\r
-    options:\r
-      - debug\r
-      - info\r
-      - warn\r
-      - error\r
-    initial: info\r
-    icon: mdi:format-list-bulleted\r
-\r
-######################################################################\r
-# Zigbee2mqtt Package - Input Number\r
-######################################################################\r
-\r
-# Input number for joining time remaining (in minutes)\r
-input_number:\r
-  zigbee2mqtt_join_minutes:\r
-    name: "Zigbee2MQTT: Tempo per il join"\r
-    initial: 2\r
-    min: 1\r
-    max: 5\r
-    step: 1\r
-    mode: slider\r
-\r
-######################################################################\r
-# Zigbee2mqtt Package - Input Text\r
-######################################################################\r
-\r
-input_text:\r
-  zigbee2mqtt_old_name:\r
-    name: "Device da Rinominare"\r
-    initial: ""\r
-\r
-  zigbee2mqtt_new_name:\r
-    name: "Nuovo nome Device"\r
-    initial: ""\r
-\r
-  zigbee2mqtt_remove:\r
-    name: "Device da Rimuovere"\r
-    initial: ""\r
-\r
-######################################################################\r
-# Zigbee2mqtt Package - Input boolean\r
-######################################################################\r
-\r
-input_boolean:\r
-  zigbee2mqtt_force_remove:\r
-    name: "Zigbee2MQTT: Rimozione Forzata"\r
-    initial: false\r
-    icon: mdi:alert-remove\r
-\r
-######################################################################\r
-# Zigbee2mqtt Package - Script\r
-######################################################################\r
-\r
-script:\r
-  ######################################################################\r
-  # Restart Bridge\r
-  ######################################################################\r
-  zigbee2mqtt_restart:\r
-    alias: "Zigbee2MQTT: Riavvia Bridge"\r
-    sequence:\r
-      - service: shell_command.zigbee2mqtt_restart\r
-        data:\r
-          docker_host: !secret docker_host\r
-          docker_username: !secret docker_username\r
-    icon: mdi:restart\r
-\r
-  ######################################################################\r
-  # Rename Device\r
-  ######################################################################\r
-  zigbee2mqtt_rename:\r
-    alias: "Zigbee2MQTT: Rinomina Device"\r
-    sequence:\r
-      service: mqtt.publish\r
-      data_template:\r
-        topic: zigbee2mqtt/bridge/request/device/rename\r
-        payload_template: >-\r
-          {\r
-            "from": "{{ states.input_text.zigbee2mqtt_old_name.state | string }}",\r
-            "to": "{{ states.input_text.zigbee2mqtt_new_name.state | string }}"\r
-          }\r
-    icon: mdi:form-textbox\r
-\r
-  ######################################################################\r
-  # Delete Device\r
-  ######################################################################\r
-  zigbee2mqtt_remove:\r
-    alias: "Zigbee2MQTT: Rimuovi Device"\r
-    sequence:\r
-      service: mqtt.publish\r
-      data_template:\r
-        topic: zigbee2mqtt/bridge/request/device/remove\r
-        payload_template: >-\r
-          {\r
-            "id": "{{ states.input_text.zigbee2mqtt_remove.state | string }}",\r
-            "force": {% if states.input_boolean.zigbee2mqtt_force_remove.state == "off" %}false{% else %}true{% endif %}\r
-          }\r
-    icon: mdi:link-variant-remove\r
-\r
-######################################################################\r
-# Zigbee2mqtt Package - Timer\r
-######################################################################\r
-\r
-timer:\r
-  # Timer for joining time remaining (120 sec = 2 min)\r
-  zigbee_permit_join:\r
-    name: Tempo rimasto per il join\r
-    duration: 120\r
-\r
-######################################################################\r
-# Zigbee2mqtt Package - Sensor\r
-######################################################################\r
-\r
-mqtt:\r
-  sensor:\r
-    ######################################################################\r
-    # MQTT Sensor for monitoring the bridge state\r
-    ######################################################################\r
-    - name: "Zigbee2MQTT: Stato Bridge"\r
-      state_topic: "zigbee2mqtt/bridge/state"\r
-      icon: mdi:router-wireless\r
-\r
-    ######################################################################\r
-    # MQTT Sensor for Showing the Zigbee2MQTT Version\r
-    ######################################################################\r
-    - name: "Zigbee2MQTT: Versione Bridge"\r
-      state_topic: "zigbee2mqtt/bridge/info"\r
-      value_template: "{{ value_json.version }}"\r
-      icon: mdi:zigbee\r
-\r
-    ######################################################################\r
-    # MQTT Sensor for Showing the Coordinator Type\r
-    ######################################################################\r
-    #- name: "Zigbee2MQTT: Tipo Coordinator"\r
-    #  state_topic: "zigbee2mqtt/bridge/info"\r
-    #  value_template: "{{ value_json.coordinator.type }}"\r
-    #  icon: mdi:chip\r
-\r
-    ######################################################################\r
-    # MQTT Sensor for Showing the Coordinator Version\r
-    ######################################################################\r
-    - name: "Zigbee2MQTT: Versione Coordinator"\r
-      state_topic: "zigbee2mqtt/bridge/info"\r
-      value_template: "{{ value_json.coordinator.meta.revision }}"\r
-      icon: mdi:chip\r
-\r
-    ######################################################################\r
-    # MQTT Sensor for monitoring the permit_join state\r
-    ######################################################################\r
-    - name: "Zigbee2MQTT: Stato permit join"\r
-      state_topic: "zigbee2mqtt/bridge/info"\r
-      value_template: "{{ value_json.permit_join }}"\r
-      icon: mdi:link-lock\r
-\r
-    ######################################################################\r
-    # MQTT Sensor for monitoring the log_level state\r
-    ######################################################################\r
-    - name: "Zigbee2MQTT: Stato log level"\r
-      state_topic: "zigbee2mqtt/bridge/info"\r
-      value_template: "{{ value_json.log_level }}"\r
-      icon: mdi:file-document-outline\r
-\r
-    ######################################################################\r
-    # MQTT Sensor for Showing the Channel\r
-    ######################################################################\r
-    - name: "Zigbee2MQTT: Canale"\r
-      state_topic: "zigbee2mqtt/bridge/info"\r
-      value_template: "{{ value_json.network.channel }}"\r
-      icon: mdi:access-point-network\r
-\r
-    ######################################################################\r
-    # MQTT Sensor for Showing the PanID\r
-    ######################################################################\r
-    - name: "Zigbee2MQTT: PanID"\r
-      state_topic: "zigbee2mqtt/bridge/info"\r
-      value_template: "{{ value_json.network.pan_id }}"\r
-      icon: mdi:lan\r
-\r
-    ######################################################################\r
-    # MQTT Sensor for Showing the Extended PanID\r
-    ######################################################################\r
-    #- name: "Zigbee2mqtt: Extended PanID"\r
-    #  state_topic: "zigbee2mqtt/bridge/info"\r
-    #  value_template: "{{ value_json.network.extended_pan_id }}"\r
-    #  icon: mdi:lan\r
-\r
-    ######################################################################\r
-    # Zigbee2mqtt Networkmap\r
-    ######################################################################\r
-    - name: Zigbee2MQTT Networkmap\r
-      state_topic: zigbee2mqtt/bridge/response/networkmap\r
-      value_template: >-\r
-        {{ now().strftime('%Y-%m-%d %H:%M:%S') }}\r
-      json_attributes_topic: zigbee2mqtt/bridge/response/networkmap\r
-      json_attributes_template: "{{ value_json.data.value | tojson }}"\r
-\r
-  ######################################################################\r
-  # Zigbee2mqtt Package - Switch\r
-  ######################################################################\r
-  switch:\r
-    # Switch for enabling joining\r
-    - name: "Zigbee2MQTT: Abilita join"\r
-      state_topic: "zigbee2mqtt/bridge/info"\r
-      value_template: '{{ value_json.permit_join | lower }}'\r
-      command_topic: "zigbee2mqtt/bridge/request/permit_join"\r
-      payload_on: "true"\r
-      payload_off: "false"\r
-      icon: mdi:link-lock\r
-\r
-######################################################################\r
-# Zigbee2mqtt Package - Shell Command\r
-######################################################################\r
-\r
-shell_command:\r
-  zigbee2mqtt_restart: 'ssh {{ docker_username }}@{{ docker_host }} -oStrictHostKeyChecking=no -i /config/credentials/id_rsa docker container restart zigbee2mqtt'\r
-\r
-######################################################################\r
-# Zigbee2mqtt Package - Automation\r
-######################################################################\r
-\r
-automation:\r
-  ######################################################################\r
-  # Automation to change log level\r
-  ######################################################################\r
-  - id: zigbee2mqtt_change_log_level\r
-    alias: "Zigbee2MQTT: Cambia Log Level"\r
-    trigger:\r
-      platform: state\r
-      entity_id: input_select.zigbee2mqtt_log_level\r
-    action:\r
-      - service: mqtt.publish\r
-        data:\r
-          payload_template: "{{ states('input_select.zigbee2mqtt_log_level') }}"\r
-          topic: zigbee2mqtt/bridge/request/config/log_level\r
-\r
-  ######################################################################\r
-  # Automation to start timer when enable join is turned on\r
-  ######################################################################\r
-  - id: zigbee2mqtt_join_enabled\r
-    alias: "Zigbee2MQTT: Abilita Join"\r
-    trigger:\r
-      platform: state\r
-      entity_id: switch.zigbee2mqtt_abilita_join\r
-      to: "on"\r
-    action:\r
-      service: timer.start\r
-      entity_id: timer.zigbee_permit_join\r
-      data_template:\r
-        duration: "{{ '00:0%i:00' % (states('input_number.zigbee2mqtt_join_minutes') | int ) }}"\r
-\r
-  ######################################################################\r
-  # Automation to stop timer when switch turned off and turn off switch when timer finished\r
-  ######################################################################\r
-  - id: zigbee2mqtt_join_disabled\r
-    alias: "Zigbee2MQTT: Disabilita Join"\r
-    trigger:\r
-      - platform: event\r
-        event_type: timer.finished\r
-        event_data:\r
-          entity_id: timer.zigbee_permit_join\r
-      - platform: state\r
-        entity_id: switch.zigbee2mqtt_abilita_join\r
-        to: "off"\r
-    action:\r
-      - service: timer.cancel\r
-        data:\r
-          entity_id: timer.zigbee_permit_join\r
-      - service: switch.turn_off\r
-        entity_id: switch.zigbee2mqtt_abilita_join\r
-\r
-  ######################################################################\r
-  # Automation to notify when a device joined zigbee2mqtt network\r
-  ######################################################################\r
-  - id: "zigbee2mqtt_notification_on_successfull_interview"\r
-    alias: "Zigbee2MQTT: Device aggiunto alla rete Zigbee2mqtt"\r
-    trigger:\r
-      platform: mqtt\r
-      topic: 'zigbee2mqtt/bridge/event'\r
-    condition:\r
-      condition: template\r
-      value_template: '{{trigger.payload_json.type == "device_interview" and trigger.payload_json.data.status == "successful" and trigger.payload_json.data.supported}}'\r
-    action:\r
-      - service: persistent_notification.create\r
-        data_template:\r
-          title: "Device aggiunto alla rete Zigbee2mqtt"\r
-          message: "Name: {{trigger.payload_json.data.friendly_name}},\r
-                    Vendor: {{trigger.payload_json.data.definition.vendor}},\r
-                    Model: {{trigger.payload_json.data.definition.model}},\r
-                    Description: {{trigger.payload_json.data.definition.description}}"\r
-\r
-  ######################################################################\r
-  # Automation to restart zigbee2mqtt to refresh sensor state\r
-  ######################################################################\r
-  - id: zigbee2mqtt_startup_automation\r
-    alias: "Zigbee2MQTT: Startup Automation"\r
-    trigger:\r
-      - platform: homeassistant\r
-        event: start\r
-    action:\r
-      - service: script.zigbee2mqtt_restart\r
-\r
-  ######################################################################\r
-  # Automation to restart zigbee2mqtt in case of bridge offline for 1m\r
-  ######################################################################\r
-  - id: zigbee2mqtt_restart_automation\r
-    alias: "Zigbee2MQTT: Restart Automation"\r
-    trigger:\r
-      - platform: state\r
-        entity_id: sensor.zigbee2mqtt_stato_bridge\r
-        to: "offline"\r
-        for: "00:01:00"\r
-    action:\r
-      - service: script.zigbee2mqtt_restart\r
-      - service: script.notify_text\r
-        data:\r
-          title: "Restart Zigbee2mqtt"\r
-          message: "Zigbee2mqtt bridge offline: force restart"\r
-\r
-######################################################################\r
-# Zigbee2mqtt Package - Logbook\r
-######################################################################\r
-\r
-logbook:\r
-  exclude:\r
-    entities:\r
-      - sensor.zigbee2mqtt_stato_bridge\r
-      - sensor.zigbee2mqtt_stato_permit_join\r
-      - sensor.zigbee2mqtt_stato_log_level\r
-      - sensor.zigbee2mqtt_versione_bridge\r
-      - sensor.zigbee2mqtt_versione_coordinator\r
-      - sensor.zigbee2mqtt_tipo_coordinator\r
-      - sensor.zigbee2mqtt_canale\r
-      - sensor.zigbee2mqtt_panid\r
-      - sensor.zigbee2mqtt_extended_panid\r
-      - sensor.zigbee2mqtt_networkmap\r
-      - timer.zigbee_permit_join\r
-\r
-######################################################################\r
-# Zigbee2mqtt Package - Recorder\r
-######################################################################\r
-\r
-recorder:\r
-  exclude:\r
-    entities:\r
-      - sensor.zigbee2mqtt_stato_bridge\r
-      - sensor.zigbee2mqtt_stato_permit_join\r
-      - sensor.zigbee2mqtt_stato_log_level\r
-      - sensor.zigbee2mqtt_versione_bridge\r
-      - sensor.zigbee2mqtt_versione_coordinator\r
-      - sensor.zigbee2mqtt_tipo_coordinator\r
-      - sensor.zigbee2mqtt_canale\r
-      - sensor.zigbee2mqtt_panid\r
-      - sensor.zigbee2mqtt_extended_panid\r
-      - sensor.zigbee2mqtt_networkmap\r
-      - timer.zigbee_permit_join\r
+######################################################################
+# 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
+######################################################################
+
+mqtt:
+  sensor:
+    ######################################################################
+    # MQTT Sensor for monitoring the bridge state
+    ######################################################################
+    - name: "Zigbee2MQTT: Stato Bridge"
+      state_topic: "zigbee2mqtt/bridge/state"
+      icon: mdi:router-wireless
+
+    ######################################################################
+    # MQTT Sensor for Showing the Zigbee2MQTT Version
+    ######################################################################
+    - name: "Zigbee2MQTT: Versione Bridge"
+      state_topic: "zigbee2mqtt/bridge/info"
+      value_template: "{{ value_json.version }}"
+      icon: mdi:zigbee
+
+    ######################################################################
+    # MQTT Sensor for Showing the Coordinator Type
+    ######################################################################
+    #- name: "Zigbee2MQTT: Tipo Coordinator"
+    #  state_topic: "zigbee2mqtt/bridge/info"
+    #  value_template: "{{ value_json.coordinator.type }}"
+    #  icon: mdi:chip
+
+    ######################################################################
+    # MQTT Sensor for Showing the Coordinator Version
+    ######################################################################
+    - name: "Zigbee2MQTT: Versione Coordinator"
+      state_topic: "zigbee2mqtt/bridge/info"
+      value_template: "{{ value_json.coordinator.meta.revision }}"
+      icon: mdi:chip
+
+    ######################################################################
+    # MQTT Sensor for monitoring the permit_join state
+    ######################################################################
+    - name: "Zigbee2MQTT: Stato permit join"
+      state_topic: "zigbee2mqtt/bridge/info"
+      value_template: "{{ value_json.permit_join }}"
+      icon: mdi:link-lock
+
+    ######################################################################
+    # MQTT Sensor for monitoring the log_level state
+    ######################################################################
+    - name: "Zigbee2MQTT: Stato log level"
+      state_topic: "zigbee2mqtt/bridge/info"
+      value_template: "{{ value_json.log_level }}"
+      icon: mdi:file-document-outline
+
+    ######################################################################
+    # MQTT Sensor for Showing the Channel
+    ######################################################################
+    - name: "Zigbee2MQTT: Canale"
+      state_topic: "zigbee2mqtt/bridge/info"
+      value_template: "{{ value_json.network.channel }}"
+      icon: mdi:access-point-network
+
+    ######################################################################
+    # MQTT Sensor for Showing the PanID
+    ######################################################################
+    - name: "Zigbee2MQTT: PanID"
+      state_topic: "zigbee2mqtt/bridge/info"
+      value_template: "{{ value_json.network.pan_id }}"
+      icon: mdi:lan
+
+    ######################################################################
+    # MQTT Sensor for Showing the Extended PanID
+    ######################################################################
+    #- name: "Zigbee2mqtt: Extended PanID"
+    #  state_topic: "zigbee2mqtt/bridge/info"
+    #  value_template: "{{ value_json.network.extended_pan_id }}"
+    #  icon: mdi:lan
+
+    ######################################################################
+    # Zigbee2mqtt Networkmap
+    ######################################################################
+    - name: Zigbee2MQTT Networkmap
+      state_topic: zigbee2mqtt/bridge/response/networkmap
+      value_template: >-
+        {{ now().strftime('%Y-%m-%d %H:%M:%S') }}
+      json_attributes_topic: zigbee2mqtt/bridge/response/networkmap
+      json_attributes_template: "{{ value_json.data.value | tojson }}"
+
+  ######################################################################
+  # Zigbee2mqtt Package - Switch
+  ######################################################################
+  switch:
+    # Switch for enabling joining
+    - 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"
+      icon: mdi:link-lock
+
+######################################################################
+# Zigbee2mqtt Package - Shell Command
+######################################################################
+
+shell_command:
+  zigbee2mqtt_restart: 'ssh {{ docker_username }}@{{ docker_host }} -oStrictHostKeyChecking=no -i /config/credentials/id_rsa docker container restart zigbee2mqtt'
+
+######################################################################
+# Zigbee2mqtt Package - Automation
+######################################################################
+
+automation:
+  ######################################################################
+  # Automation to change log level
+  ######################################################################
+  - id: zigbee2mqtt_change_log_level
+    alias: "Zigbee2MQTT: Cambia Log Level"
+    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/request/config/log_level
+
+  ######################################################################
+  # Automation to start timer when enable join is turned on
+  ######################################################################
+  - id: zigbee2mqtt_join_enabled
+    alias: "Zigbee2MQTT: Abilita Join"
+    trigger:
+      platform: state
+      entity_id: switch.zigbee2mqtt_abilita_join
+      to: "on"
+    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"
+    trigger:
+      - platform: event
+        event_type: timer.finished
+        event_data:
+          entity_id: timer.zigbee_permit_join
+      - platform: state
+        entity_id: switch.zigbee2mqtt_abilita_join
+        to: "off"
+    action:
+      - service: timer.cancel
+        data:
+          entity_id: timer.zigbee_permit_join
+      - service: switch.turn_off
+        entity_id: switch.zigbee2mqtt_abilita_join
+
+  ######################################################################
+  # Automation to notify when a device joined zigbee2mqtt network
+  ######################################################################
+  - id: "zigbee2mqtt_notification_on_successfull_interview"
+    alias: "Zigbee2MQTT: Device aggiunto alla rete Zigbee2mqtt"
+    trigger:
+      platform: mqtt
+      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.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"
+    trigger:
+      - platform: homeassistant
+        event: start
+    action:
+      - service: script.zigbee2mqtt_restart
+
+  ######################################################################
+  # Automation to restart zigbee2mqtt in case of bridge offline for 1m
+  ######################################################################
+  - id: zigbee2mqtt_restart_automation
+    alias: "Zigbee2MQTT: Restart Automation"
+    trigger:
+      - platform: state
+        entity_id: sensor.zigbee2mqtt_stato_bridge
+        to: "offline"
+        for: "00:01:00"
+    action:
+      - service: script.zigbee2mqtt_restart
+      - service: script.notify_text
+        data:
+          title: "Restart Zigbee2mqtt"
+          message: "Zigbee2mqtt bridge offline: force restart"
+
+######################################################################
+# Zigbee2mqtt Package - Logbook
+######################################################################
+
+logbook:
+  exclude:
+    entities:
+      - sensor.zigbee2mqtt_stato_bridge
+      - sensor.zigbee2mqtt_stato_permit_join
+      - sensor.zigbee2mqtt_stato_log_level
+      - sensor.zigbee2mqtt_versione_bridge
+      - sensor.zigbee2mqtt_versione_coordinator
+      - sensor.zigbee2mqtt_tipo_coordinator
+      - sensor.zigbee2mqtt_canale
+      - sensor.zigbee2mqtt_panid
+      - sensor.zigbee2mqtt_extended_panid
+      - sensor.zigbee2mqtt_networkmap
+      - timer.zigbee_permit_join
+
+######################################################################
+# Zigbee2mqtt Package - Recorder
+######################################################################
+
+recorder:
+  exclude:
+    entities:
+      - sensor.zigbee2mqtt_stato_bridge
+      - sensor.zigbee2mqtt_stato_permit_join
+      - sensor.zigbee2mqtt_stato_log_level
+      - sensor.zigbee2mqtt_versione_bridge
+      - sensor.zigbee2mqtt_versione_coordinator
+      - sensor.zigbee2mqtt_tipo_coordinator
+      - sensor.zigbee2mqtt_canale
+      - sensor.zigbee2mqtt_panid
+      - sensor.zigbee2mqtt_extended_panid
+      - sensor.zigbee2mqtt_networkmap
+      - timer.zigbee_permit_join
index 2342f535d1230c764d337582407de96bf8038308..6b4c67b5dc0b5dce4d001158b1c9a8ecd1254ceb 100644 (file)
-######################################################################\r
-# Speech Engine Message\r
-######################################################################\r
-\r
->-\r
-  {# *********************************************** #}\r
-  {# ***************** Check Input ***************** #}\r
-  {# *********************************************** #}\r
-  {% if enable_greeting is not defined %}\r
-    {% set enable_greeting=false %}\r
-  {% endif %}\r
-  {% if enable_status is not defined %}\r
-    {% set enable_status=false %}\r
-  {% endif %}\r
-  {% if enable_consumption is not defined %}\r
-    {% set enable_consumption=false %}\r
-  {% endif %}\r
-  {% if enable_location is not defined %}\r
-    {% set enable_location=false %}\r
-  {% endif %}\r
-  {% if location_people_start is not defined %}\r
-    {% set location_people_start=1 %}\r
-  {% endif %}\r
-  {% if location_people_num is not defined %}\r
-    {% set location_people_num=2 %}\r
-  {% endif %}\r
-  {% if enable_car is not defined %}\r
-    {% set enable_car=false %}\r
-  {% endif %}\r
-\r
-  {# *********************************************** #}\r
-  {# ******************** Macro ******************** #}\r
-  {# *********************************************** #}\r
-\r
-  {# Greeting Message #}\r
-  {%- macro greeting() -%}\r
-    {% if now().strftime('%H')|int >= 7 and now().strftime('%H')|int < 12 %}\r
-      Buongiorno.\r
-    {% elif now().strftime('%H')|int >= 12 and now().strftime('%H')|int < 17 %}\r
-      Buonpomeriggio.\r
-    {% elif now().strftime('%H')|int >= 17 and now().strftime('%H')|int < 23 %}\r
-      Buonasera.\r
-    {% else %}\r
-      Buonanotte.\r
-    {% endif %}\r
-  {%- endmacro -%}\r
-\r
-  {# Time & Date #}\r
-  {%- macro time_and_date() -%}\r
-    {% set hour = now().strftime('%H') %}\r
-    {% set min = now().strftime('%M') %}\r
-    {% set day = now().strftime('%d') %}\r
-    {% set mounth = now().strftime('%B')|replace('January', 'Gennaio')\r
-                                        |replace('February', 'Febbraio')\r
-                                        |replace('March', 'Marzo')\r
-                                        |replace('April', 'Aprile')\r
-                                        |replace('May', 'Maggio')\r
-                                        |replace('June', 'Giugno')\r
-                                        |replace('July', 'Luglio')\r
-                                        |replace('August', 'Agosto')\r
-                                        |replace('September', 'Settembre')\r
-                                        |replace('October', 'Ottobre')\r
-                                        |replace('November', 'Novembre')\r
-                                        |replace('December', 'Dicembre') %}\r
-    {% set year = now().strftime('%Y') %}\r
-    Sono le {{ hour }} e {{ min }} del {{ day }} {{ mounth }} {{ year }}\r
-  {%- endmacro -%}\r
-\r
-  {# Door Status #}\r
-  {%- macro status_door() -%}\r
-    {% for entity_id in states.group.doors.attributes.entity_id  %}\r
-      {% set name = state_attr(entity_id, 'friendly_name') %}\r
-      {% if is_state(entity_id, 'off') %}\r
-        La {{ name }} è chiusa.\r
-      {% else %}\r
-        La {{ name }} è aperta.\r
-      {% endif %}\r
-    {%- endfor %}\r
-  {%- endmacro -%}\r
-\r
-  {# Lights Status #}\r
-  {%- macro status_lights() -%}\r
-    {% for entity_id in states.group.lights.attributes.entity_id  %}\r
-      {% set name = state_attr(entity_id, 'friendly_name') %}\r
-      {% if is_state(entity_id, 'off') %}\r
-        La {{ name }} è spenta.\r
-      {% else %}\r
-        La {{ name }} è accesa.\r
-      {% endif %}\r
-    {%- endfor %}\r
-  {%- endmacro -%}\r
-\r
-  {# Covers Status #}\r
-  {%- macro status_covers() -%}\r
-    {% for entity_id in states.group.covers.attributes.entity_id %}\r
-      {% set name = state_attr(entity_id, 'friendly_name') %}\r
-      {% set perc = state_attr(entity_id, 'current_position') %}\r
-      {% if perc | int < 25 %}\r
-        La {{ name }} è chiusa.\r
-      {% else %}\r
-        La {{ name }} è aperta al {{ perc }} percento.\r
-      {% endif %}\r
-    {%- endfor %}\r
-  {%- endmacro -%}\r
-\r
-  {# Temperature Status #}\r
-  {%- macro status_temperature() -%}\r
-    {% for entity_id in states.group.temperature.attributes.entity_id %}\r
-      {% set name = state_attr(entity_id, 'friendly_name') %}\r
-      {% set temp = states(entity_id) %}\r
-      La {{ name }} è {{ temp }} gradi.\r
-    {%- endfor %}\r
-  {%- endmacro -%}\r
-\r
-  {# Consumption Status #}\r
-  {%- macro status_consumption() -%}\r
-  "Il consumo istantaneo è pari a {{ states.sensor.shelly_em_channel_1_power.state }} watt"\r
-  {%- endmacro -%}\r
-\r
-  {# Location Status #}\r
-  {%- macro status_location(start, num) -%}\r
-    {% for entity_id in states.group.people.attributes.entity_id %}\r
-      {% set name = state_attr(entity_id, 'friendly_name') %}\r
-      {% if is_state(entity_id, 'not_home') %}\r
-        {% set source = state_attr(entity_id, 'source') %}\r
-        {% set position = state_attr(source, 'address')|replace('Province of', 'Provincia di') %}\r
-      {% elif is_state(entity_id, 'home') %}\r
-        {% set position = "casa" %}\r
-      {% else %}\r
-        {% set position = states(entity_id) %}\r
-      {% endif %}\r
-\r
-      {% if (loop.index >= start|int) and (loop.index < num|int+start|int) %}\r
-        La posizione di {{ name }} è {{ position }}.\r
-      {% endif %}\r
-    {%- endfor %}\r
-  {%- endmacro -%}\r
-\r
-  {# Car Status #}\r
-  {%- macro status_car() -%}\r
-    {% if is_state('device_tracker.ff590mr_device_tracker', 'home') %}\r
-      {% set car_position = "in garage" %}\r
-    {% else %}\r
-      {% set car_position = "fuori" %}\r
-    {% endif %}\r
-    {% if is_state('binary_sensor.ff590mr_locked', 'off') %}\r
-      {% set car_lock = "chiusa" %}\r
-    {% else %}\r
-      {% set car_lock = "aperta" %}\r
-    {% endif %}\r
-    {% if is_state('binary_sensor.ff590mr_windows_closed_2', 'off') %}\r
-      {% set car_windows = "chiusi" %}\r
-    {% else %}\r
-      {% set car_windows = "aperti" %}\r
-    {% endif %}\r
-    La Mercedes si trova {{ car_position }}. è {{ car_lock }} con i finestrini {{ car_windows }}.\r
-    Il livello del carburante è {{ states('sensor.ff590mr_fuel_level') }} percento.\r
-    {% if is_state('binary_sensor.ff590mr_low_brake_fluid_warning', 'on') or\r
-          is_state('binary_sensor.ff590mr_low_coolant_level_warning', 'on') or\r
-          is_state('binary_sensor.ff590mr_low_wash_water_warning', 'on') or\r
-          is_state('binary_sensor.ff590mr_tire_warning', 'on') %}\r
-      Sono inoltre presenti allarmi.\r
-    {% endif %}\r
-  {%- endmacro -%}\r
-\r
-  {# End Message #}\r
-  {%- macro end_message() -%}\r
-    {% if enable_status == true %}\r
-      {{ [\r
-      "Spero che il report ti abbia soddisfatto!",\r
-      "Il report è concluso.",\r
-      "Alla prossima!",\r
-      "Buon proseguimento!",\r
-      "Non ho altro da comunicare."\r
-      ] | random }}\r
-    {% endif %}\r
-  {%- endmacro -%}\r
-\r
-  {# *********************************************** #}\r
-  {# ******************* Message ******************* #}\r
-  {# *********************************************** #}\r
-\r
-  {# Greeting Message #}\r
-  {% if enable_greeting == true %}\r
-    {{ greeting() }}\r
-  {% endif %}\r
-\r
-  {# Home Status #}\r
-  {% if enable_status == true %}\r
-\r
-    {{ time_and_date() }}\r
-\r
-    {{ status_door() }}\r
-\r
-    {{ status_lights() }}\r
-\r
-    {{ status_covers() }}\r
-\r
-    {{ status_temperature() }}\r
-\r
-  {% endif %}\r
-\r
-  {% if (enable_status == true) or (enable_consumption == true) %}\r
-    {{ status_consumption() }}\r
-  {% endif %}\r
-\r
-  {# Location Status #}\r
-  {% if (enable_status == true) or (enable_location == true) %}\r
-    {{ status_location(location_people_start, location_people_num) }}\r
-  {% endif %}\r
-\r
-  {# Car Status #}\r
-  {% if (enable_status == true) or (enable_car == true) %}\r
-    {{ status_car() }}\r
-  {% endif %}\r
-\r
-  {# generic message #}\r
-  {{ message }}\r
-\r
-  {# end message #}\r
-  {{ end_message() }}\r
+######################################################################
+# Speech Engine Message
+######################################################################
+
+>-
+  {# *********************************************** #}
+  {# ***************** Check Input ***************** #}
+  {# *********************************************** #}
+  {% if enable_greeting is not defined %}
+    {% set enable_greeting=false %}
+  {% endif %}
+  {% if enable_status is not defined %}
+    {% set enable_status=false %}
+  {% endif %}
+  {% if enable_consumption is not defined %}
+    {% set enable_consumption=false %}
+  {% endif %}
+  {% if enable_location is not defined %}
+    {% set enable_location=false %}
+  {% endif %}
+  {% if location_people_start is not defined %}
+    {% set location_people_start=1 %}
+  {% endif %}
+  {% if location_people_num is not defined %}
+    {% set location_people_num=2 %}
+  {% endif %}
+  {% if enable_car is not defined %}
+    {% set enable_car=false %}
+  {% endif %}
+
+  {# *********************************************** #}
+  {# ******************** Macro ******************** #}
+  {# *********************************************** #}
+
+  {# Greeting Message #}
+  {%- macro greeting() -%}
+    {% if now().strftime('%H')|int >= 7 and now().strftime('%H')|int < 12 %}
+      Buongiorno.
+    {% elif now().strftime('%H')|int >= 12 and now().strftime('%H')|int < 17 %}
+      Buonpomeriggio.
+    {% elif now().strftime('%H')|int >= 17 and now().strftime('%H')|int < 23 %}
+      Buonasera.
+    {% else %}
+      Buonanotte.
+    {% endif %}
+  {%- endmacro -%}
+
+  {# Time & Date #}
+  {%- macro time_and_date() -%}
+    {% set hour = now().strftime('%H') %}
+    {% set min = now().strftime('%M') %}
+    {% set day = now().strftime('%d') %}
+    {% set mounth = now().strftime('%B')|replace('January', 'Gennaio')
+                                        |replace('February', 'Febbraio')
+                                        |replace('March', 'Marzo')
+                                        |replace('April', 'Aprile')
+                                        |replace('May', 'Maggio')
+                                        |replace('June', 'Giugno')
+                                        |replace('July', 'Luglio')
+                                        |replace('August', 'Agosto')
+                                        |replace('September', 'Settembre')
+                                        |replace('October', 'Ottobre')
+                                        |replace('November', 'Novembre')
+                                        |replace('December', 'Dicembre') %}
+    {% set year = now().strftime('%Y') %}
+    Sono le {{ hour }} e {{ min }} del {{ day }} {{ mounth }} {{ year }}
+  {%- endmacro -%}
+
+  {# Door Status #}
+  {%- macro status_door() -%}
+    {% for entity_id in states.group.doors.attributes.entity_id  %}
+      {% set name = state_attr(entity_id, 'friendly_name') %}
+      {% if is_state(entity_id, 'off') %}
+        La {{ name }} è chiusa.
+      {% else %}
+        La {{ name }} è aperta.
+      {% endif %}
+    {%- endfor %}
+  {%- endmacro -%}
+
+  {# Lights Status #}
+  {%- macro status_lights() -%}
+    {% for entity_id in states.group.lights.attributes.entity_id  %}
+      {% set name = state_attr(entity_id, 'friendly_name') %}
+      {% if is_state(entity_id, 'off') %}
+        La {{ name }} è spenta.
+      {% else %}
+        La {{ name }} è accesa.
+      {% endif %}
+    {%- endfor %}
+  {%- endmacro -%}
+
+  {# Covers Status #}
+  {%- macro status_covers() -%}
+    {% for entity_id in states.group.covers.attributes.entity_id %}
+      {% set name = state_attr(entity_id, 'friendly_name') %}
+      {% set perc = state_attr(entity_id, 'current_position') %}
+      {% if perc | int < 25 %}
+        La {{ name }} è chiusa.
+      {% else %}
+        La {{ name }} è aperta al {{ perc }} percento.
+      {% endif %}
+    {%- endfor %}
+  {%- endmacro -%}
+
+  {# Temperature Status #}
+  {%- macro status_temperature() -%}
+    {% for entity_id in states.group.temperature.attributes.entity_id %}
+      {% set name = state_attr(entity_id, 'friendly_name') %}
+      {% set temp = states(entity_id) %}
+      La {{ name }} è {{ temp }} gradi.
+    {%- endfor %}
+  {%- endmacro -%}
+
+  {# Consumption Status #}
+  {%- macro status_consumption() -%}
+  "Il consumo istantaneo è pari a {{ states.sensor.shelly_em_channel_1_power.state }} watt"
+  {%- endmacro -%}
+
+  {# Location Status #}
+  {%- macro status_location(start, num) -%}
+    {% for entity_id in states.group.people.attributes.entity_id %}
+      {% set name = state_attr(entity_id, 'friendly_name') %}
+      {% if is_state(entity_id, 'not_home') %}
+        {% set source = state_attr(entity_id, 'source') %}
+        {% set position = state_attr(source, 'address')|replace('Province of', 'Provincia di') %}
+      {% elif is_state(entity_id, 'home') %}
+        {% set position = "casa" %}
+      {% else %}
+        {% set position = states(entity_id) %}
+      {% endif %}
+
+      {% if (loop.index >= start|int) and (loop.index < num|int+start|int) %}
+        La posizione di {{ name }} è {{ position }}.
+      {% endif %}
+    {%- endfor %}
+  {%- endmacro -%}
+
+  {# Car Status #}
+  {%- macro status_car() -%}
+    {% if is_state('device_tracker.ff590mr_device_tracker', 'home') %}
+      {% set car_position = "in garage" %}
+    {% else %}
+      {% set car_position = "fuori" %}
+    {% endif %}
+    {% if is_state('binary_sensor.ff590mr_locked', 'off') %}
+      {% set car_lock = "chiusa" %}
+    {% else %}
+      {% set car_lock = "aperta" %}
+    {% endif %}
+    {% if is_state('binary_sensor.ff590mr_windows_closed_2', 'off') %}
+      {% set car_windows = "chiusi" %}
+    {% else %}
+      {% set car_windows = "aperti" %}
+    {% endif %}
+    La Mercedes si trova {{ car_position }}. è {{ car_lock }} con i finestrini {{ car_windows }}.
+    Il livello del carburante è {{ states('sensor.ff590mr_fuel_level') }} percento.
+    {% if is_state('binary_sensor.ff590mr_low_brake_fluid_warning', 'on') or
+          is_state('binary_sensor.ff590mr_low_coolant_level_warning', 'on') or
+          is_state('binary_sensor.ff590mr_low_wash_water_warning', 'on') or
+          is_state('binary_sensor.ff590mr_tire_warning', 'on') %}
+      Sono inoltre presenti allarmi.
+    {% endif %}
+  {%- endmacro -%}
+
+  {# End Message #}
+  {%- macro end_message() -%}
+    {% if enable_status == true %}
+      {{ [
+      "Spero che il report ti abbia soddisfatto!",
+      "Il report è concluso.",
+      "Alla prossima!",
+      "Buon proseguimento!",
+      "Non ho altro da comunicare."
+      ] | random }}
+    {% endif %}
+  {%- endmacro -%}
+
+  {# *********************************************** #}
+  {# ******************* Message ******************* #}
+  {# *********************************************** #}
+
+  {# Greeting Message #}
+  {% if enable_greeting == true %}
+    {{ greeting() }}
+  {% endif %}
+
+  {# Home Status #}
+  {% if enable_status == true %}
+
+    {{ time_and_date() }}
+
+    {{ status_door() }}
+
+    {{ status_lights() }}
+
+    {{ status_covers() }}
+
+    {{ status_temperature() }}
+
+  {% endif %}
+
+  {% if (enable_status == true) or (enable_consumption == true) %}
+    {{ status_consumption() }}
+  {% endif %}
+
+  {# Location Status #}
+  {% if (enable_status == true) or (enable_location == true) %}
+    {{ status_location(location_people_start, location_people_num) }}
+  {% endif %}
+
+  {# Car Status #}
+  {% if (enable_status == true) or (enable_car == true) %}
+    {{ status_car() }}
+  {% endif %}
+
+  {# generic message #}
+  {{ message }}
+
+  {# end message #}
+  {{ end_message() }}
index b8a80f9087b37751be9196c705fe4a65ed8e7a65..447e5c38d86bba8803379e794caffbe8f7b07d8f 100644 (file)
@@ -1,26 +1,26 @@
-######################################################################\r
-# Speech Engine Message\r
-######################################################################\r
-\r
->-\r
-  {% set name = state_attr(trigger.entity_id, 'friendly_name') %}\r
-  {%- macro greeting_sentence(name) -%}\r
-  {{ [\r
-  "Ciao " ~ name + " è un piacere rivederti a casa",\r
-  "Finalmente a casa " ~ name + "!",\r
-  "Indovina chi è a casa? " ~ name + "!",\r
-  name + " è ora a casa!",\r
-  "Che bello! " ~ name + " è a casa",\r
-  name + " sei a casa!",\r
-  "Il sistema di domotica Casa Ravera-Testa notifica che " ~ name + " è a casa!",\r
-  "Annuncio: " ~ name + " è ora a casa!",\r
-  "Rilevo una presenza! " ~ name + " è a casa!",\r
-  "Ciao " ~ name + " che la forza sia con te",\r
-  "Sento un tremito nella forza! " ~ name + " è a casa",\r
-  "Sento un interferenza nella Forza! " ~ name + " è qui",\r
-  "Menomale che sei qui " ~ name + "! Mi sentivo solo",\r
-  "Menomale che sei qui " ~ name + "! La casa è vuota senza di te!",\r
-  "Ciao " ~ name + "! Casa è sempre la casa!"\r
-  ] | random }}\r
-  {%- endmacro -%}\r
-  {{ greeting_sentence(name) }}\r
+######################################################################
+# Speech Engine Message
+######################################################################
+
+>-
+  {% set name = state_attr(trigger.entity_id, 'friendly_name') %}
+  {%- macro greeting_sentence(name) -%}
+  {{ [
+  "Ciao " ~ name + " è un piacere rivederti a casa",
+  "Finalmente a casa " ~ name + "!",
+  "Indovina chi è a casa? " ~ name + "!",
+  name + " è ora a casa!",
+  "Che bello! " ~ name + " è a casa",
+  name + " sei a casa!",
+  "Il sistema di domotica Casa Ravera-Testa notifica che " ~ name + " è a casa!",
+  "Annuncio: " ~ name + " è ora a casa!",
+  "Rilevo una presenza! " ~ name + " è a casa!",
+  "Ciao " ~ name + " che la forza sia con te",
+  "Sento un tremito nella forza! " ~ name + " è a casa",
+  "Sento un interferenza nella Forza! " ~ name + " è qui",
+  "Menomale che sei qui " ~ name + "! Mi sentivo solo",
+  "Menomale che sei qui " ~ name + "! La casa è vuota senza di te!",
+  "Ciao " ~ name + "! Casa è sempre la casa!"
+  ] | random }}
+  {%- endmacro -%}
+  {{ greeting_sentence(name) }}