137 lines
3.3 KiB
Nix
137 lines
3.3 KiB
Nix
# Provides:
|
|
# timer
|
|
# automation
|
|
# script
|
|
|
|
# Needs:
|
|
# sensor.zigbee_btn1_click
|
|
# notify.signal_home
|
|
let
|
|
button = "sensor.zigbee_btn2_click";
|
|
notify = "notify.signal_home";
|
|
in
|
|
{
|
|
services.home-assistant.config = {
|
|
timer.kurzzeitwecker =
|
|
{
|
|
name = "Zigbee Kurzzeitwecker";
|
|
duration = 300;
|
|
};
|
|
script.add_5_minutes_to_kurzzeitwecker =
|
|
{
|
|
alias = "Add 5 minutes to kurzzeitwecker";
|
|
sequence = [
|
|
{ service = "timer.pause";
|
|
entity_id = "timer.kurzzeitwecker";
|
|
}
|
|
{ service = "timer.start";
|
|
data_template = {
|
|
entity_id = "timer.kurzzeitwecker";
|
|
duration = ''
|
|
{% set r = state_attr('timer.kurzzeitwecker', 'remaining') ~ '-0000' %}
|
|
{% set t = strptime(r, '%H:%M:%S.%f%z') %}
|
|
{{ (as_timestamp(t) + 300) | timestamp_custom('%H:%M:%S', false) }}
|
|
'';
|
|
};
|
|
}
|
|
];
|
|
};
|
|
automation =
|
|
[
|
|
{
|
|
alias = "Start Timer 5min";
|
|
trigger = {
|
|
platform = "state";
|
|
entity_id = button;
|
|
to = "single";
|
|
};
|
|
condition =
|
|
{ condition = "state";
|
|
entity_id = "timer.kurzzeitwecker";
|
|
state = "idle";
|
|
};
|
|
|
|
action = [
|
|
{ service = "timer.start";
|
|
entity_id = "timer.kurzzeitwecker";
|
|
data.duration = "00:05:00";
|
|
}
|
|
{
|
|
service = notify;
|
|
data.message = "Timer gestartet {{state_attr('timer.kurzzeitwecker', 'remaining') }}, verbleibend ";
|
|
}
|
|
];
|
|
}
|
|
{
|
|
alias = "Add Timer 5min";
|
|
trigger = {
|
|
platform = "state";
|
|
entity_id = button;
|
|
to = "single";
|
|
};
|
|
condition =
|
|
{ condition = "state";
|
|
entity_id = "timer.kurzzeitwecker";
|
|
state = "active";
|
|
};
|
|
|
|
action = [
|
|
{ service = "homeassistant.turn_on";
|
|
entity_id = "script.add_5_minutes_to_kurzzeitwecker";
|
|
}
|
|
{
|
|
service = notify;
|
|
data.message = ''Timer um 5 minuten verlängert, {{ state_attr('timer.kurzzeitwecker', 'remaining') | truncate(9,True," ") }} verbleibend '';
|
|
}
|
|
];
|
|
}
|
|
{
|
|
alias = "Stop timer on double click";
|
|
trigger = [
|
|
{
|
|
platform = "state";
|
|
entity_id = button;
|
|
to = "double";
|
|
}
|
|
{
|
|
platform = "state";
|
|
entity_id = button;
|
|
to = "triple";
|
|
}
|
|
];
|
|
condition =
|
|
{
|
|
condition = "state";
|
|
entity_id = "timer.kurzzeitwecker";
|
|
state = "active";
|
|
};
|
|
|
|
action = [
|
|
{
|
|
service = "timer.cancel";
|
|
entity_id = "timer.kurzzeitwecker";
|
|
}
|
|
{
|
|
service = notify;
|
|
data.message = "Timer gestoppt, abgebrochen";
|
|
}
|
|
];
|
|
}
|
|
{
|
|
alias = "Timer Finished";
|
|
trigger = {
|
|
platform = "event";
|
|
event_type = "timer.finished";
|
|
event_data.entity_id = "timer.kurzzeitwecker";
|
|
};
|
|
action = [
|
|
{
|
|
service = notify;
|
|
data.message = "Timer beendet";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
}
|