AutomationDataset/DKFrederik/DKFrederik_automations.yaml

1418 lines
45 KiB
YAML

- id: '1697148849415'
alias: Trine er kommet hjem - Frederik
description: ''
trigger:
- platform: state
entity_id:
- person.trine_haase_pedersen
from: not_home
to: home
action:
- service: notify.mobile_app_frederik_iphone_15_pro
data:
message: Trine er kommet hjem
- id: '1697148849515'
alias: Trine er kommet hjem - Sophie
description: ''
trigger:
- platform: state
entity_id:
- person.trine_haase_pedersen
from: not_home
to: home
action:
- service: notify.mobile_app_sophie_iphone
data:
message: Mor er kommet hjem
- id: '1697148849615'
alias: Trine er kommet hjem - Victoria
description: ''
triggers:
- entity_id:
- person.trine_haase_pedersen
from: not_home
to: home
trigger: state
actions:
- action: notify.mobile_app_victoria_telefon
data:
message: Mor er kommet hjem
- id: '1697148849715'
alias: Trine er kommet hjem - Tristan
description: ''
triggers:
- entity_id:
- person.trine_haase_pedersen
from: not_home
to: home
trigger: state
actions:
- action: notify.mobile_app_tristan_iphone_13_ny
data:
message: Mor er kommet hjem
- id: '2697148849715'
alias: Frederik er kommet hjem - Frederik
description: ''
trigger:
- platform: state
entity_id:
- person.frederik_kristian_pedersen
from: not_home
to: home
action:
- service: notify.mobile_app_frederik_iphone_15_pro
data:
message: Jeg er kommet hjem
- id: '2697148849615'
alias: Frederik er kommet hjem - Victoria
description: ''
triggers:
- entity_id:
- person.frederik_kristian_pedersen
from: not_home
to: home
trigger: state
actions:
- action: notify.mobile_app_victoria_telefon
data:
message: Far er kommet hjem
- id: '2697148849515'
alias: Frederik er kommet hjem - Tristan
description: ''
triggers:
- entity_id:
- person.frederik_kristian_pedersen
from: not_home
to: home
trigger: state
actions:
- action: notify.mobile_app_tristan_iphone_13_ny
data:
message: Far er kommet hjem
- id: '2697148849415'
alias: Frederik er kommet hjem - Trine
description: ''
triggers:
- entity_id:
- person.frederik_kristian_pedersen
from: not_home
to: home
trigger: state
actions:
- action: notify.mobile_app_trine_iphone_14_pro
data:
message: Frederik er kommet hjem
- id: '26971488489515'
alias: Frederik er kommet hjem - Sophie
description: ''
trigger:
- platform: state
entity_id:
- person.frederik_kristian_pedersen
from: not_home
to: home
action:
- service: notify.mobile_app_sophie_iphone
data:
message: Far er kommet hjem
- id: '3697148849415'
alias: Sophie er kommet hjem - Frederik
description: ''
trigger:
- platform: state
entity_id:
- person.sophie_haase_pedersen
from: not_home
to: home
action:
- service: notify.mobile_app_frederik_iphone_15_pro
data:
message: Sophie er kommet hjem
- id: '3697148849515'
alias: Sophie er kommet hjem - Trine
description: ''
trigger:
- platform: state
entity_id:
- person.sophie_haase_pedersen
from: not_home
to: home
action:
- action: notify.mobile_app_trine_iphone_14_pro
data:
message: Sophie er kommet hjem
- id: '3697148849615'
alias: Sophie er kommet hjem - Victoria
description: ''
triggers:
- entity_id:
- person.sophie_haase_pedersen
from: not_home
to: home
trigger: state
actions:
- action: notify.mobile_app_victoria_telefon
data:
message: Sophe er kommet hjem
- id: '3697148849715'
alias: Sophie er kommet hjem - Tristan
description: ''
triggers:
- entity_id:
- person.sophie_haase_pedersen
from: not_home
to: home
trigger: state
actions:
- action: notify.mobile_app_tristan_iphone_13_ny
data:
message: Sophie er kommet hjem
- id: '4697148849415'
alias: Victoria er kommet hjem - Frederik
description: ''
trigger:
- platform: state
entity_id:
- person.victoria_haase_pedersen
from: not_home
to: home
action:
- service: notify.mobile_app_frederik_iphone_15_pro
data:
message: Victoria er kommet hjem
- id: '4697148849515'
alias: Victoria er kommet hjem - Trine
description: ''
trigger:
- platform: state
entity_id:
- person.victoria_haase_pedersen
from: not_home
to: home
action:
- action: notify.mobile_app_trine_iphone_14_pro
data:
message: Victoria er kommet hjem
- id: '4697148849615'
alias: Victoria er kommet hjem - Sophie
description: ''
trigger:
- platform: state
entity_id:
- person.victoria_haase_pedersen
from: not_home
to: home
action:
- service: notify.mobile_app_sophie_iphone
data:
message: Victoria er kommet hjem
- id: '4697148849715'
alias: Victoria er kommet hjem - Tristan
description: ''
triggers:
- entity_id:
- person.victoria_haase_pedersen
from: not_home
to: home
trigger: state
actions:
- action: notify.mobile_app_tristan_iphone_13_ny
data:
message: Victoria er kommet hjem
- id: '5697148849415'
alias: Tristan er kommet hjem - Frederik
description: ''
trigger:
- platform: state
entity_id:
- person.tristan
from: not_home
to: home
action:
- service: notify.mobile_app_frederik_iphone_15_pro
data:
message: Tristan er kommet hjem
- id: '5697148849515'
alias: Tristan er kommet hjem - Trine
description: ''
trigger:
- platform: state
entity_id:
- person.tristan
from: not_home
to: home
action:
- action: notify.mobile_app_trine_iphone_14_pro
data:
message: Tristan er kommet hjem
- id: '5697148849615'
alias: Tristan er kommet hjem - Sophie
description: ''
trigger:
- platform: state
entity_id:
- person.tristan
from: not_home
to: home
action:
- service: notify.mobile_app_sophie_iphone
data:
message: Tristan er kommet hjem
- id: '5697148849715'
alias: Tristan er kommet hjem - Victoria
description: ''
triggers:
- entity_id:
- person.tristan
from: not_home
to: home
trigger: state
actions:
- action: notify.mobile_app_victoria_telefon
data:
message: Tristan er kommet hjem
- id: '1721776282506'
alias: Sophie er kommet hjem TTS
description: ''
trigger:
- platform: zone
entity_id: device_tracker.sophie_iphone
zone: zone.home
event: enter
condition: []
action:
- service: tts.cloud_say
data:
entity_id: media_player.aben_lukke
message: Sophie er kommet hjem
language: da-DK
mode: single
- id: '1721777352759'
alias: Trine er kommet hjem TTS
description: ''
trigger:
- platform: zone
entity_id: person.trine_haase_pedersen
zone: zone.home
event: enter
condition: []
action:
- service: tts.cloud_say
data:
entity_id: media_player.aben_lukke
message: Mor er kommet hjem
language: da-DK
mode: single
- id: '1721778388939'
alias: Victoria er kommet hjem TTS
description: resume playing after TTS
trigger:
- platform: zone
entity_id: person.victoria_haase_pedersen
zone: zone.home
event: enter
condition: []
action:
- service: tts.cloud_say
data:
entity_id: media_player.aben_lukke
message: Victoria er kommet hjem
language: da-DK
mode: single
- id: '1721778520182'
alias: Tristan er kommet hjem TTS
description: Resume playing after TTS
trigger:
- platform: zone
entity_id: person.tristan
zone: zone.home
event: enter
condition: []
action:
- service: tts.cloud_say
data:
entity_id: media_player.aben_lukke
message: Tristan er kommet hjem
language: da-DK
mode: single
- id: '1721778585916'
alias: Frederik er kommet hjem TTS
description: Resume playing after TTS
trigger:
- platform: zone
entity_id: person.frederik_kristian_pedersen
zone: zone.home
event: enter
condition: []
action:
- service: tts.cloud_say
data:
entity_id: media_player.aben_lukke
message: Far er kommet hjem
language: da-DK
mode: single
- id: '1721779415086'
alias: 'Bryggers døren er blevet åbnet '
description: resume playing after TTS
triggers:
- type: opened
device_id: bd8ab77921a34425041ae4cef5632ec4
entity_id: 3f44441253de2330a9ee51f89655ff06
domain: binary_sensor
trigger: device
conditions: []
actions:
- metadata: {}
data:
cache: true
entity_id: media_player.aben_lukke
message: Bryggersdøren er blevet åbnet
language: da-DK
action: tts.cloud_say
mode: single
- id: '1722303039761'
alias: Frederik Husk at købe
description: ''
trigger:
- platform: zone
entity_id: person.frederik_kristian_pedersen
zone: zone.rema1000
event: enter
- platform: zone
entity_id: person.frederik_kristian_pedersen
zone: zone.fotex
event: enter
- platform: zone
entity_id: person.frederik_kristian_pedersen
zone: zone.coop_365_hasseris
event: enter
- platform: zone
entity_id: person.frederik_kristian_pedersen
zone: zone.handel_netto_hasseris
event: enter
condition: []
action:
- service: notify.mobile_app_frederik_iphone_15_pro
metadata: {}
data:
message: Husk og købe disse vare
title: Tryk her
data:
clickAction: /Huskelister
url: /todo?entity_id=todo.indkobsliste
mode: single
- id: '1722303277292'
alias: Trine Husk at købe
description: ''
trigger:
- platform: zone
entity_id: person.trine_haase_pedersen
zone: zone.rema1000
event: enter
condition: []
action:
- action: notify.mobile_app_trine_iphone_14_pro
data:
data:
clickAction: /Huskelister
url: /todo?entity_id=todo.indkobsliste
title: Tryk her
message: Husk og købe disse vare
mode: single
- id: '1722349301296'
alias: 'Trine - Husk at købe '
description: ''
trigger:
- platform: zone
entity_id: person.trine_haase_pedersen
zone: zone.rema1000
event: enter
- platform: zone
entity_id: person.trine_haase_pedersen
zone: zone.fotex
event: enter
- platform: zone
entity_id: person.trine_haase_pedersen
zone: zone.coop_365_hasseris
event: enter
- platform: zone
entity_id: person.trine_haase_pedersen
zone: zone.handel_netto_hasseris
event: enter
condition: []
action:
- action: notify.mobile_app_trine_iphone_14_pro
data:
data:
clickAction: /Huskelister
url: /todo?entity_id=todo.indkobsliste
message: Husk og købe disse vare
title: Tryk her
mode: single
- id: '1727648335717'
alias: Legestue - sluk TV efter kl 2200
description: ''
trigger:
- platform: time
at: '22:00:00'
condition: []
action:
- action: switch.turn_off
metadata: {}
data: {}
target:
device_id: c9e17d5fef2b455565f01cf5cb1c3a72
mode: single
- id: '1727648397425'
alias: Legestue - tænd TV efter kl 0600
description: ''
trigger:
- platform: time
at: 06:00:00
condition: []
action:
- action: switch.turn_on
metadata: {}
data: {}
target:
device_id: c9e17d5fef2b455565f01cf5cb1c3a72
mode: single
- id: '1734593887463'
alias: Kontor - vindue åben
description: Luk Radiator når vinduet åbnes
triggers:
- type: opened
device_id: 6685d2781c1b97e3227e8ddb4f0a9387
entity_id: 723e8118874603457d5746b52aa633f1
domain: binary_sensor
trigger: device
conditions: []
actions:
- action: climate.set_hvac_mode
metadata: {}
data:
hvac_mode: 'off'
target:
device_id: 70031b73bebd812285d08297d6d4cd38
mode: single
- id: '1734593961335'
alias: Kontor - vindue lukket
description: Sæt Radiator til auto når vinduet Lukkes
triggers:
- type: not_opened
device_id: 6685d2781c1b97e3227e8ddb4f0a9387
entity_id: 723e8118874603457d5746b52aa633f1
domain: binary_sensor
trigger: device
conditions: []
actions:
- action: climate.set_hvac_mode
metadata: {}
data:
hvac_mode: auto
target:
device_id: 70031b73bebd812285d08297d6d4cd38
mode: single
- id: '1734680525144'
alias: Kontor - remoteTest - sluk lys
description: ''
triggers:
- domain: mqtt
device_id: 9d40a6d3b1d108acd0092f707f339bf0
type: action
subtype: arrow_right_click
trigger: device
conditions: []
actions:
- type: turn_off
device_id: 6e65da499107f5e51b96b478fad69e86
entity_id: 2cc18da8fb81e31ca785b2a140f2ea36
domain: light
- type: turn_off
device_id: 56b3b560b189448e5adb7876b5ba6988
entity_id: 9a6783159b65f0db65209a0b725a8280
domain: light
mode: single
- id: '1734680554585'
alias: Kontor - remoteTest - Tænd lys
description: ''
triggers:
- domain: mqtt
device_id: 9d40a6d3b1d108acd0092f707f339bf0
type: action
subtype: arrow_left_click
trigger: device
conditions: []
actions:
- type: turn_on
device_id: 6e65da499107f5e51b96b478fad69e86
entity_id: 2cc18da8fb81e31ca785b2a140f2ea36
domain: light
brightness_pct: 60
- type: turn_on
device_id: 56b3b560b189448e5adb7876b5ba6988
entity_id: 9a6783159b65f0db65209a0b725a8280
domain: light
brightness_pct: 60
mode: single
- id: '1734680599895'
alias: Baghave - Tænd/sluk
description: ''
triggers:
- domain: mqtt
device_id: 9d40a6d3b1d108acd0092f707f339bf0
type: action
subtype: brightness_up_click
trigger: device
conditions: []
actions:
- type: toggle
device_id: b15e53728be37e4ae307509b4bbed905
entity_id: ed48ca70f647f9eac01ebbefb009c1cd
domain: switch
mode: single
- id: '1734690378274'
alias: Legestue - Tænd lys hvis der er nogen i lokalet
description: ''
triggers:
- type: occupied
device_id: ba17a19135747d5845be2b562754905b
entity_id: 322a2c0112b2f673c85db15150579961
domain: binary_sensor
trigger: device
conditions: []
actions:
- action: light.turn_on
metadata: {}
data:
brightness_pct: 60
rgb_color:
- 240
- 178
- 112
target:
entity_id:
- light.legestue_light_legestue1
- light.legestue_light_legestue2
- light.legestue_light_legestue3
mode: single
- id: '1734690419544'
alias: Legestue - Sluk lys hvis der ikke er nogen i lokalet
description: ''
triggers:
- type: not_occupied
device_id: ba17a19135747d5845be2b562754905b
entity_id: 322a2c0112b2f673c85db15150579961
domain: binary_sensor
trigger: device
conditions: []
actions:
- action: light.turn_off
metadata: {}
data: {}
target:
entity_id:
- light.legestue_light_legestue1
- light.legestue_light_legestue2
- light.legestue_light_legestue3
mode: single
- id: '1734786548210'
alias: 'Sophie - sophie2 - tænd/sluk/skru op og ned '
description: ''
use_blueprint:
path: FloppyGit/tradfri_e1743_switch_to_light.yaml
input:
source_switch_e1743_action: sensor.sophie_remote_sophie2_action
target_light:
device_id: cac765242ce4b1a532fbc438cfa79097
- id: '1734786980649'
alias: Sophie - sophie1 - tænd/sluk/skru op og ned
description: ''
use_blueprint:
path: FloppyGit/tradfri_e1743_switch_to_light.yaml
input:
source_switch_e1743_action: sensor.sophie_remote_sophie1_action
target_light:
device_id: ba38ff9b156656877c62124304072f59
- id: '1734877370629'
alias: Kontor - Pressent - tænd lys
description: Tænd lys når der er nogen
triggers:
- type: occupied
device_id: d7d3bc79c625ac6be784158965c5efd7
entity_id: 2716cd871347a641e9e3816c0a9e7867
domain: binary_sensor
trigger: device
conditions: []
actions:
- choose:
- conditions:
- type: is_occupied
condition: device
device_id: d7d3bc79c625ac6be784158965c5efd7
entity_id: 2716cd871347a641e9e3816c0a9e7867
domain: binary_sensor
sequence:
- action: light.turn_on
metadata: {}
data:
brightness: 178
color_temp_kelvin: 330
target:
entity_id: light.kontor_group
- conditions:
- type: is_not_occupied
condition: device
device_id: d7d3bc79c625ac6be784158965c5efd7
entity_id: 2716cd871347a641e9e3816c0a9e7867
domain: binary_sensor
for:
hours: 0
minutes: 0
seconds: 0
sequence:
- action: light.turn_off
metadata: {}
data: {}
target:
entity_id: light.kontor_group
mode: restart
- id: '1734879019552'
alias: Stue - Tænd lille lampe sammen med sofa lys
description: ''
triggers:
- type: turned_on
device_id: 30f2b71db2fe6de49f43c9b48e67b429
entity_id: 7861d4d4869e92f5bc28e46e9f2a5ef1
domain: light
trigger: device
conditions: []
actions:
- type: turn_on
device_id: 97fa7024552e0b30df6473be1129dadd
entity_id: 62a0859166b131d5a113460522ec7cf4
domain: switch
mode: single
- id: '1734879050796'
alias: Stue - Sluk lille lampe sammen med sofa lys
description: ''
triggers:
- type: turned_off
device_id: 30f2b71db2fe6de49f43c9b48e67b429
entity_id: 7861d4d4869e92f5bc28e46e9f2a5ef1
domain: light
trigger: device
conditions: []
actions:
- type: turn_off
device_id: 97fa7024552e0b30df6473be1129dadd
entity_id: 62a0859166b131d5a113460522ec7cf4
domain: switch
mode: single
- id: '1735041774519'
alias: Køkken - spisebord - Tænd/Sluk
description: ''
triggers:
- domain: mqtt
device_id: cca2de2ff5712542389ae97e7981890f
type: action
subtype: toggle
trigger: device
conditions: []
actions:
- type: toggle
device_id: 243903f9e038dfd0ab9f4ec61e625371
entity_id: 234477e1b5a8be1a9723a99896d7dbb9
domain: light
mode: single
- id: '1735175315574'
alias: Kontor - remoteTest -Skru op
description: ''
triggers:
- domain: mqtt
device_id: 9d40a6d3b1d108acd0092f707f339bf0
type: action
subtype: arrow_left_hold
trigger: device
conditions: []
actions:
- device_id: 6e65da499107f5e51b96b478fad69e86
domain: light
entity_id: 2cc18da8fb81e31ca785b2a140f2ea36
type: brightness_increase
- device_id: 56b3b560b189448e5adb7876b5ba6988
domain: light
entity_id: 9a6783159b65f0db65209a0b725a8280
type: brightness_increase
mode: single
- id: '1735175377719'
alias: Kontor - remoteTest - Skru ned
description: ''
triggers:
- domain: mqtt
device_id: 9d40a6d3b1d108acd0092f707f339bf0
type: action
subtype: arrow_right_hold
trigger: device
conditions: []
actions:
- device_id: 6e65da499107f5e51b96b478fad69e86
domain: light
entity_id: 2cc18da8fb81e31ca785b2a140f2ea36
type: brightness_decrease
- device_id: 56b3b560b189448e5adb7876b5ba6988
domain: light
entity_id: 9a6783159b65f0db65209a0b725a8280
type: brightness_decrease
mode: single
- id: '1735176310831'
alias: Stue - Stor terrassedør åbnet TTS
description: ''
triggers:
- type: opened
device_id: ff9ef66b6ff1a955792a0ba960b28004
entity_id: 6094e2542e284055babcfca715c253b4
domain: binary_sensor
trigger: device
conditions: []
actions:
- action: tts.cloud_say
metadata: {}
data:
cache: false
entity_id: media_player.aben_lukke
message: Terrassedøren i stuen er blevet åbnet
language: da-DK
mode: single
- id: '1735876650796'
alias: Soveværelse - luk vindue
description: Sæt Radiator til auto når vinduet Lukkes
triggers:
- type: not_opened
device_id: 68272f2d2bd9c290a6ea9d41e706d4c9
entity_id: e47308fd3f35b9d3291a8bd8a0bfd504
domain: binary_sensor
trigger: device
conditions: []
actions:
- action: climate.set_hvac_mode
metadata: {}
data:
hvac_mode: auto
target:
device_id:
- 547da8a34695f82651d4b68935710d1d
mode: single
- id: '1735876690141'
alias: Soveværelse - åben vindue
description: Luk Radiator når vinduet åbnes
triggers:
- type: opened
device_id: 68272f2d2bd9c290a6ea9d41e706d4c9
entity_id: e47308fd3f35b9d3291a8bd8a0bfd504
domain: binary_sensor
trigger: device
conditions: []
actions:
- action: climate.set_hvac_mode
metadata: {}
data:
hvac_mode: 'off'
target:
device_id:
- 547da8a34695f82651d4b68935710d1d
mode: single
- id: '1740491821573'
alias: 'victoria turn off heating in victorias room '
description: 'turn off heating in victorias room if window opens '
triggers:
- type: opened
device_id: dc284837aff71d8b81a288d17962d9a5
entity_id: 922b17a39254b79f7e7773e61c86e3f1
domain: binary_sensor
trigger: device
conditions: []
actions:
- data: {}
action: climate.turn_off
target:
device_id: f3fbaf154948921904985aa4c21f2a6b
mode: single
- id: '1740491914825'
alias: victoria turn on heating in victorias room
description: turn off heating in victorias room when window closes
triggers:
- type: not_opened
device_id: dc284837aff71d8b81a288d17962d9a5
entity_id: 922b17a39254b79f7e7773e61c86e3f1
domain: binary_sensor
trigger: device
conditions: []
actions:
- data:
hvac_mode: auto
action: climate.set_hvac_mode
target:
device_id: f3fbaf154948921904985aa4c21f2a6b
mode: single
- id: '1742283043468'
alias: Kontor - Pressent - sluk lys
description: ''
triggers:
- type: not_occupied
device_id: d7d3bc79c625ac6be784158965c5efd7
entity_id: 2716cd871347a641e9e3816c0a9e7867
domain: binary_sensor
trigger: device
for:
hours: 0
minutes: 0
seconds: 5
conditions: []
actions:
- type: turn_off
device_id: f847031db1854dfff2c4dec16259a6ad
entity_id: 9a7ccb3f347f15e3d7b956a8daeaae77
domain: switch
mode: single
- alias: Garage sluk
id: garage_sluk
trigger:
platform: sun
event: sunrise
offset: +00:30:00
action:
service: light.turn_off
entity_id:
- light.garage_light_garage1
- light.garage_light_garage2
- alias: Garage tænd
id: garage_tænd
trigger:
platform: sun
event: sunset
offset: -00:30:00
action:
service: scene.turn_on
entity_id: scene.GarageNat
- alias: Garage when closing door
id: Garage_when_closing_door
trigger:
- platform: state
entity_id: binary_sensor.bryggers_sensor_bryggersdor_contact
to: 'off'
for:
minutes: 3
condition:
- condition: state
entity_id: sun.sun
state: below_horizon
action:
service: scene.turn_on
entity_id: scene.garage_when_door_closes
- alias: Garage when opening door
id: Garage_when_opening_door
trigger:
- platform: state
entity_id: binary_sensor.bryggers_sensor_bryggersdor_contact
to: 'on'
condition:
- condition: state
entity_id: sun.sun
state: below_horizon
action:
service: scene.turn_on
entity_id: scene.garage_opening_the_door
- alias: 00 - Google Home Automatic Resume
id: 417395bc-bd64-40a3-b20a-9062d426a01f
mode: parallel
max_exceeded: silent
trigger:
- platform: event
enabled: true
event_type: call_service
event_data:
domain: media_player
service: play_media
variables:
announce_volume: '{{ state_attr(''script.google_home_resume'', ''settings'').get(''announce_volume_automation'')
}}'
id: play
- platform: event
enabled: true
event_type: call_service
event_data:
domain: cast
service: show_lovelace_view
id: cast
variables:
version: 2023.8.0
settings:
primary_spotcast: pepijn
radio_data:
NPO Radio 2:
picture: http://192.168.2.3:8123/local/pictures/radio/npo_radio_2.png
title: Er is maar één NPO Radio 2
Radio Veronica:
picture: http://192.168.2.3:8123/local/pictures/radio/radio_veronica.png
title: WE. LOVE. MUSIC.
Willy:
picture: http://192.168.2.3:8123/local/pictures/radio/willy.png
title: MUSIC MATTERS
KINK:
picture: http://192.168.2.3:8123/local/pictures/radio/kink.jpg
title: NO ALTERNATIVE
speaker_groups:
media_player.huis_groep:
- media_player.keuken_hub
- media_player.slaapkamer_hub
- media_player.pepijn_mini
- media_player.woonkamer_home
- media_player.werkamer_marleen_minini
- media_player.zolder_werkkamer_stereo
- media_player.floris_mini
media_player.boven_groep:
- media_player.pepijn_mini
- media_player.slaapkamer_hub
- media_player.werkamer_marleen_mini
- media_player.zolder_werkkamer_stereo
- media_player.floris_mini
media_player.beneden_groep:
- media_player.keuken_hub
- media_player.woonkamer_home
media_player.zolder_groep:
- media_player.slaapkamer_hub
- media_player.zolder_werkkamer_stereo
default_volume_level: 0.5
dummy_player: media_player.vlc_telnet
default_resume_delay:
seconds: 20
max_runtime:
minutes: 10
enable_automation: true
dashboard_cast: true
announce_volume_automation: 0.4
entities: '{%- set e = trigger.event.data.service_data.entity_id %} {%- set e
= (e | replace('' '', '''')).split('','') if e is string else e %} {%- set e
= expand(e) | map(attribute=''entity_id'') | list %} {%- set speaker_groups
= settings.get(''speaker_groups'') | default({}, true) %} {%- set members =
speaker_groups.items() | selectattr(''0'', ''in'', e) | map(attribute=''1'')
| sum(start=[]) %} {{ e + members }}
'
condition:
- alias: Check if automation in enabled in script settings
condition: template
value_template: '{{ settings.enable_automation | default(true) }}'
- alias: Check if announce was set on the service call
condition: template
value_template: '{{ trigger.id == ''cast'' or trigger.event.data.service_data.get(''announce'',
false) }}'
- alias: Check if dashboard resume is enabled in case of dashboard cast trigger
condition: template
value_template: '{{ trigger.id == ''play'' or settings.get(''dashboard_cast'')
| default(true) or settings.get(''dashboard_cast'') is none }}'
action:
- alias: Set variables to be used in the automation
variables:
start_time: '{{ start_time if start_time is defined else now() }}'
speaker_groups: '{{ settings.get(''speaker_groups'') | default({}, true) }}'
speaker_group_list: '{{ speaker_groups.keys() | list }}'
cast_entities: '{{ integration_entities(''cast'') }}'
spotify_entities: '{{ integration_entities(''spotify'') }}'
primary_spotcast_check: '{%- set accounts = spotify_entities | map(''replace'',
''media_player.spotify_'', '''') | list %} {{ spotify_entities | count <=
1 or settings.get(''primary_spotcast'') in accounts }}
'
ytube_music_entities: '{{ integration_entities(''ytube_music_player'') | select(''match'',
''^media_player.'') | list }}
'
resume_active: "{{ expand(integration_entities('group'))\n | selectattr('entity_id',\
\ 'search', 'group.resume_active_ghresume')\n | map(attribute='attributes.entity_id')\n\
\ | map('list')\n | sum(start=[])\n}}\n"
resume_action_false: "{{ expand(integration_entities('group'))\n | selectattr('entity_id',\
\ 'search', 'group.resume_action_false_ghresume')\n | map(attribute='attributes.entity_id')\n\
\ | map('list')\n | sum(start=[])\n}}\n"
- alias: Failsafe to remove all groups if no resume scripts are not running
if: "{{ \n is_state_attr('script.google_home_resume', 'current', 0)\n and integration_entities('group')\n\
\ | select('search', 'ghresume')\n | list | count > 0\n}}\n"
then:
- alias: Which groups to remove
variables:
groups_existing: '{{ integration_entities(''group'') | select(''search'',
''ghresume'') | list }}
'
- alias: Loop to remove groups
repeat:
for_each: '{{ groups_existing }}'
sequence:
- alias: Remove one group
service: group.remove
data:
object_id: '{{ states[repeat.item].object_id }}'
- alias: Check if target is already being resumed on in a group which is already
being resumed
condition: template
value_template: "{%- set groups = states.group\n | selectattr('entity_id',\
\ 'search', 'resume_script_active_ghresume_')\n | map(attribute='entity_id')\n\
\ | list\n%} {%- set active = expand(groups)\n | rejectattr('state',\
\ 'in', ['unknown', 'unavailable'])\n | map(attribute='entity_id')\n\
\ | unique\n | list\n%} {%- set members =\
\ speaker_groups.items() | selectattr('0', 'in', active) | map(attribute='1')\
\ | sum(start=[]) %} {%- set active = active + members %} {%- set target_members\
\ = speaker_groups.items() | selectattr('0', 'in', entities) | map(attribute='1')\
\ | sum(start=[]) %} {%- set entities = (entities + target_members) | reject('in',\
\ speaker_group_list) | unique | list %} {{ entities | reject('in', active)\
\ | list | count > 0 }}\n"
- alias: Are there Spotify entities?
if: '{{ integration_entities(''spotify'') | count > 0 }}'
then:
- alias: Update Spotify entities
service: homeassistant.update_entity
target:
entity_id: '{{ integration_entities(''spotify'') }}'
- alias: Set data_source and determine target list
variables:
data_source: automation
target_list: "{{\n integration_entities('cast')\n | select('in', entities)\n\
\ | list\n}}\n"
- variables:
player_data: "{%- if player_data is undefined %}\n {# general information for\
\ all entities #}\n {%- set ns = namespace(info=[], groups_playing=[]) %}\n\
\ {%- for entity in expand(cast_entities) %}\n {%- set members = speaker_groups[entity.entity_id]\n\
\ if speaker_groups is defined\n and\
\ iif(speaker_groups)\n and entity.entity_id in speaker_group_list\n\
\ else []\n %}\n {%- set screen = entity.attributes.device_class\
\ is not defined %}\n {%- set type = iif(members,'group',iif(screen,'screen','speaker'))\
\ %}\n {%- for group in speaker_group_list %}\n {%- set members\
\ = speaker_groups.items() | selectattr('0', 'eq', group) | map(attribute='1')\
\ | list | first %}\n {%- set members_playing = expand(members) | selectattr('state',\
\ 'eq', 'playing') | list | count == members | count %}\n {%- set content_list\
\ = expand(members) | selectattr('attributes.media_content_id', 'defined')\
\ | map(attribute='attributes.media_content_id') | list %}\n {%- set\
\ group_playing = members_playing and content_list | select('eq', content_list[0])\
\ | list | count == content_list | count %}\n {%- set ns.groups_playing\
\ = ns.groups_playing + [ group ] if group_playing else ns.groups_playing\
\ %}\n {%- endfor %}\n {%- set groups_playing = ns.groups_playing\
\ %}\n {%- if type == 'speaker' %}\n {% set groups = speaker_groups.items()\
\ | selectattr('1', 'search', entity.entity_id) | map(attribute='0') | list\
\ %}\n {% set playing = groups | select('in', groups_playing) | list\
\ | count > 0 %}\n {% set type = 'playing_member' if playing else type\
\ %}\n {%- endif %}\n {%- set state = 'off' if type == 'group' and\
\ not entity.entity_id in groups_playing else entity.state %}\n {%- set\
\ general = dict(\n data_source = data_source,\n\
\ entity_id = entity.entity_id,\n \
\ state = state,\n type = type,\n\
\ members = members\n \
\ )\n if type != 'playing_member'\n \
\ else dict(entity_id = entity.entity_id, type = type, members=[])\n\
\ %}\n {# check if there is a Spotify account playing on this entity\
\ #}\n {%- set list_check = expand([ entity.entity_id ] + members) |\
\ map(attribute='name') | list %}\n {%- set spotify_entity = expand(spotify_entities)\n\
\ | selectattr('state', 'eq', 'playing')\n\
\ | selectattr('attributes.source', 'in',\
\ list_check)\n | map(attribute='object_id')\n\
\ | join\n \
\ | replace('spotify_', '')\n %}\n {# add volume level #}\n \
\ {%- if not state in ['off', 'unavailable', 'unknown'] or type == 'playing_member'\
\ %}\n {%- set additional = dict(volume_level = entity.attributes.get('volume_level',\
\ settings.get('default_volume_level')) | round(2, default=0.25)) %}\n \
\ {%- else %}\n {%- set additional = {} %}\n {%- endif %}\n\
\ {# add metadata for playing entities #}\n {%- if type == 'playing_member'%}\n\
\ {%- elif (spotify_entity or\n (\n entity.state\
\ == 'playing'\n and expand(speaker_groups.items()\n \
\ | selectattr('0', 'eq', entity.entity_id)\n \
\ | list) \n | rejectattr('state',\
\ 'eq', 'playing')\n | list\n \
\ | count == 0\n )) and (type != 'group' or entity.entity_id\
\ in groups_playing)\n %}\n {%- set additional = dict(additional,\
\ **dict(\n state = 'playing',\n \
\ app_name = entity.attributes.get('app_name', 'no\
\ app'),\n media_content_id = (entity.attributes.get('media_content_id',\
\ {}) | from_json).get('contentId', 'no media_content')\n \
\ if entity.attributes.get('app_name')\
\ == 'Google Podcasts'\n \
\ else entity.attributes.get('media_content_id', 'no media_content'),\n\
\ media_position = (as_timestamp(now()) |\
\ round(2)\n - as_timestamp(entity.attributes.get('media_position_updated_at',\
\ now())) | round(2)\n \
\ + entity.attributes.get('media_position', 0)) | round(2)\n \
\ ))\n %}\n {# add Spotify account #}\n\
\ {%- if entity.attributes.get('app_name') == 'Spotify' %}\n \
\ {%- set spotcast = spotify_entity if spotify_entity\n \
\ and settings.primary_spotcast is defined\n \
\ and spotify_entity != settings.primary_spotcast\n\
\ and spotify_entities | count > 1\n \
\ and primary_spotcast_check\n \
\ else 'primary_account' %}\n {%- set additional\
\ = dict(additional,\n **dict(state='playing',\n\
\ spotcast = spotcast\n \
\ )\n )\
\ \n %}\n {# add information for ytube_music_player integration\
\ #}\n {%- elif entity.entity_id in expand(ytube_music_entities)\n\
\ | selectattr('state', 'eq', 'playing')\n\
\ | selectattr('attributes.remote_player_id',\
\ 'defined')\n | map(attribute='attributes.remote_player_id')\n\
\ | list\n %}\n {%- set\
\ additional = dict(additional,\n **dict(app_name='Ytube\
\ Music Player',\n yt_player=expand(ytube_music_entities)\
\ | selectattr('attributes.remote_player_id', 'defined') | selectattr('attributes.remote_player_id',\
\ 'eq', entity.entity_id) | map(attribute='entity_id') | join,\n \
\ media_content_id = 'ytube_music'\n \
\ )\n \
\ ) \n %}\n {# add information for web streams (including\
\ TuneIn) #}\n {%- elif entity.attributes.get('app_name') not in ['Spotify',\
\ 'YouTube', 'YouTube Music'] %}\n {%- if entity.attributes.get('media_artist')\
\ in (settings.get('radio_data') | default({}, true)).keys() | list %}\n \
\ {%- set data = settings.radio_data[entity.attributes.media_artist]\
\ %}\n {%- set picture, title = data.get('picture'), data.get('title')\
\ %}\n {%- endif %}\n {%- set additional = dict(additional,\
\ **dict(\n media_artist = 'Google\
\ Podcasts' if entity.attributes.get('app_name') == 'Google Podcasts'\n \
\ else entity.attributes.get('media_artist',\
\ 'no artist'),\n media_title = title\
\ if title is defined else entity.attributes.get('media_title', 'no title'),\n\
\ media_content_type = '' ~ entity.attributes.get('media_content_type',\
\ 'no type'),\n entity_picture = picture\
\ if picture is defined else entity.attributes.get('entity_picture', 'no pic')\n\
\ ))\n %}\n {%- endif\
\ %}\n {%- endif %}\n {# cobmine all data #}\n {%- set ns.info\
\ = ns.info + [ dict(general, **additional) if additional is defined else\
\ general ] %}\n {%- endfor %}\n {% set player_data = ns.info %}\n{%- endif\
\ %} {{ player_data }}\n"
- alias: Interrupt YouTube music if needed
if: '{{ player_data | selectattr(''entity_id'', ''in'', target_list) | selectattr(''yt_player'',
''defined'') | list | count > 0 }}
'
then:
- service: ytube_music_player.call_method
data:
entity_id: '{{ player_data | selectattr(''entity_id'', ''in'', target_list)
| selectattr(''yt_player'', ''defined'') | map(attribute=''yt_player'')
| list }}
'
command: interrupt_start
- if: '{{ trigger.id == ''play'' and announce_volume is defined and iif(announce_volume)
}}'
then:
- wait_template: '{{ is_state(entities|first, ''idle'') }}'
- alias: Set volume for announcement
service: media_player.volume_set
target:
entity_id: '{{ entities }}'
data:
volume_level: '{{ announce_volume }}'
- alias: Short delay
delay: 0.5
- alias: Check again if target is already being resumed
condition: template
value_template: "{%- set groups = states.group\n | selectattr('entity_id',\
\ 'search', 'resume_script_active_ghresume_')\n | map(attribute='entity_id')\n\
\ | list\n%} {%- set active = expand(groups)\n | rejectattr('state',\
\ 'in', ['unknown', 'unavailable'])\n | map(attribute='entity_id')\n\
\ | unique\n | list\n%} {%- set members =\
\ speaker_groups.items() | selectattr('0', 'in', active) | map(attribute='1')\
\ | sum(start=[]) %} {%- set active = active + members %} {%- set target_members\
\ = speaker_groups.items() | selectattr('0', 'in', entities) | map(attribute='1')\
\ | sum(start=[]) %} {%- set entities = (entities + target_members) | reject('in',\
\ speaker_group_list) | unique | list %} {{ entities | reject('in', active)\
\ | list | count > 0 }}\n"
- alias: Send actions using Google Home Resume script
service: script.turn_on
target:
entity_id: script.google_home_resume
data:
variables:
start_time: '{{ start_time }}'
automation: true
target_list: '{{ target_list }}'
player_data: '{{ player_data }}'
- alias: ingen_er_hjemme
id: '16355416316486'
trigger:
- platform: numeric_state
entity_id: zone.home
below: 1
action:
- service: scene.turn_on
target:
entity_id: scene.SlukAltLysUntagetUdelysOgUnderKoekkenbordet
- alias: AI Suggestions - New Entity Detection
description: Generates automation suggestions whenever new entities are registered
in Home Assistant
trigger:
- platform: event
event_type: entity_registry_updated
event_data:
action: create
- platform: event
event_type: entity_registry_updated
event_data:
action: update
condition:
- condition: template
value_template: "{% set last_triggered = states('automation.ai_suggestions_new_entity_detection').attributes.last_triggered\
\ %} {% if last_triggered is not none %}\n {% set hours_since = ((now() - as_datetime(last_triggered)).total_seconds()\
\ / 3600) | float %}\n {{ hours_since > 1.0 }}\n{% else %}\n true\n{% endif\
\ %}"
action:
- service: ai_automation_suggester.generate_suggestions
target: {}
data: {}
- alias: nogen_er_hjemme
id: '16355416358686'
trigger:
- platform: numeric_state
entity_id: zone.home
above: 0
action:
- condition: or
conditions:
- condition: sun
before: sunrise
- condition: sun
after: sunset
- service: scene.turn_on
target:
entity_id: scene.TaendLysNaaAlarmFrakolbles
- id: climate_control_for_two_windows_in_Sophies_room
alias: sophie turn on heating in sophies room in Sophie's room
description: Turn off heating when either window is open and turn it back on when
both windows are closed
trigger:
- platform: state
entity_id:
- binary_sensor.sophie_sensor_sophievindue1_contact
- binary_sensor.sophie_sensor_sophievindue2_contact
condition: []
action:
- choose:
- conditions:
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.sophie_sensor_sophievindue1_contact
state: 'on'
- condition: state
entity_id: binary_sensor.sophie_sensor_sophievindue2_contact
state: 'on'
sequence:
- service: climate.turn_off
target:
entity_id: climate.sophies_vaerelse
- conditions:
- condition: and
conditions:
- condition: state
entity_id: binary_sensor.sophie_sensor_sophievindue1_contact
state: 'off'
- condition: state
entity_id: binary_sensor.sophie_sensor_sophievindue2_contact
state: 'off'
sequence:
- service: climate.set_hvac_mode
target:
entity_id: climate.sophies_vaerelse
data:
hvac_mode: auto
mode: single
- alias: Sovevaerelse Dag
id: sovevaerelseDag
trigger:
- platform: state
entity_id: light.sovevaerelse
to: 'on'
from: 'off'
condition:
- condition: time
after: 06:00:01
before: '18:59:59'
action:
service: scene.turn_on
entity_id: scene.SovevaerelseDag
- alias: Sovevaerelse Nat
id: sovevaerelseNat
trigger:
- platform: state
entity_id: light.sovevaerelse
to: 'on'
from: 'off'
condition:
- condition: time
after: '19:00:00'
before: 06:00:00
action:
service: scene.turn_on
entity_id: scene.SovevaerelseNat
- alias: Terrasse Baghave tænd
id: terrasseBaghave_tænd
trigger:
platform: sun
event: sunset
offset: -00:30:00
action:
service: scene.turn_on
entity_id: scene.terrasseBaghaveNat
- alias: Terrasse Forhave tænd
id: terrasseForhave_tænd
trigger:
platform: sun
event: sunset
offset: -00:30:00
action:
service: scene.turn_on
entity_id: scene.terrasseForhaveNat
- alias: Terrasse sluk
id: terrasse_sluk
trigger:
platform: sun
event: sunrise
offset: +00:30:00
action:
service: light.turn_off
entity_id:
- light.terrasse_light_terrasseforhave
- light.terrasse_light_terrassebaghave
- alias: Koekken under_koekkenbordet Off
id: under_koekkenbordet_Off
trigger:
platform: sun
event: sunrise
offset: +00:30:00
action:
service: light.turn_off
entity_id: light.controller_rgb_ir_b788e5
- alias: Koekken under_koekkenbordet On
id: under_koekkenbordet-On
trigger:
platform: sun
event: sunset
offset: -00:30:00
action:
service: light.turn_on
entity_id: light.controller_rgb_ir_b788e5
- alias: AI Suggestions - Weekly Review
description: Performs a weekly scan of all entities to suggest new automation opportunities
trigger:
- platform: time
at: 03:00:00
condition:
- condition: time
weekday:
- sun
action:
- service: ai_automation_suggester.generate_suggestions
data:
all_entities: true
- service: persistent_notification.create
data:
title: Weekly Automation Review
message: The AI Automation Suggester has completed its weekly review. Check
the suggestions sensor for new automation ideas!
notification_id: weekly_automation_review