{ config, ... }: { imports = [ ./mpd.nix ]; services.homeAssistantConfig = { sensor = [{ platform = "time_date"; display_options = [ "time" "date" ]; }]; input_datetime = { wakeup = { name = "Arbeitswecker"; has_time = true; has_date = false; icon = "mdi:alarm"; }; leave = { name = "Turn off Time"; has_time = true; has_date = false; icon = "mdi:alarm"; }; return = { name = "Return home"; has_time = true; has_date = false; icon = "mdi:alarm"; }; sleep = { name = "Turn off Time"; has_time = true; has_date = false; icon = "mdi:alarm"; }; }; input_boolean = { wakeup = { name = "enable"; icon = "mdi:toggle-switch"; }; leave = { name = "enable"; icon = "mdi:toggle-switch"; }; return = { name = "enable"; icon = "mdi:toggle-switch"; }; sleep = { name = "enable"; icon = "mdi:toggle-switch"; }; }; input_select = { wakeup = { name = "Playlist"; icon = "mdi:library-music"; options = [ "wakeup" "wakeup1" "wakeup2" ]; }; }; binary_sensor = [ { platform = "tod"; name = "night"; after = "sunset"; before = "sunrise"; } { platform = "tod"; name = "daytime"; after = "sunrise"; before = "sunset"; } ]; group = { timer_wakeup = { name = "Arbeits Aufwachen"; entities = [ "input_boolean.wakeup" "input_datetime.wakeup" "input_select.wakeup" ]; }; timer_leave = { name = "Leave Time"; entities = [ "input_boolean.leave" "input_datetime.leave" ]; }; timer_return = { name = "Nach Hause kommen"; entities = [ "input_boolean.sleep" "input_datetime.sleep" ]; }; timers.entities = [ "group.timer_wakeup" "group.timer_leave" "group.timer_return" "group.timer_sleep" "binary_sensor.night" "binary_sensor.daytime" ]; today.entities = [ "sensor.date" "sensor.time" ]; }; automation = [ { alias = "Wecker Arbeiten"; trigger = { platform = "template"; value_template = "{{ states('sensor.time') == (states.input_datetime.wakeup.attributes.timestamp | int | timestamp_custom('%H:%M', False)) }}"; }; condition = { condition = "and"; conditions = [ { condition = "state"; entity_id = "input_boolean.wakeup"; state = "on"; } { condition = "state"; entity_id = "binary_sensor.workday"; state = "on"; } ]; }; action = [ { alias = "Play wakeup list"; service = "media_player.play_media"; data_template = { entity_id = "media_player.mpd"; media_content_type = "playlist"; media_content_id = "{{ states('input_select.wakeup') }}"; }; } { alias = "turn all on"; service = "script.turn_on"; entity_id = "script.turn_all_on"; } ]; } { alias = "Leave Turn all off Timer"; trigger = { platform = "template"; value_template = "{{ states('sensor.time') == (states.input_datetime.leave.attributes.timestamp | int | timestamp_custom('%H:%M', False)) }}"; }; condition = { condition = "and"; conditions = [{ condition = "state"; entity_id = "input_boolean.leave"; state = "on"; }]; }; action = [{ alias = "turn all off"; service = "script.turn_on"; entity_id = "script.turn_all_off"; }]; } { alias = "Return to Home"; trigger = { platform = "template"; value_template = "{{ states('sensor.time') == (states.input_datetime.return.attributes.timestamp | int | timestamp_custom('%H:%M', False)) }}"; }; condition = { condition = "and"; conditions = [{ condition = "state"; entity_id = "input_boolean.return"; state = "on"; }]; }; action = [{ alias = "turn all on"; service = "script.turn_on"; entity_id = "script.turn_all_on"; }]; } { alias = "Sleep Turn all off Timer"; trigger = { platform = "template"; value_template = "{{ states('sensor.time') == (states.input_datetime.sleep.attributes.timestamp | int | timestamp_custom('%H:%M', False)) }}"; }; condition = { condition = "and"; conditions = [{ condition = "state"; entity_id = "input_boolean.sleep"; state = "on"; }]; }; action = [{ alias = "turn all off"; service = "script.turn_on"; entity_id = "script.turn_all_off"; }]; } ]; }; }