Hello all
Wanted to share this with you, and ask for your suggestions for optimizing into one
script, as I cannot figure out to make it work in one script đ
It works perfectly as is, but the clumsiness is disturbing my OCD brainâŠ
I have an automation that looks for movement via a Philips Hue motion detector
in my bathroom. What it does is : (explanation via scripting-language)
If movement detected in bathroom
If Sonos is NOT playing in bathroom
Turn on tablet screen with HADashboard via MQTT for 3 minutes
If music is playing in kitchen
Join bathroom Sonos to kitchen source, unjoin after 3 minutes with
no motion
Else
Turn on Sonos player with specific source, pause after 3 minutes with no motion
Else
Do nothing for 3 minutes with no motion
How do I combine the two automation IDâs âMusik pĂ„ badevĂŠrelse ON - Join KĂžkkenâ and âMusik pĂ„ badevĂŠrelse ONâ into one ?
I guess it another nested âIfâ loop, but am struggling.
- id: Musik pÄ badevÊrelse ON - Join KÞkken
alias : Musik pÄ badevÊrelse ON - Join KÞkken
trigger:- platform : state
entity_id: binary_sensor.motion_badevaerelse_sensor
to: âonâ
condition: - condition: time
after: â06:00:00â
before: â21:30:00â - condition: time
weekday:- mon
- tue
- wed
- thu
- fri
- sat
- sun
- condition : template
value_template: >
{% if is_state(âmedia_player.badevaerelseâ, âplayingâ) %}
false
{% else %}
true
{% endif %}
action:
#--------- - condition: state
entity_id: media_player.kokken
state: âplayingâ - service: media_player.sonos_join
data:
master: media_player.kokken
entity_id:- media_player.badevaerelse
- service: media_player.volume_set
data_template:
entity_id: âmedia_player.badevaerelseâ
volume_level: 0.10
- platform : state
#----------------------------------------------------------------------------------------------------------------------------------
- id: Musik pÄ badevÊrelse ON
alias : Musik pÄ badevÊrelse ON
trigger:- platform : state
entity_id: binary_sensor.motion_badevaerelse_sensor
to: âonâ
condition: - condition: time
after: â06:00:00â
before: â21:30:00â - condition: time
weekday:- mon
- tue
- wed
- thu
- fri
- sat
- sun
- condition : template
value_template: >
{% if is_state(âmedia_player.badevaerelseâ, âplayingâ) %}
false
{% else %}
true
{% endif %}
action:
#--------- - condition: state
entity_id: media_player.kokken
state: âpausedâ - service: media_player.select_source
data:
entity_id: media_player.badevaerelse
source: âP4â - service: media_player.media_play_pause
entity_id: media_player.badevaerelse - service: media_player.volume_set
data_template:
entity_id: âmedia_player.badevaerelseâ
volume_level: 0.12
#----------------------------------------------------------------------------------------------------------------------------------
- platform : state
- id: Musik pÄ badevÊrelse OFF
alias : Musik pÄ badevÊrelse OFF
trigger:
platform: state
entity_id: binary_sensor.motion_badevaerelse_sensor
to: âoffâ
for:
minutes: 3
condition:- condition: time
after: â06:00:00â
before: â21:30:00â - condition: time
weekday:- mon
- tue
- wed
- thu
- fri
- sat
- sun
action:
- service: media_player.sonos_unjoin
entity_id: âmedia_player.badevaerelseâ - service: media_player.media_pause
entity_id: media_player.badevaerelse
- condition: time
#----------------------------------------------------------------------------------------------------------------------------------
- alias: âBadTablet Screen Onâ
trigger:
platform: state
entity_id: binary_sensor.motion_badevaerelse_sensor
to: âonâ
condition:- condition: time
after: â06:32:00â
before: â21:30:00â - condition: time
weekday:- mon
- tue
- wed
- thu
- fri
- sat
- sun
- condition : template
value_template: >
{% if is_state(âmedia_player.badevaerelseâ, âplayingâ) %}
false
{% else %}
true
{% endif %}
action: - service: mqtt.publish
data:
topic: âwallpanel/badtablet/commandâ
payload: â{âwakeâ:true}â
- condition: time