mirror of
https://github.com/CeeWeasel/fresh-home.git
synced 2026-08-09 18:40:14 -04:00
initial push
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
# Alerts
|
||||
|
||||
Component: [alert](https://home-assistant.io/components/alert/)
|
||||
|
||||
## Garage
|
||||
|
||||
Simple alerts to nag us that we've left either of the the garage doors open. We need this because they're not visible from the house.
|
||||
@@ -0,0 +1,10 @@
|
||||
name: "Close Windows"
|
||||
done_message: "Windows are closed"
|
||||
entity_id: binary_sensor.close_windows
|
||||
state: "on"
|
||||
repeat:
|
||||
- 30
|
||||
can_acknowledge: True
|
||||
skip_first: false
|
||||
notifiers:
|
||||
- mobile_app_pixel_7
|
||||
@@ -0,0 +1,12 @@
|
||||
# name: "Dream NAS has been unavailable for {{ relative_time(states.device_tracker.dream_nas.last_changed) }}"
|
||||
# done_message: "Dream NAS is now available"
|
||||
# entity_id: device_tracker.dream_nas_1
|
||||
# state: 'not_home'
|
||||
# repeat:
|
||||
# - 1
|
||||
# - 5
|
||||
# - 15
|
||||
# can_acknowledge: True
|
||||
# skip_first: true
|
||||
# notifiers:
|
||||
# - mobile_app_pixel_7
|
||||
@@ -0,0 +1,9 @@
|
||||
name: "Front door has been open for {{ relative_time(states.binary_sensor.front_door_contact.last_changed) }}"
|
||||
done_message: "Front door is now closed"
|
||||
entity_id: binary_sensor.front_door_contact
|
||||
state: 'on'
|
||||
repeat: 10
|
||||
can_acknowledge: True
|
||||
skip_first: True
|
||||
notifiers:
|
||||
- garage
|
||||
@@ -0,0 +1,9 @@
|
||||
name: "Garage door has been open for {{ relative_time(states.cover.garage_door.last_changed) }}"
|
||||
done_message: "Garage door is now closed"
|
||||
entity_id: binary_sensor.garage_open_nobody_home
|
||||
state: "on"
|
||||
repeat: 10
|
||||
can_acknowledge: True
|
||||
skip_first: True
|
||||
notifiers:
|
||||
- mobile_app_pixel_7
|
||||
@@ -0,0 +1,10 @@
|
||||
# name: "HVAC Delta Sensors Unavailable"
|
||||
# done_message: "HVAC delta sensors available"
|
||||
# entity_id: binary_sensor.hvac_delta_sensors_unavailable
|
||||
# state: 'on'
|
||||
# repeat:
|
||||
# - 15
|
||||
# can_acknowledge: True
|
||||
# skip_first: false
|
||||
# notifiers:
|
||||
# - mobile_app_pixel_7
|
||||
@@ -0,0 +1,13 @@
|
||||
# name: "The AC is probably broken again!"
|
||||
# message: "It is {{states('sensor.front_porch_temperature')}} outside and {{state_attr('climate.thermostat','current_temperature')}} inside. The thermostat is set to {{state_attr('climate.thermostat','target_temp_low')}} and the delta is {{states('sensor.hvac_delta')}}"
|
||||
# done_message: "AC is now {{states('sensor.hvac_delta')}}"
|
||||
# entity_id: binary_sensor.hvac_delta_too_small_for_too_long
|
||||
# state: "on"
|
||||
# repeat:
|
||||
# - 1
|
||||
# - 5
|
||||
# - 15
|
||||
# can_acknowledge: True
|
||||
# skip_first: true
|
||||
# notifiers:
|
||||
# - mobile_app_pixel_7
|
||||
@@ -0,0 +1,10 @@
|
||||
name: "Kitchen Freezer Too Warm"
|
||||
done_message: "Kitchen Freezer Okay"
|
||||
entity_id: binary_sensor.kitchen_freezer_too_warm
|
||||
state: "on"
|
||||
repeat:
|
||||
- 60
|
||||
can_acknowledge: True
|
||||
skip_first: false
|
||||
notifiers:
|
||||
- mobile_app_pixel_7
|
||||
@@ -0,0 +1,10 @@
|
||||
name: "Kitchen Fridge Too Warm"
|
||||
done_message: "Kitchen Fridge Okay"
|
||||
entity_id: binary_sensor.kitchen_fridge_too_warm
|
||||
state: "on"
|
||||
repeat:
|
||||
- 60
|
||||
can_acknowledge: True
|
||||
skip_first: false
|
||||
notifiers:
|
||||
- mobile_app_pixel_7
|
||||
@@ -0,0 +1,10 @@
|
||||
name: "Water softener is low on salt"
|
||||
done_message: "Water sotener has enough salt"
|
||||
entity_id: binary_sensor.need_salt
|
||||
state: 0
|
||||
repeat:
|
||||
- 60
|
||||
can_acknowledge: True
|
||||
skip_first: true
|
||||
notifiers:
|
||||
- mobile_app_pixel_7
|
||||
@@ -0,0 +1,9 @@
|
||||
name: "Take the dumpster to the curb"
|
||||
done_message: "Trash has been taken out to the curb"
|
||||
entity_id: binary_sensor.take_trash_out
|
||||
state: "on"
|
||||
repeat: 360
|
||||
can_acknowledge: True
|
||||
skip_first: False
|
||||
notifiers:
|
||||
- mobile_app_pixel_7
|
||||
@@ -0,0 +1,61 @@
|
||||
platform: 'bayesian'
|
||||
name: 'Bridget Home'
|
||||
device_class: presence
|
||||
prior: 0.5
|
||||
probability_threshold: 0.7
|
||||
observations:
|
||||
- entity_id: 'person.clint'
|
||||
prob_given_true: .99
|
||||
prob_given_false: .99
|
||||
platform: 'state'
|
||||
to_state: 'home'
|
||||
|
||||
- entity_id: 'calendar.my_custody'
|
||||
prob_given_true: .99
|
||||
prob_given_false: .5
|
||||
platform: 'state'
|
||||
to_state: 'on'
|
||||
|
||||
|
||||
- entity_id: 'input_boolean.clint_work_from_home'
|
||||
prob_given_true: .01
|
||||
prob_given_false: .33
|
||||
platform: 'state'
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: 'input_select.weaver_kids'
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.01
|
||||
platform: 'state'
|
||||
to_state: 'Home'
|
||||
|
||||
- entity_id: 'input_select.weaver_kids'
|
||||
prob_given_true: .01
|
||||
prob_given_false: 0.99
|
||||
platform: 'state'
|
||||
to_state: 'Away'
|
||||
|
||||
- entity_id: 'input_select.weaver_kids'
|
||||
prob_given_true: .5
|
||||
prob_given_false: 0.5
|
||||
platform: 'state'
|
||||
to_state: 'Auto'
|
||||
|
||||
# # If I am working from home and the 'Weaver Kids' are in automatic mode
|
||||
# - platform: template
|
||||
# value_template: >
|
||||
# {{ is_state('input_boolean.clint_work_from_home', 'on') and is_state('input_select.weaver_kids','Auto') }}
|
||||
# prob_given_true: 0.01
|
||||
# prob_given_false: .99
|
||||
# # If I am working from home and the 'Weaver Kids' are manually set as home
|
||||
# - platform: template
|
||||
# value_template: >
|
||||
# {{ is_state('input_boolean.clint_work_from_home', 'on') and is_state('input_select.weaver_kids','Home') }}
|
||||
# prob_given_true: 0.99
|
||||
# prob_given_false: .01
|
||||
# # If I am working from home and the 'Weaver Kids' are manually set as away
|
||||
# - platform: template
|
||||
# value_template: >
|
||||
# {{ is_state('input_boolean.clint_work_from_home', 'on') and is_state('input_select.weaver_kids','Away') }}
|
||||
# prob_given_true: 0.01
|
||||
# prob_given_false: .99
|
||||
@@ -0,0 +1,16 @@
|
||||
platform: 'bayesian'
|
||||
name: 'Clint'
|
||||
device_class: presence
|
||||
prior: 0.75
|
||||
probability_threshold: 0.5
|
||||
observations:
|
||||
- entity_id: 'group.person_clint'
|
||||
prob_given_true: 0.75
|
||||
prob_given_false: 0.1
|
||||
platform: 'state'
|
||||
to_state: 'home'
|
||||
- entity_id: 'input_boolean.car_home'
|
||||
prob_given_true: 0.75
|
||||
prob_given_false: 0.1
|
||||
platform: 'state'
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,26 @@
|
||||
platform: 'bayesian'
|
||||
name: 'Ebin Home'
|
||||
device_class: presence
|
||||
prior: 0.1
|
||||
probability_threshold: 0.2
|
||||
observations:
|
||||
- entity_id: 'person.kristy'
|
||||
prob_given_true: 0.5
|
||||
prob_given_false: 0.1
|
||||
platform: 'state'
|
||||
to_state: 'home'
|
||||
- entity_id: 'calendar.my_custody'
|
||||
prob_given_true: 0.5
|
||||
prob_given_false: 0.1
|
||||
platform: 'state'
|
||||
to_state: 'on'
|
||||
- entity_id: 'input_select.podein_kids'
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.01
|
||||
platform: 'state'
|
||||
to_state: 'Home'
|
||||
- entity_id: 'input_select.podein_kids'
|
||||
prob_given_true: .01
|
||||
prob_given_false: 0.01
|
||||
platform: 'state'
|
||||
to_state: 'Away'
|
||||
@@ -0,0 +1,61 @@
|
||||
platform: 'bayesian'
|
||||
name: 'Emmett Home'
|
||||
device_class: presence
|
||||
prior: 0.5
|
||||
probability_threshold: 0.7
|
||||
observations:
|
||||
- entity_id: 'person.clint'
|
||||
prob_given_true: .99
|
||||
prob_given_false: .99
|
||||
platform: 'state'
|
||||
to_state: 'home'
|
||||
|
||||
- entity_id: 'calendar.my_custody'
|
||||
prob_given_true: .99
|
||||
prob_given_false: .5
|
||||
platform: 'state'
|
||||
to_state: 'on'
|
||||
|
||||
|
||||
- entity_id: 'input_boolean.clint_work_from_home'
|
||||
prob_given_true: .01
|
||||
prob_given_false: .33
|
||||
platform: 'state'
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: 'input_select.weaver_kids'
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.01
|
||||
platform: 'state'
|
||||
to_state: 'Home'
|
||||
|
||||
- entity_id: 'input_select.weaver_kids'
|
||||
prob_given_true: .01
|
||||
prob_given_false: 0.99
|
||||
platform: 'state'
|
||||
to_state: 'Away'
|
||||
|
||||
- entity_id: 'input_select.weaver_kids'
|
||||
prob_given_true: .5
|
||||
prob_given_false: 0.5
|
||||
platform: 'state'
|
||||
to_state: 'Auto'
|
||||
|
||||
# # If I am working from home and the 'Weaver Kids' are in automatic mode
|
||||
# - platform: template
|
||||
# value_template: >
|
||||
# {{ is_state('input_boolean.clint_work_from_home', 'on') and is_state('input_select.weaver_kids','Auto') }}
|
||||
# prob_given_true: 0.01
|
||||
# prob_given_false: .99
|
||||
# # If I am working from home and the 'Weaver Kids' are manually set as home
|
||||
# - platform: template
|
||||
# value_template: >
|
||||
# {{ is_state('input_boolean.clint_work_from_home', 'on') and is_state('input_select.weaver_kids','Home') }}
|
||||
# prob_given_true: 0.99
|
||||
# prob_given_false: .01
|
||||
# # If I am working from home and the 'Weaver Kids' are manually set as away
|
||||
# - platform: template
|
||||
# value_template: >
|
||||
# {{ is_state('input_boolean.clint_work_from_home', 'on') and is_state('input_select.weaver_kids','Away') }}
|
||||
# prob_given_true: 0.01
|
||||
# prob_given_false: .99
|
||||
@@ -0,0 +1,47 @@
|
||||
platform: 'bayesian'
|
||||
name: Clint Work From Home
|
||||
prior: 0.4
|
||||
probability_threshold: 0.75
|
||||
observations:
|
||||
- entity_id: 'person.clint'
|
||||
# Probability that I'm working from home when person.clint is home
|
||||
prob_given_true: .4
|
||||
# Probability that I'm not working from home when person.clint is home
|
||||
prob_given_false: .6
|
||||
platform: 'state'
|
||||
to_state: 'home'
|
||||
- entity_id: 'person.clint'
|
||||
# Probability that I'm working from home when person.clint is away
|
||||
prob_given_true: .01
|
||||
# Probability that I'm not working from home when person.clint is away
|
||||
prob_given_false: .9
|
||||
platform: 'state'
|
||||
to_state: 'away'
|
||||
- entity_id: 'person.clint'
|
||||
# Probability that I'm working from home when person.clint is at AGH
|
||||
prob_given_true: .01
|
||||
# Probability that I'm not working from home when person.clint is at AGH
|
||||
prob_given_false: .7
|
||||
platform: 'state'
|
||||
to_state: 'AGH'
|
||||
# Probability that I'm working from home from 8:00 AM to 4:30 PM
|
||||
- entity_id: binary_sensor.work_hours
|
||||
prob_given_true: .4
|
||||
# Probability that I'm not working from 8:00 AM to 4:30 PM
|
||||
prob_given_false: .1
|
||||
platform: 'state'
|
||||
to_state: 'on'
|
||||
- entity_id: binary_sensor.work_hours
|
||||
# Probability that I'm working from home outside of 8AM to 4:30PM
|
||||
prob_given_true: .001
|
||||
# Probability that I'm not working from home outside of 8AM to 4:30PM
|
||||
prob_given_false: .9
|
||||
platform: 'state'
|
||||
to_state: 'off'
|
||||
- entity_id: binary_sensor.clint_home_during_work_hours
|
||||
# Probability that I'm working from home if I'm home during work hours
|
||||
prob_given_true: .8
|
||||
# Probability that I'm not working from home if I'm home during work hours
|
||||
prob_given_false: .2
|
||||
platform: 'state'
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,31 @@
|
||||
platform: 'bayesian'
|
||||
name: 'Window Open HVAC On'
|
||||
device_class: problem
|
||||
prior: 0
|
||||
probability_threshold: 0.6
|
||||
observations:
|
||||
- entity_id: 'group.my_exterior_windows'
|
||||
prob_given_true: .5
|
||||
prob_given_false: 0.01
|
||||
platform: 'state'
|
||||
to_state: 'on'
|
||||
- entity_id: 'group.my_exterior_doors'
|
||||
prob_given_true: .5
|
||||
prob_given_false: 0.01
|
||||
platform: 'state'
|
||||
to_state: 'on'
|
||||
- entity_id: sensor.hvac_action
|
||||
prob_given_true: .5
|
||||
prob_given_false: 0.01
|
||||
platform: 'state'
|
||||
to_state: 'cooling'
|
||||
- entity_id: sensor.hvac_action
|
||||
prob_given_true: .5
|
||||
prob_given_false: 0.01
|
||||
platform: 'state'
|
||||
to_state: 'heating'
|
||||
- entity_id: sensor.hvac_action
|
||||
prob_given_true: .01
|
||||
prob_given_false: 0.01
|
||||
platform: 'state'
|
||||
to_state: 'idle'
|
||||
@@ -0,0 +1,13 @@
|
||||
# Disabling the first two lines, as I don't think they are even necessary
|
||||
# If they need to be re-implemented, refer to this:
|
||||
# https://www.home-assistant.io/integrations/binary_sensor.mqtt/#new_format
|
||||
|
||||
# platform: mqtt
|
||||
# state_topic: dummy/floorplan/sensor
|
||||
|
||||
|
||||
|
||||
|
||||
# #name: Floorplan
|
||||
# #custom_ui_state_card: state-card-floorplan
|
||||
# #config: !include ../../floorplan.yaml
|
||||
@@ -0,0 +1,5 @@
|
||||
# platform: workday
|
||||
# name: Is Friday
|
||||
# country: US
|
||||
# workdays: [fri]
|
||||
# excludes: [mon,tue, wed, thu, sat, sun]
|
||||
@@ -0,0 +1,5 @@
|
||||
# platform: workday
|
||||
# name: Is Monday
|
||||
# country: US
|
||||
# workdays: [mon]
|
||||
# excludes: [tue, wed, thu, fri,sat, sun, holiday]
|
||||
@@ -0,0 +1,5 @@
|
||||
# platform: workday
|
||||
# name: Is Tuesday
|
||||
# country: US
|
||||
# workdays: [tue]
|
||||
# excludes: [mon, wed, thu, fri,sat, sun, holiday]
|
||||
@@ -0,0 +1,19 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.back_yard_occupied
|
||||
name: Back Yard Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.25
|
||||
probability_threshold: 0.75
|
||||
observations:
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .01
|
||||
prob_given_false: 0.01
|
||||
to_state: 'off'
|
||||
|
||||
- entity_id: group.back_yard_motion
|
||||
prob_given_true: .9
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,25 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.blue_room_occupied
|
||||
name: Blue Room Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.25
|
||||
probability_threshold: 0.7
|
||||
observations:
|
||||
|
||||
- entity_id: group.blue_room_motion
|
||||
prob_given_true: .99
|
||||
prob_given_false: .85
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.blue_room_person_occupancy
|
||||
prob_given_true: .99
|
||||
prob_given_false: .85
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.01
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,31 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.computer_area_occupied
|
||||
name: Computer Area Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.25
|
||||
probability_threshold: 0.7
|
||||
observations:
|
||||
|
||||
- entity_id: group.computer_area_motion
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.97
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.computer_chair_contact_occupied
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.97
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.01
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.computer_area_person_occupancy
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.97
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,25 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.dining_room_occupied
|
||||
name: Dining Room Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.25
|
||||
probability_threshold: 0.7
|
||||
observations:
|
||||
|
||||
- entity_id: group.dining_room_motion
|
||||
prob_given_true: .99
|
||||
prob_given_false: .85
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.dining_room_person_occupancy
|
||||
prob_given_true: .99
|
||||
prob_given_false: .85
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.01
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,36 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.entryway_occupied
|
||||
name: Entryway Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.02
|
||||
probability_threshold: 0.65
|
||||
observations:
|
||||
- entity_id: group.entryway_motion
|
||||
prob_given_true: 0.9
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .98
|
||||
prob_given_false: 0.85
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.entryway_person_occupancy
|
||||
prob_given_true: .02
|
||||
prob_given_false: 0.0
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.inner_garage_door
|
||||
prob_given_true: 0.02
|
||||
prob_given_false: 0.0
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.front_door_contact
|
||||
prob_given_true: 0.02
|
||||
prob_given_false: 0.0
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,37 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.front_room_occupied
|
||||
name: Front Room Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.5
|
||||
probability_threshold: 0.75
|
||||
observations:
|
||||
|
||||
- entity_id: group.front_room_motion
|
||||
prob_given_true: .75
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: media_player.front_room_tv
|
||||
prob_given_true: .9
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'playing'
|
||||
|
||||
- entity_id: media_player.front_room_tv
|
||||
prob_given_true: .5
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'home'
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .01
|
||||
prob_given_false: 0.01
|
||||
to_state: 'off'
|
||||
|
||||
- entity_id: binary_sensor.front_room_person_occupancy
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,19 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.front_yard_occupied
|
||||
name: Front Yard Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.25
|
||||
probability_threshold: 0.75
|
||||
observations:
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .01
|
||||
prob_given_false: 0.01
|
||||
to_state: 'off'
|
||||
|
||||
- entity_id: group.front_yard_motion
|
||||
prob_given_true: .9
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,13 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.furnace_room_occupied
|
||||
name: Furnace Room Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.2
|
||||
probability_threshold: 0.75
|
||||
observations:
|
||||
|
||||
- entity_id: group.furnace_room_motion
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,67 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.garage_occupied
|
||||
name: Garage Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.4
|
||||
probability_threshold: 0.6
|
||||
observations:
|
||||
|
||||
- entity_id: group.garage_motion
|
||||
prob_given_true: .8
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: group.garage_motion
|
||||
prob_given_true: .5
|
||||
prob_given_false: 0.5
|
||||
platform: state
|
||||
to_state: 'off'
|
||||
|
||||
- entity_id: cover.garage_door
|
||||
prob_given_true: .60
|
||||
prob_given_false: 0.5
|
||||
platform: state
|
||||
to_state: 'open'
|
||||
|
||||
- entity_id: cover.garage_door
|
||||
prob_given_true: .50
|
||||
prob_given_false: 0.5
|
||||
platform: state
|
||||
to_state: 'closed'
|
||||
|
||||
- entity_id: binary_sensor.inner_garage_door
|
||||
prob_given_true: .75
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.inner_garage_door
|
||||
prob_given_true: .5
|
||||
prob_given_false: 0.5
|
||||
platform: state
|
||||
to_state: 'off'
|
||||
|
||||
- entity_id: binary_sensor.outer_garage_door
|
||||
prob_given_true: .75
|
||||
prob_given_false: 0.5
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.outer_garage_door
|
||||
prob_given_true: 0.5
|
||||
prob_given_false: 0.5
|
||||
platform: state
|
||||
to_state: 'off'
|
||||
|
||||
- entity_id: binary_sensor.workshop_person_occupancy
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.5
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.workshop_person_occupancy
|
||||
prob_given_true: 0.5
|
||||
prob_given_false: 0.5
|
||||
platform: state
|
||||
to_state: 'off'
|
||||
@@ -0,0 +1,43 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.great_room_occupied
|
||||
name: Great Room Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.5
|
||||
probability_threshold: 0.75
|
||||
observations:
|
||||
|
||||
- entity_id: group.great_room_motion
|
||||
platform: state
|
||||
prob_given_true: .9
|
||||
prob_given_false: 0.01
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .01
|
||||
prob_given_false: 0.01
|
||||
to_state: 'off'
|
||||
|
||||
- entity_id: media_player.downstairs_roku
|
||||
platform: state
|
||||
prob_given_true: .9
|
||||
prob_given_false: 0.01
|
||||
to_state: 'playing'
|
||||
|
||||
- entity_id: media_player.downstairs_roku
|
||||
platform: state
|
||||
prob_given_true: .9
|
||||
prob_given_false: 0.01
|
||||
to_state: 'paused'
|
||||
|
||||
- entity_id: media_player.downstairs_roku
|
||||
platform: state
|
||||
prob_given_true: .5
|
||||
prob_given_false: 0.01
|
||||
to_state: 'idle'
|
||||
|
||||
- entity_id: binary_sensor.great_room_person_occupancy
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,25 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.kitchen_occupied
|
||||
name: Kitchen Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.25
|
||||
probability_threshold: 0.7
|
||||
observations:
|
||||
|
||||
- entity_id: group.kitchen_motion
|
||||
prob_given_true: .99
|
||||
prob_given_false: .85
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.kitchen_person_occupancy
|
||||
prob_given_true: .99
|
||||
prob_given_false: .85
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.01
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,19 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.mancave_occupied
|
||||
name: Mancave Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.5
|
||||
probability_threshold: 0.75
|
||||
observations:
|
||||
|
||||
- entity_id: group.mancave_motion
|
||||
prob_given_true: .9
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .01
|
||||
prob_given_false: 0.01
|
||||
to_state: 'off'
|
||||
@@ -0,0 +1,43 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.master_bathroom_occupied
|
||||
name: Master Bathroom Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.2
|
||||
probability_threshold: 0.75
|
||||
observations:
|
||||
|
||||
- entity_id: group.master_bathroom_motion
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.05
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
# - entity_id: binary_sensor.bathroom_getting_humid
|
||||
# prob_given_true: .75
|
||||
# prob_given_false: 0.01
|
||||
# platform: state
|
||||
# to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.master_bathroom_hygrostat
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.05
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.01
|
||||
to_state: 'on'
|
||||
|
||||
# - platform: template
|
||||
# value_template: >
|
||||
# {{ states('sensor.master_bathroom_thermostat_humidity') | float(default=0) - states('sensor.master_bedroom_multisensor_humidity') | float(default=0) > 30 }}
|
||||
# prob_given_true: 0.99
|
||||
# prob_given_false: 0.01
|
||||
|
||||
# - entity_id: input_boolean.home_occupied
|
||||
# platform: state
|
||||
# prob_given_true: .01
|
||||
# prob_given_false: 0.5
|
||||
# to_state: 'off'
|
||||
@@ -0,0 +1,31 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.master_bedroom_occupied
|
||||
name: Master Bedroom Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.25
|
||||
probability_threshold: 0.75
|
||||
observations:
|
||||
|
||||
- entity_id: binary_sensor.master_bed_occupied
|
||||
platform: state
|
||||
prob_given_true: .83
|
||||
prob_given_false: 0.0
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.master_bedroom_person_occupancy
|
||||
prob_given_true: .4
|
||||
prob_given_false: 0.0
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.67
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: group.master_bedroom_motion
|
||||
platform: state
|
||||
prob_given_true: .5
|
||||
prob_given_false: 0.0
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,37 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.nursery_occupied
|
||||
name: Nursery Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.25
|
||||
probability_threshold: 0.90
|
||||
observations:
|
||||
|
||||
- platform: state
|
||||
entity_id: group.nursery_motion
|
||||
to_state: 'on'
|
||||
prob_given_true: .33
|
||||
prob_given_false: 0.0
|
||||
|
||||
- entity_id: binary_sensor.nursery_person_occupancy
|
||||
prob_given_true: .33
|
||||
prob_given_false: 0.0
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- platform: state
|
||||
entity_id: binary_sensor.black_bed_occupied
|
||||
to_state: 'on'
|
||||
prob_given_true: .67
|
||||
prob_given_false: 0.0
|
||||
|
||||
- platform: state
|
||||
entity_id: binary_sensor.white_bed_occupied
|
||||
to_state: 'on'
|
||||
prob_given_true: .67
|
||||
prob_given_false: 0.0
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .92
|
||||
prob_given_false: 0.5
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,13 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.storage_room_occupied
|
||||
name: Storage Room Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.5
|
||||
probability_threshold: 0.75
|
||||
observations:
|
||||
|
||||
- entity_id: binary_sensor.storage_room_door_contact
|
||||
prob_given_true: .4
|
||||
prob_given_false: 0.01
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,31 @@
|
||||
platform: bayesian
|
||||
unique_id: bayesianbinarysensor.utility_room_occupied
|
||||
name: Utility Room Occupied
|
||||
device_class: occupancy
|
||||
prior: 0.2
|
||||
probability_threshold: 0.75
|
||||
observations:
|
||||
|
||||
- entity_id: group.utility_room_motion
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.05
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
# - entity_id: binary_sensor.utility_room_getting_humid
|
||||
# prob_given_true: .75
|
||||
# prob_given_false: 0.01
|
||||
# platform: state
|
||||
# to_state: 'on'
|
||||
|
||||
- entity_id: binary_sensor.utility_room_hygrostat
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.05
|
||||
platform: state
|
||||
to_state: 'on'
|
||||
|
||||
- entity_id: input_boolean.home_occupied
|
||||
platform: state
|
||||
prob_given_true: .99
|
||||
prob_given_false: 0.01
|
||||
to_state: 'on'
|
||||
@@ -0,0 +1,756 @@
|
||||
platform: template
|
||||
sensors:
|
||||
ten_minute_warning_kids_bedtime:
|
||||
unique_id: templatebinarysensor.ten_minute_warning_kids_bedtime
|
||||
friendly_name: Ten Minute Warning Kids Bedtime
|
||||
icon_template: mdi:bed-clock
|
||||
value_template: "{{ now() >= today_at(states('input_datetime.kids_bedtime_announcement_time')) - timedelta(minutes= 10) }}"
|
||||
|
||||
pixel_7_connected_to_traverse:
|
||||
unique_id: templatebinarysensor.pixel_7_connected_to_traverse
|
||||
friendly_name: Pixel 7 Connected to Traverse
|
||||
icon_template: mdi:cellphone-key
|
||||
value_template: "{{ '30:C3:D9:B0:CA:E4 (Chevrolet MyLink)' in state_attr('sensor.pixel_7_bluetooth_connection','connected_paired_devices') }}"
|
||||
|
||||
humidity_too_low:
|
||||
unique_id: templatebinarysensor.humidity_too_low
|
||||
friendly_name: Humidity Too Low
|
||||
icon_template: mdi:water-minus
|
||||
value_template: "{{ states('sensor.upstairs_min_humidity') | float(default=0) < states('input_number.humidity_too_low')|float(default=0) or states('sensor.downstairs_min_humidity') | float(default=0) < states('input_number.humidity_too_low')|float(default=0) }}"
|
||||
attribute_templates:
|
||||
upstairs_area: "{{ state_attr('sensor.upstairs_min_humidity', 'min_entity_id') }}"
|
||||
upstairs_value: "{{ states('sensor.upstairs_min_humidity') }}"
|
||||
downstairs_area: "{{ state_attr('sensor.downstairs_min_humidity', 'min_entity_id') }}"
|
||||
downstairs_value: "{{ states('sensor.downstairs_min_humidity') }}"
|
||||
|
||||
humidity_too_high:
|
||||
unique_id: templatebinarysensor.humidity_too_high
|
||||
friendly_name: Humidity Too High
|
||||
icon_template: mdi:water-plus
|
||||
value_template: "{{ states('sensor.upstairs_max_humidity') | float(default=0) > states('input_number.humidity_too_high')|float(default=0) or states('sensor.downstairs_max_humidity') | float(default=0) > states('input_number.humidity_too_high')|float(default=0) }}"
|
||||
attribute_templates:
|
||||
upstairs_area: "{{ state_attr('sensor.upstairs_max_humidity', 'max_entity_id') }}"
|
||||
upstairs_value: "{{ states('sensor.upstairs_max_humidity') }}"
|
||||
downstairs_area: "{{ state_attr('sensor.downstairs_max_humidity', 'max_entity_id') }}"
|
||||
downstairs_value: "{{ states('sensor.downstairs_max_humidity') }}"
|
||||
|
||||
temperature_too_low:
|
||||
unique_id: templatebinarysensor.temperature_too_low
|
||||
friendly_name: Temperature Too Low
|
||||
icon_template: mdi:thermometer-chevron-down
|
||||
value_template: "{{ states('sensor.upstairs_min_temperature') | float(default=0) < states('input_number.temperature_too_low')|float(default=0) or states('sensor.downstairs_min_temperature') | float(default=0) < states('input_number.temperature_too_low')|float(default=0) }}"
|
||||
attribute_templates:
|
||||
upstairs_area: "{{ state_attr('sensor.upstairs_min_temperature', 'min_entity_id') }}"
|
||||
upstairs_value: "{{ states('sensor.upstairs_min_temperature') }}"
|
||||
downstairs_area: "{{ state_attr('sensor.downstairs_min_temperature', 'min_entity_id') }}"
|
||||
downstairs_value: "{{ states('sensor.downstairs_min_temperature') }}"
|
||||
|
||||
temperature_too_high:
|
||||
unique_id: templatebinarysensor.temperature_too_high
|
||||
friendly_name: Temperature Too High
|
||||
icon_template: mdi:thermometer-chevron-up
|
||||
value_template: "{{ states('sensor.upstairs_max_temperature') | float(default=0) > states('input_number.temperature_too_high')|float(default=0) or states('sensor.downstairs_max_temperature') | float(default=0) > states('input_number.temperature_too_high')|float(default=0) }}"
|
||||
attribute_templates:
|
||||
upstairs_area: "{{ state_attr('sensor.upstairs_max_temperature', 'max_entity_id') }}"
|
||||
upstairs_value: "{{ states('sensor.upstairs_max_temperature') }}"
|
||||
downstairs_area: "{{ state_attr('sensor.downstairs_max_temperature', 'max_entity_id') }}"
|
||||
downstairs_value: "{{ states('sensor.downstairs_max_temperature') }}"
|
||||
|
||||
humidity_problem:
|
||||
unique_id: templatebinarysensor.humidity_problem
|
||||
friendly_name: Humidity Problem
|
||||
icon_template: mdi:water-alert
|
||||
value_template: "{{ is_state('binary_sensor.humidity_too_low','on') or is_state('binary_sensor.humidity_too_high','on') }}"
|
||||
|
||||
kids_possible:
|
||||
unique_id: templatebinarysensor.kids_possible
|
||||
friendly_name: Kids Possible
|
||||
icon_template: mdi:human-male-female-child
|
||||
value_template: "{{ is_state('binary_sensor.have_custody','on') or is_state('input_boolean.kristy_home','on') or is_state('input_boolean.ebin_home','on') or is_state('input_select.weaver_kids','Home') or is_state('input_select.podein_kids','Home') }}"
|
||||
|
||||
double_planter_needs_water:
|
||||
unique_id: templatebinarysensor.double_planter_needs_water
|
||||
friendly_name: Double Planter Needs Water
|
||||
value_template: "{{ states('sensor.fineoffset_wh51_00f935_moisture')|float(default=0) <= states('input_number.double_planter_water_alert')|int(default=0) }}"
|
||||
delay_on: "00:05:00"
|
||||
icon_template: >
|
||||
{% if states('sensor.fineoffset_wh51_00f935_moisture') == 'unavailable' %}
|
||||
mdi:flower-outline
|
||||
{% else %}
|
||||
mdi:flower
|
||||
{% endif %}
|
||||
attribute_templates:
|
||||
moisture: "{{states('sensor.fineoffset_wh51_00f935_moisture') | float(default=0)}}"
|
||||
alarm_trigger: "{{states('input_number.double_planter_water_alert') | float(default=0)}}"
|
||||
|
||||
kitchen_fridge_too_warm:
|
||||
unique_id: templatebinarysensor.kitchen_fridge_too_warm
|
||||
friendly_name: Kitchen Fridge Too Warm
|
||||
value_template: "{{ states('sensor.acurite_986_1r_48226_temperature')|int(default=0) > states('input_number.kitchen_fridge_alert')|int(default=0) }}"
|
||||
delay_on: "00:30:00"
|
||||
icon_template: >
|
||||
{% if states('sensor.acurite_986_1r_48226_temperature')|int(default=0) > states('input_number.kitchen_fridge_alert')|int(default=0) %}
|
||||
mdi:fridge-variant-alert
|
||||
{% else %}
|
||||
mdi:fridge-variant
|
||||
{% endif %}
|
||||
|
||||
kitchen_freezer_too_warm:
|
||||
unique_id: templatebinarysensor.kitchen_freezer_too_warm
|
||||
friendly_name: Kitchen Freezer Too Warm
|
||||
value_template: "{{ states('sensor.acurite_986_2f_42383_temperature')|int(default=0) > states('input_number.kitchen_freezer_alert')|int(default=0) }}"
|
||||
delay_on: "00:30:00"
|
||||
icon_template: >
|
||||
{% if states('sensor.acurite_986_2f_42383_temperature')|int(default=0) > states('input_number.kitchen_freezer_alert')|int(default=0) %}
|
||||
mdi:fridge-variant-alert
|
||||
{% else %}
|
||||
mdi:fridge-variant
|
||||
{% endif %}
|
||||
|
||||
kitchen_fridge_or_freezer_too_warm:
|
||||
unique_id: templatebinarysensor.kitchen_fridge_or_freezer_too_warm
|
||||
friendly_name: Kitchen Fridge or Freezer Too Warm
|
||||
value_template: "{{ states('sensor.acurite_986_1r_48226_temperature')|int(default=0) > states('input_number.kitchen_fridge_alert')|int(default=0) or states('sensor.acurite_986_2f_42383_temperature')|int(default=0) > states('input_number.kitchen_freezer_alert')|int(default=0) }}"
|
||||
delay_on: "00:30:00"
|
||||
icon_template: >
|
||||
{% if states('sensor.acurite_986_1r_48226_temperature')|int(default=0) > states('input_number.kitchen_fridge_alert')|int(default=0) or states('sensor.acurite_986_2f_42383_temperature')|int(default=0) > states('input_number.kitchen_freezer_alert')|int(default=0) %}
|
||||
mdi:fridge-variant-alert
|
||||
{% else %}
|
||||
mdi:fridge-variant
|
||||
{% endif %}
|
||||
|
||||
master_bed_left_occupied:
|
||||
unique_id: templatebinarysensor.master_bed_left_occupied
|
||||
friendly_name: Master Bedroom Left Occupied
|
||||
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 }}"
|
||||
|
||||
master_bed_right_occupied:
|
||||
unique_id: templatebinarysensor.master_bed_right_occupied
|
||||
friendly_name: Master Bedroom Right Occupied
|
||||
icon_template: mdi:bed-king
|
||||
value_template: "{{ is_state('binary_sensor.master_bed_occupied','on') }}"
|
||||
|
||||
bathroom_getting_humid:
|
||||
unique_id: templatebinarysensor.bathroom_getting_humid
|
||||
friendly_name: Bathroom Getting Humid
|
||||
delay_off:
|
||||
minutes: 5
|
||||
#value_template: "{{ is_state('binary_sensor.trend_bathroom_humidity','on') or states('sensor.master_bathroom_thermostat_humidity') | int(default=0) - states('sensor.master_bedroom_multisensor_humidity') | int(default=100) > 5}}"
|
||||
value_template: "{{ states('sensor.master_bathroom_thermostat_humidity') | float(default=0) - states('sensor.upstairs_mean_humidity') | float(default=100) > 10 }}"
|
||||
icon_template: >
|
||||
{% if states('sensor.master_bathroom_thermostat_humidity') | float(default=0) - states('sensor.upstairs_mean_humidity') | float(default=100) > 10 %}
|
||||
mdi:water-percent
|
||||
{% else %}
|
||||
mdi:water-off
|
||||
{% endif %}
|
||||
attribute_templates:
|
||||
room_humidity: "{{ states('sensor.master_bathroom_thermostat_humidity') | float(default=0) }}"
|
||||
mean_humidity: "{{ states('sensor.upstairs_mean_humidity') | float(default=0) }}"
|
||||
difference: "{{ states('sensor.master_bathroom_thermostat_humidity') | float(default=0) - states('sensor.upstairs_mean_humidity') | float(default=0) }}"
|
||||
|
||||
utility_room_getting_humid:
|
||||
unique_id: templatebinarysensor.utility_room_getting_humid
|
||||
friendly_name: Utility Room Getting Humid
|
||||
delay_off:
|
||||
minutes: 5
|
||||
#value_template: "{{ is_state('binary_sensor.trend_utility_humidity','on') or states('sensor.utility_room_thermostat_humidity') | int(default=0) - states('sensor.computer_area_multisensor_humidity') | int(default=100) > 5}}"
|
||||
value_template: "{{ states('sensor.utility_room_thermostat_humidity') | float(default=0) - states('sensor.downstairs_mean_humidity') | float(default=100) > 10 }}"
|
||||
icon_template: >
|
||||
{% if states('sensor.utility_room_thermostat_humidity') | float(default=0) - states('sensor.downstairs_mean_humidity') | float(default=100) > 10 %}
|
||||
mdi:water-percent
|
||||
{% else %}
|
||||
mdi:water-off
|
||||
{% endif %}
|
||||
attribute_templates:
|
||||
room_humidity: "{{ states('sensor.utility_room_thermostat_humidity') | float(default=0) }}"
|
||||
mean_humidity: "{{ states('sensor.downstairs_mean_humidity') | float(default=0) }}"
|
||||
difference: "{{ states('sensor.utility_room_thermostat_humidity') | float(default=0) - states('sensor.downstairs_mean_humidity') | float(default=0) }}"
|
||||
|
||||
work_hours:
|
||||
unique_id: templatebinarysensor.work_hours
|
||||
friendly_name: Work Hours
|
||||
value_template: "{{ is_state('binary_sensor.work_day', 'on') and is_state('binary_sensor.business_hours', 'on') }}"
|
||||
icon_template: mdi:briefcase
|
||||
|
||||
# washing_machine:
|
||||
# unique_id: templatebinarysensor.washing_machine
|
||||
# friendly_name: Washing Machine
|
||||
# delay_off:
|
||||
# seconds: 30
|
||||
# icon_template: mdi:washing-machine
|
||||
# availability_template: "{{ states('sensor.pm_laundry_plug_w') not in ['unkown', 'unavailable'] }}"
|
||||
# value_template: "{{ states('sensor.pm_laundry_plug_w')|float(default=0) >= states('input_number.washing_machine_on')|float(default=0) }}"
|
||||
# attribute_templates:
|
||||
# model_number: 'WF45R6100AW/US'
|
||||
# serial_number: '01FY57AM802740X'
|
||||
# power: "{{ states('sensor.pm_laundry_plug_w') | float(default=0)}}"
|
||||
# target: "{{ states('input_number.washing_machine_on') | float(default=0)}}"
|
||||
|
||||
|
||||
# tumble_dryer:
|
||||
# unique_id: binary-sensor-tumble-dryer
|
||||
# friendly_name: Tumble Dryer
|
||||
# delay_off:
|
||||
# seconds: 30
|
||||
# icon_template: mdi:tumble-dryer
|
||||
# availability_template: "{{ states('sensor.pm_dryer_w') not in ['unkown', 'unavailable'] }}"
|
||||
# value_template: "{{ states('sensor.pm_dryer_w')|float(default=0) >= states('input_number.tumble_dryer_on')|float(default=0) }}"
|
||||
# attribute_templates:
|
||||
# model_number: 'DVE45R6100W/A3'
|
||||
# serial_number: '0AY95BBM605793X'
|
||||
# power: "{{ states('sensor.pm_dryer_w') | float(default=0)}}"
|
||||
# target: "{{ states('input_number.tumble_dryer_on') | float(default=0)}}"
|
||||
|
||||
# dishwasher:
|
||||
# unique_id: templatebinarysensor.dishwasher
|
||||
# friendly_name: Dishwasher
|
||||
# delay_on:
|
||||
# seconds: 60
|
||||
# delay_off:
|
||||
# seconds: 30
|
||||
# icon_template: mdi:dishwasher
|
||||
# availability_template: "{{ states('sensor.pm_dishwasher_w') not in ['unkown', 'unavailable'] }}"
|
||||
# value_template: "{{ states('sensor.pm_dishwasher_w')|float(default=0) >= states('input_number.dishwasher_on')|float(default=0) }}"
|
||||
# attribute_templates:
|
||||
# model_number: 'MDB6769PAS1'
|
||||
# serial_number: 'F24407234'
|
||||
# power: "{{ states('sensor.pm_dishwasher_w') | float(default=0)}}"
|
||||
# target: "{{ states('input_number.dishwasher_on') | float(default=0)}}"
|
||||
|
||||
stove:
|
||||
unique_id: binary-sensor-stove
|
||||
friendly_name: Stove
|
||||
delay_off:
|
||||
seconds: 120
|
||||
value_template: "{{ states('sensor.pm_stove_w') | float(default=0) > states('input_number.stove_on') | float(default=0) }}"
|
||||
icon_template: mdi:stove
|
||||
attribute_templates:
|
||||
model_number: 'WFE505W0JS3'
|
||||
serial_number: 'RB4659869'
|
||||
power: "{{ states('sensor.pm_stove_w') | float(default=0)}}"
|
||||
oven_temperature: "{{ iif(is_state('sensor.oven_temperature', 'unavailable'), 'unavailable', states('sensor.oven_temperature') | float(default=0)) }}"
|
||||
|
||||
|
||||
microwave:
|
||||
unique_id: binary-sensor-microwave
|
||||
friendly_name: Microwave
|
||||
value_template: "{{ states('sensor.pm_microwave_plug_w') | float(default=0) > states('input_number.microwave_on') | float(default=0) }}"
|
||||
icon_template: mdi:microwave
|
||||
attribute_templates:
|
||||
model_number: 'testmodel'
|
||||
serial_number: 'testserial'
|
||||
power: "{{ states('sensor.pm_microwave_plug_w') | float(default=0)}}"
|
||||
|
||||
furnace:
|
||||
unique_id: binary-sensor-furnace
|
||||
friendly_name: Furnace
|
||||
value_template: "{{ states('sensor.pm_furnace_w') | float(default=0) > states('input_number.furnace_on') | float(default=0) }}"
|
||||
icon_template: mdi:radiator
|
||||
attribute_templates:
|
||||
model_number: 'testmodel'
|
||||
serial_number: 'testserial'
|
||||
power: "{{ states('sensor.pm_furnace_w') | float(default=0)}}"
|
||||
|
||||
heat_pump:
|
||||
unique_id: binary-sensor-heat-pump
|
||||
friendly_name: Heat Pump
|
||||
value_template: "{{ states('sensor.pm_heat_pump_w') | float(default=0) > states('input_number.heat_pump_on') | float(default=0) }}"
|
||||
icon_template: mdi:air-filter
|
||||
attribute_templates:
|
||||
model_number: 'testmodel'
|
||||
serial_number: 'testserial'
|
||||
power: "{{ states('sensor.pm_heat_pump_w') | float(default=0)}}"
|
||||
|
||||
sump_pump:
|
||||
unique_id: binary-sensor-sump-pump
|
||||
friendly_name: Sump Pump
|
||||
value_template: "{{ states('sensor.pm_sump_pump_plug_w') | float(default=0) > states('input_number.sump_pump_on') | float(default=0) }}"
|
||||
icon_template: mdi:pump
|
||||
attribute_templates:
|
||||
model_number: 'testmodel'
|
||||
serial_number: 'testserial'
|
||||
power: "{{ states('sensor.pm_sump_pump_plug_w') | float(default=0)}}"
|
||||
|
||||
something_open_hvac_on:
|
||||
unique_id: templatebinarysensor.something_open_hvac_on
|
||||
friendly_name: Something Open HVAC On
|
||||
device_class: problem
|
||||
delay_on:
|
||||
minutes: 5
|
||||
value_template: >-
|
||||
{% if is_state('binary_sensor.patio_door_contact', 'on') or is_state('group.my_exterior_windows', 'on') or is_state('binary_sensor.front_door_contact', 'on') %}
|
||||
{% if is_state_attr('climate.thermostat', 'hvac_action', 'cooling') and states('sensor.master_bedroom_multisensor_air_temperature') | int < states('sensor.front_porch_temperature') | int %}
|
||||
{{'true'}}
|
||||
{% elif is_state_attr('climate.thermostat', 'hvac_action', 'heating') and states('sensor.master_bedroom_multisensor_air_temperature') | int > states('sensor.front_porch_temperature') | int %}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
|
||||
hvac_delta_too_small_for_too_long:
|
||||
unique_id: templatebinarysensor.hvac_delta_too_small_for_too_long
|
||||
friendly_name: HVAC Delta Too Small For Too Long
|
||||
device_class: problem
|
||||
delay_on:
|
||||
minutes: 10
|
||||
value_template: >-
|
||||
{% if is_state('binary_sensor.hvac_delta_sensors_unavailable','on') %}
|
||||
{{'false'}}
|
||||
{% else %}
|
||||
{% if is_state_attr('climate.thermostat', 'hvac_action', 'cooling') and states('sensor.hvac_delta') | int(default=0) >= -5 %}
|
||||
{{'true'}}
|
||||
{% elif is_state_attr('climate.thermostat', 'hvac_action', 'heating') and states('sensor.hvac_delta') | int(default=0) <= 5 %}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
have_custody:
|
||||
unique_id: templatebinarysensor.have_custody
|
||||
friendly_name: Have Custody
|
||||
value_template: >-
|
||||
{% if is_state('calendar.my_custody', 'on') %}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
|
||||
computer_chair_contact_occupied:
|
||||
unique_id: templatebinarysensor.computer_chair_contact_occupied
|
||||
friendly_name: Computer Chair Occupied
|
||||
value_template: "{{ states('binary_sensor.computer_chair_contact') | string == 'off' }}"
|
||||
|
||||
# If the AC has been on for more than 5 minutes, the Delta Temperature should be more than 5
|
||||
# ( The air coming out of a vent should be more than 5 degrees cooler than the air going into a return )
|
||||
hvac_delta_temperature_good:
|
||||
unique_id: templatebinarysensor.hvac_delta_temperature_good
|
||||
friendly_name: HVAC Delta Temperature Good
|
||||
value_template: >-
|
||||
{% if states("sensor.hvac_temperature") | string != "unknown" and states("sensor.return_temperature") | string != "unknown" %}
|
||||
{% if states('sensor.hvac_action') | string == 'cooling' and as_timestamp(now())-(as_timestamp(states.sensor.hvac_action.last_changed))|round(1) > 300 %}
|
||||
{% if states('sensor.hvac_delta') | float(default=0) < -10 %}
|
||||
{{ 'true' }}
|
||||
{% else %}
|
||||
{{ 'false' }}
|
||||
{% endif %}
|
||||
{% elif states('sensor.hvac_action') | string == 'heating' and as_timestamp(now())-(as_timestamp(states.sensor.hvac_action.last_changed))|round(1) > 300 %}
|
||||
{% if states('sensor.hvac_delta') | float(default=0) > 10 %}
|
||||
{{ 'true' }}
|
||||
{% else %}
|
||||
{{ 'false' }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
hvac_delta_sensors_unavailable:
|
||||
unique_id: templatebinarysensor.hvac_delta_sensors_unavailable
|
||||
friendly_name: HVAC Delta Sensors Unavailable
|
||||
device_class: connectivity
|
||||
delay_on:
|
||||
minutes: 5
|
||||
value_template: >-
|
||||
{% if states("sensor.hvac_temperature") | string == 'unknown' or states("sensor.return_temperature") | string == 'unknown' or states("sensor.hvac_temperature") | string == 'unavailable' or states("sensor.return_temperature") | string == 'unavailable' %}
|
||||
{{ 'true' }}
|
||||
{% else %}
|
||||
{{ 'false' }}
|
||||
{% endif %}
|
||||
|
||||
# Is it too cold or too warm outside to turn on the fan?
|
||||
temp_just_right:
|
||||
unique_id: templatebinarysensor.temp_just_right
|
||||
friendly_name: Temp Just Right
|
||||
value_template: >-
|
||||
{% if states('sensor.front_porch_temperature') | float(default=0) > 50 and states('sensor.front_porch_temperature') | float(default=0) < 90 %}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{ 'false' }}
|
||||
{% endif %}
|
||||
|
||||
|
||||
# Moved to temperature_management.yaml
|
||||
# Is it more than 5 degrees warmer outside?
|
||||
# warmer_outside:
|
||||
# unique_id: templatebinarysensor.warmer_outside
|
||||
# friendly_name: Warmer Outside
|
||||
# value_template: >-
|
||||
# {% if states('sensor.thermostat_temperature') | float(default=0) - 5 < states('sensor.lacrosse_tx141thbv2_0_54_temperature') | float(default=0) %}
|
||||
# {{'true'}}
|
||||
# {% else %}
|
||||
# {{ 'false' }}
|
||||
# {% endif %}
|
||||
|
||||
# Moved to temperature_management.yaml
|
||||
# Is it more than 5 degrees cooler outside?
|
||||
# cooler_outside:
|
||||
# unique_id: templatebinarysensor.cooler_outside
|
||||
# friendly_name: Cooler Outside
|
||||
# value_template: >-
|
||||
# {% if states('sensor.lacrosse_tx141thbv2_0_54_temperature') | float(default=0) + 5 < states('sensor.thermostat_temperature') | float(default=0) %}
|
||||
# {{'true'}}
|
||||
# {% else %}
|
||||
# {{ 'false' }}
|
||||
# {% endif %}
|
||||
|
||||
|
||||
is_dark:
|
||||
unique_id: templatebinarysensor.is_dark
|
||||
friendly_name: Is Dark
|
||||
value_template: "{{ (states('sensor.front_porch_light_level') | int(0) < states('input_number.is_dark') | int(0)) or (states('sensor.front_porch_light_level') | int(0) < 30 and is_state('light.front_porch_overhead','on')) }}"
|
||||
|
||||
is_dim:
|
||||
unique_id: templatebinarysensor.is_dim
|
||||
friendly_name: Is Dim
|
||||
value_template: "{{ states('sensor.front_porch_light_level') | int(0) >= states('input_number.is_dark') | int(0) and states('sensor.front_porch_light_level') | int(0) < states('input_number.is_daylight') | int(0) }}"
|
||||
|
||||
is_daylight:
|
||||
unique_id: templatebinarysensor.is_daylight
|
||||
friendly_name: Is Daylight
|
||||
value_template: "{{ states('sensor.front_porch_light_level') | int(0) >= states('input_number.is_daylight') | int(0) }}"
|
||||
|
||||
garage_open_nobody_home:
|
||||
unique_id: templatebinarysensor.garage_open_nobody_home
|
||||
friendly_name: 'Garage Open Nobody Home'
|
||||
value_template: >-
|
||||
{% if is_state('cover.garage_door', 'open') %}
|
||||
{% if is_state('input_boolean.home_occupied', 'off') %}
|
||||
{{ 'true' }}
|
||||
{% else %}
|
||||
{{ 'false' }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{{ 'false' }}
|
||||
{% endif %}
|
||||
|
||||
adults_at_home:
|
||||
unique_id: templatebinarysensor.adults_at_home
|
||||
friendly_name: Adults At Home
|
||||
value_template: >-
|
||||
{% if
|
||||
is_state('input_boolean.clint_home','on') or
|
||||
is_state('input_boolean.kristy_home','on')
|
||||
%}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
|
||||
adults_in_bed:
|
||||
unique_id: templatebinarysensor.adults_in_bed
|
||||
friendly_name: Adults In Bed
|
||||
value_template: >-
|
||||
{% if
|
||||
is_state('binary_sensor.adults_at_home','on') and
|
||||
(is_state('input_boolean.clint_home','off') or is_state('input_boolean.clint_in_bed', 'on')) and
|
||||
(is_state('input_boolean.kristy_home','off') or is_state('input_boolean.kristy_in_bed', 'on'))
|
||||
%}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
|
||||
adults_asleep:
|
||||
unique_id: templatebinarysensor.adults_asleep
|
||||
friendly_name: Adults Asleep
|
||||
value_template: >-
|
||||
{% if
|
||||
is_state('binary_sensor.adults_at_home','on') and
|
||||
(is_state('input_boolean.clint_home','off') or is_state('input_boolean.clint_is_awake', 'off')) and
|
||||
(is_state('input_boolean.kristy_home','off') or is_state('input_boolean.kristy_is_awake', 'off'))
|
||||
%}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
|
||||
teens_at_home:
|
||||
unique_id: templatebinarysensor.teens_at_home
|
||||
friendly_name: Teens At Home
|
||||
value_template: >-
|
||||
{% if
|
||||
is_state('input_boolean.marshall_home','on') or
|
||||
is_state('input_boolean.tess_home','on')
|
||||
%}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
|
||||
teens_in_bed:
|
||||
unique_id: templatebinarysensor.teens_in_bed
|
||||
friendly_name: Teens In Bed
|
||||
value_template: >-
|
||||
{% if
|
||||
is_state('binary_sensor.teens_at_home','on') and
|
||||
(is_state('input_boolean.marshall_home','off') or is_state('input_boolean.marshall_in_bed', 'on')) and
|
||||
(is_state('input_boolean.tess_home','off') or is_state('input_boolean.tess_in_bed', 'on'))
|
||||
%}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
|
||||
teens_asleep:
|
||||
unique_id: templatebinarysensor.teens_asleep
|
||||
friendly_name: Teens Asleep
|
||||
value_template: >-
|
||||
{% if
|
||||
is_state('binary_sensor.teens_at_home','on') and
|
||||
(is_state('input_boolean.marshall_home','off') or is_state('input_boolean.marshall_is_awake', 'off')) and
|
||||
(is_state('input_boolean.tess_home','off') or is_state('input_boolean.tess_is_awake', 'off'))
|
||||
%}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
|
||||
kids_at_home:
|
||||
unique_id: templatebinarysensor.kids_at_home
|
||||
friendly_name: Kids At Home
|
||||
value_template: >-
|
||||
{% if
|
||||
is_state('input_boolean.emmett_home','on') or
|
||||
is_state('input_boolean.bridget_home','on') or
|
||||
is_state('input_boolean.ebin_home','on')
|
||||
%}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
|
||||
kids_in_bed:
|
||||
unique_id: templatebinarysensor.kids_in_bed
|
||||
friendly_name: Kids In Bed
|
||||
value_template: >-
|
||||
{% if
|
||||
is_state('input_boolean.kids_away','off') and
|
||||
(is_state('input_boolean.emmett_home','off') or is_state('input_boolean.emmett_in_bed', 'on')) and
|
||||
(is_state('input_boolean.bridget_home','off') or is_state('input_boolean.bridget_in_bed', 'on')) and
|
||||
(is_state('input_boolean.ebin_home','off') or is_state('input_boolean.ebin_in_bed', 'on'))
|
||||
%}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
|
||||
kids_asleep:
|
||||
unique_id: templatebinarysensor.kids_asleep
|
||||
friendly_name: Kids Asleep
|
||||
value_template: >-
|
||||
{% if
|
||||
is_state('input_boolean.kids_away','off') and
|
||||
(is_state('input_boolean.emmett_home','off') or is_state('input_boolean.emmett_is_awake', 'off')) and
|
||||
(is_state('input_boolean.bridget_home','off') or is_state('input_boolean.bridget_is_awake', 'off')) and
|
||||
(is_state('input_boolean.ebin_home','off') or is_state('input_boolean.ebin_is_awake', 'off'))
|
||||
%}
|
||||
{{'true'}}
|
||||
{% else %}
|
||||
{{'false'}}
|
||||
{% endif %}
|
||||
|
||||
green_car_east_side:
|
||||
unique_id: templatebinarysensor.green_car_east_side
|
||||
friendly_name: Green Car East Side
|
||||
value_template: "{{ states('sensor.car_sensor_east_side') | float(default=0) >= 1.3 and states('sensor.car_sensor_east_side') | float(default=0) <= 1.5 }}"
|
||||
|
||||
green_car_west_side:
|
||||
unique_id: templatebinarysensor.green_car_west_side
|
||||
friendly_name: Green Car West Side
|
||||
value_template: "{{ states('sensor.car_sensor_west_side') | float(default=0) >= 1.3 and states('sensor.car_sensor_west_side') | float(default=0) <= 1.5 }}"
|
||||
|
||||
gray_suv_east_side:
|
||||
unique_id: templatebinarysensor.gray_suv_east_side
|
||||
friendly_name: Gray SUV East Side
|
||||
value_template: "{{ states('sensor.car_sensor_east_side') | float(default=0) >= 0.8 and states('sensor.car_sensor_east_side') | float(default=0) < 1.8 }}"
|
||||
|
||||
gray_suv_west_side:
|
||||
unique_id: templatebinarysensor.gray_suv_west_side
|
||||
friendly_name: Gray SUV West Side
|
||||
value_template: "{{ states('sensor.car_sensor_west_side') | float(default=0) >= 0.8 and states('sensor.car_sensor_west_side') | float(default=0) < 1.8 }}"
|
||||
|
||||
clint_home_during_work_hours:
|
||||
unique_id: templatebinarysensor.clint_home_during_work_hours
|
||||
friendly_name: Clint Home During Work Hours
|
||||
value_template: "{{ states('input_boolean.clint_home') == 'on' and states('binary_sensor.work_hours') == 'on' }}"
|
||||
|
||||
back_yard_light_left_on:
|
||||
unique_id: templatebinarysensor.back_yard_light_left_on
|
||||
friendly_name: Back Yard Light Left On
|
||||
value_template: "{{ is_state('light.deck','on') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
storage_room_light_left_on:
|
||||
unique_id: templatebinarysensor.storage_room_light_left_on
|
||||
friendly_name: Storage Room Light Left On
|
||||
value_template: "{{ is_state('light.storage_room','on') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
furnace_room_light_left_on:
|
||||
unique_id: templatebinarysensor.furnace_room_light_left_on
|
||||
friendly_name: Furnace Room Light Left On
|
||||
value_template: "{{ is_state('light.furnace_room','on') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
blue_room_light_left_on:
|
||||
unique_id: templatebinarysensor.blue_room_light_left_on
|
||||
friendly_name: Blue Room Light Left On
|
||||
value_template: "{{ is_state('light.blue_room_hue','on') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
mancave_light_left_on:
|
||||
unique_id: templatebinarysensor.mancave_light_left_on
|
||||
friendly_name: Mancave Light Left On
|
||||
value_template: "{{ is_state('light.mancave','on') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
front_yard_light_left_on:
|
||||
unique_id: templatebinarysensor.front_yard_light_left_on
|
||||
friendly_name: Front Yard Light Left On
|
||||
value_template: "{{ is_state('light.front_porch_overhead','on') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
computer_area_light_left_on:
|
||||
unique_id: templatebinarysensor.computer_area_light_left_on
|
||||
friendly_name: Computer Area Light Left On
|
||||
value_template: "{{ is_state('light.computer_area_hue','on') and is_state('input_boolean.computer_area_occupied','off') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
dining_room_light_left_on:
|
||||
unique_id: templatebinarysensor.dining_room_light_left_on
|
||||
friendly_name: Dining Room Light Left On
|
||||
value_template: "{{ is_state('light.dining_room_switch','on') and is_state('input_boolean.dining_room_occupied','off') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
entryway_light_left_on:
|
||||
unique_id: templatebinarysensor.entryway_light_left_on
|
||||
friendly_name: Entryway Light Left On
|
||||
value_template: "{{ is_state('light.entryway_hue','on') and is_state('input_boolean.entryway_occupied','off') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
front_room_light_left_on:
|
||||
unique_id: templatebinarysensor.front_room_light_left_on
|
||||
friendly_name: Front Room Light Left On
|
||||
value_template: "{{ is_state('light.front_room_hue','on') and is_state('input_boolean.front_room_occupied','off') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
garage_light_left_on:
|
||||
unique_id: templatebinarysensor.garage_light_left_on
|
||||
friendly_name: Garage Light Left On
|
||||
value_template: "{{ is_state('light.garage_overhead','on') and is_state('input_boolean.garage_occupied','off') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
great_room_light_left_on:
|
||||
unique_id: templatebinarysensor.great_room_light_left_on
|
||||
friendly_name: Great Room Light Left On
|
||||
value_template: "{{ is_state('light.great_room_hue','on') and is_state('input_boolean.great_room_occupied','off') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
kitchen_light_left_on:
|
||||
unique_id: templatebinarysensor.kitchen_light_left_on
|
||||
friendly_name: Kitchen Light Left On
|
||||
value_template: "{{ is_state('light.kitchen_hue','on') and is_state('input_boolean.kitchen_occupied','off') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
master_bathroom_light_left_on:
|
||||
unique_id: templatebinarysensor.master_bathroom_light_left_on
|
||||
friendly_name: Master Bathroom Light Left On
|
||||
value_template: "{{ is_state('light.master_bathroom_hue','on') and is_state('input_boolean.master_bathroom_occupied','off') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
master_bedroom_light_left_on:
|
||||
unique_id: templatebinarysensor.master_bedroom_light_left_on
|
||||
friendly_name: Master Bedroom Light Left On
|
||||
value_template: "{{ is_state('light.master_bedroom_ceiling_hue','on') and is_state('input_boolean.master_bedroom_occupied','off') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
nursery_light_left_on:
|
||||
unique_id: templatebinarysensor.nursery_light_left_on
|
||||
friendly_name: Nursery Light Left On
|
||||
value_template: "{{ is_state('light.nursery_ceiling_hue','on') and is_state('input_boolean.nursery_occupied','off') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
utility_room_light_left_on:
|
||||
unique_id: templatebinarysensor.utility_room_light_left_on
|
||||
friendly_name: Utility Room Light Left On
|
||||
value_template: "{{ is_state('light.utility_room_hue','on') and is_state('input_boolean.utility_room_occupied','off') }}"
|
||||
delay_on:
|
||||
seconds: 30
|
||||
|
||||
take_dumpster_to_curb:
|
||||
unique_id: templatebinarysensor.take_dumpster_to_curb
|
||||
friendly_name: Take Dumpster To Curb
|
||||
value_template: "{{ iif(is_state('input_boolean.trash_out','off') and state_attr('calendar.trash_schedule','offset_reached') )}}"
|
||||
icon_template: mdi:trash-can
|
||||
|
||||
take_trash_out:
|
||||
unique_id: templatesensor.take_trash_out
|
||||
friendly_name: 'Take Trash Out'
|
||||
icon_template: mdi:trash-can
|
||||
value_template: "{{ is_state('calendar.trash_schedule','on') or state_attr('calendar.trash_schedule','offset_reached') and is_state('input_boolean.trash_out','off') }}"
|
||||
|
||||
need_salt:
|
||||
unique_id: templatebinarysensor.need_salt
|
||||
friendly_name: Need Salt
|
||||
value_template: "{{ is_state('binary_sensor.furnace_room_multisensor_status', 'on') and is_state('sensor.salt_level_in_bags','0') }}"
|
||||
icon_template: mdi:shaker-outline
|
||||
delay_on:
|
||||
seconds: 900
|
||||
|
||||
emmetts_bed:
|
||||
unique_id: templatebinarysensor.emmetts_bed
|
||||
friendly_name: Emmett's Bed
|
||||
value_template: "{{ states('binary_sensor.black_bed_occupied') }}"
|
||||
icon_template: "{{ iif(is_state('binary_sensor.black_bed_occupied','on'),'mdi:bed','mdi:bed-empty','mdi:bed-outline')}}"
|
||||
|
||||
bridgets_bed:
|
||||
unique_id: templatebinarysensor.bridgets_bed
|
||||
friendly_name: Bridget's Bed
|
||||
value_template: "{{ states('binary_sensor.white_bed_occupied') }}"
|
||||
icon_template: "{{ iif(is_state('binary_sensor.white_bed_occupied','on'),'mdi:bed','mdi:bed-empty','mdi:bed-outline')}}"
|
||||
|
||||
should_mow: #
|
||||
unique_id: templatebinarysensor.should_mow
|
||||
friendly_name: Should Mow
|
||||
#value_template: "{{ as_timestamp(states('sensor.chore_mow')) < as_timestamp(now()) }}"
|
||||
value_template: "{{ (( now().month > 3 ) and ( now().month < 9 )) and (as_timestamp(states('sensor.chore_mow')) < as_timestamp(now())) }}"
|
||||
icon_template: mdi:mower-bag
|
||||
|
||||
check_mail:
|
||||
unique_id: templatebinarysensor.check_mail
|
||||
friendly_name: Check Mail
|
||||
value_template: "{{is_state('input_boolean.incoming_mail','on') and is_state('input_boolean.mail_checked','off')}}"
|
||||
icon_template: mdi:mailbox
|
||||
|
||||
close_windows:
|
||||
unique_id: templatebinarysensor.close_windows
|
||||
friendly_name: Close Windows
|
||||
value_template: "{{is_state('group.my_exterior_windows','on') and is_state('binary_sensor.impending_rain','on')}}"
|
||||
icon_template: mdi:window-open
|
||||
|
||||
close_kitchen_fridge:
|
||||
unique_id: templatebinarysensor.close_kitchen_fridge
|
||||
friendly_name: Close Kitchen Fridge
|
||||
value_template: "{{is_state('binary_sensor.kitchen_fridge_door_contact','on') }}"
|
||||
icon_template: mdi:fridge-variant
|
||||
delay_on:
|
||||
minutes: 3
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: tod
|
||||
name: Business Hours
|
||||
after: '07:45'
|
||||
before: '16:45'
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: tod
|
||||
name: Childcare Hours
|
||||
after: '07:00'
|
||||
before: '16:30'
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: tod
|
||||
name: Childcare NonSchool Hours
|
||||
after: '08:00'
|
||||
before: '16:30'
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: tod
|
||||
name: Early Afternoon
|
||||
after: '12:00'
|
||||
before: '15:00'
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: tod
|
||||
name: Early Evening
|
||||
after: '17:00'
|
||||
before: '19:00'
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: tod
|
||||
name: Early Morning
|
||||
after: '04:00'
|
||||
before: '06:00'
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: tod
|
||||
name: Evening
|
||||
after: '19:00'
|
||||
before: '22:00'
|
||||
@@ -0,0 +1,6 @@
|
||||
platform: tod
|
||||
name: Last Chance to Mow
|
||||
after: sunset
|
||||
after_offset: "-02:30"
|
||||
before: sunset
|
||||
before_offset: "-01:30"
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: tod
|
||||
name: Late Afternoon
|
||||
after: '15:00'
|
||||
before: '17:00'
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: tod
|
||||
name: Late Evening
|
||||
after: '22:00'
|
||||
before: '00:00'
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: tod
|
||||
name: Late Morning
|
||||
after: '09:00'
|
||||
before: '12:00'
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: tod
|
||||
name: Morning
|
||||
after: '06:00'
|
||||
before: '09:00'
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: tod
|
||||
name: Night
|
||||
after: '00:00'
|
||||
before: '04:00'
|
||||
@@ -0,0 +1,5 @@
|
||||
platform: tod
|
||||
name: Too Late to Mow
|
||||
after: sunset
|
||||
after_offset: "-01:30"
|
||||
before: sunset
|
||||
@@ -0,0 +1,5 @@
|
||||
# platform: workday
|
||||
# name: Weekday
|
||||
# country: US
|
||||
# workdays: [mon, tue, wed, thu, fri]
|
||||
# excludes: [sat, sun]
|
||||
@@ -0,0 +1,12 @@
|
||||
# platform: workday
|
||||
# name: Work Day Tomorrow
|
||||
# country: US
|
||||
# workdays: [mon, tue, wed, thu, fri]
|
||||
# excludes: [sat, sun, holiday]
|
||||
# days_offset: 1
|
||||
# remove_holidays:
|
||||
# # - "Martin Luther King Jr. Day"
|
||||
# - "Washington's Birthday"
|
||||
# - "Juneteenth"
|
||||
# - "Columbus Day"
|
||||
# - "Veterans Day"
|
||||
@@ -0,0 +1,11 @@
|
||||
# platform: workday
|
||||
# name: Work Day
|
||||
# country: US
|
||||
# workdays: [mon, tue, wed, thu, fri]
|
||||
# excludes: [sat, sun, holiday]
|
||||
# remove_holidays:
|
||||
# # - "Martin Luther King Jr. Day"
|
||||
# - "Washington's Birthday"
|
||||
# - "Juneteenth"
|
||||
# - "Columbus Day"
|
||||
# - "Veterans Day"
|
||||
@@ -0,0 +1,112 @@
|
||||
camera:
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam01
|
||||
name: Camera01
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam02
|
||||
name: Camera02
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam03
|
||||
name: Camera03
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam04
|
||||
name: Camera04
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam05
|
||||
name: Camera05
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam06
|
||||
name: Camera06
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam07
|
||||
name: Camera07
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam08
|
||||
name: Camera08
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam09
|
||||
name: Camera09
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/WyzeCube
|
||||
name: WyzeCube
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Upstairs?/video.mjpg
|
||||
name: Upstairs
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/@Upstairs?/video.mjpg
|
||||
name: CycleUpstairs
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Downstairs?/video.mjpg
|
||||
name: Downstairs
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/@Downstairs?/video.mjpg
|
||||
name: CycleDownstairs
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/All?/video.mjpg
|
||||
name: AllCameras
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/@All?/video.mjpg
|
||||
name: CycleAllCameras
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
@@ -0,0 +1,106 @@
|
||||
#binary_sensor: !include_dir_list ../cameras
|
||||
|
||||
camera:
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam01
|
||||
name: Camera01
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam02
|
||||
name: Camera02
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam03
|
||||
name: Camera03
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam04
|
||||
name: Camera04
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam05
|
||||
name: Camera05
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam06
|
||||
name: Camera06
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam07
|
||||
name: Camera07
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam08
|
||||
name: Camera08
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam09
|
||||
name: Camera09
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam10
|
||||
name: Camera10
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam11
|
||||
name: Camera11
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/Cam12
|
||||
name: Camera12
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/All?/video.mjpg
|
||||
name: AllCameras
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
mjpeg_url: http://192.168.1.7:81/mjpg/@All?/video.mjpg
|
||||
name: CycleAllCameras
|
||||
username: !secret bi_username
|
||||
password: !secret bi_password
|
||||
authentication: basic
|
||||
|
||||
- platform: mjpeg
|
||||
name: Octoprint
|
||||
still_image_url: http://192.168.1.99/webcam/?action=snapshot
|
||||
mjpeg_url: http://192.168.1.99/webcam/?action=stream
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
camera:
|
||||
- platform: local_file
|
||||
name: Cam01 Person
|
||||
file_path: /config/snapshots/cam01_person/cam01_person_latest.jpg
|
||||
|
||||
- platform: local_file
|
||||
name: Cam02 Person
|
||||
file_path: /config/snapshots/cam02_person/cam02_person_latest.jpg
|
||||
|
||||
- platform: local_file
|
||||
name: Cam03 Person
|
||||
file_path: /config/snapshots/cam03_person/cam03_person_latest.jpg
|
||||
|
||||
- platform: local_file
|
||||
name: Cam04 Person
|
||||
file_path: /config/snapshots/cam04_person/cam04_person_latest.jpg
|
||||
|
||||
- platform: local_file
|
||||
name: Cam04 Vehicle
|
||||
file_path: /config/snapshots/cam04_vehicle/cam04_vehicle_latest.jpg
|
||||
|
||||
- platform: local_file
|
||||
name: Cam05 Person
|
||||
file_path: /config/snapshots/cam05_person/cam05_person_latest.jpg
|
||||
|
||||
- platform: local_file
|
||||
name: Cam06 Person
|
||||
file_path: /config/snapshots/cam06_person/cam06_person_latest.jpg
|
||||
|
||||
- platform: local_file
|
||||
name: Cam07 Person
|
||||
file_path: /config/snapshots/cam07_person/cam07_person_latest.jpg
|
||||
|
||||
- platform: local_file
|
||||
name: Cam08 Person
|
||||
file_path: /config/snapshots/cam08_person/cam08_person_latest.jpg
|
||||
|
||||
- platform: local_file
|
||||
name: Cam09 Person
|
||||
file_path: /config/snapshots/cam09_person/cam09_person_latest.jpg
|
||||
|
||||
- platform: local_file
|
||||
name: WyzeCube Person
|
||||
file_path: /config/snapshots/wyzecube_person/wyzecube_person_latest.jpg
|
||||
|
||||
#- platform: generic
|
||||
# name: Cam01 Snapshot
|
||||
# still_image_url: >-
|
||||
# http://192.168.1.32:81/image/Cam01?q=50&user=deepstack&pw=deepstack
|
||||
|
||||
#- platform: generic
|
||||
# name: Cam02 Snapshot
|
||||
# still_image_url: >-
|
||||
# http://192.168.1.32:81/image/Cam02?q=50&user=deepstack&pw=deepstack
|
||||
|
||||
#- platform: generic
|
||||
# name: Cam03 Snapshot
|
||||
# still_image_url: >-
|
||||
# http://192.168.1.32:81/image/Cam03?q=50&user=deepstack&pw=deepstack
|
||||
|
||||
#- platform: generic
|
||||
# name: Cam04 Snapshot
|
||||
# still_image_url: >-
|
||||
# http://192.168.1.32:81/image/Cam04?q=50&user=deepstack&pw=deepstack
|
||||
|
||||
#- platform: generic
|
||||
# name: Cam05 Snapshot
|
||||
# still_image_url: >-
|
||||
# http://192.168.1.32:81/image/Cam05?q=50&user=deepstack&pw=deepstack
|
||||
|
||||
#- platform: generic
|
||||
# name: Cam06 Snapshot
|
||||
# still_image_url: >-
|
||||
# http://192.168.1.32:81/image/Cam06?q=50&user=deepstack&pw=deepstack
|
||||
|
||||
#- platform: generic
|
||||
# name: Cam07 Snapshot
|
||||
# still_image_url: >-
|
||||
# http://192.168.1.32:81/image/Cam07?q=50&user=deepstack&pw=deepstack
|
||||
|
||||
#- platform: generic
|
||||
# name: nursery_camera Snapshot
|
||||
# still_image_url: >-
|
||||
# http://192.168.1.32:81/image/nursery_camera?q=50&user=deepstack&pw=deepstack
|
||||
|
||||
#- platform: generic
|
||||
# name: CamCar Snapshot
|
||||
# still_image_url: >-
|
||||
# http://192.168.1.32:81/image/Cam04?q=50&user=deepstack&pw=deepstack
|
||||
@@ -0,0 +1,4 @@
|
||||
platform: mjpeg
|
||||
name: Octoprint
|
||||
still_image_url: http://192.168.1.14/webcam/?action=snapshot
|
||||
mjpeg_url: http://192.168.1.14/webcam/?action=stream
|
||||
@@ -0,0 +1,19 @@
|
||||
platform: template
|
||||
covers:
|
||||
garage_door:
|
||||
unique_id: templatecover.garage_door
|
||||
friendly_name: "Garage Door"
|
||||
device_class: garage
|
||||
value_template: "{{is_state('binary_sensor.garage_door','on')}}"
|
||||
open_cover:
|
||||
service: switch.turn_on
|
||||
data:
|
||||
entity_id: switch.shelly_garage_door
|
||||
close_cover:
|
||||
service: switch.turn_on
|
||||
data:
|
||||
entity_id: switch.shelly_garage_door
|
||||
stop_cover:
|
||||
service: switch.turn_on
|
||||
data:
|
||||
entity_id: switch.shelly_garage_door
|
||||
@@ -0,0 +1 @@
|
||||
#platform: bluetooth_tracker
|
||||
@@ -0,0 +1 @@
|
||||
#platform: bluetooth_le_tracker
|
||||
@@ -0,0 +1,23 @@
|
||||
platform: template
|
||||
fans:
|
||||
utility_room_vent:
|
||||
unique_id: template_fan.utility_room_vent
|
||||
friendly_name: "Utility Room Vent"
|
||||
value_template: "{{ states('switch.utility_room_vent_switch') }}"
|
||||
turn_on:
|
||||
service: switch.turn_on
|
||||
entity_id: switch.utility_room_vent_switch
|
||||
turn_off:
|
||||
service: switch.turn_off
|
||||
entity_id: switch.utility_room_vent_switch
|
||||
|
||||
bathroom_vent:
|
||||
unique_id: templatefan.bathroom_vent
|
||||
friendly_name: "Bathroom Vent"
|
||||
value_template: "{{ states('switch.bathroom_vent_switch') }}"
|
||||
turn_on:
|
||||
service: switch.turn_on
|
||||
entity_id: switch.bathroom_vent_switch
|
||||
turn_off:
|
||||
service: switch.turn_off
|
||||
entity_id: switch.bathroom_vent_switch
|
||||
@@ -0,0 +1,61 @@
|
||||
# Input booleans
|
||||
|
||||
Component: [input boolean](https://home-assistant.io/components/input_boolean/)
|
||||
|
||||
Some of these are used to enable and disable automations, some are used to track whether something is in a particular state (and then trigger automations).
|
||||
|
||||
## Adults
|
||||
|
||||
A simple toggle for when the adults are away, since we'll want different things to happen then.
|
||||
|
||||
## Alarm
|
||||
|
||||
Now I'm using the manual alarm control panel, I don't need this any more.
|
||||
|
||||
## All
|
||||
|
||||
A simple toggle for when we're all away. This is mostly for things like lighting control, for now. It will be replaced by `input_boolean.home_occupied`
|
||||
|
||||
## Bedtime
|
||||
|
||||
If it's bedtime then it's time to turn off lights. If it's no longer bedtime, and it's still dark, it's time to turn some on.
|
||||
|
||||
## Guest mode
|
||||
|
||||
When we've got guests around certain behaviours need to be different, this is a manual toggle to control that.
|
||||
|
||||
## Holiday mode
|
||||
|
||||
If we're all away then some automations we'll simply not want running (and others that we wouldn't want running when we're home we would). This is to control those.
|
||||
|
||||
## Lighting
|
||||
|
||||
Just in case we ever want to disable the lighting automations, this will control that.
|
||||
|
||||
## Rooms
|
||||
|
||||
* There's a toggle to indicate that the living room lights were turned on automatically
|
||||
* Each room has one to indicate whether it's occupied
|
||||
|
||||
## Notifications
|
||||
|
||||
To track whether it's a work/school/whatever day for people and nag them about key things.
|
||||
|
||||
Also controls whether to notify about the train status.
|
||||
|
||||
## People
|
||||
|
||||
Various people related booleans
|
||||
|
||||
### Awake
|
||||
|
||||
These are the indicators of whether people are (probably) asleep or awake, or in bed. These feed in to various automations.
|
||||
|
||||
### Home
|
||||
|
||||
Simple binary home/away indicators for people, plus one for the house as a whole.
|
||||
|
||||
### Travelling
|
||||
|
||||
These are used to indicate whether people are on an extended trip. These feed in to the Holiday mode, and will eventually feed in to things like chosing which notifiers get used, and other things.
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Alarm mode
|
||||
icon: mdi:shield-home
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Allow Announcements
|
||||
icon: mdi:bullhorn
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Allow Fan
|
||||
icon: mdi:fan
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Announce Bedtime
|
||||
icon: mdi:bullhorn
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Adult(s) Asleep
|
||||
icon: mdi:bed
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Bedtime for Adults
|
||||
icon: mdi:bed
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Enable Brightness Automations
|
||||
icon: mdi:brightness-auto
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Car home
|
||||
icon: mdi:car
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Cleaning House
|
||||
icon: mdi:spray-bottle
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Cycle Cam14
|
||||
icon: mdi:cctv
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Debug Recordings
|
||||
icon: mdi:camera-metering-center
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Debug Snapshots
|
||||
icon: mdi:camera-metering-center
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Doorbell
|
||||
icon: mdi:doorbell
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Show Ground Level Sensors
|
||||
icon: mdi:alpha-g-circle
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Guest mode
|
||||
icon: mdi:account-multiple-plus
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Home occupied
|
||||
icon: mdi:home-variant-outline
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Incoming Mail
|
||||
icon: mdi:mailbox
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Indoor Camera Lock
|
||||
icon: mdi:lock
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Indoor Recordings
|
||||
icon: mdi:camera-metering-center
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Indoor Snapshots
|
||||
icon: mdi:camera-metering-center
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Kids Asleep
|
||||
icon: mdi:bunk-bed
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Bedtime for Kids
|
||||
icon: mdi:bunk-bed
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Enable Lighting Automations
|
||||
icon: mdi:light-switch
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Lights Off Manually
|
||||
icon: mdi:light-switch-off
|
||||
@@ -0,0 +1,3 @@
|
||||
name: Loop LivingColors
|
||||
initial: off
|
||||
icon: mdi:spotlight
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Bridget More
|
||||
icon: mdi:alpha-b-circle
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Clint More
|
||||
icon: mdi:alpha-c-circle
|
||||
@@ -0,0 +1,2 @@
|
||||
name: More
|
||||
icon: mdi:laptop
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Ebin More
|
||||
icon: mdi:alpha-e-circle-outline
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Emmett More
|
||||
icon: mdi:alpha-e-circle
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Front Room Roku Keyboard
|
||||
icon: mdi:keyboard
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Great Room Roku Keyboard
|
||||
icon: mdi:keyboard
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Inside Cameras
|
||||
icon: mdi:home-circle
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Kids Bedtime More
|
||||
icon: mdi:bunk-bed
|
||||
@@ -0,0 +1,2 @@
|
||||
name: Kristy More
|
||||
icon: mdi:alpha-k-circle-outline
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user