Refactor bed occupancy sensors and related automations

- Updated nursery automation to use input booleans for bed occupancy instead of binary sensors.
- Changed conditions in nursery automation to improve readability and consistency.
- Modified binary sensor configurations for master bedroom and nursery to use input booleans.
- Removed unused input number configurations related to master bed load cells.
- Updated UI configurations to reflect changes in entity types from binary sensors to input booleans.
- Cleaned up camera view configurations and adjusted styles for better layout.
- Removed deprecated master bed YAML configuration and archived it for future reference.
- Enhanced ESPHome configurations for white and black beds, including improved logging and diagnostics.
This commit is contained in:
CeeWeasel
2025-07-19 13:37:45 -04:00
parent a533240fc3
commit 4e0e55ac3c
49 changed files with 605 additions and 890 deletions
+10 -10
View File
@@ -5,12 +5,12 @@ mode: restart
trigger:
- platform: state
entity_id: binary_sensor.white_bed_occupied
to: 'on'
for: '00:10:00'
entity_id: input_boolean.white_bed_occupied
to: "on"
for: "00:10:00"
- platform: state
entity_id: input_boolean.kids_bedtime
to: 'on'
to: "on"
- platform: homeassistant
event: start
@@ -19,17 +19,17 @@ condition:
entity_id:
- input_boolean.bridget_home
- input_boolean.kids_bedtime
state: 'on'
state: "on"
- condition: state
entity_id:
- binary_sensor.white_bed_occupied
state: 'on'
for: '00:10:00'
- input_boolean.white_bed_occupied
state: "on"
for: "00:10:00"
- condition: state
entity_id: input_boolean.bridget_in_bed
state: 'off'
state: "off"
#- condition: state
# entity_id: binary_sensor.white_bed_occupied
# entity_id: input_boolean.white_bed_occupied
# state: 'on'
# for:
# minutes: 5
+2 -2
View File
@@ -5,7 +5,7 @@ id: automation_clint_in_bed
trigger:
# Bed in master bedroom is occupied
- platform: state
entity_id: binary_sensor.master_bed_right_occupied
entity_id: input_boolean.master_bed_occupied
to: 'on'
# Radio playing
- platform: state
@@ -63,7 +63,7 @@ condition:
- alias: "The bed is occupied"
condition: state
entity_id: binary_sensor.master_bed_right_occupied
entity_id: input_boolean.master_bed_occupied
state: 'on'
action:
- service: input_boolean.turn_on
+2 -2
View File
@@ -10,7 +10,7 @@ trigger:
entity_id: media_player.great_room
to: 'idle'
- platform: state
entity_id: binary_sensor.master_bed_right_occupied
entity_id: input_boolean.master_bed_occupied
to: 'off'
for: '00:05:00'
- platform: state
@@ -36,7 +36,7 @@ condition:
after: '04:00:00'
before: '22:00:00'
- condition: state
entity_id: binary_sensor.master_bed_right_occupied
entity_id: input_boolean.master_bed_occupied
state: 'off'
for: '00:01:00'
action:
+2 -2
View File
@@ -8,7 +8,7 @@ trigger:
entity_id: binary_sensor.morning
to: 'on'
- platform: state
entity_id: binary_sensor.master_bed_right_occupied
entity_id: input_boolean.master_bed_occupied
to: 'on'
condition:
@@ -16,7 +16,7 @@ condition:
entity_id: input_boolean.clint_home
state: 'on'
- condition: state
entity_id: binary_sensor.master_bed_right_occupied
entity_id: input_boolean.master_bed_occupied
state: 'on'
- condition: state
entity_id: binary_sensor.morning
+17 -17
View File
@@ -4,13 +4,13 @@ mode: restart
trigger:
- platform: state
entity_id: binary_sensor.white_bed_occupied
to: 'on'
for: '00:05:00'
entity_id: input_boolean.white_bed_occupied
to: "on"
for: "00:05:00"
- platform: state
entity_id: binary_sensor.black_bed_occupied
to: 'on'
for: '00:05:00'
to: "on"
for: "00:05:00"
- platform: homeassistant
event: start
@@ -19,22 +19,22 @@ condition:
entity_id:
- input_boolean.ebin_home
- input_boolean.kids_bedtime
state: 'on'
state: "on"
- condition: state
entity_id: input_boolean.ebin_in_bed
state: 'off'
state: "off"
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: 'on'
for:
minutes: 5
- condition: state
entity_id: binary_sensor.white_bed_occupied
state: 'on'
for:
minutes: 5
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: "on"
for:
minutes: 5
- condition: state
entity_id: input_boolean.white_bed_occupied
state: "on"
for:
minutes: 5
action:
- service: homeassistant.turn_on
+2 -2
View File
@@ -4,7 +4,7 @@ id: automation_kristy_in_bed
trigger:
# Bed in master bedroom is occupied
- platform: state
entity_id: binary_sensor.master_bed_right_occupied
entity_id: input_boolean.master_bed_occupied
to: 'on'
# Radio playing
- platform: state
@@ -31,7 +31,7 @@ condition:
- alias: "The bed is occupied"
condition: state
entity_id: binary_sensor.master_bed_right_occupied
entity_id: input_boolean.master_bed_occupied
state: 'on'
action:
- service: input_boolean.turn_on
+2 -2
View File
@@ -11,7 +11,7 @@ trigger:
- input_boolean.clint_is_awake
- input_boolean.kristy_in_bed
- input_boolean.kristy_is_awake
- binary_sensor.master_bed_right_occupied
- input_boolean.master_bed_occupied
- platform: time
id: wake_clint
@@ -38,7 +38,7 @@ condition:
- condition: trigger
id: wake_clint
- condition: state
entity_id: binary_sensor.master_bed_right_occupied
entity_id: input_boolean.master_bed_occupied
state: 'off'
for: '00:10:00'
- condition: and
+6 -6
View File
@@ -163,13 +163,13 @@ action:
- choose:
- conditions: "{{is_state('input_boolean.emmett_home','on') or is_state('input_boolean.bridget_home','on')}}"
sequence:
- service: media_player.turn_off
target:
entity_id: media_player.ytube_music_player
- delay: "00:00:05"
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.nursery_asleep
- delay: "00:00:05"
- service: media_player.turn_off
target:
entity_id: media_player.ytube_music_player
-167
View File
@@ -1,167 +0,0 @@
alias: 'Goodnight Kids TTS'
id: automation_goodnight_kids_tts
initial_state: off
trigger:
platform: time
at: input_datetime.kids_bedtime_announcement_time
condition:
- condition: state
entity_id: input_boolean.announce_bedtime
state: 'on'
- condition: or
conditions:
- condition: state
entity_id: input_boolean.emmett_home
state: 'on'
- condition: state
entity_id: input_boolean.bridget_home
state: 'on'
- condition: state
entity_id: input_boolean.ebin_home
state: 'on'
action:
- service: homeassistant.turn_on
entity_id: input_boolean.kids_bedtime
- service: media_player.volume_set
data_template:
entity_id:
- media_player.bathroom_mini
- media_player.bathroom_mini
- media_player.front_room_hub
- media_player.kitchen
- media_player.nursery_hub
- media_player.master_bedroom_clock
volume_level: 0.7
- delay: '00:00:01'
- service: tts.google_translate_say
entity_id: media_player.all_speakers
data_template:
message: >
It is time for bed.
{% if is_state('input_boolean.emmett_home', 'on') %}
Good night Emmett
{% if is_state('input_boolean.bridget_home', 'on') %}
{% if is_state('input_boolean.ebin_home', 'on') %}
Good night Bridget and good night Ebin
{% else %}
and good night Bridget
{% endif %}
{% elif is_state('input_boolean.ebin_home','on') %}
and good night Ebin
{% endif %}
{% elif is_state('input_boolean.bridget_home', 'on') %}
{% if is_state('input_boolean.ebin_home', 'on') %}
Good night Bridget and good night Ebin
{% else %}
Good Night Bridget
{% endif %}
{% elif is_state('input_boolean.ebin_home', 'on') %}
Good night Ebin
{% endif %}
- delay: '00:00:10'
- service: homeassistant.turn_off
entity_id:
- media_player.all_speakers
- media_player.front_room_tv
- media_player.downstairs_roku
#- switch.shelly_projector
- service: input_select.select_option
data:
entity_id: input_select.automatic_light_profile
option: Dimmed
- choose:
- conditions:
- condition: state
entity_id: input_boolean.emmett_home
state: 'on'
- condition: state
entity_id: input_boolean.emmett_in_bed
state: 'off'
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: 'on'
sequence:
- service: homeassistant.turn_on
entity_id: input_boolean.emmett_in_bed
- choose:
- conditions:
- condition: state
entity_id: input_boolean.bridget_home
state: 'on'
- condition: state
entity_id: input_boolean.bridget_in_bed
state: 'off'
- condition: state
entity_id: binary_sensor.white_bed_occupied
state: 'on'
sequence:
- service: homeassistant.turn_on
entity_id: input_boolean.bridget_in_bed
- choose:
- conditions:
- condition: state
entity_id: input_boolean.ebin_home
state: 'on'
- condition: state
entity_id: input_boolean.ebin_in_bed
state: 'off'
sequence:
- service: homeassistant.turn_on
entity_id: input_boolean.ebin_in_bed
- service: light.turn_on
data:
entity_id:
- light.black_bed_wled
- light.white_bed_wled
brightness_pct: 50
effect: random
- service: input_select.select_option
data:
entity_id: input_select.nursery_mode
option: 'Nightlight'
- delay: "00:15:00"
- service: input_select.select_option
data:
entity_id: input_select.nursery_mode
option: 'Off'
- service: input_boolean.turn_on
entity_id: input_boolean.nursery_light_cycle
#- service: input_select.select_option
# data:
# entity_id: input_select.google_home
# option: 'Nursery'
#- service: input_select.select_option
# data:
# entity_id: input_select.ambient_sound
# option: 'Random Kids Noise'
#- service: input_number.set_value
# data:
# entity_id: input_number.volume_ambientsounds
# value: '0.40'
#- service: script.ambientsounds
- delay: "00:30:00"
- service: input_boolean.turn_off
entity_id: input_boolean.nursery_light_cycle
- service: light.turn_off
data:
entity_id:
- light.black_bed_wled
- light.white_bed_wled
- service: input_select.select_option
data:
entity_id: input_select.nursery_mode
option: 'Off'
+169 -171
View File
@@ -11,97 +11,96 @@ trigger:
- input_boolean.ebin_is_awake
- input_boolean.kids_away
- binary_sensor.morning
to: 'on'
to: "on"
- platform: state
entity_id:
- binary_sensor.black_bed_occupied
- binary_sensor.white_bed_occupied
to: 'off'
for: '00:05:00'
- input_boolean.white_bed_occupied
to: "off"
for: "00:05:00"
- platform: homeassistant
event: start
condition:
- alias: "Kids should only be considered awake if they get out of bed after 6:00 AM and before 7:00 PM"
condition: time
before: '19:00:00'
after: '06:00:00'
before: "19:00:00"
after: "06:00:00"
- alias: "Go through all the kids that are considered home and see if their bed is occupied"
condition: and
conditions:
- condition: or
conditions:
- condition: state
entity_id: input_boolean.emmett_home
state: 'off'
- condition: and
- condition: or
conditions:
- condition: state
entity_id: input_boolean.emmett_is_awake
state: 'off'
- condition: state
entity_id: input_boolean.emmett_home
state: 'on'
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: 'off'
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: 'unavailable'
- condition: or
conditions:
- condition: state
entity_id: input_boolean.bridget_home
state: 'off'
- condition: and
entity_id: input_boolean.emmett_home
state: "off"
- condition: and
conditions:
- condition: state
entity_id: input_boolean.emmett_is_awake
state: "off"
- condition: state
entity_id: input_boolean.emmett_home
state: "on"
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: "off"
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: "unavailable"
- condition: or
conditions:
- condition: state
entity_id: input_boolean.bridget_is_awake
state: 'off'
- condition: state
entity_id: input_boolean.bridget_home
state: 'on'
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.white_bed_occupied
state: 'off'
- condition: state
entity_id: binary_sensor.white_bed_occupied
state: 'unavailable'
- condition: or
conditions:
- condition: state
entity_id: input_boolean.ebin_home
state: 'off'
- condition: and
entity_id: input_boolean.bridget_home
state: "off"
- condition: and
conditions:
- condition: state
entity_id: input_boolean.bridget_is_awake
state: "off"
- condition: state
entity_id: input_boolean.bridget_home
state: "on"
- condition: or
conditions:
- condition: state
entity_id: input_boolean.white_bed_occupied
state: "off"
- condition: state
entity_id: input_boolean.white_bed_occupied
state: "unavailable"
- condition: or
conditions:
- condition: state
entity_id: input_boolean.ebin_is_awake
state: 'off'
- condition: state
entity_id: input_boolean.ebin_home
state: 'on'
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: 'off'
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: 'unavailable'
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.white_bed_occupied
state: 'off'
- condition: state
entity_id: binary_sensor.white_bed_occupied
state: 'unavailable'
entity_id: input_boolean.ebin_home
state: "off"
- condition: and
conditions:
- condition: state
entity_id: input_boolean.ebin_is_awake
state: "off"
- condition: state
entity_id: input_boolean.ebin_home
state: "on"
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: "off"
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: "unavailable"
- condition: or
conditions:
- condition: state
entity_id: input_boolean.white_bed_occupied
state: "off"
- condition: state
entity_id: input_boolean.white_bed_occupied
state: "unavailable"
action:
- service: input_boolean.turn_off
entity_id:
@@ -109,108 +108,107 @@ action:
- input_boolean.kids_asleep
- choose:
- conditions:
- condition: state
entity_id: input_boolean.emmett_is_awake
state: 'off'
- condition: state
entity_id: input_boolean.emmett_home
state: 'on'
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: 'off'
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: 'unavailable'
sequence:
- service: input_boolean.turn_off
entity_id: input_boolean.emmett_in_bed
- service: input_boolean.turn_on
entity_id: input_boolean.emmett_is_awake
- conditions:
- condition: state
entity_id: input_boolean.emmett_is_awake
state: "off"
- condition: state
entity_id: input_boolean.emmett_home
state: "on"
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: "off"
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: "unavailable"
sequence:
- service: input_boolean.turn_off
entity_id: input_boolean.emmett_in_bed
- service: input_boolean.turn_on
entity_id: input_boolean.emmett_is_awake
- choose:
- conditions:
- condition: state
entity_id: input_boolean.bridget_is_awake
state: 'off'
- condition: state
entity_id: input_boolean.bridget_home
state: 'on'
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.white_bed_occupied
state: 'off'
- condition: state
entity_id: binary_sensor.white_bed_occupied
state: 'unavailable'
sequence:
- service: input_boolean.turn_off
entity_id: input_boolean.bridget_in_bed
- service: input_boolean.turn_on
entity_id: input_boolean.bridget_is_awake
- conditions:
- condition: state
entity_id: input_boolean.bridget_is_awake
state: "off"
- condition: state
entity_id: input_boolean.bridget_home
state: "on"
- condition: or
conditions:
- condition: state
entity_id: input_boolean.white_bed_occupied
state: "off"
- condition: state
entity_id: input_boolean.white_bed_occupied
state: "unavailable"
sequence:
- service: input_boolean.turn_off
entity_id: input_boolean.bridget_in_bed
- service: input_boolean.turn_on
entity_id: input_boolean.bridget_is_awake
- choose:
- conditions:
- condition: state
entity_id: input_boolean.ebin_is_awake
state: 'off'
- condition: state
entity_id: input_boolean.ebin_home
state: 'on'
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: 'off'
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: 'unavailable'
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.white_bed_occupied
state: 'off'
- condition: state
entity_id: binary_sensor.white_bed_occupied
state: 'unavailable'
sequence:
- service: input_boolean.turn_off
entity_id: input_boolean.ebin_in_bed
- service: input_boolean.turn_on
entity_id: input_boolean.bridget_is_awake
- conditions:
- condition: state
entity_id: input_boolean.ebin_is_awake
state: "off"
- condition: state
entity_id: input_boolean.ebin_home
state: "on"
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: "off"
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: "unavailable"
- condition: or
conditions:
- condition: state
entity_id: input_boolean.white_bed_occupied
state: "off"
- condition: state
entity_id: input_boolean.white_bed_occupied
state: "unavailable"
sequence:
- service: input_boolean.turn_off
entity_id: input_boolean.ebin_in_bed
- service: input_boolean.turn_on
entity_id: input_boolean.bridget_is_awake
- choose:
- conditions:
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: 'off'
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: 'unavailable'
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.white_bed_occupied
state: 'off'
- condition: state
entity_id: binary_sensor.white_bed_occupied
state: 'unavailable'
- condition: not
conditions:
- condition: state
entity_id: input_select.nursery_mode
state: 'Manual'
- condition: state
entity_id: input_select.house
state: 'Away'
sequence:
- service: input_select.select_option
data:
entity_id: input_select.nursery_mode
option: Auto
- conditions:
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: "off"
- condition: state
entity_id: binary_sensor.black_bed_occupied
state: "unavailable"
- condition: or
conditions:
- condition: state
entity_id: input_boolean.white_bed_occupied
state: "off"
- condition: state
entity_id: input_boolean.white_bed_occupied
state: "unavailable"
- condition: not
conditions:
- condition: state
entity_id: input_select.nursery_mode
state: "Manual"
- condition: state
entity_id: input_select.house
state: "Away"
sequence:
- service: input_select.select_option
data:
entity_id: input_select.nursery_mode
option: Auto