Refactor camera cards to use advanced-camera-card format

- Updated garage-card.yaml to use vertical-stack and advanced-camera-card structure.
- Refactored indoor-camera-cycler.yaml to include multiple cameras in advanced-camera-card format.
- Modified kitchen-card.yaml to align with new advanced-camera-card structure.
- Consolidated master-bedroom-card.yaml to include both left and right cameras in a single advanced-camera-card.
- Removed deprecated master-bedroom-left-card.yaml and master-bedroom-right-card.yaml files.
- Updated nursery-card.yaml to follow the new advanced-camera-card format.
- Refactored outdoor-camera-cycler.yaml to utilize advanced-camera-card for multiple outdoor cameras.
- Cleaned up view-ha-floorplan.yaml by removing commented-out code.
- Updated view-overview.yaml to remove unused plant entities.
- Corrected media source paths in wake_up_the_master_bedroom.yaml and take_meds.yaml scripts.
- Added new ESPHome configurations for bed presence sensors.
- Updated full-sized floorplan SVG with new IDs for bed presence sensors.
This commit is contained in:
CeeWeasel
2025-07-28 20:52:16 -04:00
parent 6638faaf14
commit d60b56b37a
57 changed files with 3064 additions and 2997 deletions
-303
View File
@@ -1,303 +0,0 @@
alias: Cycle Cameras
id: automation_cycle_cameras
mode: queued
trigger:
- id: automatic
platform: homeassistant
event: start
- id: automatic
platform: time_pattern
seconds: "/10"
- id: cam01
platform: state
entity_id: binary_sensor.frigate_cam01_person_occupancy
from: 'off'
to: 'on'
- id: cam03
platform: state
entity_id: binary_sensor.frigate_cam03_person_occupancy
from: 'off'
to: 'on'
- id: cam04
platform: state
entity_id: binary_sensor.frigate_cam04_person_occupancy
from: 'off'
to: 'on'
- id: cam06
platform: state
entity_id: binary_sensor.frigate_cam06_person_occupancy
from: 'off'
to: 'on'
- id: cam07
platform: state
entity_id: binary_sensor.frigate_cam07_person_occupancy
from: 'off'
to: 'on'
- id: cam08
platform: state
entity_id: binary_sensor.frigate_cam08_person_occupancy
from: 'off'
to: 'on'
- id: cam12
platform: state
entity_id: binary_sensor.frigate_cam12_person_occupancy
from: 'off'
to: 'on'
- id: cam13
platform: state
entity_id: binary_sensor.frigate_cam13_person_occupancy
from: 'off'
to: 'on'
- id: cam14
platform: state
entity_id: binary_sensor.frigate_cam14_person_occupancy
from: 'off'
to: 'on'
- id: cam19
platform: state
entity_id: binary_sensor.frigate_cam19_person_occupancy
from: 'off'
to: 'on'
action:
- service: input_select.select_next
data: {}
target:
entity_id: input_select.master_bedroom_camera
- choose:
- conditions:
- condition: trigger
id: cam01
- condition: state
entity_id: input_boolean.indoor_camera_lock
state: 'off'
sequence:
- service: input_select.select_option
target:
entity_id: input_select.indoor_camera_cycle
data:
option: Blue Room
- conditions:
- condition: trigger
id: cam03
- condition: state
entity_id: input_boolean.indoor_camera_lock
state: 'off'
sequence:
- service: input_select.select_option
target:
entity_id: input_select.indoor_camera_cycle
data:
option: Computer Area
- conditions:
- condition: trigger
id: cam04
- condition: state
entity_id: input_boolean.outdoor_camera_lock
state: 'off'
sequence:
- service: input_select.select_option
target:
entity_id: input_select.outdoor_camera_cycle
data:
option: Garage
- conditions:
- condition: trigger
id: cam06
- condition: state
entity_id: input_boolean.indoor_camera_lock
state: 'off'
sequence:
- service: input_select.select_option
target:
entity_id: input_select.indoor_camera_cycle
data:
option: Bedroom Left
- conditions:
- condition: trigger
id: cam07
- condition: state
entity_id: input_boolean.indoor_camera_lock
state: 'off'
sequence:
- service: input_select.select_option
target:
entity_id: input_select.indoor_camera_cycle
data:
option: Bedroom Right
- conditions:
- condition: trigger
id: cam08
- condition: state
entity_id: input_boolean.indoor_camera_lock
state: 'off'
sequence:
- service: input_select.select_option
target:
entity_id: input_select.indoor_camera_cycle
data:
option: Nursery
- conditions:
- condition: trigger
id: cam12
- condition: state
entity_id: input_boolean.indoor_camera_lock
state: 'off'
sequence:
- service: input_select.select_option
target:
entity_id: input_select.indoor_camera_cycle
data:
option: Kitchen
- conditions:
- condition: trigger
id: cam13
- condition: state
entity_id: input_boolean.indoor_camera_lock
state: 'off'
sequence:
- service: input_select.select_option
target:
entity_id: input_select.indoor_camera_cycle
data:
option: Front Room
- conditions:
- condition: trigger
id: cam14
- condition: state
entity_id: input_boolean.outdoor_camera_lock
state: 'off'
sequence:
- service: input_select.select_option
target:
entity_id: input_select.outdoor_camera_cycle
data:
option: Back Yard
- conditions:
- condition: trigger
id: cam19
- condition: state
entity_id: input_boolean.outdoor_camera_lock
state: 'off'
sequence:
- service: input_select.select_option
target:
entity_id: input_select.outdoor_camera_cycle
data:
option: Front Porch
default:
- choose:
- conditions:
- condition: trigger
id: automatic
- condition: state
entity_id: input_boolean.indoor_camera_lock
state: 'off'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity_id: input_select.indoor_camera_cycle
state: Blue Room
- condition: state
entity_id: binary_sensor.frigate_cam01_person_occupancy
state: 'off'
- condition: and
conditions:
- condition: state
entity_id: input_select.indoor_camera_cycle
state: Computer Area
- condition: state
entity_id: binary_sensor.frigate_cam03_person_occupancy
state: 'off'
- condition: and
conditions:
- condition: state
entity_id: input_select.indoor_camera_cycle
state: Bedroom Left
- condition: state
entity_id: binary_sensor.frigate_cam06_person_occupancy
state: 'off'
- condition: and
conditions:
- condition: state
entity_id: input_select.indoor_camera_cycle
state: Bedroom Right
- condition: state
entity_id: binary_sensor.frigate_cam07_person_occupancy
state: 'off'
- condition: and
conditions:
- condition: state
entity_id: input_select.indoor_camera_cycle
state: Nursery
- condition: state
entity_id: binary_sensor.frigate_cam08_person_occupancy
state: 'off'
- condition: and
conditions:
- condition: state
entity_id: input_select.indoor_camera_cycle
state: Kitchen
- condition: state
entity_id: binary_sensor.frigate_cam12_person_occupancy
state: 'off'
- condition: and
conditions:
- condition: state
entity_id: input_select.indoor_camera_cycle
state: Front Room
- condition: state
entity_id: binary_sensor.frigate_cam13_person_occupancy
state: 'off'
sequence:
- service: input_select.select_next
data: {}
target:
entity_id: input_select.indoor_camera_cycle
- choose:
- conditions:
- condition: trigger
id: automatic
- condition: state
entity_id: input_boolean.outdoor_camera_lock
state: 'off'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity_id: input_select.outdoor_camera_cycle
state: Garage
- condition: state
entity_id: binary_sensor.frigate_cam04_person_occupancy
state: 'off'
- condition: and
conditions:
- condition: state
entity_id: input_select.outdoor_camera_cycle
state: Back Yard
- condition: state
entity_id: binary_sensor.frigate_cam14_person_occupancy
state: 'off'
- condition: and
conditions:
- condition: state
entity_id: input_select.outdoor_camera_cycle
state: Front Porch
- condition: state
entity_id: binary_sensor.frigate_cam19_person_occupancy
state: 'off'
sequence:
- service: input_select.select_next
data: {}
target:
entity_id: input_select.outdoor_camera_cycle
+2 -2
View File
@@ -37,13 +37,13 @@ action:
- media_player.bathroom_mini
- media_player.kitchen
- media_player.great_room
media_content_id: media-source://media_source/local/sounds/tts/almost_bedtime.mp3
media_content_id: media-source://media_source/tts/almost_bedtime.mp3
volume: 0.7
default:
- service: script.make_clever_announcement
data:
entity_id: media_player.announcements
media_content_id: media-source://media_source/local/sounds/tts/almost_bedtime.mp3
media_content_id: media-source://media_source/tts/almost_bedtime.mp3
volume: 0.7
# Because of how we're calling the script, the automation won't continue until the script is done, so we don't need a delay here
+2 -2
View File
@@ -2,8 +2,8 @@ initial_state: 'on'
alias: 'Bedtime'
id: automation_bedtime
trigger:
- platform: homeassistant
event: start
# - platform: homeassistant
# event: start
- platform: state
entity_id:
+14 -14
View File
@@ -40,23 +40,23 @@ action:
{% if is_state('input_boolean.emmett_home', 'on') %}
{% if is_state('input_boolean.bridget_home', 'on') %}
{% if is_state('input_boolean.ebin_home', 'on') %}
media-source://media_source/local/sounds/tts/goodnight_emmett_bridget_ebin.mp3
media-source://media_source/tts/goodnight_emmett_bridget_ebin.mp3
{% else %}
media-source://media_source/local/sounds/tts/goodnight_emmett_bridget.mp3
media-source://media_source/tts/goodnight_emmett_bridget.mp3
{% endif %}
{% elif is_state('input_boolean.ebin_home','on') %}
media-source://media_source/local/sounds/tts/goodnight_emmett_ebin.mp3
media-source://media_source/tts/goodnight_emmett_ebin.mp3
{% else %}
media-source://media_source/local/sounds/tts/goodnight_emmett.mp3
media-source://media_source/tts/goodnight_emmett.mp3
{% endif %}
{% elif is_state('input_boolean.bridget_home', 'on') %}
{% if is_state('input_boolean.ebin_home', 'on') %}
media-source://media_source/local/sounds/tts/goodnight_bridget_ebin.mp3
media-source://media_source/tts/goodnight_bridget_ebin.mp3
{% else %}
media-source://media_source/local/sounds/tts/goodnight_bridget.mp3
media-source://media_source/tts/goodnight_bridget.mp3
{% endif %}
{% elif is_state('input_boolean.ebin_home', 'on') %}
media-source://media_source/local/sounds/tts/goodnight_ebin.mp3
media-source://media_source/tts/goodnight_ebin.mp3
{% endif %}
volume: 0.7
default:
@@ -67,23 +67,23 @@ action:
{% if is_state('input_boolean.emmett_home', 'on') %}
{% if is_state('input_boolean.bridget_home', 'on') %}
{% if is_state('input_boolean.ebin_home', 'on') %}
media-source://media_source/local/sounds/tts/goodnight_emmett_bridget_ebin.mp3
media-source://media_source/tts/goodnight_emmett_bridget_ebin.mp3
{% else %}
media-source://media_source/local/sounds/tts/goodnight_emmett_bridget.mp3
media-source://media_source/tts/goodnight_emmett_bridget.mp3
{% endif %}
{% elif is_state('input_boolean.ebin_home','on') %}
media-source://media_source/local/sounds/tts/goodnight_emmett_ebin.mp3
media-source://media_source/tts/goodnight_emmett_ebin.mp3
{% else %}
media-source://media_source/local/sounds/tts/goodnight_emmett.mp3
media-source://media_source/tts/goodnight_emmett.mp3
{% endif %}
{% elif is_state('input_boolean.bridget_home', 'on') %}
{% if is_state('input_boolean.ebin_home', 'on') %}
media-source://media_source/local/sounds/tts/goodnight_bridget_ebin.mp3
media-source://media_source/tts/goodnight_bridget_ebin.mp3
{% else %}
media-source://media_source/local/sounds/tts/goodnight_bridget.mp3
media-source://media_source/tts/goodnight_bridget.mp3
{% endif %}
{% elif is_state('input_boolean.ebin_home', 'on') %}
media-source://media_source/local/sounds/tts/goodnight_ebin.mp3
media-source://media_source/tts/goodnight_ebin.mp3
{% endif %}
volume: 0.7
+42 -25
View File
@@ -8,18 +8,24 @@ trigger:
entity_id:
- binary_sensor.front_porch_motion
- binary_sensor.front_porch_person_occupancy
- binary_sensor.front_yard_person_occupancy
to: "on"
- platform: state
id: motion_off
entity_id: binary_sensor.front_porch_motion, binary_sensor.front_porch_person_occupancy
entity_id:
- binary_sensor.front_porch_motion
- binary_sensor.front_porch_person_occupancy
- binary_sensor.front_yard_person_occupancy
to: "off"
for:
minutes: 5
- platform: state
id: door_open
entity_id: binary_sensor.garage_door, binary_sensor.outer_garage_door_contact #, binary_sensor.outer_garage_door
entity_id:
- binary_sensor.garage_door
- binary_sensor.outer_garage_door_contact #, binary_sensor.outer_garage_door
to: "on"
- platform: state
@@ -33,34 +39,15 @@ trigger:
id: too_dark
entity_id: binary_sensor.front_porch_naturally_lit
to: "off"
for:
seconds: 30
- platform: state
id: too_bright
entity_id: binary_sensor.front_porch_naturally_lit
to: "on"
condition:
# - condition: or
# conditions:
# - alias: "Front porch not naturally lit"
# condition: state
# entity_id: binary_sensor.front_porch_naturally_lit
# state: 'off'
# - alias: "Light is already off"
# condition: state
# entity_id: light.front_porch_overhead
# state: 'off'
- alias: "It is not late evening"
condition: state
entity_id: binary_sensor.late_evening
state: 'off'
- alias: "It is not night"
condition: state
entity_id: binary_sensor.night
state: 'off'
for:
seconds: 30
action:
- choose:
@@ -72,6 +59,16 @@ action:
entity_id: light.front_porch_overhead
state: 'off'
- alias: "It is not late evening"
condition: state
entity_id: binary_sensor.late_evening
state: 'off'
- alias: "It is not night"
condition: state
entity_id: binary_sensor.night
state: 'off'
- alias: "Front porch not naturally lit"
condition: state
entity_id: binary_sensor.front_porch_naturally_lit
@@ -113,6 +110,26 @@ action:
target:
entity_id: light.front_porch_overhead
- conditions:
- condition: trigger
id: "too_dark"
- condition: state
entity_id: light.front_porch_overhead
state: 'off'
- condition: state
entity_id:
- binary_sensor.front_porch_motion
- binary_sensor.front_porch_person_occupancy
- binary_sensor.front_yard_person_occupancy
state: 'on'
sequence:
- service: light.turn_on
target:
entity_id: light.front_porch_overhead
- conditions:
- condition: state
entity_id: binary_sensor.front_porch_motion
+1 -1
View File
@@ -54,4 +54,4 @@ action:
- alias: "Announce that the coffee is ready"
service: script.make_clever_announcement
data:
media_content_id: media-source://media_source/local/sounds/tts/coffee_ready.mp3
media_content_id: media-source://media_source/tts/coffee_ready.mp3
+1 -1
View File
@@ -46,7 +46,7 @@ action:
sequence:
- service: script.make_clever_announcement
data:
media_content_id: media-source://media_source/local/sounds/tts/kitchen_fridge_open_too_long.mp3
media_content_id: media-source://media_source/tts/kitchen_fridge_open_too_long.mp3
- choose:
- conditions: