]> git.giorgioravera.it Git - homeassistant.git/commitdiff
Added timer for netatmo valves when swithced off
authorGiorgio Ravera <giorgio.ravera@gmail.com>
Thu, 6 Mar 2025 12:41:19 +0000 (13:41 +0100)
committerGiorgio Ravera <giorgio.ravera@gmail.com>
Thu, 6 Mar 2025 12:41:19 +0000 (13:41 +0100)
packages/netatmo/netatmo_main.yaml
packages/netatmo/netatmo_on_off.yaml

index b89e973643263ef639c18768a48857399a9f153d..5fda7b6060fc50519b2a7d8809b77dd8bfe29b66 100644 (file)
@@ -12,7 +12,7 @@ homeassistant:
     package.netatmo:
       customize: &customize
         package: 'netatmo'
-        version: 1.2.0
+        version: 1.3.0
 
     ######################################################################
     # Netatmo Package - Main - Entities
@@ -66,6 +66,8 @@ homeassistant:
       <<: *customize
     automation.termosifoni_spegnimento:
       <<: *customize
+    automation.termosifoni_scadenza_timeout_impostazione_manuale:
+      <<: *customize
     input_boolean.boost_valvola_zona_giorno:
       <<: *customize
     input_boolean.boost_valvola_cucina:
@@ -80,6 +82,22 @@ homeassistant:
       <<: *customize
     input_boolean.boost_valvola_camera:
       <<: *customize
+    input_number.netatmo_manual_temperature:
+      <<: *customize
+    timer.valvola_zona_giorno:
+      <<: *customize
+    timer.valvola_cucina:
+      <<: *customize
+    timer.valvola_sala:
+      <<: *customize
+    timer.valvola_studio:
+      <<: *customize
+    timer.valvola_bagno_piccolo:
+      <<: *customize
+    timer.valvola_bagno_grande:
+      <<: *customize
+    timer.valvola_camera:
+      <<: *customize
     automation.termosifoni_attivazione_boost:
       <<: *customize
     automation.termosifoni_disattivazione_boost:
index 805c80543fb854d23c122cbb877a870e8c13cfbd..4e8eba2691c021c8bd74d78e94ddb8d1b9188d85 100644 (file)
@@ -32,6 +32,56 @@ input_boolean:
     initial: on
     icon: mdi:thermometer
 
+######################################################################
+# Netatmo Package - On/Off Engine - Input Number
+######################################################################
+
+# Input number for manual temperature set (in minutes)
+input_number:
+  netatmo_manual_temperature:
+    name: "Durata impostazioni manuali"
+    initial: 180
+    min: 5
+    max: 720
+    step: 1
+    mode: slider
+    icon: mdi:timer-edit-outline
+
+######################################################################
+# Netatmo Package - On/Off Engine - Timer
+######################################################################
+
+timer:
+  # Timer for manual set (10800 sec = 3 hour)
+  valvola_zona_giorno:
+    name: Valvola Zona Giorno
+    duration: 10800
+    icon: mdi:timer-edit-outline
+  valvola_cucina:
+    name: Valvola Cucina
+    duration: 10800
+    icon: mdi:timer-edit-outline
+  valvola_sala:
+    name: Valvola Sala
+    duration: 10800
+    icon: mdi:timer-edit-outline
+  valvola_studio:
+    name: Valvola Studio
+    duration: 10800
+    icon: mdi:timer-edit-outline
+  valvola_bagno_piccolo:
+    name: Valvola Bagno Piccolo
+    duration: 10800
+    icon: mdi:timer-edit-outline
+  valvola_bagno_grande:
+    name: Valvola Bagno Grande
+    duration: 10800
+    icon: mdi:timer-edit-outline
+  valvola_camera:
+    name: Valvola Camera
+    duration: 10800
+    icon: mdi:timer-edit-outline
+
 ######################################################################
 # Netatmo Package - On/Off Engine - Automations
 ######################################################################
@@ -54,7 +104,7 @@ automation:
                  input_boolean.valvola_camera
       to: 'on'
 
-    action:
+    actions:
       - action: climate.turn_on
         data_template:
           entity_id: >
@@ -73,6 +123,24 @@ automation:
             {% elif trigger.entity_id == 'input_boolean.valvola_camera' %}
               climate.camera
             {% endif %}
