diff --git a/configuration.yaml b/configuration.yaml index f029ffd..ce242d5 100644 --- a/configuration.yaml +++ b/configuration.yaml @@ -39,6 +39,7 @@ logger: default: warning logs: homeassistant.components.amcrest: error + zigpy.util: error # # ─── INTEGRATIONS ─────────────────────────────────────────────────────────────── diff --git a/lovelace/00_home.yaml b/lovelace/00_home.yaml index 6fca742..a3ba7f1 100644 --- a/lovelace/00_home.yaml +++ b/lovelace/00_home.yaml @@ -44,10 +44,10 @@ cards: title: Devices show_header_toggle: false entities: - - entity: switch.camera - - entity: media_player.living_room_tv - - entity: media_player.nvidia_shield - - entity: fan.philips_airpurifier + - switch.camera + - media_player.living_room_tv + - media_player.nvidia_shield + - fan.philips_airpurifier - type: "custom:mini-media-player" artwork: cover @@ -69,15 +69,21 @@ cards: when_idle: true when_standby: true + - type: entities + show_header_toggle: false + entities: + - entity: input_select.sonos_leader + icon: mdi:speaker + - type: entities title: Manual Overrides show_header_toggle: false entities: - - entity: input_boolean.speech_notifications - - entity: input_boolean.guest_mode - - entity: input_boolean.domestina - - entity: input_boolean.sleep_mode - - entity: input_boolean.georgi_home + - input_boolean.speech_notifications + - input_boolean.guest_mode + - input_boolean.domestina + - input_boolean.sleep_mode + - input_boolean.georgi_home # Column 2: Sensors - type: vertical-stack @@ -86,26 +92,26 @@ cards: title: Sensors show_header_toggle: false entities: - - entity: binary_sensor.front_door_on_off_wrapper - - entity: binary_sensor.living_room_right_window_on_off_wrapper - - entity: binary_sensor.bedroom_right_window_on_off_wrapper + - binary_sensor.front_door_on_off_wrapper + - binary_sensor.living_room_right_window_on_off_wrapper + - binary_sensor.bedroom_right_window_on_off_wrapper - type: entities title: Presence show_header_toggle: false entities: - - entity: binary_sensor.georgi_home - - entity: device_tracker.carbon - - entity: device_tracker.tile_1bcb2b3021b9f96b + - binary_sensor.georgi_home + - device_tracker.carbon + - device_tracker.tile_1bcb2b3021b9f96b - type: entities title: Misc Badges show_header_toggle: false entities: - - entity: sun.sun - - entity: sensor.carbon_battery_level - - entity: sensor.carbon_steps - - entity: binary_sensor.updater + - sun.sun + - sensor.carbon_battery_level + - sensor.carbon_steps + - binary_sensor.updater # Column 3: Misc - type: vertical-stack @@ -127,5 +133,5 @@ cards: - duration - distance entities: - - entity: sensor.home_to_work - - entity: sensor.work_to_home + - sensor.home_to_work + - sensor.work_to_home diff --git a/lovelace/01_living_room.yaml b/lovelace/01_living_room.yaml index 4f2f513..5898152 100644 --- a/lovelace/01_living_room.yaml +++ b/lovelace/01_living_room.yaml @@ -73,8 +73,8 @@ cards: show_name: false show_state: true entities: - - entity: binary_sensor.living_room_right_window_on_off_wrapper - - entity: sensor.living_room_right_window_power + - binary_sensor.living_room_right_window_on_off_wrapper + - sensor.living_room_right_window_power - type: vertical-stack cards: @@ -88,6 +88,6 @@ cards: title: Camera Controls show_header_toggle: false entities: - - entity: switch.camera - - entity: binary_sensor.amcrest_camera_online - - entity: binary_sensor.amcrest_camera_motion_detected + - switch.camera + - binary_sensor.amcrest_camera_online + - binary_sensor.amcrest_camera_motion_detected diff --git a/lovelace/02_master_bedroom.yaml b/lovelace/02_master_bedroom.yaml index 05c3ec3..6f69c18 100644 --- a/lovelace/02_master_bedroom.yaml +++ b/lovelace/02_master_bedroom.yaml @@ -37,8 +37,8 @@ cards: title: Window show_name: false entities: - - entity: binary_sensor.bedroom_right_window_on_off_wrapper - - entity: sensor.bedroom_right_window_power + - binary_sensor.bedroom_right_window_on_off_wrapper + - sensor.bedroom_right_window_power - type: "custom:mini-graph-card" animate: true diff --git a/lovelace/04_system.yaml b/lovelace/04_system.yaml index 42163c9..ac351d0 100644 --- a/lovelace/04_system.yaml +++ b/lovelace/04_system.yaml @@ -7,35 +7,35 @@ cards: title: Automations show_header_toggle: false entities: - - entity: input_boolean.routine_welcome_home - - entity: automation.security_door_opened_while_away - - entity: automation.presence_arrival_detection - - entity: automation.coming_home - - entity: automation.leaving_work_to_home - - entity: automation.leaving_home - - entity: automation.master_bedroom_bedside_light_on_bedside_switch_single_click - - entity: automation.cube_knock - - entity: automation.cube_shake - - entity: automation.enable_guest_mode - - entity: automation.disable_guest_mode - - entity: automation.enable_sleep_mode - - entity: automation.disable_sleep_mode - - entity: automation.sleep_toggle_on_switch_tap - - entity: automation.domestina_automate_start - - entity: automation.domestina_start - - entity: automation.domestina_automate_end - - entity: automation.domestina_end - - entity: automation.speech_telegram_do_nothing - - entity: automation.camera_turn_off_on_startup - - entity: automation.system_announce_start + - input_boolean.routine_welcome_home + - automation.security_door_opened_while_away + - automation.presence_arrival_detection + - automation.coming_home + - automation.leaving_work_to_home + - automation.leaving_home + - automation.master_bedroom_bedside_light_on_bedside_switch_single_click + - automation.cube_knock + - automation.cube_shake + - automation.enable_guest_mode + - automation.disable_guest_mode + - automation.enable_sleep_mode + - automation.disable_sleep_mode + - automation.sleep_toggle_on_switch_tap + - automation.domestina_automate_start + - automation.domestina_start + - automation.domestina_automate_end + - automation.domestina_end + - automation.speech_telegram_do_nothing + - automation.camera_turn_off_on_startup + - automation.system_announce_start - type: entities title: Batteries show_header_toggle: false entities: - - entity: sensor.front_door_power - - entity: sensor.living_room_right_window_power - - entity: sensor.bedroom_right_window_power - - entity: sensor.bedroom_weather_power - - entity: sensor.cube_power - - entity: sensor.master_bedroom_bedside_switch_power + - sensor.front_door_power + - sensor.living_room_right_window_power + - sensor.bedroom_right_window_power + - sensor.bedroom_weather_power + - sensor.cube_power + - sensor.master_bedroom_bedside_switch_power diff --git a/packages/modules/music.yaml b/packages/modules/music.yaml index f89276e..9112011 100644 --- a/packages/modules/music.yaml +++ b/packages/modules/music.yaml @@ -6,29 +6,37 @@ group: - media_player.living_room - media_player.kitchen +input_select: + sonos_leader: + name: "Sonos Leader" + initial: media_player.master_bedroom + options: + - media_player.master_bedroom + - media_player.living_room + - media_player.kitchen + script: music_play: alias: "Music · Play" sequence: + - service: script.music_join_sonoses - service: media_player.volume_set - entity_id: media_player.master_bedroom + entity_id: group.all_sonos data_template: volume_level: "{{ volume | default(0.3) }}" - service: media_player.shuffle_set - entity_id: media_player.master_bedroom data_template: + entity_id: "{{ states('input_select.sonos_leader') }}" shuffle: "{{ shuffle | default(true) }}" - service: media_player.select_source - entity_id: media_player.master_bedroom data_template: + entity_id: "{{ states('input_select.sonos_leader') }}" source: "{{ playlist | default('Evening Chill') }}" music_join_sonoses: alias: "Music · Join Sonoses" sequence: - service: sonos.join - entity_id: - - media_player.living_room - - media_player.kitchen - data: - master: media_player.master_bedroom + entity_id: group.all_sonos + data_template: + master: "{{ states('input_select.sonos_leader') }}" diff --git a/packages/modules/speech.yaml b/packages/modules/speech.yaml index 8bc0376..d55e541 100644 --- a/packages/modules/speech.yaml +++ b/packages/modules/speech.yaml @@ -33,7 +33,7 @@ script: sequence: # Figure out whether to talk or send a text. - service_template: > - {% if is_state('media_player.master_bedroom', 'playing') + {% if is_state(states('input_select.sonos_leader'), 'playing') or is_state('input_boolean.speech_notifications', 'off') or is_state('input_boolean.georgi_home', 'off') %} notify.telegram @@ -52,7 +52,7 @@ script: entity_id: input_boolean.sarah_talking # Don't shout :) - service: media_player.volume_set - entity_id: media_player.master_bedroom + entity_id: group.all_sonos data_template: volume_level: >- {% if now().strftime('%H')|int < 6 and now().strftime('%H')|int > 0 %} @@ -63,11 +63,11 @@ script: # Say message. - service: tts.amazon_polly_say data_template: - entity_id: media_player.master_bedroom + entity_id: "{{ states('input_select.sonos_leader') }}" message: "{{ message }}" # Wait for phrase to be over and mark as not talking. - delay: 00:00:01 - - wait_template: "{{ is_state('media_player.master_bedroom', 'paused') }}" + - wait_template: "{{ is_state(states('input_select.sonos_leader'), 'paused') }}" timeout: 00:02:00 - service: input_boolean.turn_off entity_id: input_boolean.sarah_talking diff --git a/packages/routines/bedtime.yaml b/packages/routines/bedtime.yaml index 676e71b..e548256 100644 --- a/packages/routines/bedtime.yaml +++ b/packages/routines/bedtime.yaml @@ -7,16 +7,14 @@ script: entity_id: light.bedside_light - service: fan.turn_on entity_id: fan.philips_airpurifier + - service: sonos.unjoin + entity_id: group.all_sonos - service: media_player.volume_set entity_id: media_player.master_bedroom data: volume_level: 0.15 # Turn off everything else - - service: sonos.unjoin - entity_id: - - media_player.living_room - - media_player.kitchen - service: media_player.turn_off entity_id: - media_player.nvidia_shield diff --git a/packages/routines/leaving_home.yaml b/packages/routines/leaving_home.yaml index 69990c5..1fa28a3 100644 --- a/packages/routines/leaving_home.yaml +++ b/packages/routines/leaving_home.yaml @@ -10,6 +10,7 @@ script: - media_player.nvidia_shield - media_player.living_room_tv - service: media_player.media_stop - entity_id: media_player.master_bedroom + data_template: + entity_id: "{{ states('input_select.sonos_leader') }}" - service: light.turn_off entity_id: light.all_lights