diff --git a/include/automations/presence_simulation.yaml b/include/automations/presence_simulation.yaml index b4cf3ae..221ea75 100644 --- a/include/automations/presence_simulation.yaml +++ b/include/automations/presence_simulation.yaml @@ -1,184 +1,178 @@ -alias: Presence Simulation - Tidsblokke (realistisk) -mode: restart +- alias: Presence Simulation - Tidsblokke (realistisk) + mode: restart -trigger: - - platform: time - at: "07:00:00" - - platform: time - at: "12:00:00" - - platform: time - at: "18:00:00" + trigger: + - platform: time + at: "07:00:00" + - platform: time + at: "12:00:00" + - platform: time + at: "18:00:00" -condition: - - condition: state - entity_id: input_boolean.presence_simulation - state: "on" + condition: + - condition: state + entity_id: input_boolean.presence_simulation + state: "on" -action: - - variables: - lights_morning: - - light.livingroom - - light.indkoersel_2 - - light.andreas_vaerelse - - light.bedroom - - light.daniels_vaerelse - - light.forgang + action: + - variables: + lights_morning: + - light.livingroom + - light.indkorsel_2 + - light.andreas_vaerelse + - light.bedroom + - light.daniels_vaerelse + - light.forgang - lights_midday: - - light.kokken - - light.indkoersel + lights_midday: + - light.livingroom - lights_evening: - - light.livingroom - - light.indkoersel_2 - - light.andreas_vaerelse - - light.bedroom - - light.daniels_vaerelse - - light.forgang - rand_music: "{{ range(0,100) | random }}" + lights_evening: + - light.livingroom + - light.indkorsel_2 + - light.andreas_vaerelse + - light.bedroom + - light.daniels_vaerelse + - light.forgang - - choose: + rand_music: "{{ range(0,100) | random }}" - # 🌅 MORGEN - - conditions: - - condition: time - after: "06:59:00" - before: "12:00:00" - sequence: - - - repeat: - for_each: "{{ lights_morning }}" - sequence: - - service: light.turn_on - target: - entity_id: "{{ repeat.item }}" - - delay: - seconds: "{{ range(30,180) | random }}" - - - delay: - minutes: "{{ range(10,30) | random }}" - - - repeat: - for_each: "{{ lights_morning | reverse }}" - sequence: - - service: light.turn_off - target: - entity_id: "{{ repeat.item }}" - - delay: - seconds: "{{ range(20,120) | random }}" - - - choose: - - conditions: - - condition: template - value_template: "{{ rand_music < 20 }}" + - choose: + # 🌅 MORGEN + - conditions: + - condition: time + after: "06:59:00" + before: "12:00:00" + sequence: + - repeat: + for_each: "{{ lights_morning }}" sequence: - - service: media_player.play_media + - service: light.turn_on target: - entity_id: media_player.kokken - data: - media_content_type: music - media_content_id: "spotify:playlist:37i9dQZF1EVHGWrwldPRtj" - + entity_id: "{{ repeat.item }}" - delay: - minutes: "{{ range(5,15) | random }}" + seconds: "{{ range(30,180) | random }}" - - service: media_player.media_stop - target: - entity_id: media_player.kokken + - delay: + minutes: "{{ range(10,30) | random }}" - - # 🌤️ MIDDAG - - conditions: - - condition: time - after: "11:59:00" - before: "18:00:00" - sequence: - - - repeat: - for_each: "{{ lights_midday }}" - sequence: - - service: light.turn_on - target: - entity_id: "{{ repeat.item }}" - - delay: - seconds: "{{ range(60,300) | random }}" - - - delay: - minutes: "{{ range(5,20) | random }}" - - - repeat: - for_each: "{{ lights_midday | reverse }}" - sequence: - - service: light.turn_off - target: - entity_id: "{{ repeat.item }}" - - delay: - seconds: "{{ range(30,180) | random }}" - - - choose: - - conditions: - - condition: template - value_template: "{{ rand_music < 30 }}" + - repeat: + for_each: "{{ lights_morning | reverse }}" sequence: - - service: media_player.play_media + - service: light.turn_off target: - entity_id: media_player.kokken - data: - media_content_type: music - media_content_id: "spotify:playlist:37i9dQZF1EVHGWrwldPRtj" - + entity_id: "{{ repeat.item }}" - delay: - minutes: "{{ range(5,15) | random }}" + seconds: "{{ range(20,120) | random }}" - - service: media_player.media_stop - target: - entity_id: media_player.kokken + - choose: + - conditions: + - condition: template + value_template: "{{ rand_music < 20 }}" + sequence: + - service: media_player.play_media + target: + entity_id: media_player.kokken + data: + media_content_type: music + media_content_id: "spotify:playlist:37i9dQZF1EVHGWrwldPRtj" + - delay: + minutes: "{{ range(5,15) | random }}" - # 🌙 AFTEN - - conditions: - - condition: time - after: "17:59:00" - before: "22:30:00" - sequence: + - service: media_player.media_stop + target: + entity_id: media_player.kokken - - repeat: - for_each: "{{ lights_evening }}" - sequence: - - service: light.turn_on - target: - entity_id: "{{ repeat.item }}" - - delay: - seconds: "{{ range(20,120) | random }}" - - - delay: - minutes: "{{ range(15,60) | random }}" - - - repeat: - for_each: "{{ lights_evening | reverse }}" - sequence: - - service: light.turn_off - target: - entity_id: "{{ repeat.item }}" - - delay: - seconds: "{{ range(20,120) | random }}" - - - choose: - - conditions: - - condition: template - value_template: "{{ rand_music < 50 }}" + # 🌤️ MIDDAG + - conditions: + - condition: time + after: "11:59:00" + before: "18:00:00" + sequence: + - repeat: + for_each: "{{ lights_midday }}" sequence: - - service: media_player.play_media + - service: light.turn_on target: - entity_id: media_player.kokken - data: - media_content_type: music - media_content_id: "spotify:playlist:37i9dQZF1EVHGWrwldPRtj" - + entity_id: "{{ repeat.item }}" - delay: - minutes: "{{ range(10,20) | random }}" + seconds: "{{ range(60,300) | random }}" - - service: media_player.media_stop + - delay: + minutes: "{{ range(5,20) | random }}" + + - repeat: + for_each: "{{ lights_midday | reverse }}" + sequence: + - service: light.turn_off target: - entity_id: media_player.kokken + entity_id: "{{ repeat.item }}" + - delay: + seconds: "{{ range(30,180) | random }}" + + - choose: + - conditions: + - condition: template + value_template: "{{ rand_music < 30 }}" + sequence: + - service: media_player.play_media + target: + entity_id: media_player.kokken + data: + media_content_type: music + media_content_id: "spotify:playlist:37i9dQZF1EVHGWrwldPRtj" + + - delay: + minutes: "{{ range(5,15) | random }}" + + - service: media_player.media_stop + target: + entity_id: media_player.kokken + + # 🌙 AFTEN + - conditions: + - condition: time + after: "17:59:00" + before: "22:30:00" + sequence: + - repeat: + for_each: "{{ lights_evening }}" + sequence: + - service: light.turn_on + target: + entity_id: "{{ repeat.item }}" + - delay: + seconds: "{{ range(20,120) | random }}" + + - delay: + minutes: "{{ range(15,60) | random }}" + + - repeat: + for_each: "{{ lights_evening | reverse }}" + sequence: + - service: light.turn_off + target: + entity_id: "{{ repeat.item }}" + - delay: + seconds: "{{ range(20,120) | random }}" + + - choose: + - conditions: + - condition: template + value_template: "{{ rand_music < 50 }}" + sequence: + - service: media_player.play_media + target: + entity_id: media_player.kokken + data: + media_content_type: music + media_content_id: "spotify:playlist:37i9dQZF1EVHGWrwldPRtj" + + - delay: + minutes: "{{ range(10,20) | random }}" + + - service: media_player.media_stop + target: + entity_id: media_player.kokken diff --git a/include/automations/start_vacation.yaml b/include/automations/start_vacation.yaml index e0c719a..b0d436e 100644 --- a/include/automations/start_vacation.yaml +++ b/include/automations/start_vacation.yaml @@ -1,15 +1,11 @@ -alias: Start Vacation Mode -description: Aktiverer presence simulation ved feriestart og planlægger slutdato -trigger: - - platform: time - at: "2026-03-28 14:00:00" # Ferie start -action: - - service: input_boolean.turn_on - target: - entity_id: input_boolean.presence_simulation - # Planlæg slutdato automatisk - - delay: - days: 7 - - service: input_boolean.turn_off - target: - entity_id: input_boolean.presence_simulation +- alias: Vacation Mode - Start via dashboard + description: Aktiverer presence simulation, når Vacation Mode tændes fra dashboardet + trigger: + - platform: state + entity_id: input_boolean.vacation_mode + to: "on" + + action: + - service: input_boolean.turn_on + target: + entity_id: input_boolean.presence_simulation diff --git a/include/automations/vacation_recovery.yaml b/include/automations/vacation_recovery.yaml index 37f3a9b..5ffe7ed 100644 --- a/include/automations/vacation_recovery.yaml +++ b/include/automations/vacation_recovery.yaml @@ -1,26 +1,28 @@ -alias: Vacation Mode - Recovery efter restart +- alias: Vacation Mode - Recovery efter restart + trigger: + - platform: homeassistant + event: start -trigger: - - platform: homeassistant - event: start + condition: + - condition: state + entity_id: input_boolean.vacation_mode + state: "on" -condition: - - condition: state - entity_id: input_boolean.vacation_mode - state: "on" - -action: - - choose: - - - conditions: - - condition: template - value_template: > - {% set dt = states('input_datetime.vacation_end') %} - {{ dt not in ['unknown','unavailable',''] and - now() >= as_datetime(dt) }} - sequence: - - service: input_boolean.turn_off - target: - entity_id: - - input_boolean.vacation_mode - - input_boolean.presence_simulation + action: + - choose: + - conditions: + - condition: template + value_template: > + {% set dt = states('input_datetime.vacation_end') %} + {{ dt not in ['unknown','unavailable',''] and + now() >= as_datetime(dt) }} + sequence: + - service: input_boolean.turn_off + target: + entity_id: + - input_boolean.vacation_mode + - input_boolean.presence_simulation + default: + - service: input_boolean.turn_on + target: + entity_id: input_boolean.presence_simulation