+      - action: timer.cancel
+        data_template:
+          entity_id: >
+            {% if trigger.entity_id == 'input_boolean.valvola_zona_giorno' %}
+              timer.valvola_zona_giorno
+            {% elif trigger.entity_id == 'input_boolean.valvola_cucina' %}
+              timer.valvola_cucina
+            {% elif trigger.entity_id == 'input_boolean.valvola_sala' %}
+              timer.valvola_sala
+            {% elif trigger.entity_id == 'input_boolean.valvola_studio' %}
+              timer.valvola_studio
+            {% elif trigger.entity_id == 'input_boolean.valvola_bagno_piccolo' %}
+              timer.valvola_bagno_piccolo
+            {% elif trigger.entity_id == 'input_boolean.valvola_bagno_grande' %}
+              timer.valvola_bagno_grande
+            {% elif trigger.entity_id == 'input_boolean.valvola_camera' %}
+              timer.valvola_camera
+            {% endif %}
 
   ######################################################################
   # Switch Off Valve
@@ -110,3 +178,84 @@ automation:
             {% elif trigger.entity_id == 'input_boolean.valvola_camera' %}
               climate.camera
             {% endif %}
+      - action: timer.start
+        data_template:
+          entity_id: >
+            {% if trigger.entity_id == 'input_boolean.valvola_zona_giorno' %}
+              timer.valvola_zona_giorno
+            {% elif trigger.entity_id == 'input_boolean.valvola_cucina' %}
+              timer.valvola_cucina
+            {% elif trigger.entity_id == 'input_boolean.valvola_sala' %}
+              timer.valvola_sala
+            {% elif trigger.entity_id == 'input_boolean.valvola_studio' %}
+              timer.valvola_studio
+            {% elif trigger.entity_id == 'input_boolean.valvola_bagno_piccolo' %}
+              timer.valvola_bagno_piccolo
+            {% elif trigger.entity_id == 'input_boolean.valvola_bagno_grande' %}
+              timer.valvola_bagno_grande
+            {% elif trigger.entity_id == 'input_boolean.valvola_camera' %}
+              timer.valvola_camera
+            {% endif %}
+          duration: "{{ (states('input_number.netatmo_manual_temperature')) | int // 60}}:{{(states('input_number.netatmo_manual_temperature')) | int % 60}}:0"
+
+  ######################################################################
+  # Automation triggered after manual temperature set timeout elapsed
+  ######################################################################
+  - alias: "Termosifoni: Scadenza timeout impostazione manuale"
+    id: "termosifoni_scadenza_timeout_impostazione_manuale"
+    mode: parallel
+  
+    triggers:
+    - trigger: event
+      event_type: timer.finished
+      event_data:
+        entity_id: timer.valvola_zona_giorno
+    - trigger: event
+      event_type: timer.finished
+      event_data:
+        entity_id: timer.valvola_cucina
+    - trigger: event
+      event_type: timer.finished
+      event_data:
+        entity_id: timer.valvola_sala
+    - trigger: event
+      event_type: timer.finished
+      event_data:
+        entity_id: timer.valvola_studio
+    - trigger: event
+      event_type: timer.finished
+      event_data:
+        entity_id: timer.valvola_bagno_piccolo
+    - trigger: event
+      event_type: timer.finished
+      event_data:
+        entity_id: timer.valvola_bagno_grande
+    - trigger: event
+      event_type: timer.finished
+      event_data:
+        entity_id: timer.valvola_camera
+
+    actions:
+      - action: input_boolean.turn_on
+        data_template:
+          entity_id: >
+            {% if trigger.event.data.entity_id == 'timer.valvola_zona_giorno' %}
+              input_boolean.valvola_zona_giorno
+            {% elif trigger.event.data.entity_id == 'timer.valvola_cucina' %}
+              input_boolean.valvola_cucina
+            {% elif trigger.event.data.entity_id == 'timer.valvola_sala' %}
+              input_boolean.valvola_sala
+            {% elif trigger.event.data.entity_id == 'timer.valvola_studio' %}
+              input_boolean.valvola_studio
+            {% elif trigger.event.data.entity_id == 'timer.valvola_bagno_piccolo' %}
+              input_boolean.valvola_bagno_piccolo
+            {% elif trigger.event.data.entity_id == 'timer.valvola_bagno_grande' %}
+              input_boolean.valvola_bagno_grande
+            {% elif trigger.event.data.entity_id == 'timer.valvola_camera' %}
+              input_boolean.valvola_camera
+            {% endif %}
+      - action: script.notify_all
+        data_template:
+          title: "Home Assistant - Termosifoni"
+          message: "Il termosifone {{ trigger.event.data.entity_id | replace('timer.valvola_', '') | replace('_', ' ') }} si รจ riacceso"
+          destination: all