last_changed
- Stan żarówki
Po mrugnięciu (On/Off) zmienia się “liczenie” od ostatniej zmiany.
Tak jak chcesz właśnie przetestował i działa a całość została rozbita ma sekcji.
input_number:
ile_minut:
name: Światło w garażu ile minut
initial: 0
min: 0
max: 120
step: 1
min: 0
- ustawienie “0” można wykorzystać do wyłączenia (przesuń suwak na “0” a światło zgaśnie)
Automatyzacja : ( ma zadanie włączyć i wyłączyć światło po zmianie "Ile minut "
alias: Włącz i wyłącz światło w garażu po czasie
description: ""
triggers:
- entity_id:
- input_number.ile_minut
trigger: state
actions:
- entity_id: light.garaz
action: light.turn_on
- delay:
minutes: "{{ states('input_number.ile_minut') | int }}"
- entity_id: light.garaz
action: light.turn_off
mode: restart
Sensor: (“Czas do wyłączenia światła w garażu” - wylicza ile zostało czasu do wyłączenia światła)
{% if is_state('light.garaz', 'on') %}
{% set ile_minut = states('input_number.ile_minut') | int %}
{% set czas_wlaczenia = as_timestamp(states.light.garaz.last_changed) %}
{% set czas_pozostaly = (ile_minut * 60) - (as_timestamp(now()) - czas_wlaczenia) %}
{% if czas_pozostaly > 0 %}
{{ czas_pozostaly | timestamp_custom('%M:%S', false) }} # tylko minuty i sekundy
{% else %}
00:00 # format czasu, zostanie wykorzystany/rozbity w następnej automatyzacji
{% endif %}
{% else %}
Jest wyłączone
{% endif %}
Automatyzacja: ( która tylko przygasza chwilowo światło )
alias: Przygaś światło w garażu przed wyłączeniem
description: "Przygaś światło do 20% na 1 sekundę, a następnie ustaw na 100%"
trigger:
- platform: template
value_template: >
{% set czas = states('sensor.czas_do_wylaczenia_swiatla_w_garazu') %}
{% set minuty = czas.split(':')[0] | int %}
{% set sekundy = czas.split(':')[1] | int %}
{% set czas_w_sekundach = (minuty * 60) + sekundy %}
{{ czas_w_sekundach < 60 }}
condition: []
action:
- service: light.turn_on
target:
entity_id: light.garaz
data:
brightness_pct: 20
- delay:
seconds: 1
- service: light.turn_on
target:
entity_id: light.garaz
data:
brightness_pct: 100
mode: single
Mam nadzieje że masz żarówkę z możliwością ustawienia jasności
Przygaszenie nie zmienia stanu żarówki (states.light.garaz.last_changed) więc nie ma odliczania od “nastawy” po “mrugnięciu”
Np. # format czasu, ..
w kodzie, jest komentarzem/opisem zwłaszcza w szablonach proponuje je usunąć.