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: trigger:
- platform: state - platform: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
to: 'on' to: "on"
for: '00:10:00' for: "00:10:00"
- platform: state - platform: state
entity_id: input_boolean.kids_bedtime entity_id: input_boolean.kids_bedtime
to: 'on' to: "on"
- platform: homeassistant - platform: homeassistant
event: start event: start
@@ -19,17 +19,17 @@ condition:
entity_id: entity_id:
- input_boolean.bridget_home - input_boolean.bridget_home
- input_boolean.kids_bedtime - input_boolean.kids_bedtime
state: 'on' state: "on"
- condition: state - condition: state
entity_id: entity_id:
- binary_sensor.white_bed_occupied - input_boolean.white_bed_occupied
state: 'on' state: "on"
for: '00:10:00' for: "00:10:00"
- condition: state - condition: state
entity_id: input_boolean.bridget_in_bed entity_id: input_boolean.bridget_in_bed
state: 'off' state: "off"
#- condition: state #- condition: state
# entity_id: binary_sensor.white_bed_occupied # entity_id: input_boolean.white_bed_occupied
# state: 'on' # state: 'on'
# for: # for:
# minutes: 5 # minutes: 5
+2 -2
View File
@@ -5,7 +5,7 @@ id: automation_clint_in_bed
trigger: trigger:
# Bed in master bedroom is occupied # Bed in master bedroom is occupied
- platform: state - platform: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
to: 'on' to: 'on'
# Radio playing # Radio playing
- platform: state - platform: state
@@ -63,7 +63,7 @@ condition:
- alias: "The bed is occupied" - alias: "The bed is occupied"
condition: state condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: 'on' state: 'on'
action: action:
- service: input_boolean.turn_on - service: input_boolean.turn_on
+2 -2
View File
@@ -10,7 +10,7 @@ trigger:
entity_id: media_player.great_room entity_id: media_player.great_room
to: 'idle' to: 'idle'
- platform: state - platform: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
to: 'off' to: 'off'
for: '00:05:00' for: '00:05:00'
- platform: state - platform: state
@@ -36,7 +36,7 @@ condition:
after: '04:00:00' after: '04:00:00'
before: '22:00:00' before: '22:00:00'
- condition: state - condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: 'off' state: 'off'
for: '00:01:00' for: '00:01:00'
action: action:
+2 -2
View File
@@ -8,7 +8,7 @@ trigger:
entity_id: binary_sensor.morning entity_id: binary_sensor.morning
to: 'on' to: 'on'
- platform: state - platform: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
to: 'on' to: 'on'
condition: condition:
@@ -16,7 +16,7 @@ condition:
entity_id: input_boolean.clint_home entity_id: input_boolean.clint_home
state: 'on' state: 'on'
- condition: state - condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: 'on' state: 'on'
- condition: state - condition: state
entity_id: binary_sensor.morning entity_id: binary_sensor.morning
+17 -17
View File
@@ -4,13 +4,13 @@ mode: restart
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
to: 'on' to: "on"
for: '00:05:00' for: "00:05:00"
- platform: state - platform: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
to: 'on' to: "on"
for: '00:05:00' for: "00:05:00"
- platform: homeassistant - platform: homeassistant
event: start event: start
@@ -19,22 +19,22 @@ condition:
entity_id: entity_id:
- input_boolean.ebin_home - input_boolean.ebin_home
- input_boolean.kids_bedtime - input_boolean.kids_bedtime
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.ebin_in_bed entity_id: input_boolean.ebin_in_bed
state: 'off' state: "off"
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
state: 'on' state: "on"
for: for:
minutes: 5 minutes: 5
- condition: state - condition: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
state: 'on' state: "on"
for: for:
minutes: 5 minutes: 5
action: action:
- service: homeassistant.turn_on - service: homeassistant.turn_on
+2 -2
View File
@@ -4,7 +4,7 @@ id: automation_kristy_in_bed
trigger: trigger:
# Bed in master bedroom is occupied # Bed in master bedroom is occupied
- platform: state - platform: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
to: 'on' to: 'on'
# Radio playing # Radio playing
- platform: state - platform: state
@@ -31,7 +31,7 @@ condition:
- alias: "The bed is occupied" - alias: "The bed is occupied"
condition: state condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: 'on' state: 'on'
action: action:
- service: input_boolean.turn_on - service: input_boolean.turn_on
+2 -2
View File
@@ -11,7 +11,7 @@ trigger:
- input_boolean.clint_is_awake - input_boolean.clint_is_awake
- input_boolean.kristy_in_bed - input_boolean.kristy_in_bed
- input_boolean.kristy_is_awake - input_boolean.kristy_is_awake
- binary_sensor.master_bed_right_occupied - input_boolean.master_bed_occupied
- platform: time - platform: time
id: wake_clint id: wake_clint
@@ -38,7 +38,7 @@ condition:
- condition: trigger - condition: trigger
id: wake_clint id: wake_clint
- condition: state - condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: 'off' state: 'off'
for: '00:10:00' for: '00:10:00'
- condition: and - condition: and
+6 -6
View File
@@ -163,13 +163,13 @@ action:
- choose: - choose:
- conditions: "{{is_state('input_boolean.emmett_home','on') or is_state('input_boolean.bridget_home','on')}}" - conditions: "{{is_state('input_boolean.emmett_home','on') or is_state('input_boolean.bridget_home','on')}}"
sequence: sequence:
- service: media_player.turn_off
target:
entity_id: media_player.ytube_music_player
- delay: "00:00:05"
- service: input_boolean.turn_on - service: input_boolean.turn_on
data: {} data: {}
target: target:
entity_id: input_boolean.nursery_asleep 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.ebin_is_awake
- input_boolean.kids_away - input_boolean.kids_away
- binary_sensor.morning - binary_sensor.morning
to: 'on' to: "on"
- platform: state - platform: state
entity_id: entity_id:
- binary_sensor.black_bed_occupied - binary_sensor.black_bed_occupied
- binary_sensor.white_bed_occupied - input_boolean.white_bed_occupied
to: 'off' to: "off"
for: '00:05:00' for: "00:05:00"
- platform: homeassistant - platform: homeassistant
event: start event: start
condition: condition:
- alias: "Kids should only be considered awake if they get out of bed after 6:00 AM and before 7:00 PM" - alias: "Kids should only be considered awake if they get out of bed after 6:00 AM and before 7:00 PM"
condition: time condition: time
before: '19:00:00' before: "19:00:00"
after: '06:00:00' after: "06:00:00"
- alias: "Go through all the kids that are considered home and see if their bed is occupied" - alias: "Go through all the kids that are considered home and see if their bed is occupied"
condition: and condition: and
conditions: conditions:
- condition: or - condition: or
conditions:
- condition: state
entity_id: input_boolean.emmett_home
state: 'off'
- condition: and
conditions: 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 - condition: state
entity_id: binary_sensor.black_bed_occupied entity_id: input_boolean.emmett_home
state: 'off' state: "off"
- condition: state - condition: and
entity_id: binary_sensor.black_bed_occupied conditions:
state: 'unavailable' - condition: state
- condition: or entity_id: input_boolean.emmett_is_awake
conditions: state: "off"
- condition: state - condition: state
entity_id: input_boolean.bridget_home entity_id: input_boolean.emmett_home
state: 'off' state: "on"
- condition: and - 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: 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 - condition: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.bridget_home
state: 'off' state: "off"
- condition: state - condition: and
entity_id: binary_sensor.white_bed_occupied conditions:
state: 'unavailable' - condition: state
- condition: or entity_id: input_boolean.bridget_is_awake
conditions: state: "off"
- condition: state - condition: state
entity_id: input_boolean.ebin_home entity_id: input_boolean.bridget_home
state: 'off' state: "on"
- condition: and - 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: 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 - condition: state
entity_id: binary_sensor.black_bed_occupied entity_id: input_boolean.ebin_home
state: 'off' state: "off"
- condition: state - condition: and
entity_id: binary_sensor.black_bed_occupied conditions:
state: 'unavailable' - condition: state
- condition: or entity_id: input_boolean.ebin_is_awake
conditions: state: "off"
- condition: state - condition: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.ebin_home
state: 'off' state: "on"
- condition: state - condition: or
entity_id: binary_sensor.white_bed_occupied conditions:
state: 'unavailable' - 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: action:
- service: input_boolean.turn_off - service: input_boolean.turn_off
entity_id: entity_id:
@@ -109,108 +108,107 @@ action:
- input_boolean.kids_asleep - input_boolean.kids_asleep
- choose: - choose:
- conditions: - conditions:
- condition: state - condition: state
entity_id: input_boolean.emmett_is_awake entity_id: input_boolean.emmett_is_awake
state: 'off' state: "off"
- condition: state - condition: state
entity_id: input_boolean.emmett_home entity_id: input_boolean.emmett_home
state: 'on' state: "on"
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
state: 'off' state: "off"
- condition: state - condition: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
state: 'unavailable' state: "unavailable"
sequence: sequence:
- service: input_boolean.turn_off - service: input_boolean.turn_off
entity_id: input_boolean.emmett_in_bed entity_id: input_boolean.emmett_in_bed
- service: input_boolean.turn_on - service: input_boolean.turn_on
entity_id: input_boolean.emmett_is_awake entity_id: input_boolean.emmett_is_awake
- choose: - choose:
- conditions: - conditions:
- condition: state - condition: state
entity_id: input_boolean.bridget_is_awake entity_id: input_boolean.bridget_is_awake
state: 'off' state: "off"
- condition: state - condition: state
entity_id: input_boolean.bridget_home entity_id: input_boolean.bridget_home
state: 'on' state: "on"
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
state: 'off' state: "off"
- condition: state - condition: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
state: 'unavailable' state: "unavailable"
sequence: sequence:
- service: input_boolean.turn_off - service: input_boolean.turn_off
entity_id: input_boolean.bridget_in_bed entity_id: input_boolean.bridget_in_bed
- service: input_boolean.turn_on - service: input_boolean.turn_on
entity_id: input_boolean.bridget_is_awake entity_id: input_boolean.bridget_is_awake
- choose: - choose:
- conditions: - conditions:
- condition: state - condition: state
entity_id: input_boolean.ebin_is_awake entity_id: input_boolean.ebin_is_awake
state: 'off' state: "off"
- condition: state - condition: state
entity_id: input_boolean.ebin_home entity_id: input_boolean.ebin_home
state: 'on' state: "on"
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
state: 'off' state: "off"
- condition: state - condition: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
state: 'unavailable' state: "unavailable"
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
state: 'off' state: "off"
- condition: state - condition: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
state: 'unavailable' state: "unavailable"
sequence: sequence:
- service: input_boolean.turn_off - service: input_boolean.turn_off
entity_id: input_boolean.ebin_in_bed entity_id: input_boolean.ebin_in_bed
- service: input_boolean.turn_on - service: input_boolean.turn_on
entity_id: input_boolean.bridget_is_awake entity_id: input_boolean.bridget_is_awake
- choose: - choose:
- conditions: - conditions:
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
state: 'off' state: "off"
- condition: state - condition: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
state: 'unavailable' state: "unavailable"
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
state: 'off' state: "off"
- condition: state - condition: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
state: 'unavailable' state: "unavailable"
- condition: not - condition: not
conditions: conditions:
- condition: state - condition: state
entity_id: input_select.nursery_mode entity_id: input_select.nursery_mode
state: 'Manual' state: "Manual"
- condition: state - condition: state
entity_id: input_select.house entity_id: input_select.house
state: 'Away' state: "Away"
sequence: sequence:
- service: input_select.select_option - service: input_select.select_option
data: data:
entity_id: input_select.nursery_mode entity_id: input_select.nursery_mode
option: Auto option: Auto
@@ -4,66 +4,66 @@ id: automation_baby_monitor_on_hub
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
to: 'off' to: "off"
for: '00:00:03' for: "00:00:03"
- platform: state - platform: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
to: 'off' to: "off"
for: '00:00:03' for: "00:00:03"
condition: condition:
- condition: state - condition: state
entity_id: binary_sensor.kids_at_home entity_id: binary_sensor.kids_at_home
state: 'on' state: "on"
- condition: state - condition: state
entity_id: group.kids_in_bed entity_id: group.kids_in_bed
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.home_occupied entity_id: input_boolean.home_occupied
state: 'on' state: "on"
- condition: state - condition: state
entity_id: binary_sensor.front_room_person_occupancy entity_id: binary_sensor.front_room_person_occupancy
state: 'on' state: "on"
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: media_player.front_room_hub entity_id: media_player.front_room_hub
state: 'off' state: "off"
- condition: state - condition: state
entity_id: media_player.front_room_hub entity_id: media_player.front_room_hub
state: 'idle' state: "idle"
action: action:
- choose: - choose:
- conditions: - conditions:
- condition: state - condition: state
entity_id: timer.nursery_camera_on_hub entity_id: timer.nursery_camera_on_hub
state: 'idle' state: "idle"
sequence: sequence:
- service: media_player.volume_set - service: media_player.volume_set
data: data:
entity_id: media_player.front_room_hub entity_id: media_player.front_room_hub
volume_level: 0.1 volume_level: 0.1
- service: media_player.play_media - service: media_player.play_media
target: target:
entity_id: media_player.front_room_hub entity_id: media_player.front_room_hub
data: data:
media_content_id: camera-casting-yml/nursery-camera media_content_id: camera-casting-yml/nursery-camera
media_content_type: lovelace media_content_type: lovelace
metadata: metadata:
title: Nursery Camera title: Nursery Camera
thumbnail: https://brands.home-assistant.io/_/lovelace/logo.png thumbnail: https://brands.home-assistant.io/_/lovelace/logo.png
media_class: app media_class: app
children_media_class: null children_media_class: null
navigateIds: navigateIds:
- {} - {}
- media_content_type: lovelace - media_content_type: lovelace
media_content_id: '' media_content_id: ""
- media_content_type: lovelace - media_content_type: lovelace
media_content_id: camera-casting-yml media_content_id: camera-casting-yml
- service: timer.start - service: timer.start
data: data:
entity_id: timer.nursery_camera_on_hub entity_id: timer.nursery_camera_on_hub
@@ -4,69 +4,69 @@ id: automation_baby_monitor_on_tv
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
to: 'off' to: "off"
for: '00:00:03' for: "00:00:03"
- platform: state - platform: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
to: 'off' to: "off"
for: '00:00:03' for: "00:00:03"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.home_occupied entity_id: input_boolean.home_occupied
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.front_room_occupied entity_id: input_boolean.front_room_occupied
state: 'on' state: "on"
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: media_player.front_room_tv entity_id: media_player.front_room_tv
state: 'off' state: "off"
- condition: state - condition: state
entity_id: media_player.front_room_tv entity_id: media_player.front_room_tv
state: 'standby' state: "standby"
- condition: state - condition: state
entity_id: input_boolean.computer_area_occupied entity_id: input_boolean.computer_area_occupied
state: 'off' state: "off"
- condition: state - condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: 'off' state: "off"
- condition: state - condition: state
entity_id: binary_sensor.master_bedroom_occupied entity_id: binary_sensor.master_bedroom_occupied
state: 'off' state: "off"
- condition: state - condition: state
entity_id: input_boolean.master_bedroom_occupied entity_id: input_boolean.master_bedroom_occupied
state: 'off' state: "off"
- condition: state - condition: state
entity_id: input_boolean.master_bedroom_asleep entity_id: input_boolean.master_bedroom_asleep
state: 'off' state: "off"
- condition: or - condition: or
conditions: conditions:
- condition: and - condition: and
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.emmett_home entity_id: input_boolean.emmett_home
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.emmett_in_bed entity_id: input_boolean.emmett_in_bed
state: 'on' state: "on"
- condition: and - condition: and
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.bridget_home entity_id: input_boolean.bridget_home
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.bridget_in_bed entity_id: input_boolean.bridget_in_bed
state: 'on' state: "on"
- condition: and - condition: and
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.ebin_home entity_id: input_boolean.ebin_home
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.ebin_in_bed entity_id: input_boolean.ebin_in_bed
state: 'on' state: "on"
- condition: not - condition: not
conditions: conditions:
- condition: state - condition: state
@@ -78,17 +78,17 @@ condition:
- condition: state - condition: state
entity_id: media_player.front_room_tv entity_id: media_player.front_room_tv
attribute: source attribute: source
state: 'IP Camera Viewer - Pro' state: "IP Camera Viewer - Pro"
action: action:
- choose: - choose:
- conditions: - conditions:
- condition: state - condition: state
entity_id: timer.nursery_camera_on_hub entity_id: timer.nursery_camera_on_hub
state: 'idle' state: "idle"
sequence: sequence:
- service: rest_command.nursery_on_roku_1 - service: rest_command.nursery_on_roku_1
- service: timer.start - service: timer.start
data: data:
entity_id: timer.nursery_camera_on_tv entity_id: timer.nursery_camera_on_tv
@@ -13,7 +13,7 @@ trigger:
for: '00:00:30' for: '00:00:30'
- platform: state - platform: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
to: 'on' to: 'on'
for: '00:00:05' for: '00:00:05'
@@ -40,7 +40,7 @@ condition:
entity_id: sensor.pixel_7_charger_type entity_id: sensor.pixel_7_charger_type
state: 'wireless' state: 'wireless'
- condition: state - condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: 'on' state: 'on'
@@ -3,7 +3,7 @@ id: automation_master_bedroom_awake
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
to: 'off' to: 'off'
for: '00:10:00' for: '00:10:00'
@@ -25,7 +25,7 @@ condition:
- alias: "No one on master bed" - alias: "No one on master bed"
condition: state condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: 'off' state: 'off'
- alias: "The boolean is currently on" - alias: "The boolean is currently on"
@@ -24,7 +24,7 @@ condition:
state: 'off' state: 'off'
- condition: state - condition: state
entity_id: entity_id:
- binary_sensor.master_bed_right_occupied - input_boolean.master_bed_occupied
state: state:
- 'off' - 'off'
- 'unavailable' - 'unavailable'
@@ -4,7 +4,7 @@ id: automation_master_bedroom_status
trigger: trigger:
- id: master_bed_not_occupied - id: master_bed_not_occupied
platform: state platform: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
to: 'off' to: 'off'
for: '00:10:00' for: '00:10:00'
@@ -21,7 +21,7 @@ trigger:
- id: master_bed_right_occupied - id: master_bed_right_occupied
platform: state platform: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
to: 'on' to: 'on'
for: '00:00:05' for: '00:00:05'
@@ -54,7 +54,7 @@ condition:
- alias: "No one on master bed" - alias: "No one on master bed"
condition: state condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: 'off' state: 'off'
- alias: "Is the room asleep?" - alias: "Is the room asleep?"
@@ -82,7 +82,7 @@ condition:
- alias: "Someone on master bed" - alias: "Someone on master bed"
condition: state condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: 'on' state: 'on'
action: action:
@@ -110,7 +110,7 @@ action:
- alias: "No one on master bed" - alias: "No one on master bed"
condition: state condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: 'off' state: 'off'
sequence: sequence:
- service: input_boolean.turn_off - service: input_boolean.turn_off
@@ -139,7 +139,7 @@ action:
- alias: "Someone on master bed" - alias: "Someone on master bed"
condition: state condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: 'on' state: 'on'
sequence: sequence:
- choose: - choose:
@@ -13,7 +13,7 @@ action:
# option: 'Off' # option: 'Off'
- action: media_player.volume_set - action: media_player.volume_set
data: data:
volume_level: 0.3 volume_level: 0.25
target: target:
device_id: d534ab473e271021b537397cbc6fe700 device_id: d534ab473e271021b537397cbc6fe700
@@ -29,7 +29,7 @@ action:
- action: media_player.repeat_set - action: media_player.repeat_set
metadata: {} metadata: {}
data: data:
repeat: all repeat: "off"
target: target:
device_id: d534ab473e271021b537397cbc6fe700 device_id: d534ab473e271021b537397cbc6fe700
- action: music_assistant.play_media - action: music_assistant.play_media
@@ -40,4 +40,11 @@ action:
enqueue: replace enqueue: replace
target: target:
device_id: d534ab473e271021b537397cbc6fe700 device_id: d534ab473e271021b537397cbc6fe700
- action: music_assistant.play_media
target:
device_id: d534ab473e271021b537397cbc6fe700
data:
media_id: library://track/101
media_type: track
enqueue: add
+23 -23
View File
@@ -4,42 +4,42 @@ id: automation_nursery_into_bed
trigger: trigger:
- platform: state - platform: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
to: 'on' to: "on"
for: '00:00:30' for: "00:00:30"
- platform: state - platform: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
to: 'on' to: "on"
for: '00:00:30' for: "00:00:30"
condition: condition:
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.home_occupied entity_id: input_boolean.home_occupied
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.guest_mode entity_id: input_boolean.guest_mode
state: 'on' state: "on"
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.emmett_home entity_id: input_boolean.emmett_home
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.bridget_home entity_id: input_boolean.bridget_home
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.ebin_home entity_id: input_boolean.ebin_home
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.nursery_light_cycle entity_id: input_boolean.nursery_light_cycle
state: 'off' state: "off"
- condition: state - condition: state
entity_id: input_select.nursery_mode entity_id: input_select.nursery_mode
state: 'Nightlight' state: "Nightlight"
- condition: state - condition: state
entity_id: light.nursery_hue entity_id: light.nursery_hue
state: 'on' state: "on"
action: action:
- service: light.turn_on - service: light.turn_on
@@ -1,73 +1,72 @@
alias: 'Nursery Not Occupied' alias: "Nursery Not Occupied"
id: automation_nursery_not_occupied id: automation_nursery_not_occupied
mode: restart mode: restart
trigger: trigger:
- platform: state - platform: state
entity_id: input_boolean.home_occupied entity_id: input_boolean.home_occupied
from: 'on' from: "on"
to: 'off' to: "off"
- platform: state - platform: state
entity_id: entity_id:
- input_boolean.home_occupied - input_boolean.home_occupied
- binary_sensor.nursery_occupied - binary_sensor.nursery_occupied
to: 'off' to: "off"
for: '00:05:00' for: "00:05:00"
# - platform: time_pattern # - platform: time_pattern
# minutes: "/5" # minutes: "/5"
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.lights_off_manually entity_id: input_boolean.lights_off_manually
state: 'off' state: "off"
- condition: state - condition: state
entity_id: entity_id:
- binary_sensor.white_bed_occupied - input_boolean.white_bed_occupied
- binary_sensor.black_bed_occupied - binary_sensor.black_bed_occupied
state: state:
- 'off' - "off"
- 'unavailable' - "unavailable"
- condition: state - condition: state
entity_id: input_boolean.nursery_occupied entity_id: input_boolean.nursery_occupied
state: 'on' state: "on"
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.home_occupied entity_id: input_boolean.home_occupied
state: 'off' state: "off"
- condition: or - condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: binary_sensor.nursery_person_occupancy entity_id: binary_sensor.nursery_person_occupancy
state: 'off' state: "off"
for: for:
minutes: 5 minutes: 5
- condition: state - condition: state
entity_id: binary_sensor.nursery_occupied entity_id: binary_sensor.nursery_occupied
state: 'off' state: "off"
for: for:
minutes: 5 minutes: 5
action: action:
- choose: - choose:
- conditions: - conditions:
- condition: state - condition: state
entity_id: input_boolean.home_occupied entity_id: input_boolean.home_occupied
state: 'off' state: "off"
sequence: sequence:
- service: homeassistant.turn_off - service: homeassistant.turn_off
entity_id: input_boolean.nursery_occupied entity_id: input_boolean.nursery_occupied
- conditions: - conditions:
- condition: not - condition: not
conditions: conditions:
- condition: state - condition: state
entity_id: input_select.house entity_id: input_select.house
state: 'Manual' state: "Manual"
sequence: sequence:
- service: homeassistant.turn_off - service: homeassistant.turn_off
entity_id: input_boolean.nursery_occupied entity_id: input_boolean.nursery_occupied
@@ -10,78 +10,78 @@ trigger:
- platform: state - platform: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
from: 'on' from: "on"
to: 'off' to: "off"
for: '00:00:05' for: "00:00:05"
- platform: state - platform: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
from: 'on' from: "on"
to: 'off' to: "off"
for: '00:00:05' for: "00:00:05"
- platform: state - platform: state
entity_id: binary_sensor.nursery_door entity_id: binary_sensor.nursery_door
from: 'off' from: "off"
to: 'on' to: "on"
condition: condition:
- alias: "Do we want to be alerted?" - alias: "Do we want to be alerted?"
condition: state condition: state
entity_id: input_boolean.out_of_bed_alert entity_id: input_boolean.out_of_bed_alert
state: 'on' state: "on"
- alias: "Is the home occupied or in guest mode?" - alias: "Is the home occupied or in guest mode?"
condition: or condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.home_occupied entity_id: input_boolean.home_occupied
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.guest_mode entity_id: input_boolean.guest_mode
state: 'on' state: "on"
- alias: "Are any of the kids considered home?" - alias: "Are any of the kids considered home?"
condition: or condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: input_boolean.emmett_home entity_id: input_boolean.emmett_home
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.bridget_home entity_id: input_boolean.bridget_home
state: 'on' state: "on"
- condition: state - condition: state
entity_id: input_boolean.ebin_home entity_id: input_boolean.ebin_home
state: 'on' state: "on"
- alias: "Is at a time of day when the kids should be sleeping?" - alias: "Is at a time of day when the kids should be sleeping?"
condition: or condition: or
conditions: conditions:
- condition: state - condition: state
entity_id: binary_sensor.evening entity_id: binary_sensor.evening
state: 'on' state: "on"
- condition: state - condition: state
entity_id: binary_sensor.late_evening entity_id: binary_sensor.late_evening
state: 'on' state: "on"
- condition: state - condition: state
entity_id: binary_sensor.night entity_id: binary_sensor.night
state: 'on' state: "on"
- condition: state - condition: state
entity_id: binary_sensor.early_morning entity_id: binary_sensor.early_morning
state: 'on' state: "on"
- alias: "Is Nursery Light Cycle turned off?" - alias: "Is Nursery Light Cycle turned off?"
condition: state condition: state
entity_id: input_boolean.nursery_light_cycle entity_id: input_boolean.nursery_light_cycle
state: 'off' state: "off"
- alias: "Are the kids asleep?" - alias: "Are the kids asleep?"
condition: state condition: state
entity_id: input_boolean.kids_asleep entity_id: input_boolean.kids_asleep
state: 'on' state: "on"
- alias: "Is an adult awake?" - alias: "Is an adult awake?"
condition: state condition: state
entity_id: binary_sensor.adults_asleep entity_id: binary_sensor.adults_asleep
state: 'off' state: "off"
variables: variables:
computer_area: "{{ states('binary_sensor.computer_area_person_occupancy') }}" computer_area: "{{ states('binary_sensor.computer_area_person_occupancy') }}"
@@ -90,42 +90,42 @@ variables:
action: action:
- choose: - choose:
- conditions: - conditions:
- condition: state - condition: state
entity_id: binary_sensor.garage_occupied entity_id: binary_sensor.garage_occupied
state: 'on' state: "on"
sequence: sequence:
- service: script.blink_garage_lights - service: script.blink_garage_lights
- choose: - choose:
- conditions: - conditions:
- condition: state - condition: state
entity_id: binary_sensor.computer_area_occupied entity_id: binary_sensor.computer_area_occupied
state: 'on' state: "on"
sequence: sequence:
- service: webrtc.dash_cast - service: webrtc.dash_cast
data: data:
entity_id: media_player.computer_area_hub entity_id: media_player.computer_area_hub
url: rtsp_cam08_sub url: rtsp_cam08_sub
force: true force: true
extra: extra:
mode: webrtc mode: webrtc
- choose: - choose:
- conditions: - conditions:
- condition: state - condition: state
entity_id: binary_sensor.front_room_occupied entity_id: binary_sensor.front_room_occupied
state: 'on' state: "on"
sequence: sequence:
- service: webrtc.dash_cast - service: webrtc.dash_cast
data: data:
entity_id: media_player.front_room_hub entity_id: media_player.front_room_hub
url: rtsp_cam08_sub url: rtsp_cam08_sub
force: true force: true
extra: extra:
mode: webrtc mode: webrtc
- delay: '00:10:00' - delay: "00:10:00"
- service: media_player.turn_off - service: media_player.turn_off
entity_id: media_player.front_room_hub, media_player.computer_area_hub entity_id: media_player.front_room_hub, media_player.computer_area_hub
@@ -6,7 +6,7 @@ prior: 0.25
probability_threshold: 0.75 probability_threshold: 0.75
observations: observations:
- entity_id: binary_sensor.master_bed_right_occupied - entity_id: input_boolean.master_bed_occupied
platform: state platform: state
prob_given_true: .83 prob_given_true: .83
prob_given_false: 0.0 prob_given_false: 0.0
@@ -5,10 +5,9 @@ device_class: occupancy
prior: 0.25 prior: 0.25
probability_threshold: 0.90 probability_threshold: 0.90
observations: observations:
- platform: state - platform: state
entity_id: group.nursery_motion entity_id: group.nursery_motion
to_state: 'on' to_state: "on"
prob_given_true: .33 prob_given_true: .33
prob_given_false: 0.0 prob_given_false: 0.0
@@ -16,17 +15,17 @@ observations:
prob_given_true: .33 prob_given_true: .33
prob_given_false: 0.0 prob_given_false: 0.0
platform: state platform: state
to_state: 'on' to_state: "on"
- platform: state - platform: state
entity_id: binary_sensor.black_bed_occupied entity_id: binary_sensor.black_bed_occupied
to_state: 'on' to_state: "on"
prob_given_true: .67 prob_given_true: .67
prob_given_false: 0.0 prob_given_false: 0.0
- platform: state - platform: state
entity_id: binary_sensor.white_bed_occupied entity_id: input_boolean.white_bed_occupied
to_state: 'on' to_state: "on"
prob_given_true: .67 prob_given_true: .67
prob_given_false: 0.0 prob_given_false: 0.0
@@ -34,4 +33,4 @@ observations:
platform: state platform: state
prob_given_true: .92 prob_given_true: .92
prob_given_false: 0.5 prob_given_false: 0.5
to_state: 'on' to_state: "on"
+4 -4
View File
@@ -123,13 +123,13 @@ sensors:
unique_id: templatebinarysensor.master_bed_left_occupied unique_id: templatebinarysensor.master_bed_left_occupied
friendly_name: Master Bedroom Left Occupied friendly_name: Master Bedroom Left Occupied
icon_template: mdi:bed-king icon_template: mdi:bed-king
value_template: "{{ is_state('binary_sensor.master_bed_occupied','on') and states('sensor.master_bed_weight') | float(default=0) > 200 }}" value_template: "{{ is_state('input_boolean.master_bed_occupied','on') and is_state('person.kristy','home') }}"
master_bed_right_occupied: master_bed_right_occupied:
unique_id: templatebinarysensor.master_bed_right_occupied unique_id: templatebinarysensor.master_bed_right_occupied
friendly_name: Master Bedroom Right Occupied friendly_name: Master Bedroom Right Occupied
icon_template: mdi:bed-king icon_template: mdi:bed-king
value_template: "{{ is_state('binary_sensor.master_bed_occupied','on') or is_state('input_boolean.master_bed_occupied','on') }}" value_template: "{{ is_state('input_boolean.master_bed_occupied','on') }}"
bathroom_getting_humid: bathroom_getting_humid:
unique_id: templatebinarysensor.bathroom_getting_humid unique_id: templatebinarysensor.bathroom_getting_humid
@@ -721,8 +721,8 @@ sensors:
bridgets_bed: bridgets_bed:
unique_id: templatebinarysensor.bridgets_bed unique_id: templatebinarysensor.bridgets_bed
friendly_name: Bridget's Bed friendly_name: Bridget's Bed
value_template: "{{ states('binary_sensor.white_bed_occupied') }}" value_template: "{{ states('input_boolean.white_bed_occupied') }}"
icon_template: "{{ iif(is_state('binary_sensor.white_bed_occupied','on'),'mdi:bed','mdi:bed-empty','mdi:bed-outline')}}" icon_template: "{{ iif(is_state('input_boolean.white_bed_occupied','on'),'mdi:bed','mdi:bed-empty','mdi:bed-outline')}}"
check_mail: check_mail:
unique_id: templatebinarysensor.check_mail unique_id: templatebinarysensor.check_mail
@@ -1,5 +0,0 @@
name: Master Bed LoadCell Load
icon: mdi:weight
min: -8388000
max: 8388000
mode: box
@@ -1,5 +0,0 @@
name: Master Bed LoadCell Weight
icon: mdi:weight-pound
min: 0
max: 300
mode: box
@@ -1,5 +0,0 @@
name: Master Bed LoadCell Zero
icon: mdi:weight
min: -8388000
max: 8388000
mode: box
@@ -1,5 +0,0 @@
name: Master Bed Occupied
icon: mdi:weight-pound
min: 0
max: 300
mode: box
+2 -2
View File
@@ -1,8 +1,8 @@
binary_sensor.black_bed_occupied: binary_sensor.black_bed_occupied:
icon: mdi:bed icon: mdi:bed
binary_sensor.white_bed_occupied: input_boolean.white_bed_occupied:
icon: mdi:bed icon: mdi:bed
binary_sensor.master_bed_occupied: input_boolean.master_bed_occupied:
icon: mdi:bed-king icon: mdi:bed-king
+67 -16
View File
@@ -5,23 +5,74 @@ substitutions:
platform: ESP32 platform: ESP32
board: nodemcu-32s board: nodemcu-32s
static_ip: !secret white-bed-ip static_ip: !secret white-bed-ip
dout_pin: !secret white-bed-dout center_sensor_gpio: GPIO34
clk_pin: !secret white-bed-clk
loadcell_zero: !secret white-bed-zero
loadcell_load: !secret white-bed-load
loadcell_weight: !secret white-bed-weight
# Enable logging
# logger:
# level: DEBUG
# logs:
# sensor: INFO
# hx711: DEBUG
packages:
wifi: !include common/wifi.yaml
device_base: !include common/device_base.yaml
# hx711: !include common/hx711_single_verbose.yaml
esp32: esp32:
board: nodemcu-32s board: nodemcu-32s
framework:
type: esp-idf
esphome:
name: ${devicename}
# platform: ${platform}
# board: ${board}
# Enable logging
logger:
# Sync time with Home Assistant.
time:
- platform: homeassistant
id: homeassistant_time
# Enable Home Assistant API
api:
reboot_timeout: 15min
ota:
- platform: esphome
packages:
#wifi: !include common/wifi.yaml
wifi: !include common/wifi_no_power_save.yaml
ble: !include bed-presence/bluetooth-proxy.yaml
diagnostics: !include
file: bed-presence/diagnostics.yaml
vars:
boot_gpio: GPIO9
uptime_id: bed_presence_uptime
restart_id: btn_restart
status_id: bed_presence_status
bed_sensor: !include
file: bed-presence/sensor.yaml
vars:
sensor_name: Center
sensor_id: center_occupied
sensor_gpio: ${center_sensor_gpio}
switch:
- platform: template
name: Full Range
id: full_range
optimistic: true
restore_mode: RESTORE_DEFAULT_OFF
entity_category: config
icon: mdi:arrow-expand
select:
- platform: template
name: "Response Speed"
id: response_speed
icon: mdi:speedometer
optimistic: true
restore_value: true
options:
- "Fast"
- "Normal"
- "Slow"
initial_option: "Normal"
entity_category: config
+18
View File
@@ -1,6 +1,7 @@
substitutions: substitutions:
devicename: black-bed devicename: black-bed
friendly_name: Black Bed friendly_name: Black Bed
comment: Clever Bed Sensor
entity_name: black_bed entity_name: black_bed
platform: ESP8266 platform: ESP8266
board: nodemcuv2 board: nodemcuv2
@@ -25,3 +26,20 @@ packages:
esp8266: esp8266:
board: nodemcuv2 board: nodemcuv2
# font:
# - file: 'fonts/mdi.ttf'
# id: mdi_weather
# size: 96
# glyphs: &mdi-weather-glyphs
# - "\U000F0599" # mdi-weather-sunny
# - "\U000F0594" # mdi-weather-night
# - "\U000F0595" # mdi-weather-partly-cloudy
# - "\U000F0F31" # mdi-weather-night-partly-cloudy
# - "\U000F0590" # mdi-weather-cloudy
# - "\U000F0591" # mdi-weather-fog
# - "\U000F0597" # mdi-weather-rainy
# - "\U000F0598" # mdi-weather-snowy
# - "\U000F067F" # mdi-weather-snowy-rainy
# - "\U000F0596" # mdi-weather-pouring
# - "\U000F067E" # mdi-weather-lightning-rainy
+2
View File
@@ -1,5 +1,7 @@
esphome: esphome:
name: ${devicename} name: ${devicename}
comment: ${comment}
friendly_name: ${friendly_name}
# platform: ${platform} # platform: ${platform}
# board: ${board} # board: ${board}
@@ -15,3 +15,8 @@ api:
wifi: wifi:
ssid: !secret wifi_ssid ssid: !secret wifi_ssid
password: !secret wifi_password password: !secret wifi_password
binary_sensor:
- platform: status
name: "Everything Presence Great Room Status"
id: everything_presence_lite_8fa4fc_status
+1
View File
@@ -2,6 +2,7 @@ substitutions:
devicename: nursery-tagreader devicename: nursery-tagreader
entity_name: nursery_tagreader entity_name: nursery_tagreader
friendly_name: Nursery Tagreader friendly_name: Nursery Tagreader
comment: Clever Tag Reader
platform: ESP8266 platform: ESP8266
board: d1_mini board: d1_mini
static_ip: !secret nursery-tagreader-ip static_ip: !secret nursery-tagreader-ip
+1
View File
@@ -15,6 +15,7 @@ substitutions:
devicename: power-monitor devicename: power-monitor
friendly_name: 'PM:' friendly_name: 'PM:'
entity_name: power_monitor entity_name: power_monitor
comment: Clever Power Monitor
static_ip: !secret power-monitor-ip static_ip: !secret power-monitor-ip
platform: ESP32 platform: ESP32
board: nodemcu-32s board: nodemcu-32s
-78
View File
@@ -1,78 +0,0 @@
substitutions:
devicename: white-bed
entity_name: white_bed
friendly_name: White Bed
platform: ESP32
board: nodemcu-32s
static_ip: !secret white-bed-ip
center_sensor_gpio: GPIO34
esp32:
board: nodemcu-32s
framework:
type: esp-idf
esphome:
name: ${devicename}
# platform: ${platform}
# board: ${board}
# Enable logging
logger:
# Sync time with Home Assistant.
time:
- platform: homeassistant
id: homeassistant_time
# Enable Home Assistant API
api:
reboot_timeout: 15min
ota:
- platform: esphome
packages:
#wifi: !include common/wifi.yaml
wifi: !include common/wifi_no_power_save.yaml
ble: !include bed-presence/bluetooth-proxy.yaml
diagnostics: !include
file: bed-presence/diagnostics.yaml
vars:
boot_gpio: GPIO9
uptime_id: bed_presence_uptime
restart_id: btn_restart
status_id: bed_presence_status
bed_sensor: !include
file: bed-presence/sensor.yaml
vars:
sensor_name: Center
sensor_id: center_occupied
sensor_gpio: ${center_sensor_gpio}
switch:
- platform: template
name: Full Range
id: full_range
optimistic: true
restore_mode: RESTORE_DEFAULT_OFF
entity_category: config
icon: mdi:arrow-expand
select:
- platform: template
name: "Response Speed"
id: response_speed
icon: mdi:speedometer
optimistic: true
restore_value: true
options:
- "Fast"
- "Normal"
- "Slow"
initial_option: "Normal"
entity_category: config
+2 -2
View File
@@ -145,5 +145,5 @@ card:
- type: state-icon - type: state-icon
entity: binary_sensor.computer_chair_contact_occupied entity: binary_sensor.computer_chair_contact_occupied
style: style:
top: 87% top: 35%
left: 75% left: 25%
+4 -4
View File
@@ -42,7 +42,7 @@ card:
lazy_load: false lazy_load: false
dimensions: dimensions:
aspect_ratio_mode: static aspect_ratio_mode: static
aspect_ratio: '16:9' aspect_ratio: "16:9"
elements: elements:
- type: image - type: image
image: /local/title-dark-double.png image: /local/title-dark-double.png
@@ -79,7 +79,7 @@ card:
left: 40% left: 40%
top: 95% top: 95%
- type: state-icon - type: state-icon
entity: binary_sensor.white_bed_occupied entity: input_boolean.white_bed_occupied
style: style:
left: 60% left: 60%
top: 95% top: 95%
@@ -129,11 +129,11 @@ card:
left: 85% left: 85%
- type: conditional - type: conditional
conditions: conditions:
- entity: binary_sensor.white_bed_occupied - entity: input_boolean.white_bed_occupied
state: "on" state: "on"
elements: elements:
- type: state-icon - type: state-icon
entity: binary_sensor.white_bed_occupied entity: input_boolean.white_bed_occupied
style: style:
top: 65% top: 65%
left: 80% left: 80%
-2
View File
@@ -20,8 +20,6 @@ cards:
show_state: true show_state: true
columns: 5 columns: 5
entities: entities:
- name: Status
entity: input_text.camera14_status
- name: Contrast - name: Contrast
entity: switch.frigate_cam14_improve_contrast entity: switch.frigate_cam14_improve_contrast
tap_action: tap_action:
+6 -18
View File
@@ -111,26 +111,14 @@ cards:
secondary_info: none secondary_info: none
- type: horizontal-stack - type: horizontal-stack
cards: cards:
- type: custom:mushroom-template-card - type: custom:mushroom-entity-card
entity: binary_sensor.master_bed_right_occupied entity: input_boolean.master_bed_occupied
name: Bed
icon: mdi:bed-king icon: mdi:bed-king
icon_color: >-
{{
iif(is_state('binary_sensor.master_bed_right_occupied','on'),'yellow')}}
primary: Bed
double_tap_action:
action: call-service
service: homeassistant.toggle
service_data: {}
target:
entity_id: switch.master_bed_force_occupancy
hold_action:
action: call-service
service: button.press
service_data: {}
target:
entity_id: button.master_bed_manual_tare
layout: vertical layout: vertical
secondary_info: none
tap_action:
action: toggle
- type: custom:mushroom-entity-card - type: custom:mushroom-entity-card
entity: binary_sensor.master_bedroom_window_contact entity: binary_sensor.master_bedroom_window_contact
name: Window name: Window
+7 -7
View File
@@ -177,10 +177,10 @@ cards:
cards: cards:
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
primary: Emmett primary: Emmett
secondary: '{{states(''select.black_bed_wled_preset'')}}' secondary: "{{states('select.black_bed_wled_preset')}}"
entity: select.black_bed_wled_preset entity: select.black_bed_wled_preset
icon: mdi:led-strip-variant icon: mdi:led-strip-variant
icon_color: '{{ iif(is_state(''light.black_bed_wled'', ''on''), ''yellow'') }}' icon_color: "{{ iif(is_state('light.black_bed_wled', 'on'), 'yellow') }}"
tap_action: tap_action:
action: more-info action: more-info
hold_action: hold_action:
@@ -195,10 +195,10 @@ cards:
layout: vertical layout: vertical
- type: custom:mushroom-template-card - type: custom:mushroom-template-card
primary: Bridget primary: Bridget
secondary: '{{states(''select.white_bed_wled_preset'')}}' secondary: "{{states('select.white_bed_wled_preset')}}"
entity: select.white_bed_wled_preset entity: select.white_bed_wled_preset
icon: mdi:led-strip-variant icon: mdi:led-strip-variant
icon_color: '{{ iif(is_state(''light.white_bed_wled'', ''on''), ''yellow'') }}' icon_color: "{{ iif(is_state('light.white_bed_wled', 'on'), 'yellow') }}"
tap_action: tap_action:
action: more-info action: more-info
hold_action: hold_action:
@@ -286,7 +286,7 @@ cards:
icon: mdi:sleep icon: mdi:sleep
- type: custom:mushroom-entity-card - type: custom:mushroom-entity-card
entity: media_player.ytube_music_player entity: media_player.ytube_music_player
name: 'Off' name: "Off"
tap_action: tap_action:
action: call-service action: call-service
service: homeassistant.turn_off service: homeassistant.turn_off
@@ -332,10 +332,10 @@ cards:
entity_id: button.black_bed_manual_tare entity_id: button.black_bed_manual_tare
layout: vertical layout: vertical
# - type: custom:mushroom-template-card # - type: custom:mushroom-template-card
# entity: binary_sensor.white_bed_occupied # entity: input_boolean.white_bed_occupied
# icon: mdi:bed # icon: mdi:bed
# icon_color: >- # icon_color: >-
# {% if(is_state('binary_sensor.white_bed_occupied','on')) %} # {% if(is_state('input_boolean.white_bed_occupied','on')) %}
# yellow # yellow
# {% elif(is_state('binary_sensor.white_bed_hx711_error','on')) %} # {% elif(is_state('binary_sensor.white_bed_hx711_error','on')) %}
# red # red
+1 -1
View File
@@ -76,7 +76,7 @@ cameras:
occupancy: false occupancy: false
motion: false motion: false
entities: entities:
- binary_sensor.master_bed_right_occupied - input_boolean.master_bed_occupied
timeline: timeline:
media: snapshots media: snapshots
show_recordings: false show_recordings: false
+1 -1
View File
@@ -125,7 +125,7 @@ elements:
#button #3 #button #3
- type: "custom:button-card" - type: "custom:button-card"
color: auto color: auto
entity: binary_sensor.master_bed_right_occupied entity: input_boolean.master_bed_occupied
show_name: false show_name: false
style: style:
left: 50% left: 50%
-88
View File
@@ -1,88 +0,0 @@
title: Cameras
path: camera-overview
icon: mdi:cctv
visible:
- user: 0e789cd7ce194a799def1abc4dd02191
panel: true
cards:
- type: grid
square: false
columns: 2
cards:
- type: picture-entity
entity: camera.frigate_cam08
camera_image: camera.frigate_cam08
camera_view: live
- type: picture-entity
entity: camera.frigate_cam12
camera_image: camera.frigate_cam12
camera_view: live
# - type: picture-entity
# entity: camera.amcrest_amcrest_cam02
# camera_image: camera.amcrest_amcrest_cam02
# camera_view: live
# - type: picture-entity
# entity: camera.amcrest_amcrest_cam05
# camera_image: camera.amcrest_amcrest_cam05
# camera_view: live
#
# - type: picture-entity
# entity: camera.amcrest_amcrest_cam09
# camera_image: camera.amcrest_amcrest_cam09
# camera_view: live
#
- type: picture-entity
entity: camera.frigate_cam06
camera_image: camera.frigate_cam06
camera_view: live
- type: picture-entity
entity: camera.frigate_cam07
camera_image: camera.frigate_cam07
camera_view: live
- type: picture-entity
entity: camera.frigate_cam01
camera_image: camera.frigate_cam01
camera_view: live
- type: picture-entity
entity: camera.frigate_cam03
camera_image: camera.frigate_cam03
camera_view: live
- type: picture-entity
entity: camera.frigate_cam04
camera_image: camera.frigate_cam04
camera_view: live
# - type: picture-entity
# entity: camera.amcrest_amcrest_cam10
# camera_image: camera.amcrest_amcrest_cam10
# camera_view: live
#
# - type: picture-entity
# entity: camera.amcrest_amcrest_cam11
# camera_image: camera.amcrest_amcrest_cam11
# camera_view: live
- type: picture-entity
entity: camera.frigate_cam14
camera_image: camera.frigate_cam14
camera_view: live
- type: picture-entity
entity: camera.frigate_cam18
camera_image: camera.frigate_cam18
camera_view: live
- type: picture-entity
entity: camera.frigate_cam19
camera_image: camera.frigate_cam19
camera_view: live
+5 -4
View File
@@ -11,7 +11,7 @@ cards:
config: config:
image: /local/floorplan/fullsized_floorplan.svg image: /local/floorplan/fullsized_floorplan.svg
stylesheet: /local/floorplan/floorplan.css stylesheet: /local/floorplan/floorplan.css
# log_level: debug log_level: debug
console_log_level: debug console_log_level: debug
defaults: defaults:
hover_action: hover-info hover_action: hover-info
@@ -168,9 +168,10 @@ cards:
- entities: - entities:
- binary_sensor.black_bed_occupied - binary_sensor.black_bed_occupied
- binary_sensor.white_bed_occupied - input_boolean.white_bed_occupied
- binary_sensor.master_bed_left_occupied #- binary_sensor.master_bed_left_occupied
- binary_sensor.master_bed_right_occupied #- binary_sensor.master_bed_right_occupied
- input_boolean.master_bed_occupied
- binary_sensor.computer_area_person_occupancy - binary_sensor.computer_area_person_occupancy
- binary_sensor.dining_room_person_occupancy - binary_sensor.dining_room_person_occupancy
- binary_sensor.entryway_person_occupancy - binary_sensor.entryway_person_occupancy
+12 -9
View File
@@ -1197,24 +1197,27 @@ cards:
# - entity: binary_sensor.front_yard_plant_monitor_status # - entity: binary_sensor.front_yard_plant_monitor_status
# state_filter: # state_filter:
# - "off" # - "off"
- entity: binary_sensor.pm_status
state_filter:
- "off"
# - entity: binary_sensor.furnace_room_multisensor_status # - entity: binary_sensor.furnace_room_multisensor_status
# state_filter: # state_filter:
# - "off" # - "off"
- entity: binary_sensor.pm_status
state_filter:
- "off"
- entity: binary_sensor.nursery_tagreader_status
state_filter:
- "off"
- entity: binary_sensor.nursery_tagreader_status - entity: binary_sensor.nursery_tagreader_status
state_filter: state_filter:
- "off" - "off"
- entity: binary_sensor.black_bed_status - entity: binary_sensor.black_bed_status
state_filter: state_filter:
- "off" - "off"
- entity: binary_sensor.white_bed_status # - entity: binary_sensor.white_bed_status
state_filter: # state_filter:
- "off" # - "off"
- entity: binary_sensor.master_bed_status # - entity: binary_sensor.master_bed_status
state_filter: # state_filter:
- "off" # - "off"
show_empty: false show_empty: false
state_filter: state_filter:
@@ -5,7 +5,7 @@ sequence:
- repeat: - repeat:
while: while:
- condition: state - condition: state
entity_id: binary_sensor.master_bed_right_occupied entity_id: input_boolean.master_bed_occupied
state: "on" state: "on"
sequence: sequence:
- variables: - variables:
+5 -8
View File
@@ -5,21 +5,18 @@ icon: mdi:cctv
views: views:
- !include lovelace/view-surveillance.yaml - !include lovelace/view-surveillance.yaml
- !include lovelace/view-cameras.yaml - !include lovelace/view-cameras.yaml
- !include lovelace/view-camera-overview.yaml
- !include lovelace/frigate/view-ai-cam08.yaml - !include lovelace/frigate/view-ai-cam08.yaml
- !include lovelace/frigate/view-ai-cam12.yaml - !include lovelace/frigate/view-ai-cam12.yaml
- !include lovelace/frigate/view-ai-cam13.yaml #- !include lovelace/frigate/view-ai-cam13.yaml
#- !include lovelace/frigate/view-ai-cam02.yaml
- !include lovelace/frigate/view-ai-cam03.yaml - !include lovelace/frigate/view-ai-cam03.yaml
#- !include lovelace/frigate/view-ai-cam05.yaml
- !include lovelace/frigate/view-ai-cam06.yaml - !include lovelace/frigate/view-ai-cam06.yaml
- !include lovelace/frigate/view-ai-cam07.yaml - !include lovelace/frigate/view-ai-cam07.yaml
#- !include lovelace/frigate/view-ai-cam09.yaml
#- !include lovelace/frigate/view-ai-cam10.yaml
#- !include lovelace/frigate/view-ai-cam11.yaml
- !include lovelace/frigate/view-ai-cam01.yaml - !include lovelace/frigate/view-ai-cam01.yaml
- !include lovelace/frigate/view-ai-cam04.yaml - !include lovelace/frigate/view-ai-cam04.yaml
- !include lovelace/frigate/view-ai-cam14.yaml #- !include lovelace/frigate/view-ai-cam14.yaml
- !include lovelace/frigate/view-ai-cam18.yaml - !include lovelace/frigate/view-ai-cam18.yaml
- !include lovelace/frigate/view-ai-cam19.yaml - !include lovelace/frigate/view-ai-cam19.yaml
+4 -4
View File
@@ -3113,9 +3113,9 @@
<path <path
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
d="m 317.37099,-17378.244 a 4.387797,4.387797 0 0 1 4.213,-4.381 4.387797,4.387797 0 0 1 4.21,4.381 4.387797,4.387797 0 0 1 -4.21,4.381 4.387797,4.387797 0 0 1 -4.213,-4.381 m 10.53,3.286 v -6.572 a 4.387797,4.387797 0 0 1 4.213,-4.38 h 12.636 v 3.285 h 16.85 v 8.783 h -16.85 v 3.285 H 332.114 a 4.387797,4.387797 0 0 1 -4.213,-4.38 z" d="m 317.37099,-17378.244 a 4.387797,4.387797 0 0 1 4.213,-4.381 4.387797,4.387797 0 0 1 4.21,4.381 4.387797,4.387797 0 0 1 -4.21,4.381 4.387797,4.387797 0 0 1 -4.213,-4.381 m 10.53,3.286 v -6.572 a 4.387797,4.387797 0 0 1 4.213,-4.38 h 12.636 v 3.285 h 16.85 v 8.783 h -16.85 v 3.285 H 332.114 a 4.387797,4.387797 0 0 1 -4.213,-4.38 z"
id="binary_sensor.master_bed_right_occupied" id="input_boolean.master_bed_occupied"
style="stroke-width:2.1939" style="stroke-width:2.1939"
inkscape:label="binary_sensor.master_bed_right_occupied" /> inkscape:label="input_boolean.master_bed_occupied" />
<path <path
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
d="m 597.88155,-17477.881 a 3.2614898,3.2614898 0 0 1 -3.13156,3.256 3.2614898,3.2614898 0 0 1 -3.12933,-3.256 3.2614898,3.2614898 0 0 1 3.12933,-3.257 3.2614898,3.2614898 0 0 1 3.13156,3.257 m -7.82704,-2.443 v 4.885 a 3.2614898,3.2614898 0 0 1 -3.13157,3.256 h -9.39245 v -2.442 h -12.52476 v -6.528 h 12.52476 v -2.442 h 9.39245 a 3.2614898,3.2614898 0 0 1 3.13157,3.256 z" d="m 597.88155,-17477.881 a 3.2614898,3.2614898 0 0 1 -3.13156,3.256 3.2614898,3.2614898 0 0 1 -3.12933,-3.256 3.2614898,3.2614898 0 0 1 3.12933,-3.257 3.2614898,3.2614898 0 0 1 3.13156,3.257 m -7.82704,-2.443 v 4.885 a 3.2614898,3.2614898 0 0 1 -3.13157,3.256 h -9.39245 v -2.442 h -12.52476 v -6.528 h 12.52476 v -2.442 h 9.39245 a 3.2614898,3.2614898 0 0 1 3.13157,3.256 z"
@@ -3125,9 +3125,9 @@
<path <path
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
d="m 493.649,-17377.744 a 3.2614898,3.2614898 0 0 1 3.132,-3.256 3.2614898,3.2614898 0 0 1 3.129,3.256 3.2614898,3.2614898 0 0 1 -3.129,3.257 3.2614898,3.2614898 0 0 1 -3.132,-3.257 m 7.827,2.443 v -4.885 a 3.2614898,3.2614898 0 0 1 3.132,-3.256 H 514 v 2.442 h 12.52501 v 6.528 H 514 v 2.442 h -9.392 a 3.2614898,3.2614898 0 0 1 -3.132,-3.256 z" d="m 493.649,-17377.744 a 3.2614898,3.2614898 0 0 1 3.132,-3.256 3.2614898,3.2614898 0 0 1 3.129,3.256 3.2614898,3.2614898 0 0 1 -3.129,3.257 3.2614898,3.2614898 0 0 1 -3.132,-3.257 m 7.827,2.443 v -4.885 a 3.2614898,3.2614898 0 0 1 3.132,-3.256 H 514 v 2.442 h 12.52501 v 6.528 H 514 v 2.442 h -9.392 a 3.2614898,3.2614898 0 0 1 -3.132,-3.256 z"
id="binary_sensor.white_bed_occupied" id="input_boolean.white_bed_occupied"
style="stroke-width:1.63075" style="stroke-width:1.63075"
inkscape:label="binary_sensor.white_bed_occupied" /> inkscape:label="input_boolean.white_bed_occupied" />
<path <path
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
d="m 513.78981,-17586.132 a 1.7840606,1.7840606 0 0 1 1.78106,1.713 1.7840606,1.7840606 0 0 1 -1.78106,1.711 1.7840606,1.7840606 0 0 1 -1.7816,-1.711 1.7840606,1.7840606 0 0 1 1.7816,-1.713 m -1.33634,4.281 h 2.67214 a 1.7840606,1.7840606 0 0 1 1.78105,1.713 v 5.138 h -1.33579 v 6.851 H 512 v -6.851 h -1.33579 v -5.138 a 1.7840606,1.7840606 0 0 1 1.78106,-1.713 z" d="m 513.78981,-17586.132 a 1.7840606,1.7840606 0 0 1 1.78106,1.713 1.7840606,1.7840606 0 0 1 -1.78106,1.711 1.7840606,1.7840606 0 0 1 -1.7816,-1.711 1.7840606,1.7840606 0 0 1 1.7816,-1.713 m -1.33634,4.281 h 2.67214 a 1.7840606,1.7840606 0 0 1 1.78105,1.713 v 5.138 h -1.33579 v 6.851 H 512 v -6.851 h -1.33579 v -5.138 a 1.7840606,1.7840606 0 0 1 1.78106,-1.713 z"

Before

Width:  |  Height:  |  Size: 529 KiB

After

Width:  |  Height:  |  Size: 529 KiB