Salve a tutti!
Sono nuovo qui, mi sto cimentando con le automazioni da poco.
Sono incappato in un non funzionamento di alcune mie automazioni, in particolare 6, per controllo temperatura esterna superiore d'estate e inferiore d'inverno rispetto a quella interna e viceversa, umidità, esterna alta o bassa), tutte funzionanti, finché non ho messo nella condition ciò che stava nel trigger.
Così funziona:
trigger:
platform: template
value_template: "{{ ((states.sensor.nightzone_heating_humidity.state|float) > (states.sensor.weather_humidity.state|float)) and states.sensor.nightzone_heating_humidity.state|float >= 55 }}"
condition: []
Ma così no:
trigger:
platform: time_pattern
hours: 3
condition:
condition: template
value_template: "{{ ((states.sensor.nightzone_heating_humidity.state|float) > (states.sensor.weather_humidity.state|float)) and states.sensor.nightzone_heating_humidity.state|float >= 55 }}"
Ho fatto questa scelta perché altrimenti il sistema, ad ogni check della temperatura esterna e interna alla casa, mi inviava 20000 notifiche al giorno.
Se lancio l'automazione manualmente dal pannello di configurazione di HA ricevo le notifiche, ma l'automazione da sola non parte...
Ho creato inoltre alcune altre automazioni per il controllo della batteria dei device (device carica al 100%, device con carica sotto il 50%, più una specifica per l'iPad di mia moglie che funge da Hub di HomeKit).
Dopo varie vicessitudini sono riuscito ad applicare nel template del trigger un metodo appreso da un articolo di Saggiamente, ma stavolta, se faccio un check sul battery_status (Charging / NotCharging) o sul last_changed dell'automazione, questa non parte.
Esempio 1 (senza condition funziona, con la condition no):
- alias: "[device] device con batteria scarica"
initial_state: "on"
trigger:
platform: template
# list of devices with battery level < 50%
value_template: "{{ states | selectattr('attributes.battery_level', 'defined') | selectattr('attributes.battery_level', '<', 50) | map(attribute='name') | join(', ') != '' }}"
condition:
condition: template
# check if devices are not charging
value_template: "{{ states | selectattr('attributes.battery_status', 'defined') | selectattr('attributes.battery_status', '==', 'NotCharging') | map(attribute='name') | join(', ') }}"
Esempio 2 (senza condition funziona):
- alias: "[device] batteria iPad scarica"
initial_state: "on"
trigger:
platform: numeric_state
below: 50
entity_id: sensor.ipad_battery_state
condition:
condition: and
conditions:
- condition: template
value_template: "{{ (states.sensor.time.last_changed - states.automation.device_batteria_ipad_scarica.last_changed).total_seconds() > 3600 }}"
- condition: template
# check if devices are charging
value_template: "{{ state_attr('device_tracker.ipad', 'battery_status') == 'NotCharging' }}"
Qualche idea? Grazie!