mirror of
https://github.com/CeeWeasel/fresh-home.git
synced 2026-08-10 11:00:14 -04:00
Compare commits
14 Commits
78cd67a560
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 9d501134c8 | |||
| 30bbe781ef | |||
| 70989327d5 | |||
| bf67d595ef | |||
| 7de01f94c1 | |||
| 6f4259d767 | |||
| 149fac6ec0 | |||
| a272421a33 | |||
| 105fb7cf86 | |||
| 6003d60774 | |||
| 97a0e678c0 | |||
| 6550521520 | |||
| 578edbc7dc | |||
| a49d981ad4 |
@@ -15,11 +15,15 @@ watchman_report.txt
|
|||||||
.ha_run.lock
|
.ha_run.lock
|
||||||
backup_config.yaml
|
backup_config.yaml
|
||||||
|
|
||||||
|
.cache/
|
||||||
.storage/
|
.storage/
|
||||||
.cloud/
|
.cloud/
|
||||||
.automatic/
|
.automatic/
|
||||||
|
glances/
|
||||||
.tts.token*
|
.tts.token*
|
||||||
*.tts.token
|
*.tts.token
|
||||||
|
.secrets/
|
||||||
|
secrets/
|
||||||
customize.yaml
|
customize.yaml
|
||||||
image/
|
image/
|
||||||
open-zwave/
|
open-zwave/
|
||||||
@@ -43,6 +47,7 @@ rtl_433/
|
|||||||
tts/
|
tts/
|
||||||
/lovelace/private
|
/lovelace/private
|
||||||
model_cache/
|
model_cache/
|
||||||
|
www/mail_and_packages/*
|
||||||
|
|
||||||
secrets.yaml
|
secrets.yaml
|
||||||
google_calendars.yaml
|
google_calendars.yaml
|
||||||
@@ -62,6 +67,7 @@ rtl_433.conf
|
|||||||
*.conf.template*
|
*.conf.template*
|
||||||
go2rtc-1.0.0
|
go2rtc-1.0.0
|
||||||
go2rtc.yaml
|
go2rtc.yaml
|
||||||
|
mqtt_dump.txt
|
||||||
|
|
||||||
nest.conf
|
nest.conf
|
||||||
harmony_harmony_hub.conf
|
harmony_harmony_hub.conf
|
||||||
|
|||||||
@@ -47,17 +47,17 @@ This is how to actuall do it!
|
|||||||
```yaml
|
```yaml
|
||||||
- platform: template
|
- platform: template
|
||||||
value_template: >
|
value_template: >
|
||||||
{{ is_state('binary_sensor.girls_room_multisensor_home_security_motion_detection','off') and states('sensor.girls_room_last_motion') | int <= 300 and states('sensor.system_uptime') | int >= 5 }}
|
{{ is_state('binary_sensor.girls_room_multisensor_motion_detection','off') and states('sensor.girls_room_last_motion') | int <= 300 and states('sensor.system_uptime') | int >= 5 }}
|
||||||
prob_given_true: 0.8
|
prob_given_true: 0.8
|
||||||
|
|
||||||
- platform: template
|
- platform: template
|
||||||
value_template: >
|
value_template: >
|
||||||
{{ is_state('binary_sensor.girls_room_multisensor_home_security_motion_detection','off') and states('sensor.girls_room_last_motion') | int > 300 and states('sensor.girls_room_last_motion') | int <= 600 and states('sensor.system_uptime') | int >= 5 }}
|
{{ is_state('binary_sensor.girls_room_multisensor_motion_detection','off') and states('sensor.girls_room_last_motion') | int > 300 and states('sensor.girls_room_last_motion') | int <= 600 and states('sensor.system_uptime') | int >= 5 }}
|
||||||
prob_given_true: 0.6
|
prob_given_true: 0.6
|
||||||
|
|
||||||
- platform: template
|
- platform: template
|
||||||
value_template: >
|
value_template: >
|
||||||
{{ is_state('binary_sensor.girls_room_multisensor_home_security_motion_detection','off') and states('sensor.girls_room_last_motion') | int > 600 and states('sensor.girls_room_last_motion') | int <= 900 and states('sensor.system_uptime') | int >= 10 }}
|
{{ is_state('binary_sensor.girls_room_multisensor_motion_detection','off') and states('sensor.girls_room_last_motion') | int > 600 and states('sensor.girls_room_last_motion') | int <= 900 and states('sensor.system_uptime') | int >= 10 }}
|
||||||
prob_given_true: 0.4
|
prob_given_true: 0.4
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ triggers:
|
|||||||
to: "on"
|
to: "on"
|
||||||
|
|
||||||
action:
|
action:
|
||||||
- action: notify.mobile_app_pixel_7
|
- action: notify.mobile_app_pixel_10_pro
|
||||||
data:
|
data:
|
||||||
message: >-
|
message: >-
|
||||||
The following are open: "{{ dict((states|selectattr('entity_id', 'in', state_attr('group.my_hvac_affecting_openings', 'entity_id'))|list)|groupby('state'))['on']|map(attribute='name')|list|join(', ') }}"
|
The following are open: "{{ dict((states|selectattr('entity_id', 'in', state_attr('group.my_hvac_affecting_openings', 'entity_id'))|list)|groupby('state'))['on']|map(attribute='name')|list|join(', ') }}"
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
alias: Camera06 Preset
|
|
||||||
id: automation_camera06_preset
|
|
||||||
mode: restart
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
- platform: state
|
|
||||||
entity_id: input_select.camera_06
|
|
||||||
|
|
||||||
- platform: homeassistant
|
|
||||||
event: start
|
|
||||||
|
|
||||||
- platform: time_pattern
|
|
||||||
minutes: "/30"
|
|
||||||
|
|
||||||
action:
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.camera_06
|
|
||||||
state: "Static"
|
|
||||||
sequence:
|
|
||||||
- action: shell_command.master_bedroom_left_preset_1
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.camera_06
|
|
||||||
state: "Door"
|
|
||||||
sequence:
|
|
||||||
- action: shell_command.master_bedroom_left_preset_3
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.camera_06
|
|
||||||
state: "Bed"
|
|
||||||
sequence:
|
|
||||||
- action: shell_command.master_bedroom_left_preset_3
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.camera_06
|
|
||||||
state: "Window"
|
|
||||||
sequence:
|
|
||||||
- action: shell_command.master_bedroom_left_preset_2
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.camera_06
|
|
||||||
state: "Floor"
|
|
||||||
sequence:
|
|
||||||
- action: shell_command.master_bedroom_left_preset_4
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.camera_06
|
|
||||||
state: "Privacy"
|
|
||||||
sequence:
|
|
||||||
- action: shell_command.master_bedroom_left_preset_5
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
alias: Camera07 Preset
|
|
||||||
id: automation_camera07_preset
|
|
||||||
mode: restart
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
- platform: state
|
|
||||||
entity_id: input_select.camera_07
|
|
||||||
|
|
||||||
- platform: homeassistant
|
|
||||||
event: start
|
|
||||||
|
|
||||||
- platform: time_pattern
|
|
||||||
minutes: "/30"
|
|
||||||
|
|
||||||
action:
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.camera_07
|
|
||||||
state: "Static"
|
|
||||||
sequence:
|
|
||||||
- action: shell_command.master_bedroom_right_preset_2
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.camera_07
|
|
||||||
state: "Door"
|
|
||||||
sequence:
|
|
||||||
- action: shell_command.master_bedroom_right_preset_1
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.camera_07
|
|
||||||
state: "Bed"
|
|
||||||
sequence:
|
|
||||||
- action: shell_command.master_bedroom_right_preset_3
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.camera_07
|
|
||||||
state: "Window"
|
|
||||||
sequence:
|
|
||||||
- action: shell_command.master_bedroom_right_preset_2
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.camera_07
|
|
||||||
state: "Floor"
|
|
||||||
sequence:
|
|
||||||
- action: shell_command.master_bedroom_right_preset_4
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.camera_07
|
|
||||||
state: "Privacy"
|
|
||||||
sequence:
|
|
||||||
- action: shell_command.master_bedroom_right_preset_5
|
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
alias: Frigate Recordings
|
|
||||||
id: automation_frigate_recordings
|
|
||||||
mode: restart
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
- platform: homeassistant
|
|
||||||
event: start
|
|
||||||
|
|
||||||
- id: automatic
|
|
||||||
platform: time_pattern
|
|
||||||
minutes: "/10"
|
|
||||||
|
|
||||||
- id: boolean
|
|
||||||
platform: state
|
|
||||||
entity_id: input_boolean.debug_recordings
|
|
||||||
|
|
||||||
- id: indoors
|
|
||||||
platform: state
|
|
||||||
entity_id: input_boolean.indoor_recordings
|
|
||||||
|
|
||||||
- id: outdoors
|
|
||||||
platform: state
|
|
||||||
entity_id: input_boolean.outdoor_recordings
|
|
||||||
|
|
||||||
action:
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.debug_recordings
|
|
||||||
state: "on"
|
|
||||||
sequence:
|
|
||||||
- action: switch.turn_on
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- switch.frigate_cam01_recordings
|
|
||||||
- switch.frigate_cam03_recordings
|
|
||||||
- switch.frigate_cam04_recordings
|
|
||||||
- switch.frigate_cam06_recordings
|
|
||||||
- switch.frigate_cam07_recordings
|
|
||||||
- switch.frigate_cam08_recordings
|
|
||||||
- switch.frigate_cam12_recordings
|
|
||||||
- switch.frigate_cam13_recordings
|
|
||||||
- switch.frigate_cam14_recordings
|
|
||||||
- switch.frigate_cam18_recordings
|
|
||||||
- switch.frigate_cam19_recordings
|
|
||||||
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.indoor_recordings
|
|
||||||
state: "on"
|
|
||||||
sequence:
|
|
||||||
- action: switch.turn_on
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- switch.frigate_cam01_recordings
|
|
||||||
- switch.frigate_cam03_recordings
|
|
||||||
- switch.frigate_cam06_recordings
|
|
||||||
- switch.frigate_cam07_recordings
|
|
||||||
- switch.frigate_cam08_recordings
|
|
||||||
- switch.frigate_cam12_recordings
|
|
||||||
- switch.frigate_cam13_recordings
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.indoor_recordings
|
|
||||||
state: "off"
|
|
||||||
sequence:
|
|
||||||
- action: switch.turn_off
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- switch.frigate_cam01_recordings
|
|
||||||
- switch.frigate_cam03_recordings
|
|
||||||
- switch.frigate_cam06_recordings
|
|
||||||
- switch.frigate_cam07_recordings
|
|
||||||
- switch.frigate_cam08_recordings
|
|
||||||
- switch.frigate_cam12_recordings
|
|
||||||
- switch.frigate_cam13_recordings
|
|
||||||
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.outdoor_recordings
|
|
||||||
state: "on"
|
|
||||||
sequence:
|
|
||||||
- action: switch.turn_on
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- switch.frigate_cam04_recordings
|
|
||||||
- switch.frigate_cam14_recordings
|
|
||||||
- switch.frigate_cam18_recordings
|
|
||||||
- switch.frigate_cam19_recordings
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.outdoor_recordings
|
|
||||||
state: "off"
|
|
||||||
sequence:
|
|
||||||
- action: switch.turn_off
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- switch.frigate_cam04_recordings
|
|
||||||
- switch.frigate_cam14_recordings
|
|
||||||
- switch.frigate_cam18_recordings
|
|
||||||
- switch.frigate_cam19_recordings
|
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
alias: Frigate Snapshots
|
|
||||||
id: automation_frigate_snapshots
|
|
||||||
mode: restart
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
- platform: homeassistant
|
|
||||||
event: start
|
|
||||||
|
|
||||||
- id: automatic
|
|
||||||
platform: time_pattern
|
|
||||||
minutes: "/10"
|
|
||||||
|
|
||||||
- id: boolean
|
|
||||||
platform: state
|
|
||||||
entity_id: input_boolean.debug_snapshots
|
|
||||||
|
|
||||||
- id: indoors
|
|
||||||
platform: state
|
|
||||||
entity_id: input_boolean.indoor_snapshots
|
|
||||||
|
|
||||||
- id: outdoors
|
|
||||||
platform: state
|
|
||||||
entity_id: input_boolean.outdoor_snapshots
|
|
||||||
|
|
||||||
action:
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.debug_snapshots
|
|
||||||
state: "on"
|
|
||||||
sequence:
|
|
||||||
- action: switch.turn_on
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- switch.frigate_cam01_snapshots
|
|
||||||
- switch.frigate_cam03_snapshots
|
|
||||||
- switch.frigate_cam04_snapshots
|
|
||||||
- switch.frigate_cam06_snapshots
|
|
||||||
- switch.frigate_cam07_snapshots
|
|
||||||
- switch.frigate_cam08_snapshots
|
|
||||||
- switch.frigate_cam12_snapshots
|
|
||||||
- switch.frigate_cam13_snapshots
|
|
||||||
- switch.frigate_cam14_snapshots
|
|
||||||
- switch.frigate_cam18_snapshots
|
|
||||||
- switch.frigate_cam19_snapshots
|
|
||||||
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.indoor_snapshots
|
|
||||||
state: "on"
|
|
||||||
sequence:
|
|
||||||
- action: switch.turn_on
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- switch.frigate_cam01_snapshots
|
|
||||||
- switch.frigate_cam03_snapshots
|
|
||||||
- switch.frigate_cam06_snapshots
|
|
||||||
- switch.frigate_cam07_snapshots
|
|
||||||
- switch.frigate_cam08_snapshots
|
|
||||||
- switch.frigate_cam12_snapshots
|
|
||||||
- switch.frigate_cam13_snapshots
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.indoor_snapshots
|
|
||||||
state: "off"
|
|
||||||
sequence:
|
|
||||||
- action: switch.turn_off
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- switch.frigate_cam01_snapshots
|
|
||||||
- switch.frigate_cam03_snapshots
|
|
||||||
- switch.frigate_cam06_snapshots
|
|
||||||
- switch.frigate_cam07_snapshots
|
|
||||||
- switch.frigate_cam08_snapshots
|
|
||||||
- switch.frigate_cam12_snapshots
|
|
||||||
- switch.frigate_cam13_snapshots
|
|
||||||
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.outdoor_snapshots
|
|
||||||
state: "on"
|
|
||||||
sequence:
|
|
||||||
- action: switch.turn_on
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- switch.frigate_cam04_snapshots
|
|
||||||
- switch.frigate_cam14_snapshots
|
|
||||||
- switch.frigate_cam18_snapshots
|
|
||||||
- switch.frigate_cam19_snapshots
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.outdoor_snapshots
|
|
||||||
state: "off"
|
|
||||||
sequence:
|
|
||||||
- action: switch.turn_off
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- switch.frigate_cam04_snapshots
|
|
||||||
- switch.frigate_cam14_snapshots
|
|
||||||
- switch.frigate_cam18_snapshots
|
|
||||||
- switch.frigate_cam19_snapshots
|
|
||||||
@@ -1,149 +0,0 @@
|
|||||||
id: automation_frigate_person_back_yard
|
|
||||||
alias: Frigate Person Back Yard
|
|
||||||
description: "Fire a notification if a person is detected by Frigate in the back yard"
|
|
||||||
mode: single
|
|
||||||
max_exceeded: silent
|
|
||||||
trigger:
|
|
||||||
platform: mqtt
|
|
||||||
topic: frigate/events
|
|
||||||
payload: frigate_cam14
|
|
||||||
value_template: "{{ value_json['after']['camera'] }}"
|
|
||||||
variables:
|
|
||||||
id: "{{ trigger.payload_json['after']['id'] }}"
|
|
||||||
camera: "{{ trigger.payload_json['after']['camera'] }}"
|
|
||||||
camera_name: "{{ camera | replace('_', ' ') | title }}"
|
|
||||||
object: "{{ trigger.payload_json['after']['label'] }}"
|
|
||||||
label: "{{ object | title }}"
|
|
||||||
entered_zones: "{{ trigger.payload_json['after']['entered_zones'] }}"
|
|
||||||
type: "{{ trigger.payload_json['type'] }}"
|
|
||||||
base_url: https://automation.clintweaver.com
|
|
||||||
group_target: ""
|
|
||||||
zone_only: false
|
|
||||||
input_zones:
|
|
||||||
- front_porch
|
|
||||||
- driveway
|
|
||||||
zones: "{{ input_zones | list }}"
|
|
||||||
input_labels:
|
|
||||||
- person
|
|
||||||
labels: "{{ input_labels | list }}"
|
|
||||||
presence_entity: person.clint
|
|
||||||
condition:
|
|
||||||
- "{{ type != 'end' }}"
|
|
||||||
- "{{ not zone_only or entered_zones|length > 0 }}"
|
|
||||||
- "{{ not zones|length or zones|select('in', entered_zones)|list|length > 0 }}"
|
|
||||||
- "{{ not labels|length or object in labels }}"
|
|
||||||
#- "{{ not presence_entity or not is_state(presence_entity, 'home') }}"
|
|
||||||
- '{{ is_state("binary_sensor.patio_door_contact","off") }}'
|
|
||||||
- "{{ is_state('input_boolean.outdoor_snapshots','on') }}"
|
|
||||||
action:
|
|
||||||
- choose:
|
|
||||||
- conditions: "{{ not group_target }}"
|
|
||||||
sequence:
|
|
||||||
- device_id: 70c62eb366d6ed914b0ccc6bf41c32fd
|
|
||||||
domain: mobile_app
|
|
||||||
type: notify
|
|
||||||
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
|
||||||
data:
|
|
||||||
tag: "{{ id }}"
|
|
||||||
group: frigate-notification-{{ camera }}
|
|
||||||
image: /api/frigate/notifications/{{id}}/thumbnail.jpg?format=android
|
|
||||||
attachment:
|
|
||||||
url: /api/frigate/notifications/{{id}}/thumbnail.jpg
|
|
||||||
|
|
||||||
- action: persistent_notification.create
|
|
||||||
data:
|
|
||||||
title: A {{ label }} was detected on the {{ camera_name }} camera.
|
|
||||||
message: 'A {{ label }} was detected on the {{ camera_name }} camera. '
|
|
||||||
notification_id: "{{ id }}"
|
|
||||||
default:
|
|
||||||
- action: notify.{{ group_target }}
|
|
||||||
data:
|
|
||||||
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
|
||||||
data:
|
|
||||||
tag: "{{ id }}"
|
|
||||||
group: frigate-notification-{{ camera }}
|
|
||||||
image: /api/frigate/notifications/{{id}}/thumbnail.jpg?format=android
|
|
||||||
attachment:
|
|
||||||
url: /api/frigate/notifications/{{id}}/thumbnail.jpg
|
|
||||||
- repeat:
|
|
||||||
sequence:
|
|
||||||
- wait_for_trigger:
|
|
||||||
- platform: mqtt
|
|
||||||
topic: frigate/events
|
|
||||||
payload: "{{ id }}"
|
|
||||||
value_template: "{{ value_json['after']['id'] }}"
|
|
||||||
timeout:
|
|
||||||
minutes: 2
|
|
||||||
continue_on_timeout: false
|
|
||||||
- condition: template
|
|
||||||
value_template: "{{ wait.trigger.payload_json['type'] == 'end' }}"
|
|
||||||
- choose:
|
|
||||||
- conditions: "{{ not group_target }}"
|
|
||||||
sequence:
|
|
||||||
- device_id: 70c62eb366d6ed914b0ccc6bf41c32fd
|
|
||||||
domain: mobile_app
|
|
||||||
type: notify
|
|
||||||
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
|
||||||
data:
|
|
||||||
tag: "{{ id }}"
|
|
||||||
group: frigate-notification-{{ camera }}
|
|
||||||
url: >-
|
|
||||||
{{base_url}}/api/frigate/notifications/{{id}}/{{camera}}/clip.mp4
|
|
||||||
clickAction: >-
|
|
||||||
{{base_url}}/api/frigate/notifications/{{id}}/{{camera}}/clip.mp4
|
|
||||||
image: >-
|
|
||||||
/api/frigate/notifications/{{id}}/thumbnail.jpg?format=android
|
|
||||||
sound: none
|
|
||||||
attachment:
|
|
||||||
url: /api/frigate/notifications/{{id}}/thumbnail.jpg
|
|
||||||
actions:
|
|
||||||
- action: URI
|
|
||||||
title: View Clip
|
|
||||||
uri: >-
|
|
||||||
{{base_url}}/api/frigate/notifications/{{id}}/{{camera}}/clip.mp4
|
|
||||||
- action: URI
|
|
||||||
title: View Snapshot
|
|
||||||
uri: >-
|
|
||||||
{{base_url}}/api/frigate/notifications/{{id}}/snapshot.jpg
|
|
||||||
- action: silence-{{ camera }}
|
|
||||||
title: Silence Notifications
|
|
||||||
destructive: true
|
|
||||||
default:
|
|
||||||
- action: notify.{{ group_target }}
|
|
||||||
data:
|
|
||||||
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
|
||||||
data:
|
|
||||||
tag: "{{ id }}"
|
|
||||||
group: frigate-notification-{{ camera }}
|
|
||||||
url: >-
|
|
||||||
{{base_url}}/api/frigate/notifications/{{id}}/{{camera}}/clip.mp4
|
|
||||||
clickAction: >-
|
|
||||||
{{base_url}}/api/frigate/notifications/{{id}}/{{camera}}/clip.mp4
|
|
||||||
image: >-
|
|
||||||
/api/frigate/notifications/{{id}}/thumbnail.jpg?format=android
|
|
||||||
sound: none
|
|
||||||
attachment:
|
|
||||||
url: /api/frigate/notifications/{{id}}/thumbnail.jpg
|
|
||||||
actions:
|
|
||||||
- action: URI
|
|
||||||
title: View Clip
|
|
||||||
uri: >-
|
|
||||||
{{base_url}}/api/frigate/notifications/{{id}}/{{camera}}/clip.mp4
|
|
||||||
- action: URI
|
|
||||||
title: View Snapshot
|
|
||||||
uri: >-
|
|
||||||
{{base_url}}/api/frigate/notifications/{{id}}/snapshot.jpg
|
|
||||||
- action: silence-{{ camera }}
|
|
||||||
title: Silence Notifications
|
|
||||||
destructive: true
|
|
||||||
until: "{{ wait.trigger.payload_json['type'] == 'end' }}"
|
|
||||||
- wait_for_trigger:
|
|
||||||
- platform: event
|
|
||||||
event_type: mobile_app_notification_action
|
|
||||||
event_data:
|
|
||||||
action: silence-{{ camera }}
|
|
||||||
timeout:
|
|
||||||
seconds: 30
|
|
||||||
continue_on_timeout: false
|
|
||||||
- delay:
|
|
||||||
minutes: 30
|
|
||||||
@@ -48,7 +48,7 @@ action:
|
|||||||
- choose:
|
- choose:
|
||||||
- conditions: "{{ not group_target }}"
|
- conditions: "{{ not group_target }}"
|
||||||
sequence:
|
sequence:
|
||||||
- device_id: 70c62eb366d6ed914b0ccc6bf41c32fd
|
- device_id: 99193a9cdfd7a8cb893c54665d710e7d
|
||||||
domain: mobile_app
|
domain: mobile_app
|
||||||
type: notify
|
type: notify
|
||||||
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
||||||
@@ -89,7 +89,7 @@ action:
|
|||||||
- choose:
|
- choose:
|
||||||
- conditions: "{{ not group_target }}"
|
- conditions: "{{ not group_target }}"
|
||||||
sequence:
|
sequence:
|
||||||
- device_id: 70c62eb366d6ed914b0ccc6bf41c32fd
|
- device_id: 99193a9cdfd7a8cb893c54665d710e7d
|
||||||
domain: mobile_app
|
domain: mobile_app
|
||||||
type: notify
|
type: notify
|
||||||
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ max_exceeded: silent
|
|||||||
trigger:
|
trigger:
|
||||||
platform: mqtt
|
platform: mqtt
|
||||||
topic: frigate/events
|
topic: frigate/events
|
||||||
payload: frigate_cam19
|
payload: doorbell_cam
|
||||||
value_template: "{{ value_json['after']['camera'] }}"
|
value_template: "{{ value_json['after']['camera'] }}"
|
||||||
variables:
|
variables:
|
||||||
id: "{{ trigger.payload_json['after']['id'] }}"
|
id: "{{ trigger.payload_json['after']['id'] }}"
|
||||||
@@ -39,13 +39,13 @@ condition:
|
|||||||
- '{{ is_state("binary_sensor.front_door_contact","off") }}'
|
- '{{ is_state("binary_sensor.front_door_contact","off") }}'
|
||||||
- '{{ is_state("binary_sensor.patio_door_contact","off") }}'
|
- '{{ is_state("binary_sensor.patio_door_contact","off") }}'
|
||||||
- '{{ is_state("binary_sensor.front_porch_motion","off") }}'
|
- '{{ is_state("binary_sensor.front_porch_motion","off") }}'
|
||||||
- '{{ is_state("binary_sensor.garage_motion_switch_home_security_motion_detection","off") }}'
|
- '{{ is_state("binary_sensor.garage_motion_switch_motion_detection","off") }}'
|
||||||
- "{{ is_state('input_boolean.outdoor_snapshots','on') }}"
|
- "{{ is_state('input_boolean.outdoor_snapshots','on') }}"
|
||||||
action:
|
action:
|
||||||
- choose:
|
- choose:
|
||||||
- conditions: "{{ not group_target }}"
|
- conditions: "{{ not group_target }}"
|
||||||
sequence:
|
sequence:
|
||||||
- device_id: 70c62eb366d6ed914b0ccc6bf41c32fd
|
- device_id: 99193a9cdfd7a8cb893c54665d710e7d
|
||||||
domain: mobile_app
|
domain: mobile_app
|
||||||
type: notify
|
type: notify
|
||||||
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
||||||
@@ -86,7 +86,7 @@ action:
|
|||||||
- choose:
|
- choose:
|
||||||
- conditions: "{{ not group_target }}"
|
- conditions: "{{ not group_target }}"
|
||||||
sequence:
|
sequence:
|
||||||
- device_id: 70c62eb366d6ed914b0ccc6bf41c32fd
|
- device_id: 99193a9cdfd7a8cb893c54665d710e7d
|
||||||
domain: mobile_app
|
domain: mobile_app
|
||||||
type: notify
|
type: notify
|
||||||
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ variables:
|
|||||||
type: "{{ trigger.payload_json['type'] }}"
|
type: "{{ trigger.payload_json['type'] }}"
|
||||||
stationary: "{{ trigger.payload_json['after']['stationary'] }}"
|
stationary: "{{ trigger.payload_json['after']['stationary'] }}"
|
||||||
base_url: https://automation.clintweaver.com
|
base_url: https://automation.clintweaver.com
|
||||||
group_target: "mobile_app_pixel_7"
|
group_target: "mobile_app_pixel_10_pro"
|
||||||
zone_only: true
|
zone_only: true
|
||||||
before_zones:
|
before_zones:
|
||||||
- from_street
|
- from_street
|
||||||
@@ -52,7 +52,7 @@ action:
|
|||||||
- choose:
|
- choose:
|
||||||
- conditions: "{{ not group_target }}"
|
- conditions: "{{ not group_target }}"
|
||||||
sequence:
|
sequence:
|
||||||
- device_id: 70c62eb366d6ed914b0ccc6bf41c32fd
|
- device_id: 99193a9cdfd7a8cb893c54665d710e7d
|
||||||
domain: mobile_app
|
domain: mobile_app
|
||||||
type: notify
|
type: notify
|
||||||
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
||||||
@@ -93,7 +93,7 @@ action:
|
|||||||
- choose:
|
- choose:
|
||||||
- conditions: "{{ not group_target }}"
|
- conditions: "{{ not group_target }}"
|
||||||
sequence:
|
sequence:
|
||||||
- device_id: 70c62eb366d6ed914b0ccc6bf41c32fd
|
- device_id: 99193a9cdfd7a8cb893c54665d710e7d
|
||||||
domain: mobile_app
|
domain: mobile_app
|
||||||
type: notify
|
type: notify
|
||||||
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
message: A {{ label }} was detected on the {{ camera_name }} camera.
|
||||||
|
|||||||
@@ -25,10 +25,10 @@ condition:
|
|||||||
entity_id: media_player.front_room_hub
|
entity_id: media_player.front_room_hub
|
||||||
state: "playing"
|
state: "playing"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: media_player.master_bedroom_clock
|
entity_id: media_player.girls_room_clock
|
||||||
state: "playing"
|
state: "playing"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: media_player.girls_room_hub
|
entity_id: media_player.bedroom_hub
|
||||||
state: "playing"
|
state: "playing"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: media_player.bathroom_mini
|
entity_id: media_player.bathroom_mini
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ action:
|
|||||||
sequence:
|
sequence:
|
||||||
- action: homeassistant.turn_on
|
- action: homeassistant.turn_on
|
||||||
entity_id: input_boolean.clint_work_from_home
|
entity_id: input_boolean.clint_work_from_home
|
||||||
|
- action: homeassistant.turn_off
|
||||||
|
entity_id: input_boolean.allow_announcements
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: binary_sensor.clint_work_from_home
|
entity_id: binary_sensor.clint_work_from_home
|
||||||
@@ -25,3 +27,5 @@ action:
|
|||||||
sequence:
|
sequence:
|
||||||
- action: homeassistant.turn_off
|
- action: homeassistant.turn_off
|
||||||
entity_id: input_boolean.clint_work_from_home
|
entity_id: input_boolean.clint_work_from_home
|
||||||
|
- action: homeassistant.turn_on
|
||||||
|
entity_id: input_boolean.allow_announcements
|
||||||
|
|||||||
@@ -3,10 +3,16 @@ id: automation_clint_at_work
|
|||||||
#description:
|
#description:
|
||||||
trigger:
|
trigger:
|
||||||
platform: state
|
platform: state
|
||||||
entity_id: device_tracker.pixel_7
|
entity_id: device_tracker.pixel_10_pro
|
||||||
to: "WMU"
|
to: "WMU"
|
||||||
action:
|
action:
|
||||||
- action: input_text.set_value
|
- action: input_text.set_value
|
||||||
data:
|
data:
|
||||||
entity_id: input_text.person_clint
|
entity_id: input_text.person_clint
|
||||||
value: at work
|
value: at work
|
||||||
|
# - action: notify.mobile_app_pixel_10_pro
|
||||||
|
# data:
|
||||||
|
# message: command_volume_level
|
||||||
|
# data:
|
||||||
|
# media_stream: notification_stream
|
||||||
|
# command: 1
|
||||||
|
|||||||
@@ -6,10 +6,12 @@ mode: restart
|
|||||||
trigger:
|
trigger:
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id:
|
entity_id:
|
||||||
- device_tracker.pixel_7
|
- device_tracker.pixel_10_pro
|
||||||
- person.clint
|
- person.clint
|
||||||
- group.person_clint
|
- group.person_clint
|
||||||
from: "home"
|
from: "home"
|
||||||
|
for:
|
||||||
|
seconds: 30
|
||||||
|
|
||||||
- platform: homeassistant
|
- platform: homeassistant
|
||||||
event: start
|
event: start
|
||||||
@@ -21,7 +23,7 @@ condition:
|
|||||||
entity_id: person.clint
|
entity_id: person.clint
|
||||||
state: "home"
|
state: "home"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: device_tracker.pixel_7
|
entity_id: device_tracker.pixel_10_pro
|
||||||
state: "home"
|
state: "home"
|
||||||
|
|
||||||
action:
|
action:
|
||||||
|
|||||||
@@ -1,56 +0,0 @@
|
|||||||
alias: Clint Home
|
|
||||||
id: automation_clint_home
|
|
||||||
mode: restart
|
|
||||||
#description:
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
- platform: state
|
|
||||||
entity_id:
|
|
||||||
- device_tracker.pixel_7
|
|
||||||
- person.clint
|
|
||||||
- group.person_clint
|
|
||||||
- device_tracker.pixel_7_wifi
|
|
||||||
to: "home"
|
|
||||||
|
|
||||||
- platform: state
|
|
||||||
id: car_home
|
|
||||||
entity_id:
|
|
||||||
- binary_sensor.gray_suv_east_side
|
|
||||||
- binary_sensor.gray_suv_west_side
|
|
||||||
- group.traverse
|
|
||||||
from: "off"
|
|
||||||
to: "on"
|
|
||||||
|
|
||||||
- platform: homeassistant
|
|
||||||
event: start
|
|
||||||
|
|
||||||
action:
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: or
|
|
||||||
conditions:
|
|
||||||
- condition: numeric_state
|
|
||||||
entity_id: group.person_clint
|
|
||||||
above: 0
|
|
||||||
value_template: "{{ dict((states|selectattr('entity_id', 'in', state_attr('group.person_clint', 'entity_id'))|list)|groupby('state'))['home']|count }}"
|
|
||||||
- condition: state
|
|
||||||
entity_id: sensor.pixel_7_wifi_connection
|
|
||||||
state: "DreamWeaver"
|
|
||||||
- condition: state
|
|
||||||
entity_id: sensor.pixel_7_wifi_connection
|
|
||||||
state: "DreamIoT-2G"
|
|
||||||
- condition: state
|
|
||||||
entity_id: sensor.pixel_7_wifi_connection
|
|
||||||
state: "pozfam"
|
|
||||||
- condition: state
|
|
||||||
entity_id: sensor.pixel_7_wifi_connection
|
|
||||||
state: "pozfam-2.4G"
|
|
||||||
- condition: trigger
|
|
||||||
id: "car_home"
|
|
||||||
sequence:
|
|
||||||
- action: input_boolean.turn_on
|
|
||||||
entity_id: input_boolean.clint_home
|
|
||||||
- action: automation.turn_on
|
|
||||||
entity_id: automation.clint_at_work
|
|
||||||
|
|
||||||
- delay: "00:00:30"
|
|
||||||
|
|||||||
@@ -7,12 +7,16 @@ trigger:
|
|||||||
- platform: state
|
- platform: state
|
||||||
entity_id: binary_sensor.bed_presence_c175a4_bed_occupied_either
|
entity_id: binary_sensor.bed_presence_c175a4_bed_occupied_either
|
||||||
to: "on"
|
to: "on"
|
||||||
|
# Bed in master bedroom is occupied
|
||||||
|
- platform: state
|
||||||
|
entity_id: input_boolean.master_bed_occupied
|
||||||
|
to: "on"
|
||||||
# Radio playing
|
# Radio playing
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: media_player.master_bedroom_clock
|
entity_id: media_player.bedroom_hub
|
||||||
to: "playing"
|
to: "playing"
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: media_player.master_bedroom_clock
|
entity_id: media_player.bedroom_hub
|
||||||
to: "idle"
|
to: "idle"
|
||||||
# Light on
|
# Light on
|
||||||
- platform: state
|
- platform: state
|
||||||
@@ -26,10 +30,10 @@ trigger:
|
|||||||
minutes: 5
|
minutes: 5
|
||||||
# Something gets plugged in
|
# Something gets plugged in
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: sensor.pixel_7_charger_type
|
entity_id: sensor.pixel_10_pro_charger_type
|
||||||
to: "Wireless"
|
to: "Wireless"
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: sensor.pixel_7_charger_type
|
entity_id: sensor.pixel_10_pro_charger_type
|
||||||
to: "wireless"
|
to: "wireless"
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: sensor.dreamsurface_dreamsurface_battery_powerline_status
|
entity_id: sensor.dreamsurface_dreamsurface_battery_powerline_status
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ trigger:
|
|||||||
entity_id:
|
entity_id:
|
||||||
- input_select.clint_status_dropdown
|
- input_select.clint_status_dropdown
|
||||||
- input_boolean.clint_home
|
- input_boolean.clint_home
|
||||||
- device_tracker.pixel_7
|
- device_tracker.pixel_10_pro
|
||||||
|
|
||||||
condition:
|
condition:
|
||||||
- condition: template
|
- condition: template
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ trigger:
|
|||||||
entity_id: binary_sensor.bed_presence_c175a4_bed_occupied_right
|
entity_id: binary_sensor.bed_presence_c175a4_bed_occupied_right
|
||||||
to: "off"
|
to: "off"
|
||||||
for: "00:05:00"
|
for: "00:05:00"
|
||||||
|
# Bed in master bedroom is occupied
|
||||||
|
- platform: state
|
||||||
|
entity_id: input_boolean.master_bed_occupied
|
||||||
|
to: "on"
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id:
|
entity_id:
|
||||||
- binary_sensor.master_bedroom_door_contact
|
- binary_sensor.master_bedroom_door_contact
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ trigger:
|
|||||||
- platform: state
|
- platform: state
|
||||||
entity_id: binary_sensor.bed_presence_c175a4_bed_occupied_right
|
entity_id: binary_sensor.bed_presence_c175a4_bed_occupied_right
|
||||||
to: "on"
|
to: "on"
|
||||||
|
# Bed in master bedroom is occupied
|
||||||
|
- platform: state
|
||||||
|
entity_id: input_boolean.master_bed_occupied
|
||||||
|
to: "on"
|
||||||
|
|
||||||
condition:
|
condition:
|
||||||
- condition: state
|
- condition: state
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ id: automation_clint_changing_zones
|
|||||||
trigger:
|
trigger:
|
||||||
# Been away for a few minutes
|
# Been away for a few minutes
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: device_tracker.pixel_7
|
entity_id: device_tracker.pixel_10_pro
|
||||||
to: "not_home"
|
to: "not_home"
|
||||||
for: "00:05:00"
|
for: "00:05:00"
|
||||||
# Arrived in a zone
|
# Arrived in a zone
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: device_tracker.pixel_7
|
entity_id: device_tracker.pixel_10_pro
|
||||||
from: "not_home"
|
from: "not_home"
|
||||||
condition:
|
condition:
|
||||||
# Been at least 5 minutes
|
# Been at least 5 minutes
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ condition:
|
|||||||
|
|
||||||
action:
|
action:
|
||||||
- action: input_boolean.turn_off
|
- action: input_boolean.turn_off
|
||||||
data:
|
target:
|
||||||
entity_id: input_boolean.master_bedroom_asleep
|
entity_id: input_boolean.master_bedroom_asleep
|
||||||
|
|
||||||
- delay:
|
- delay:
|
||||||
@@ -26,9 +26,10 @@ action:
|
|||||||
milliseconds: 0
|
milliseconds: 0
|
||||||
|
|
||||||
- action: media_player.volume_set
|
- action: media_player.volume_set
|
||||||
|
target:
|
||||||
|
#entity_id: media_player.home_assistant_voice_097b44_media_player
|
||||||
|
entity_id: media_player.ma_bedroom_hub
|
||||||
data:
|
data:
|
||||||
#entity_id: media_player.ma_home_assistant_voice_097b44_media_player
|
|
||||||
entity_id: media_player.ma_master_bedroom_clock
|
|
||||||
volume_level: 0.90
|
volume_level: 0.90
|
||||||
|
|
||||||
- action: input_select.select_option
|
- action: input_select.select_option
|
||||||
@@ -37,16 +38,21 @@ action:
|
|||||||
target:
|
target:
|
||||||
entity_id: input_select.master_bedroom_mode
|
entity_id: input_select.master_bedroom_mode
|
||||||
|
|
||||||
- action: music_assistant.play_media
|
- action: media_player.shuffle_set
|
||||||
target:
|
target:
|
||||||
#entity_id: media_player.ma_home_assistant_voice_097b44_media_player
|
entity_id: media_player.ma_bedroom_hub
|
||||||
entity_id: media_player.ma_master_bedroom_clock
|
|
||||||
data:
|
data:
|
||||||
media_type: playlist
|
shuffle: true
|
||||||
#media_id: library://playlist/7
|
|
||||||
media_id: >
|
|
||||||
{% set playlists = ['library://playlist/33','library://playlist/32','library://playlist/21','library://playlist/28','library://playlist/27','library://playlist/22','library://playlist/29','library://playlist/36','library://playlist/23','library://playlist/12','library://playlist/34','library://playlist/35','library://playlist/19'] %}
|
|
||||||
{{ playlists|random }}
|
|
||||||
enqueue: replace
|
|
||||||
|
|
||||||
- action: script.wake_the_bedroom
|
- action: music_assistant.play_media
|
||||||
|
data:
|
||||||
|
media_id: library://playlist/32
|
||||||
|
media_type: playlist
|
||||||
|
enqueue: replace
|
||||||
|
target:
|
||||||
|
entity_id: media_player.ma_bedroom_hub
|
||||||
|
#media_id: >
|
||||||
|
# {% set playlists = ['library://playlist/32','library://playlist/9'] %}
|
||||||
|
# {{ playlists|random }}
|
||||||
|
|
||||||
|
#- action: script.wake_the_bedroom
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ trigger:
|
|||||||
to: "on"
|
to: "on"
|
||||||
# Radio playing
|
# Radio playing
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: media_player.master_bedroom_clock
|
entity_id: media_player.bedroom_hub
|
||||||
to: "playing"
|
to: "playing"
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: media_player.master_bedroom_clock
|
entity_id: media_player.bedroom_hub
|
||||||
to: "idle"
|
to: "idle"
|
||||||
# Light on
|
# Light on
|
||||||
- platform: state
|
- platform: state
|
||||||
|
|||||||
@@ -16,11 +16,11 @@ condition:
|
|||||||
state: "off"
|
state: "off"
|
||||||
action:
|
action:
|
||||||
# Notify the last person to leave
|
# Notify the last person to leave
|
||||||
- action: notify.mobile_app_pixel_7
|
- action: notify.mobile_app_pixel_10_pro
|
||||||
data:
|
data:
|
||||||
message: >-
|
message: >-
|
||||||
{% if as_timestamp(states.input_boolean.kristy_home.last_updated) > as_timestamp(states.input_boolean.clint_home.last_updated) %}
|
{% if as_timestamp(states.input_boolean.kristy_home.last_updated) > as_timestamp(states.input_boolean.clint_home.last_updated) %}
|
||||||
The following are open: {{ dict((states|selectattr('entity_id', 'in', state_attr('group.my_exterior_windows', 'entity_id') + state_attr('group.my_exterior_doors', 'entity_id'))|list)|groupby('state'))['on']|map(attribute='name')|list|join(', ') }}
|
The following are open: {{ dict((states|selectattr('entity_id', 'in', state_attr('group.my_exterior_windows', 'entity_id') + state_attr('binary_sensor.exterior_doors', 'entity_id'))|list)|groupby('state'))['on']|map(attribute='name')|list|join(', ') }}
|
||||||
{% else %}
|
{% else %}
|
||||||
The following are open: {{ dict((states|selectattr('entity_id', 'in', state_attr('group.my_exterior_windows', 'entity_id') + state_attr('group.my_exterior_doors', 'entity_id'))|list)|groupby('state'))['on']|map(attribute='name')|list|join(', ') }}
|
The following are open: {{ dict((states|selectattr('entity_id', 'in', state_attr('group.my_exterior_windows', 'entity_id') + state_attr('binary_sensor.exterior_doors', 'entity_id'))|list)|groupby('state'))['on']|map(attribute='name')|list|join(', ') }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ action:
|
|||||||
- media_player.bathroom_mini
|
- media_player.bathroom_mini
|
||||||
- media_player.front_room_hub
|
- media_player.front_room_hub
|
||||||
- media_player.kitchen
|
- media_player.kitchen
|
||||||
- media_player.girls_room_hub
|
- media_player.girls_room_clock
|
||||||
- media_player.master_bedroom_clock
|
- media_player.bedroom_hub
|
||||||
volume_level: 0.7
|
volume_level: 0.7
|
||||||
- delay: "00:00:03"
|
- delay: "00:00:03"
|
||||||
- action: tts.speak
|
- action: tts.speak
|
||||||
|
|||||||
@@ -24,12 +24,12 @@ action:
|
|||||||
- action: media_player.volume_set
|
- action: media_player.volume_set
|
||||||
data_template:
|
data_template:
|
||||||
volume_level: 0.30
|
volume_level: 0.30
|
||||||
entity_id: media_player.ma_home_assistant_voice_097b44_media_player
|
entity_id: media_player.home_assistant_voice_097b44_media_player
|
||||||
- action: tts.speak
|
- action: tts.speak
|
||||||
target:
|
target:
|
||||||
entity_id: tts.google_translate_en_com
|
entity_id: tts.google_translate_en_com
|
||||||
data:
|
data:
|
||||||
media_player_entity_id: media_player.ma_home_assistant_voice_097b44_media_player
|
media_player_entity_id: media_player.home_assistant_voice_097b44_media_player
|
||||||
message: >-
|
message: >-
|
||||||
The following are open:
|
The following are open:
|
||||||
{{ dict((states|selectattr('entity_id', 'in', state_attr('group.my_exterior_windows', 'entity_id') + state_attr('group.my_exterior_doors', 'entity_id'))|list)|groupby('state'))['on']|map(attribute='name')|list|join(', ') }}
|
{{ dict((states|selectattr('entity_id', 'in', state_attr('group.my_exterior_windows', 'entity_id') + state_attr('binary_sensor.exterior_doors', 'entity_id'))|list)|groupby('state'))['on']|map(attribute='name')|list|join(', ') }}
|
||||||
|
|||||||
@@ -1,45 +0,0 @@
|
|||||||
alias: Continue Girls Room Noise
|
|
||||||
id: automation_continue_girls_room_noise
|
|
||||||
trigger:
|
|
||||||
- platform: state
|
|
||||||
entity_id: media_player.girls_room_hub
|
|
||||||
from: "playing"
|
|
||||||
condition:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.girls_room_asleep
|
|
||||||
state: "on"
|
|
||||||
- condition: or
|
|
||||||
conditions:
|
|
||||||
- condition: and
|
|
||||||
conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.bridget_in_bed
|
|
||||||
state: "on"
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.bridget_home
|
|
||||||
state: "on"
|
|
||||||
- condition: and
|
|
||||||
conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.ebin_in_bed
|
|
||||||
state: "on"
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.ebin_home
|
|
||||||
state: "on"
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.girls_room_mode
|
|
||||||
state: "Night on"
|
|
||||||
action:
|
|
||||||
- action: input_select.select_option
|
|
||||||
data:
|
|
||||||
entity_id: input_select.google_home
|
|
||||||
option: "Girls Room"
|
|
||||||
- action: input_select.select_option
|
|
||||||
data:
|
|
||||||
entity_id: input_select.ambient_sound
|
|
||||||
option: "Random White Noise"
|
|
||||||
- action: input_number.set_value
|
|
||||||
data:
|
|
||||||
entity_id: input_number.volume_ambientsounds
|
|
||||||
value: "0.35"
|
|
||||||
- action: script.ambientsounds
|
|
||||||
@@ -35,11 +35,11 @@ condition:
|
|||||||
attribute: source
|
attribute: source
|
||||||
state: "YouTube"
|
state: "YouTube"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: media_player.master_bedroom_clock
|
entity_id: media_player.bedroom_hub
|
||||||
attribute: source
|
attribute: source
|
||||||
state: "PBS Kids"
|
state: "PBS Kids"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: media_player.master_bedroom_clock
|
entity_id: media_player.bedroom_hub
|
||||||
attribute: source
|
attribute: source
|
||||||
state: "YouTube"
|
state: "YouTube"
|
||||||
|
|
||||||
@@ -94,23 +94,23 @@ action:
|
|||||||
- choose:
|
- choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: media_player.master_bedroom_clock
|
entity_id: media_player.bedroom_hub
|
||||||
state: "playing"
|
state: "playing"
|
||||||
- condition: or
|
- condition: or
|
||||||
conditions:
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: media_player.master_bedroom_clock
|
entity_id: media_player.bedroom_hub
|
||||||
attribute: source
|
attribute: source
|
||||||
state: "YouTube"
|
state: "YouTube"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: media_player.master_bedroom_clock
|
entity_id: media_player.bedroom_hub
|
||||||
attribute: source
|
attribute: source
|
||||||
state: "PBS Kids"
|
state: "PBS Kids"
|
||||||
sequence:
|
sequence:
|
||||||
- action: media_player.select_source
|
- action: media_player.select_source
|
||||||
data:
|
data:
|
||||||
entity_id: media_player.master_bedroom_clock
|
entity_id: media_player.bedroom_hub
|
||||||
source: Home
|
source: Home
|
||||||
- action: media_player.turn_off
|
- action: media_player.turn_off
|
||||||
data:
|
data:
|
||||||
entity_id: media_player.master_bedroom_clock
|
entity_id: media_player.bedroom_hub
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ condition:
|
|||||||
state: "off"
|
state: "off"
|
||||||
for: "00:10:00"
|
for: "00:10:00"
|
||||||
- condition: numeric_state
|
- condition: numeric_state
|
||||||
entity_id: sensor.deck_light_level
|
entity_id: sensor.deck_hue_motion_sensor_illuminance
|
||||||
below: 25
|
below: 25
|
||||||
- condition: numeric_state
|
- condition: numeric_state
|
||||||
entity_id: sensor.sun_elevation
|
entity_id: sensor.sun_elevation
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ condition:
|
|||||||
state: "on"
|
state: "on"
|
||||||
# It's getting dark
|
# It's getting dark
|
||||||
- condition: numeric_state
|
- condition: numeric_state
|
||||||
entity_id: sensor.bar_light_level
|
entity_id: sensor.bar_hue_motion_sensor_illuminance
|
||||||
below: 15
|
below: 15
|
||||||
# Somebody is nearly home, or just arrived
|
# Somebody is nearly home, or just arrived
|
||||||
- condition: or
|
- condition: or
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ trigger:
|
|||||||
to: "on"
|
to: "on"
|
||||||
|
|
||||||
action:
|
action:
|
||||||
- action: notify.mobile_app_pixel_7
|
- action: notify.mobile_app_pixel_10_pro
|
||||||
data:
|
data:
|
||||||
message: >-
|
message: >-
|
||||||
Its too hot or cold to leave these open: {{ dict((states|selectattr('entity_id', 'in', state_attr('group.my_hvac_affecting_openings', 'entity_id'))|list)|groupby('state'))['on']|map(attribute='name')|list|join(', ') }}
|
Its too hot or cold to leave these open: {{ dict((states|selectattr('entity_id', 'in', state_attr('group.my_hvac_affecting_openings', 'entity_id'))|list)|groupby('state'))['on']|map(attribute='name')|list|join(', ') }}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ condition:
|
|||||||
state: "on"
|
state: "on"
|
||||||
|
|
||||||
action:
|
action:
|
||||||
- action: notify.mobile_app_pixel_7
|
- action: notify.mobile_app_pixel_10_pro
|
||||||
data:
|
data:
|
||||||
title: Update Available
|
title: Update Available
|
||||||
message: A Home Assistant update is available
|
message: A Home Assistant update is available
|
||||||
|
|||||||
@@ -95,13 +95,11 @@ action:
|
|||||||
entity_id: binary_sensor.computer_area_occupied
|
entity_id: binary_sensor.computer_area_occupied
|
||||||
state: "on"
|
state: "on"
|
||||||
sequence:
|
sequence:
|
||||||
- action: webrtc.dash_cast
|
- action: dash_cast.load_url
|
||||||
data:
|
data:
|
||||||
entity_id: media_player.computer_area_hub
|
entity_id: media_player.computer_area_hub
|
||||||
url: cam01_sub_opus
|
|
||||||
force: true
|
force: true
|
||||||
extra:
|
url: http://192.168.1.7:1984/stream.html?src=boys_room_cam
|
||||||
mode: webrtc
|
|
||||||
|
|
||||||
- choose:
|
- choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
@@ -109,49 +107,13 @@ action:
|
|||||||
entity_id: binary_sensor.front_room_occupied
|
entity_id: binary_sensor.front_room_occupied
|
||||||
state: "on"
|
state: "on"
|
||||||
sequence:
|
sequence:
|
||||||
- action: webrtc.dash_cast
|
- action: dash_cast.load_url
|
||||||
data:
|
data:
|
||||||
entity_id: media_player.front_room_hub
|
entity_id: media_player.front_room_hub
|
||||||
url: cam01_sub_opus
|
|
||||||
force: true
|
force: true
|
||||||
extra:
|
url: http://192.168.1.7:1984/stream.html?src=boys_room_cam
|
||||||
mode: webrtc
|
|
||||||
|
|
||||||
- delay: "00:10:00"
|
- delay: "00:10:00"
|
||||||
|
|
||||||
- action: media_player.turn_off
|
- action: 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
|
||||||
|
|
||||||
# - alias: "Flash some lights"
|
|
||||||
# repeat:
|
|
||||||
# count: 6
|
|
||||||
# sequence:
|
|
||||||
# - delay: 1
|
|
||||||
# - action: light.toggle
|
|
||||||
# target:
|
|
||||||
# entity_id:
|
|
||||||
# - light.entryway_hue
|
|
||||||
# - light.computer_area_hue
|
|
||||||
# - light.front_room_hue
|
|
||||||
#- delay: '00:00:02'
|
|
||||||
|
|
||||||
# - alias: "Fix computer area lights"
|
|
||||||
# action: automation.trigger
|
|
||||||
# target:
|
|
||||||
# entity_id: "automation.computer_area_lights_to_{{ computer_area }}"
|
|
||||||
# data:
|
|
||||||
# skip_condition: true
|
|
||||||
|
|
||||||
# - alias: "Fix front room lights"
|
|
||||||
# action: automation.trigger
|
|
||||||
# target:
|
|
||||||
# entity_id: "automation.front_room_lights_to_{{ front_room }}"
|
|
||||||
# data:
|
|
||||||
# skip_condition: true
|
|
||||||
|
|
||||||
# - alias: "Fix entryway lights"
|
|
||||||
# action: automation.trigger
|
|
||||||
# target:
|
|
||||||
# entity_id: "automation.entryway_lights_to_{{ entryway }}"
|
|
||||||
# data:
|
|
||||||
# skip_condition: true
|
|
||||||
|
|||||||
@@ -8,4 +8,4 @@ trigger:
|
|||||||
|
|
||||||
action:
|
action:
|
||||||
- action: media_player.turn_off
|
- action: media_player.turn_off
|
||||||
entity_id: media_player.ma_boys_room_clock
|
entity_id: media_player.boys_room_clock
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ trigger:
|
|||||||
to: "on"
|
to: "on"
|
||||||
|
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: media_player.ma_boys_room_clock
|
entity_id: media_player.boys_room_clock
|
||||||
to: "idle"
|
to: "idle"
|
||||||
for: 00:00:05
|
for: 00:00:05
|
||||||
|
|
||||||
@@ -21,17 +21,17 @@ action:
|
|||||||
- choose:
|
- choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: media_player.ma_boys_room_clock
|
entity_id: media_player.boys_room_clock
|
||||||
state: "playing"
|
state: "playing"
|
||||||
sequence:
|
sequence:
|
||||||
- action: media_player.media_stop
|
- action: media_player.media_stop
|
||||||
target:
|
target:
|
||||||
entity_id: media_player.ma_boys_room_clock
|
entity_id: media_player.boys_room_clock
|
||||||
|
|
||||||
- action: script.search_and_play_playlist
|
- action: music_assistant.play_media
|
||||||
|
target:
|
||||||
|
entity_id: media_player.ma_boys_room_clock
|
||||||
data:
|
data:
|
||||||
speaker: media_player.ma_boys_room_clock
|
media_type: playlist
|
||||||
search_term: CleverThunderstorm
|
media_id: library://playlist/34
|
||||||
volume: 0.3
|
enqueue: replace
|
||||||
repeat: all
|
|
||||||
shuffle: false
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ trigger:
|
|||||||
|
|
||||||
# - platform: state
|
# - platform: state
|
||||||
# id: motion
|
# id: motion
|
||||||
# entity_id: group.computer_area_motion
|
# entity_id: binary_sensor.computer_area_motion
|
||||||
# to: "on"
|
# to: "on"
|
||||||
|
|
||||||
condition:
|
condition:
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
alias: "Computer Area Occupied"
|
|
||||||
id: automation_computer_area_occupied
|
|
||||||
mode: restart
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
- platform: state
|
|
||||||
entity_id:
|
|
||||||
- binary_sensor.computer_area_occupied
|
|
||||||
to: "on"
|
|
||||||
condition:
|
|
||||||
# Computer area was not already occupied or computer area light is off while not set to manual or off
|
|
||||||
- condition: or
|
|
||||||
conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.computer_area_occupied
|
|
||||||
state: "off"
|
|
||||||
- condition: and
|
|
||||||
conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: light.computer_area_hue
|
|
||||||
state: "off"
|
|
||||||
- condition: not
|
|
||||||
conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.computer_area_mode
|
|
||||||
state: "Off"
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_select.computer_area_mode
|
|
||||||
state: "Manual"
|
|
||||||
|
|
||||||
action:
|
|
||||||
- action: input_boolean.turn_on
|
|
||||||
entity_id: input_boolean.computer_area_occupied
|
|
||||||
@@ -24,7 +24,7 @@ trigger:
|
|||||||
|
|
||||||
# - platform: state
|
# - platform: state
|
||||||
# id: motion
|
# id: motion
|
||||||
# entity_id: group.dining_room_motion
|
# entity_id: binary_sensor.dining_room_motion
|
||||||
# to: "on"
|
# to: "on"
|
||||||
|
|
||||||
condition:
|
condition:
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ trigger:
|
|||||||
|
|
||||||
# - platform: state
|
# - platform: state
|
||||||
# id: motion
|
# id: motion
|
||||||
# entity_id: group.front_room_motion
|
# entity_id: binary_sensor.front_room_motion
|
||||||
# to: "on"
|
# to: "on"
|
||||||
|
|
||||||
- platform: state
|
- platform: state
|
||||||
@@ -119,7 +119,7 @@ action:
|
|||||||
condition: state
|
condition: state
|
||||||
entity_id: light.front_room_hue
|
entity_id: light.front_room_hue
|
||||||
state: "on"
|
state: "on"
|
||||||
- "{{ states('sensor.front_room_light_level') | float(default=0) < states('input_number.front_room_light_level_trigger') | float(default=0) }}"
|
- "{{ states('sensor.front_room_hue_motion_sensor_illuminance') | float(default=0) < states('input_number.front_room_light_level_trigger') | float(default=0) }}"
|
||||||
sequence:
|
sequence:
|
||||||
- action: scene.turn_on
|
- action: scene.turn_on
|
||||||
data:
|
data:
|
||||||
@@ -137,7 +137,7 @@ action:
|
|||||||
condition: state
|
condition: state
|
||||||
entity_id: light.front_room_hue
|
entity_id: light.front_room_hue
|
||||||
state: "off"
|
state: "off"
|
||||||
- "{{ states('sensor.front_room_light_level') | float(default=0) < states('input_number.front_room_light_level_trigger') | float(default=0) }}"
|
- "{{ states('sensor.front_room_hue_motion_sensor_illuminance') | float(default=0) < states('input_number.front_room_light_level_trigger') | float(default=0) }}"
|
||||||
sequence:
|
sequence:
|
||||||
- action: scene.turn_on
|
- action: scene.turn_on
|
||||||
target:
|
target:
|
||||||
@@ -149,7 +149,7 @@ action:
|
|||||||
condition: state
|
condition: state
|
||||||
entity_id: light.front_room_hue
|
entity_id: light.front_room_hue
|
||||||
state: "on"
|
state: "on"
|
||||||
- "{{ states('sensor.front_room_light_level') | float(default=0) < states('input_number.front_room_light_level_trigger') | float(default=0) }}"
|
- "{{ states('sensor.front_room_hue_motion_sensor_illuminance') | float(default=0) < states('input_number.front_room_light_level_trigger') | float(default=0) }}"
|
||||||
sequence:
|
sequence:
|
||||||
- action: scene.turn_on
|
- action: scene.turn_on
|
||||||
data:
|
data:
|
||||||
@@ -163,7 +163,7 @@ action:
|
|||||||
condition: state
|
condition: state
|
||||||
entity_id: light.front_room_hue
|
entity_id: light.front_room_hue
|
||||||
state: "off"
|
state: "off"
|
||||||
- "{{ states('sensor.front_room_light_level') | float(default=0) < states('input_number.front_room_light_level_trigger') | float(default=0) }}"
|
- "{{ states('sensor.front_room_hue_motion_sensor_illuminance') | float(default=0) < states('input_number.front_room_light_level_trigger') | float(default=0) }}"
|
||||||
sequence:
|
sequence:
|
||||||
- action: scene.turn_on
|
- action: scene.turn_on
|
||||||
target:
|
target:
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ id: automation_front_room_water_sensor_on
|
|||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: binary_sensor.furnace_room_water_sensor_water_alarm_water_leak_detected
|
entity_id: binary_sensor.furnace_room_water_sensor_leak
|
||||||
to: "on"
|
to: "on"
|
||||||
for: "00:00:10"
|
for: "00:00:10"
|
||||||
|
|
||||||
@@ -12,9 +12,9 @@ action:
|
|||||||
target:
|
target:
|
||||||
entity_id: tts.google_translate_en_com
|
entity_id: tts.google_translate_en_com
|
||||||
data:
|
data:
|
||||||
media_player_entity_id: media_player.front_room_hub, media_player.bathroom_mini, media_player.kitchen, media_player.master_bedroom_clock
|
media_player_entity_id: media_player.front_room_hub, media_player.bathroom_mini, media_player.kitchen, media_player.bedroom_hub
|
||||||
message: Attention! A water leak has been detected on the furnace room floor!
|
message: Attention! A water leak has been detected on the furnace room floor!
|
||||||
|
|
||||||
- action: notify.mobile_app_pixel_7
|
- action: notify.mobile_app_pixel_10_pro
|
||||||
data:
|
data:
|
||||||
message: Attention! A water leak has been detected on the furnace room floor!
|
message: Attention! A water leak has been detected on the furnace room floor!
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ triggers:
|
|||||||
trigger: state
|
trigger: state
|
||||||
alias: When the furnace room door has been closed for 10 minutes
|
alias: When the furnace room door has been closed for 10 minutes
|
||||||
- id: motion_off
|
- id: motion_off
|
||||||
entity_id: binary_sensor.furnace_room_motion_switch_home_security_motion_detection
|
entity_id: binary_sensor.furnace_room_motion_switch_motion_detection
|
||||||
to: "off"
|
to: "off"
|
||||||
for: "00:15:00"
|
for: "00:15:00"
|
||||||
trigger: state
|
trigger: state
|
||||||
@@ -40,7 +40,7 @@ actions:
|
|||||||
id: door_closed
|
id: door_closed
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: >-
|
entity_id: >-
|
||||||
binary_sensor.furnace_room_motion_switch_home_security_motion_detection
|
binary_sensor.furnace_room_motion_switch_motion_detection
|
||||||
state: "off"
|
state: "off"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: light.furnace_room
|
entity_id: light.furnace_room
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ trigger:
|
|||||||
|
|
||||||
# - platform: state
|
# - platform: state
|
||||||
# id: "motion"
|
# id: "motion"
|
||||||
# entity_id: group.garage_motion
|
# entity_id: binary_sensor.garage_motion
|
||||||
# from: "off"
|
# from: "off"
|
||||||
# to: "on"
|
# to: "on"
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ trigger:
|
|||||||
|
|
||||||
- platform: state
|
- platform: state
|
||||||
id: "workshop_motion"
|
id: "workshop_motion"
|
||||||
entity_id: group.workshop_motion
|
entity_id: binary_sensor.workshop_motion
|
||||||
from: "off"
|
from: "off"
|
||||||
to: "on"
|
to: "on"
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,6 @@ condition:
|
|||||||
state: "on"
|
state: "on"
|
||||||
|
|
||||||
action:
|
action:
|
||||||
- action: notify.mobile_app_pixel_7
|
- action: notify.mobile_app_pixel_10_pro
|
||||||
data:
|
data:
|
||||||
message: The garage is open, but nobody is home
|
message: The garage is open, but nobody is home
|
||||||
|
|||||||
@@ -31,32 +31,32 @@ action:
|
|||||||
condition: and
|
condition: and
|
||||||
conditions:
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: media_player.ma_girls_room_hub
|
entity_id: media_player.ma_girls_room_clock
|
||||||
state: "playing"
|
state: "playing"
|
||||||
|
|
||||||
- action: media_player.volume_set
|
- action: media_player.volume_set
|
||||||
data:
|
data:
|
||||||
volume_level: 0.4
|
volume_level: 0.20
|
||||||
target:
|
target:
|
||||||
entity_id: media_player.ma_girls_room_hub
|
entity_id: media_player.ma_girls_room_clock
|
||||||
|
|
||||||
#- action: script.goodnight_kids_youtube_music
|
#- action: script.goodnight_kids_youtube_music
|
||||||
- action: media_player.shuffle_set
|
- action: media_player.shuffle_set
|
||||||
data:
|
data:
|
||||||
shuffle: false
|
shuffle: false
|
||||||
target:
|
target:
|
||||||
entity_id: media_player.ma_girls_room_hub
|
entity_id: media_player.ma_girls_room_clock
|
||||||
|
|
||||||
- action: media_player.repeat_set
|
- action: media_player.repeat_set
|
||||||
data:
|
data:
|
||||||
repeat: all
|
repeat: all
|
||||||
target:
|
target:
|
||||||
entity_id: media_player.ma_girls_room_hub
|
entity_id: media_player.ma_girls_room_clock
|
||||||
|
|
||||||
- action: music_assistant.play_media
|
- action: music_assistant.play_media
|
||||||
data:
|
data:
|
||||||
media_id: library://playlist/5
|
media_id: library://playlist/36
|
||||||
media_type: playlist
|
media_type: playlist
|
||||||
enqueue: replace
|
enqueue: replace
|
||||||
target:
|
target:
|
||||||
entity_id: media_player.ma_girls_room_hub
|
entity_id: media_player.ma_girls_room_clock
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ condition:
|
|||||||
state: "on"
|
state: "on"
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
switch_name: girls_room_fan_light_switch_light
|
switch_name: light.girls_room_fan_light_switch_light
|
||||||
light_name: girls_room_hue
|
light_name: girls_room_hue
|
||||||
mode_name: input_select.girls_room_mode
|
mode_name: input_select.girls_room_mode
|
||||||
automatic_profile: input_select.automatic_light_profile
|
automatic_profile: input_select.automatic_light_profile
|
||||||
|
|||||||
@@ -10,11 +10,6 @@ trigger:
|
|||||||
from: "on"
|
from: "on"
|
||||||
to: "off"
|
to: "off"
|
||||||
for: "00:00:05"
|
for: "00:00:05"
|
||||||
- trigger: state
|
|
||||||
entity_id: binary_sensor.white_bed_occupied
|
|
||||||
from: "on"
|
|
||||||
to: "off"
|
|
||||||
for: "00:00:05"
|
|
||||||
- trigger: state
|
- trigger: state
|
||||||
entity_id: binary_sensor.girls_room_door
|
entity_id: binary_sensor.girls_room_door
|
||||||
from: "off"
|
from: "off"
|
||||||
@@ -100,13 +95,11 @@ action:
|
|||||||
entity_id: binary_sensor.computer_area_occupied
|
entity_id: binary_sensor.computer_area_occupied
|
||||||
state: "on"
|
state: "on"
|
||||||
sequence:
|
sequence:
|
||||||
- action: webrtc.dash_cast
|
- action: dash_cast.load_url
|
||||||
data:
|
data:
|
||||||
entity_id: media_player.computer_area_hub
|
entity_id: media_player.computer_area_hub
|
||||||
url: cam08_sub_opus
|
|
||||||
force: true
|
force: true
|
||||||
extra:
|
url: http://192.168.1.7:1984/stream.html?src=girls_room_cam
|
||||||
mode: webrtc
|
|
||||||
|
|
||||||
- choose:
|
- choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
@@ -114,49 +107,14 @@ action:
|
|||||||
entity_id: binary_sensor.front_room_occupied
|
entity_id: binary_sensor.front_room_occupied
|
||||||
state: "on"
|
state: "on"
|
||||||
sequence:
|
sequence:
|
||||||
- action: webrtc.dash_cast
|
- action: dash_cast.load_url
|
||||||
data:
|
data:
|
||||||
entity_id: media_player.front_room_hub
|
entity_id: media_player.front_room_hub
|
||||||
url: cam08_sub_opus
|
|
||||||
force: true
|
force: true
|
||||||
extra:
|
url: http://192.168.1.7:1984/stream.html?src=girls_room_cam
|
||||||
mode: webrtc
|
|
||||||
|
|
||||||
- delay: "00:10:00"
|
- delay: "00:10:00"
|
||||||
|
|
||||||
- action: media_player.turn_off
|
- action: 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
|
||||||
|
|
||||||
# - alias: "Flash some lights"
|
|
||||||
# repeat:
|
|
||||||
# count: 6
|
|
||||||
# sequence:
|
|
||||||
# - delay: 1
|
|
||||||
# - action: light.toggle
|
|
||||||
# target:
|
|
||||||
# entity_id:
|
|
||||||
# - light.entryway_hue
|
|
||||||
# - light.computer_area_hue
|
|
||||||
# - light.front_room_hue
|
|
||||||
#- delay: '00:00:02'
|
|
||||||
|
|
||||||
# - alias: "Fix computer area lights"
|
|
||||||
# action: automation.trigger
|
|
||||||
# target:
|
|
||||||
# entity_id: "automation.computer_area_lights_to_{{ computer_area }}"
|
|
||||||
# data:
|
|
||||||
# skip_condition: true
|
|
||||||
|
|
||||||
# - alias: "Fix front room lights"
|
|
||||||
# action: automation.trigger
|
|
||||||
# target:
|
|
||||||
# entity_id: "automation.front_room_lights_to_{{ front_room }}"
|
|
||||||
# data:
|
|
||||||
# skip_condition: true
|
|
||||||
|
|
||||||
# - alias: "Fix entryway lights"
|
|
||||||
# action: automation.trigger
|
|
||||||
# target:
|
|
||||||
# entity_id: "automation.entryway_lights_to_{{ entryway }}"
|
|
||||||
# data:
|
|
||||||
# skip_condition: true
|
|
||||||
|
|||||||
@@ -8,4 +8,4 @@ trigger:
|
|||||||
|
|
||||||
action:
|
action:
|
||||||
- action: media_player.turn_off
|
- action: media_player.turn_off
|
||||||
entity_id: media_player.ma_girls_room_hub
|
entity_id: media_player.girls_room_clock
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ trigger:
|
|||||||
to: "on"
|
to: "on"
|
||||||
|
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: media_player.ma_girls_room_hub
|
entity_id: media_player.girls_room_clock
|
||||||
to: "idle"
|
to: "idle"
|
||||||
for: 00:00:05
|
for: 00:00:05
|
||||||
|
|
||||||
@@ -22,17 +22,17 @@ action:
|
|||||||
- choose:
|
- choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: media_player.ma_girls_room_hub
|
entity_id: media_player.girls_room_clock
|
||||||
state: "playing"
|
state: "playing"
|
||||||
sequence:
|
sequence:
|
||||||
- action: media_player.media_stop
|
- action: media_player.media_stop
|
||||||
target:
|
target:
|
||||||
entity_id: media_player.ma_girls_room_hub
|
entity_id: media_player.girls_room_clock
|
||||||
|
|
||||||
- action: script.search_and_play_playlist
|
- action: music_assistant.play_media
|
||||||
|
target:
|
||||||
|
entity_id: media_player.ma_girls_room_clock
|
||||||
data:
|
data:
|
||||||
speaker: media_player.ma_girls_room_hub
|
media_type: playlist
|
||||||
search_term: Clever Kids Goodnight Songs
|
media_id: library://playlist/36
|
||||||
volume: 0.25
|
enqueue: replace
|
||||||
repeat: all
|
|
||||||
shuffle: false
|
|
||||||
@@ -26,7 +26,7 @@ trigger:
|
|||||||
|
|
||||||
# - platform: state
|
# - platform: state
|
||||||
# id: motion
|
# id: motion
|
||||||
# entity_id: group.great_room_motion
|
# entity_id: binary_sensor.great_room_motion
|
||||||
# to: "on"
|
# to: "on"
|
||||||
|
|
||||||
condition:
|
condition:
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ action:
|
|||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_select.kitchen_mode
|
entity_id: input_select.kitchen_mode
|
||||||
state: "Manual"
|
state: "Manual"
|
||||||
- "{{ states('sensor.bar_light_level') | float(default=0) >= states('input_number.kitchen_light_level_trigger') | float(default=0) }}"
|
- "{{ states('sensor.bar_hue_motion_sensor_illuminance') | float(default=0) >= states('input_number.kitchen_light_level_trigger') | float(default=0) }}"
|
||||||
sequence:
|
sequence:
|
||||||
- action: scene.turn_on
|
- action: scene.turn_on
|
||||||
data:
|
data:
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ trigger:
|
|||||||
|
|
||||||
# - platform: state
|
# - platform: state
|
||||||
# id: motion
|
# id: motion
|
||||||
# entity_id: group.kitchen_motion
|
# entity_id: binary_sensor.kitchen_motion
|
||||||
# to: "on"
|
# to: "on"
|
||||||
|
|
||||||
condition:
|
condition:
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ triggers:
|
|||||||
|
|
||||||
- trigger: state
|
- trigger: state
|
||||||
id: motion_off
|
id: motion_off
|
||||||
entity_id: binary_sensor.mancave_motion_switch_home_security_motion_detection
|
entity_id: binary_sensor.mancave_motion_switch_motion_detection
|
||||||
to: "off"
|
to: "off"
|
||||||
for: "00:15:00"
|
for: "00:15:00"
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ action:
|
|||||||
- condition: trigger
|
- condition: trigger
|
||||||
id: "door_closed"
|
id: "door_closed"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: binary_sensor.mancave_motion_switch_home_security_motion_detection
|
entity_id: binary_sensor.mancave_motion_switch_motion_detection
|
||||||
state: "off"
|
state: "off"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: light.mancave
|
entity_id: light.mancave
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ trigger:
|
|||||||
entity_id: input_select.master_bathroom_mode
|
entity_id: input_select.master_bathroom_mode
|
||||||
|
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: input_boolean.master_bathroom_occupied
|
entity_id: input_boolean.bathroom_occupied
|
||||||
to: "off"
|
to: "off"
|
||||||
|
|
||||||
#- platform: time_pattern
|
#- platform: time_pattern
|
||||||
@@ -26,7 +26,7 @@ condition:
|
|||||||
entity_id: input_select.master_bathroom_mode
|
entity_id: input_select.master_bathroom_mode
|
||||||
state: "Off"
|
state: "Off"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.master_bathroom_occupied
|
entity_id: input_boolean.bathroom_occupied
|
||||||
state: "off"
|
state: "off"
|
||||||
action:
|
action:
|
||||||
- choose:
|
- choose:
|
||||||
@@ -40,7 +40,7 @@ action:
|
|||||||
entity_id: input_select.master_bathroom_mode
|
entity_id: input_select.master_bathroom_mode
|
||||||
state: "Off"
|
state: "Off"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.master_bathroom_occupied
|
entity_id: input_boolean.bathroom_occupied
|
||||||
state: "off"
|
state: "off"
|
||||||
- condition: not
|
- condition: not
|
||||||
conditions:
|
conditions:
|
||||||
@@ -62,4 +62,4 @@ action:
|
|||||||
- alias: "Turn off z-wave switch since all lights are off"
|
- alias: "Turn off z-wave switch since all lights are off"
|
||||||
action: homeassistant.turn_off
|
action: homeassistant.turn_off
|
||||||
target:
|
target:
|
||||||
entity_id: switch.master_bathroom_motion_switch, switch.shower_switch
|
entity_id: switch.master_bathroom_motion_switch, switch.master_bathroom_switch
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ trigger:
|
|||||||
- input_select.master_bathroom_mode
|
- input_select.master_bathroom_mode
|
||||||
- input_select.automatic_light_profile
|
- input_select.automatic_light_profile
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: input_boolean.master_bathroom_occupied
|
entity_id: input_boolean.bathroom_occupied
|
||||||
to: "on"
|
to: "on"
|
||||||
|
|
||||||
# Only turn on the lights when necessary
|
# Only turn on the lights when necessary
|
||||||
@@ -19,7 +19,7 @@ condition:
|
|||||||
conditions:
|
conditions:
|
||||||
# Either when motion is detected
|
# Either when motion is detected
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ trigger.entity_id == 'input_boolean.master_bathroom_occupied' }}"
|
value_template: "{{ trigger.entity_id == 'input_boolean.bathroom_occupied' }}"
|
||||||
# Or when the scene changes while the lights are already on
|
# Or when the scene changes while the lights are already on
|
||||||
- condition: and
|
- condition: and
|
||||||
conditions:
|
conditions:
|
||||||
@@ -30,7 +30,7 @@ condition:
|
|||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ trigger.entity_id == 'input_select.automatic_light_profile' }}"
|
value_template: "{{ trigger.entity_id == 'input_select.automatic_light_profile' }}"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.master_bathroom_occupied
|
entity_id: input_boolean.bathroom_occupied
|
||||||
state: "on"
|
state: "on"
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
@@ -44,7 +44,7 @@ action:
|
|||||||
target:
|
target:
|
||||||
entity_id:
|
entity_id:
|
||||||
- switch.master_bathroom_motion_switch
|
- switch.master_bathroom_motion_switch
|
||||||
- switch.shower_switch
|
- switch.master_bathroom_switch
|
||||||
- choose:
|
- choose:
|
||||||
- alias: "If the room is set to manual, just turn the lights on"
|
- alias: "If the room is set to manual, just turn the lights on"
|
||||||
conditions:
|
conditions:
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ trigger:
|
|||||||
- platform: state
|
- platform: state
|
||||||
entity_id:
|
entity_id:
|
||||||
- input_boolean.home_occupied
|
- input_boolean.home_occupied
|
||||||
- binary_sensor.master_bathroom_occupied
|
- binary_sensor.bathroom_occupied
|
||||||
to: "off"
|
to: "off"
|
||||||
for: "00:10:00"
|
for: "00:10:00"
|
||||||
|
|
||||||
@@ -26,10 +26,10 @@ condition:
|
|||||||
- condition: and
|
- condition: and
|
||||||
conditions:
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.master_bathroom_occupied
|
entity_id: input_boolean.bathroom_occupied
|
||||||
state: "on"
|
state: "on"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: binary_sensor.master_bathroom_occupied
|
entity_id: binary_sensor.bathroom_occupied
|
||||||
state: "off"
|
state: "off"
|
||||||
for: "00:10:00"
|
for: "00:10:00"
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ action:
|
|||||||
state: "off"
|
state: "off"
|
||||||
sequence:
|
sequence:
|
||||||
- action: homeassistant.turn_off
|
- action: homeassistant.turn_off
|
||||||
entity_id: input_boolean.master_bathroom_occupied
|
entity_id: input_boolean.bathroom_occupied
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: not
|
- condition: not
|
||||||
conditions:
|
conditions:
|
||||||
@@ -50,4 +50,4 @@ action:
|
|||||||
state: "Manual"
|
state: "Manual"
|
||||||
sequence:
|
sequence:
|
||||||
- action: homeassistant.turn_off
|
- action: homeassistant.turn_off
|
||||||
entity_id: input_boolean.master_bathroom_occupied
|
entity_id: input_boolean.bathroom_occupied
|
||||||
|
|||||||
@@ -5,14 +5,14 @@ mode: restart
|
|||||||
trigger:
|
trigger:
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id:
|
entity_id:
|
||||||
- binary_sensor.master_bathroom_occupied
|
- binary_sensor.bathroom_occupied
|
||||||
to: "on"
|
to: "on"
|
||||||
|
|
||||||
condition:
|
condition:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.master_bathroom_occupied
|
entity_id: input_boolean.bathroom_occupied
|
||||||
state: "off"
|
state: "off"
|
||||||
|
|
||||||
action:
|
action:
|
||||||
- action: input_boolean.turn_on
|
- action: input_boolean.turn_on
|
||||||
entity_id: input_boolean.master_bathroom_occupied
|
entity_id: input_boolean.bathroom_occupied
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
alias: Continue White Noise
|
|
||||||
id: automation_continue_white_noise
|
|
||||||
initial_state: "on"
|
|
||||||
trigger:
|
|
||||||
- platform: state
|
|
||||||
entity_id: media_player.ma_home_assistant_voice_097b44_media_player
|
|
||||||
to: "off"
|
|
||||||
for: "00:00:02"
|
|
||||||
- platform: state
|
|
||||||
entity_id: media_player.ma_home_assistant_voice_097b44_media_player
|
|
||||||
to: "idle"
|
|
||||||
for: "00:00:02"
|
|
||||||
condition:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.master_bedroom_asleep
|
|
||||||
state: "on"
|
|
||||||
|
|
||||||
action:
|
|
||||||
#- action: input_select.select_option
|
|
||||||
# data:
|
|
||||||
# entity_id: input_select.master_bedroom_mode
|
|
||||||
# option: 'Off'
|
|
||||||
- action: input_select.select_option
|
|
||||||
data:
|
|
||||||
entity_id: input_select.google_home
|
|
||||||
option: "Master Bedroom"
|
|
||||||
- action: input_select.select_option
|
|
||||||
data:
|
|
||||||
entity_id: input_select.ambient_sound
|
|
||||||
option: "Thunderstorm"
|
|
||||||
- action: input_number.set_value
|
|
||||||
data:
|
|
||||||
entity_id: input_number.volume_ambientsounds
|
|
||||||
value: "0.3"
|
|
||||||
- action: script.ambientsounds
|
|
||||||
@@ -4,7 +4,7 @@ initial_state: "off"
|
|||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: sensor.pixel_7_charger_type
|
entity_id: sensor.pixel_10_pro_charger_type
|
||||||
to: "wireless"
|
to: "wireless"
|
||||||
|
|
||||||
- platform: state
|
- platform: state
|
||||||
@@ -37,7 +37,7 @@ condition:
|
|||||||
condition: or
|
condition: or
|
||||||
conditions:
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: sensor.pixel_7_charger_type
|
entity_id: sensor.pixel_10_pro_charger_type
|
||||||
state: "wireless"
|
state: "wireless"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: binary_sensor.bed_presence_c175a4_bed_occupied_either
|
entity_id: binary_sensor.bed_presence_c175a4_bed_occupied_either
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ trigger:
|
|||||||
entity_id: input_select.master_bedroom_mode
|
entity_id: input_select.master_bedroom_mode
|
||||||
|
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
to: "off"
|
to: "off"
|
||||||
|
|
||||||
- platform: state
|
- platform: state
|
||||||
@@ -48,7 +48,7 @@ condition:
|
|||||||
entity_id: input_select.master_bedroom_mode
|
entity_id: input_select.master_bedroom_mode
|
||||||
state: "Off"
|
state: "Off"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
state: "off"
|
state: "off"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_select.master_bedroom_mode
|
entity_id: input_select.master_bedroom_mode
|
||||||
@@ -66,7 +66,7 @@ action:
|
|||||||
entity_id: input_select.master_bedroom_mode
|
entity_id: input_select.master_bedroom_mode
|
||||||
state: "Off"
|
state: "Off"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
state: "off"
|
state: "off"
|
||||||
- condition: not
|
- condition: not
|
||||||
conditions:
|
conditions:
|
||||||
|
|||||||
@@ -18,17 +18,19 @@ trigger:
|
|||||||
to: "off"
|
to: "off"
|
||||||
|
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
to: "on"
|
to: "on"
|
||||||
|
|
||||||
- platform: state
|
- platform: state
|
||||||
id: occupied
|
id: occupied
|
||||||
entity_id: binary_sensor.master_bedroom_occupied
|
entity_id:
|
||||||
|
- binary_sensor.bedroom_occupied
|
||||||
|
- input_boolean.bedroom_occupied
|
||||||
to: "on"
|
to: "on"
|
||||||
|
|
||||||
# - platform: state
|
# - platform: state
|
||||||
# id: motion
|
# id: motion
|
||||||
# entity_id: group.master_bedroom_motion
|
# entity_id: binary_sensor.master_bedroom_motion
|
||||||
# to: "on"
|
# to: "on"
|
||||||
|
|
||||||
condition:
|
condition:
|
||||||
@@ -73,7 +75,7 @@ condition:
|
|||||||
- condition: trigger
|
- condition: trigger
|
||||||
id: "mode_change"
|
id: "mode_change"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
state: "on"
|
state: "on"
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
@@ -87,6 +89,29 @@ action:
|
|||||||
action: homeassistant.turn_on
|
action: homeassistant.turn_on
|
||||||
target:
|
target:
|
||||||
entity_id: "{{ switch_name }}"
|
entity_id: "{{ switch_name }}"
|
||||||
|
|
||||||
|
- choose:
|
||||||
|
- alias: "If the room is set to adaptive, turn all adaptive switches on "
|
||||||
|
conditions:
|
||||||
|
- alias: "Room set to adaptive"
|
||||||
|
condition: state
|
||||||
|
entity_id: input_select.master_bedroom_mode
|
||||||
|
state: Adaptive
|
||||||
|
sequence:
|
||||||
|
- action: switch.turn_on
|
||||||
|
target:
|
||||||
|
entity_id:
|
||||||
|
- switch.adaptive_lighting_bedroom
|
||||||
|
- switch.adaptive_lighting_adapt_brightness_bedroom
|
||||||
|
- switch.adaptive_lighting_adapt_color_bedroom
|
||||||
|
default:
|
||||||
|
- action: switch.turn_off
|
||||||
|
target:
|
||||||
|
entity_id:
|
||||||
|
- switch.adaptive_lighting_bedroom
|
||||||
|
- switch.adaptive_lighting_adapt_brightness_bedroom
|
||||||
|
- switch.adaptive_lighting_adapt_color_bedroom
|
||||||
|
|
||||||
- choose:
|
- choose:
|
||||||
- alias: "If the room is set to manual, just turn the lights on"
|
- alias: "If the room is set to manual, just turn the lights on"
|
||||||
conditions:
|
conditions:
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ trigger:
|
|||||||
- platform: state
|
- platform: state
|
||||||
entity_id:
|
entity_id:
|
||||||
- input_boolean.home_occupied
|
- input_boolean.home_occupied
|
||||||
- binary_sensor.master_bedroom_occupied
|
- binary_sensor.bedroom_occupied
|
||||||
to: "off"
|
to: "off"
|
||||||
for: "00:05:00"
|
for: "00:05:00"
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ condition:
|
|||||||
- "unavailable"
|
- "unavailable"
|
||||||
|
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
state: "on"
|
state: "on"
|
||||||
|
|
||||||
- condition: or
|
- condition: or
|
||||||
@@ -45,7 +45,7 @@ condition:
|
|||||||
for:
|
for:
|
||||||
minutes: 5
|
minutes: 5
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: binary_sensor.master_bedroom_occupied
|
entity_id: binary_sensor.bedroom_occupied
|
||||||
state: "off"
|
state: "off"
|
||||||
for:
|
for:
|
||||||
minutes: 5
|
minutes: 5
|
||||||
@@ -57,7 +57,7 @@ action:
|
|||||||
state: "off"
|
state: "off"
|
||||||
sequence:
|
sequence:
|
||||||
- action: homeassistant.turn_off
|
- action: homeassistant.turn_off
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: not
|
- condition: not
|
||||||
conditions:
|
conditions:
|
||||||
@@ -66,4 +66,4 @@ action:
|
|||||||
state: "Manual"
|
state: "Manual"
|
||||||
sequence:
|
sequence:
|
||||||
- action: homeassistant.turn_off
|
- action: homeassistant.turn_off
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
|
|||||||
@@ -5,14 +5,14 @@ mode: restart
|
|||||||
trigger:
|
trigger:
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id:
|
entity_id:
|
||||||
- binary_sensor.master_bedroom_occupied
|
- binary_sensor.bedroom_occupied
|
||||||
to: "on"
|
to: "on"
|
||||||
|
|
||||||
condition:
|
condition:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
state: "off"
|
state: "off"
|
||||||
|
|
||||||
action:
|
action:
|
||||||
- action: input_boolean.turn_on
|
- action: input_boolean.turn_on
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
|
|||||||
@@ -10,4 +10,9 @@ action:
|
|||||||
- action: media_player.turn_off
|
- action: media_player.turn_off
|
||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: media_player.ma_home_assistant_voice_097b44_media_player
|
entity_id: media_player.ma_bedroom_hub
|
||||||
|
|
||||||
|
- action: switch.turn_off
|
||||||
|
data: {}
|
||||||
|
target:
|
||||||
|
entity_id: switch.adaptive_lighting_sleep_mode_bedroom
|
||||||
@@ -7,10 +7,15 @@ trigger:
|
|||||||
to: "on"
|
to: "on"
|
||||||
|
|
||||||
action:
|
action:
|
||||||
- action: script.search_and_play_playlist
|
- action: music_assistant.play_media
|
||||||
|
target:
|
||||||
|
entity_id: media_player.ma_bedroom_hub
|
||||||
data:
|
data:
|
||||||
speaker: media_player.ma_master_bedroom_clock
|
media_type: playlist
|
||||||
search_term: CleverThunderstorm
|
media_id: library://playlist/34
|
||||||
volume: 0.25
|
enqueue: replace
|
||||||
repeat: all
|
|
||||||
shuffle: false
|
- action: switch.turn_on
|
||||||
|
data: {}
|
||||||
|
target:
|
||||||
|
entity_id: switch.adaptive_lighting_sleep_mode_bedroom
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ triggers:
|
|||||||
entity_id: input_boolean.girls_room_occupied
|
entity_id: input_boolean.girls_room_occupied
|
||||||
|
|
||||||
- trigger: state
|
- trigger: state
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
|
|
||||||
- trigger: state
|
- trigger: state
|
||||||
entity_id: input_boolean.girls_room_asleep
|
entity_id: input_boolean.girls_room_asleep
|
||||||
@@ -210,7 +210,7 @@ action:
|
|||||||
- conditions:
|
- conditions:
|
||||||
- alias: "Master Bedroom not occupied"
|
- alias: "Master Bedroom not occupied"
|
||||||
condition: state
|
condition: state
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
state: "off"
|
state: "off"
|
||||||
- alias: "Master Bedroom not asleep"
|
- alias: "Master Bedroom not asleep"
|
||||||
condition: state
|
condition: state
|
||||||
@@ -248,7 +248,7 @@ action:
|
|||||||
- conditions:
|
- conditions:
|
||||||
- alias: "Master Bedroom is occupied"
|
- alias: "Master Bedroom is occupied"
|
||||||
condition: state
|
condition: state
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
state: "on"
|
state: "on"
|
||||||
- alias: "Master Bedroom above high"
|
- alias: "Master Bedroom above high"
|
||||||
condition: template
|
condition: template
|
||||||
@@ -265,7 +265,7 @@ action:
|
|||||||
- conditions:
|
- conditions:
|
||||||
- alias: "Master Bedroom is occupied"
|
- alias: "Master Bedroom is occupied"
|
||||||
condition: state
|
condition: state
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
state: "on"
|
state: "on"
|
||||||
- alias: "Master Bedroom above medium"
|
- alias: "Master Bedroom above medium"
|
||||||
condition: template
|
condition: template
|
||||||
@@ -282,7 +282,7 @@ action:
|
|||||||
- conditions:
|
- conditions:
|
||||||
- alias: "Master Bedroom is occupied"
|
- alias: "Master Bedroom is occupied"
|
||||||
condition: state
|
condition: state
|
||||||
entity_id: input_boolean.master_bedroom_occupied
|
entity_id: input_boolean.bedroom_occupied
|
||||||
state: "on"
|
state: "on"
|
||||||
- alias: "Master Bedroom above low"
|
- alias: "Master Bedroom above low"
|
||||||
condition: template
|
condition: template
|
||||||
|
|||||||
@@ -1,102 +1,102 @@
|
|||||||
alias: Dishwasher Done
|
# alias: Dishwasher Done
|
||||||
id: dishwashwer_done
|
# id: dishwashwer_done
|
||||||
description: "Dishwasher just finished"
|
# description: "Dishwasher just finished"
|
||||||
trigger:
|
# trigger:
|
||||||
- platform: state
|
# - platform: state
|
||||||
entity_id: input_boolean.empty_dishwasher
|
# entity_id: input_boolean.empty_dishwasher
|
||||||
from: "off"
|
# from: "off"
|
||||||
to: "on"
|
# to: "on"
|
||||||
|
|
||||||
- platform: homeassistant
|
# - platform: homeassistant
|
||||||
event: start
|
# event: start
|
||||||
|
|
||||||
condition:
|
# condition:
|
||||||
- alias: "The home is occupied"
|
# - alias: "The home is occupied"
|
||||||
condition: state
|
# condition: state
|
||||||
entity_id: input_boolean.home_occupied
|
# entity_id: input_boolean.home_occupied
|
||||||
state: "on"
|
# state: "on"
|
||||||
|
|
||||||
- alias: "Its not bedtime"
|
# - alias: "Its not bedtime"
|
||||||
condition: state
|
# condition: state
|
||||||
entity_id: input_boolean.bedtime
|
# entity_id: input_boolean.bedtime
|
||||||
state: "off"
|
# state: "off"
|
||||||
|
|
||||||
action:
|
# action:
|
||||||
- repeat:
|
# - repeat:
|
||||||
while: "{{ is_state('input_boolean.empty_dishwasher','on') }}"
|
# while: "{{ is_state('input_boolean.empty_dishwasher','on') }}"
|
||||||
sequence:
|
# sequence:
|
||||||
- choose:
|
# - choose:
|
||||||
- conditions:
|
# - conditions:
|
||||||
- condition: state
|
# - condition: state
|
||||||
entity_id: input_boolean.allow_announcements
|
# entity_id: input_boolean.allow_announcements
|
||||||
state: "on"
|
# state: "on"
|
||||||
|
|
||||||
- condition: not
|
# - condition: not
|
||||||
conditions:
|
# conditions:
|
||||||
- condition: state
|
# - condition: state
|
||||||
entity_id: sensor.pixel_7_audio_mode
|
# entity_id: sensor.pixel_7_audio_mode
|
||||||
state: in_communication
|
# state: in_communication
|
||||||
- condition: state
|
# - condition: state
|
||||||
entity_id: sensor.pixel_7_audio_mode
|
# entity_id: sensor.pixel_7_audio_mode
|
||||||
state: in_call
|
# state: in_call
|
||||||
- condition: state
|
# - condition: state
|
||||||
entity_id: input_boolean.kids_bedtime
|
# entity_id: input_boolean.kids_bedtime
|
||||||
state: "on"
|
# state: "on"
|
||||||
# - condition: state
|
# # - condition: state
|
||||||
# entity_id: input_boolean.announcement_pending
|
# # entity_id: input_boolean.announcement_pending
|
||||||
# state: 'on'
|
# # state: 'on'
|
||||||
|
|
||||||
sequence:
|
# sequence:
|
||||||
- action: input_boolean.turn_off
|
# - action: input_boolean.turn_off
|
||||||
data: {}
|
# data: {}
|
||||||
target:
|
# target:
|
||||||
entity_id:
|
# entity_id:
|
||||||
- input_boolean.announce_dishwasher_done
|
# - input_boolean.announce_dishwasher_done
|
||||||
- action: input_boolean.turn_on
|
# - action: input_boolean.turn_on
|
||||||
data: {}
|
# data: {}
|
||||||
target:
|
# target:
|
||||||
entity_id:
|
# entity_id:
|
||||||
- input_boolean.announce_dishwasher_done
|
# - input_boolean.announce_dishwasher_done
|
||||||
# - input_boolean.announcement_pending
|
# # - input_boolean.announcement_pending
|
||||||
|
|
||||||
- choose:
|
# - choose:
|
||||||
- conditions:
|
# - conditions:
|
||||||
- "{{is_state('binary_sensor.dreambox_recently_active','on') }}"
|
# - "{{is_state('binary_sensor.dreambox_recently_active','on') }}"
|
||||||
|
|
||||||
sequence:
|
# sequence:
|
||||||
- action: notify.dreambox
|
# - action: notify.dreambox
|
||||||
data:
|
# data:
|
||||||
message: The dishwasher is done
|
# message: The dishwasher is done
|
||||||
|
|
||||||
- choose:
|
# - choose:
|
||||||
- conditions:
|
# - conditions:
|
||||||
- "{{is_state('binary_sensor.dreamsurface_recently_active','on') }}"
|
# - "{{is_state('binary_sensor.dreamsurface_recently_active','on') }}"
|
||||||
|
|
||||||
sequence:
|
# sequence:
|
||||||
- action: notify.dreamsurface
|
# - action: notify.dreamsurface
|
||||||
data:
|
# data:
|
||||||
message: The dishwasher is done
|
# message: The dishwasher is done
|
||||||
|
|
||||||
- choose:
|
# - choose:
|
||||||
- conditions:
|
# - conditions:
|
||||||
- condition: state
|
# - condition: state
|
||||||
entity_id: input_boolean.clint_home
|
# entity_id: input_boolean.clint_home
|
||||||
state: "off"
|
# state: "off"
|
||||||
|
|
||||||
sequence:
|
# sequence:
|
||||||
- action: notify.mobile_app_pixel_7
|
# - action: notify.mobile_app_pixel_10_pro
|
||||||
data:
|
# data:
|
||||||
message: The dishwasher is done
|
# message: The dishwasher is done
|
||||||
data:
|
# data:
|
||||||
tag: "dishwasher-complete"
|
# tag: "dishwasher-complete"
|
||||||
notification_icon: mdi:dishwasher-alert
|
# notification_icon: mdi:dishwasher-alert
|
||||||
channel: Appliance
|
# channel: Appliance
|
||||||
|
|
||||||
- delay:
|
# - delay:
|
||||||
minutes: 30
|
# minutes: 30
|
||||||
|
|
||||||
- action: input_boolean.turn_off
|
# - action: input_boolean.turn_off
|
||||||
data: {}
|
# data: {}
|
||||||
target:
|
# target:
|
||||||
entity_id:
|
# entity_id:
|
||||||
- input_boolean.announce_dishwasher_done
|
# - input_boolean.announce_dishwasher_done
|
||||||
|
|||||||
@@ -14,6 +14,12 @@ trigger:
|
|||||||
from: "on"
|
from: "on"
|
||||||
to: "off"
|
to: "off"
|
||||||
|
|
||||||
|
- platform: state
|
||||||
|
id: evening
|
||||||
|
entity_id: binary_sensor.evening
|
||||||
|
from: "off"
|
||||||
|
to: "on"
|
||||||
|
|
||||||
# condition:
|
# condition:
|
||||||
# - alias: "The home is occupied"
|
# - alias: "The home is occupied"
|
||||||
# condition: state
|
# condition: state
|
||||||
@@ -46,3 +52,13 @@ action:
|
|||||||
data: {}
|
data: {}
|
||||||
target:
|
target:
|
||||||
entity_id: button.dreamsurface_normal_brightness
|
entity_id: button.dreamsurface_normal_brightness
|
||||||
|
|
||||||
|
- conditions:
|
||||||
|
- condition: trigger
|
||||||
|
id: evening
|
||||||
|
|
||||||
|
sequence:
|
||||||
|
- action: button.press
|
||||||
|
data: {}
|
||||||
|
target:
|
||||||
|
entity_id: button.dreamsurface_dim_brightness
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ max_exceeded: silent
|
|||||||
variables:
|
variables:
|
||||||
# Map scanner device ID to media player entity ID
|
# Map scanner device ID to media player entity ID
|
||||||
sources:
|
sources:
|
||||||
299e280bcc3579ca9b3ef714677dbf9b: girls_room_hub
|
299e280bcc3579ca9b3ef714677dbf9b: girls_room_clock
|
||||||
75060fd1afdd90be: upstairs_speakers
|
75060fd1afdd90be: upstairs_speakers
|
||||||
# Map tag ID to content
|
# Map tag ID to content
|
||||||
tags:
|
tags:
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ max_exceeded: silent
|
|||||||
variables:
|
variables:
|
||||||
# Map scanner device ID to media player entity ID
|
# Map scanner device ID to media player entity ID
|
||||||
sources:
|
sources:
|
||||||
299e280bcc3579ca9b3ef714677dbf9b: girls_room_hub
|
299e280bcc3579ca9b3ef714677dbf9b: girls_room_clock
|
||||||
75060fd1afdd90be: front_room_hub
|
75060fd1afdd90be: front_room_hub
|
||||||
# Map tag ID to content
|
# Map tag ID to content
|
||||||
tags:
|
tags:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ max_exceeded: silent
|
|||||||
variables:
|
variables:
|
||||||
# Map scanner device ID to media player entity ID
|
# Map scanner device ID to media player entity ID
|
||||||
devices:
|
devices:
|
||||||
299e280bcc3579ca9b3ef714677dbf9b: media_player.girls_room_hub
|
299e280bcc3579ca9b3ef714677dbf9b: media_player.girls_room_clock
|
||||||
|
|
||||||
# Map tag ID to content
|
# Map tag ID to content
|
||||||
tags:
|
tags:
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ action:
|
|||||||
state: "off"
|
state: "off"
|
||||||
|
|
||||||
sequence:
|
sequence:
|
||||||
- action: notify.mobile_app_pixel_7
|
- action: notify.mobile_app_pixel_10_pro
|
||||||
data:
|
data:
|
||||||
message: The kitchen fridge has been open for too long!
|
message: The kitchen fridge has been open for too long!
|
||||||
|
|
||||||
|
|||||||
@@ -6,12 +6,12 @@ id: automation_new_mail
|
|||||||
trigger:
|
trigger:
|
||||||
- id: new_mail
|
- id: new_mail
|
||||||
platform: numeric_state
|
platform: numeric_state
|
||||||
entity_id: sensor.mail_usps_mail
|
entity_id: sensor.imap_gmail_com_mail_usps_mail
|
||||||
above: 0
|
above: 0
|
||||||
|
|
||||||
- id: no_mail
|
- id: no_mail
|
||||||
platform: numeric_state
|
platform: numeric_state
|
||||||
entity_id: sensor.mail_usps_mail
|
entity_id: sensor.imap_gmail_com_mail_usps_mail
|
||||||
below: 1
|
below: 1
|
||||||
|
|
||||||
- platform: homeassistant
|
- platform: homeassistant
|
||||||
@@ -24,7 +24,7 @@ action:
|
|||||||
- choose:
|
- choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: numeric_state
|
- condition: numeric_state
|
||||||
entity_id: sensor.mail_usps_mail
|
entity_id: sensor.imap_gmail_com_mail_usps_mail
|
||||||
above: 0
|
above: 0
|
||||||
|
|
||||||
sequence:
|
sequence:
|
||||||
@@ -34,7 +34,7 @@ action:
|
|||||||
|
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: numeric_state
|
- condition: numeric_state
|
||||||
entity_id: sensor.mail_usps_mail
|
entity_id: sensor.imap_gmail_com_mail_usps_mail
|
||||||
below: 1
|
below: 1
|
||||||
|
|
||||||
sequence:
|
sequence:
|
||||||
|
|||||||
@@ -20,8 +20,29 @@ action:
|
|||||||
target:
|
target:
|
||||||
entity_id: climate.thermostat
|
entity_id: climate.thermostat
|
||||||
|
|
||||||
|
- choose:
|
||||||
|
- conditions:
|
||||||
|
- condition: state
|
||||||
|
entity_id: input_boolean.home_occupied
|
||||||
|
state: "on"
|
||||||
|
|
||||||
|
sequence:
|
||||||
- action: climate.set_preset_mode
|
- action: climate.set_preset_mode
|
||||||
target:
|
target:
|
||||||
entity_id: climate.thermostat
|
entity_id: climate.thermostat
|
||||||
data:
|
data:
|
||||||
preset_mode: "auto"
|
preset_mode: "home"
|
||||||
|
|
||||||
|
- conditions:
|
||||||
|
- condition: state
|
||||||
|
entity_id: input_boolean.home_occupied
|
||||||
|
state: "off"
|
||||||
|
|
||||||
|
sequence:
|
||||||
|
- action: climate.set_preset_mode
|
||||||
|
target:
|
||||||
|
entity_id: climate.thermostat
|
||||||
|
data:
|
||||||
|
preset_mode: "away"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,111 +0,0 @@
|
|||||||
alias: Tumble Dryer Done
|
|
||||||
id: tumble_dryer_done
|
|
||||||
description: "Dryer just finished"
|
|
||||||
trigger:
|
|
||||||
- platform: state
|
|
||||||
entity_id: input_boolean.fold_clothes
|
|
||||||
from: "off"
|
|
||||||
to: "on"
|
|
||||||
|
|
||||||
- platform: homeassistant
|
|
||||||
event: start
|
|
||||||
|
|
||||||
condition:
|
|
||||||
- alias: "The home is occupied"
|
|
||||||
condition: state
|
|
||||||
entity_id: input_boolean.home_occupied
|
|
||||||
state: "on"
|
|
||||||
|
|
||||||
- alias: "Its not bedtime"
|
|
||||||
condition: state
|
|
||||||
entity_id: input_boolean.bedtime
|
|
||||||
state: "off"
|
|
||||||
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.allow_announcements
|
|
||||||
state: "on"
|
|
||||||
|
|
||||||
action:
|
|
||||||
- repeat:
|
|
||||||
while: "{{ is_state('input_boolean.fold_clothes','on') }}"
|
|
||||||
sequence:
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.clint_home
|
|
||||||
state: "on"
|
|
||||||
- condition: state
|
|
||||||
entity_id: binary_sensor.utility_room_occupied
|
|
||||||
state: "off"
|
|
||||||
- condition: not
|
|
||||||
conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: sensor.pixel_7_audio_mode
|
|
||||||
state: in_communication
|
|
||||||
- condition: state
|
|
||||||
entity_id: sensor.pixel_7_audio_mode
|
|
||||||
state: in_call
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.kids_bedtime
|
|
||||||
state: "on"
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.bedtime
|
|
||||||
state: "on"
|
|
||||||
# - condition: state
|
|
||||||
# entity_id: input_boolean.announcement_pending
|
|
||||||
# state: 'on'
|
|
||||||
|
|
||||||
sequence:
|
|
||||||
- action: input_boolean.turn_off
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- input_boolean.announce_dryer_done
|
|
||||||
- action: input_boolean.turn_on
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- input_boolean.announce_dryer_done
|
|
||||||
# - input_boolean.announcement_pending
|
|
||||||
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- "{{ is_state('binary_sensor.dreambox_recently_active','on') }}"
|
|
||||||
|
|
||||||
sequence:
|
|
||||||
- action: notify.dreambox
|
|
||||||
data:
|
|
||||||
message: The dryer is done
|
|
||||||
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- "{{ is_state('binary_sensor.dreamsurface_recently_active','on') }}"
|
|
||||||
|
|
||||||
sequence:
|
|
||||||
- action: notify.dreamsurface
|
|
||||||
data:
|
|
||||||
message: The dryer is done
|
|
||||||
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.clint_home
|
|
||||||
state: "off"
|
|
||||||
|
|
||||||
sequence:
|
|
||||||
- action: notify.mobile_app_pixel_7
|
|
||||||
data:
|
|
||||||
message: The dryer is done
|
|
||||||
data:
|
|
||||||
tag: "dryer-complete"
|
|
||||||
notification_icon: mdi:tumble-dryer-alert
|
|
||||||
channel: Appliance
|
|
||||||
|
|
||||||
- delay:
|
|
||||||
minutes: 15
|
|
||||||
|
|
||||||
- action: input_boolean.turn_off
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- input_boolean.announce_dryer_done
|
|
||||||
@@ -1,111 +0,0 @@
|
|||||||
alias: Washing Machine Done
|
|
||||||
id: washing_machine_done
|
|
||||||
description: "Washing machine just finished"
|
|
||||||
trigger:
|
|
||||||
- platform: state
|
|
||||||
entity_id: input_boolean.swap_laundry
|
|
||||||
from: "off"
|
|
||||||
to: "on"
|
|
||||||
|
|
||||||
- platform: homeassistant
|
|
||||||
event: start
|
|
||||||
|
|
||||||
condition:
|
|
||||||
- alias: "The home is occupied"
|
|
||||||
condition: state
|
|
||||||
entity_id: input_boolean.home_occupied
|
|
||||||
state: "on"
|
|
||||||
|
|
||||||
- alias: "Its not bedtime"
|
|
||||||
condition: state
|
|
||||||
entity_id: input_boolean.bedtime
|
|
||||||
state: "off"
|
|
||||||
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.allow_announcements
|
|
||||||
state: "on"
|
|
||||||
|
|
||||||
action:
|
|
||||||
- repeat:
|
|
||||||
while: "{{ is_state('input_boolean.swap_laundry','on') }}"
|
|
||||||
sequence:
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.clint_home
|
|
||||||
state: "on"
|
|
||||||
- condition: state
|
|
||||||
entity_id: binary_sensor.utility_room_occupied
|
|
||||||
state: "off"
|
|
||||||
- condition: not
|
|
||||||
conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: sensor.pixel_7_audio_mode
|
|
||||||
state: in_communication
|
|
||||||
- condition: state
|
|
||||||
entity_id: sensor.pixel_7_audio_mode
|
|
||||||
state: in_call
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.kids_bedtime
|
|
||||||
state: "on"
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.bedtime
|
|
||||||
state: "on"
|
|
||||||
# - condition: state
|
|
||||||
# entity_id: input_boolean.announcement_pending
|
|
||||||
# state: 'on'
|
|
||||||
|
|
||||||
sequence:
|
|
||||||
- action: input_boolean.turn_off
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- input_boolean.announce_washing_machine_done
|
|
||||||
- action: input_boolean.turn_on
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- input_boolean.announce_washing_machine_done
|
|
||||||
# - input_boolean.announcement_pending
|
|
||||||
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- "{{is_state('binary_sensor.dreambox_recently_active','on') }}"
|
|
||||||
|
|
||||||
sequence:
|
|
||||||
- action: notify.dreambox
|
|
||||||
data:
|
|
||||||
message: The washing machine is done
|
|
||||||
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- "{{is_state('binary_sensor.dreamsurface_recently_active','on') }}"
|
|
||||||
|
|
||||||
sequence:
|
|
||||||
- action: notify.dreamsurface
|
|
||||||
data:
|
|
||||||
message: The washing machine is done
|
|
||||||
|
|
||||||
- choose:
|
|
||||||
- conditions:
|
|
||||||
- condition: state
|
|
||||||
entity_id: input_boolean.clint_home
|
|
||||||
state: "off"
|
|
||||||
|
|
||||||
sequence:
|
|
||||||
- action: notify.mobile_app_pixel_7
|
|
||||||
data:
|
|
||||||
message: The washing machine is done
|
|
||||||
data:
|
|
||||||
tag: "washing-machine-complete"
|
|
||||||
notification_icon: mdi:washing-machine-alert
|
|
||||||
channel: Appliance
|
|
||||||
|
|
||||||
- delay:
|
|
||||||
minutes: 15
|
|
||||||
|
|
||||||
- action: input_boolean.turn_off
|
|
||||||
data: {}
|
|
||||||
target:
|
|
||||||
entity_id:
|
|
||||||
- input_boolean.announce_washing_machine_done
|
|
||||||
@@ -0,0 +1,442 @@
|
|||||||
|
blueprint:
|
||||||
|
name: Party Lights
|
||||||
|
author: AntonH
|
||||||
|
homeassistant:
|
||||||
|
min_version: 2024.10.0
|
||||||
|
description: '**Version 3.2**
|
||||||
|
|
||||||
|
|
||||||
|
Lights go to party mode (color loops or fade-in-and-out)
|
||||||
|
|
||||||
|
|
||||||
|
⚠️ **NOTE:** ⚠️
|
||||||
|
|
||||||
|
*This automation is triggered by the status of a switch or an input_boolean entity.*
|
||||||
|
|
||||||
|
*You can create this input_boolean by going to Settings > Devices & services >
|
||||||
|
Helpers*
|
||||||
|
|
||||||
|
*There you click on ''Create helper and choose ''Toggle''.*
|
||||||
|
|
||||||
|
'
|
||||||
|
source_url: https://gist.github.com/Twanne/fe33ab8466f9a4e94b3f8e21f745a377
|
||||||
|
domain: automation
|
||||||
|
input:
|
||||||
|
party_mode_trigger:
|
||||||
|
name: Party mode trigger
|
||||||
|
description: "The trigger you want to use to turn the party mode on.\nThe automation
|
||||||
|
will keep running until this is turned off.\nSupported entity types:\n -
|
||||||
|
input_boolean\n - switch\n"
|
||||||
|
default: []
|
||||||
|
selector:
|
||||||
|
entity:
|
||||||
|
filter:
|
||||||
|
- domain:
|
||||||
|
- input_boolean
|
||||||
|
- switch
|
||||||
|
reorder: false
|
||||||
|
multiple: false
|
||||||
|
target_lights:
|
||||||
|
name: Target lights
|
||||||
|
description: Which lights do you want to control?
|
||||||
|
selector:
|
||||||
|
entity:
|
||||||
|
multiple: true
|
||||||
|
filter:
|
||||||
|
- domain:
|
||||||
|
- light
|
||||||
|
reorder: false
|
||||||
|
input_sync_lights:
|
||||||
|
name: Synchronize lights
|
||||||
|
description: 'If more than 1 target light is selected, choose if they will all
|
||||||
|
change to the same state or if they each get their own random values.
|
||||||
|
|
||||||
|
`ℹ️ Light groups will be seen an a single entity.`
|
||||||
|
|
||||||
|
'
|
||||||
|
default: true
|
||||||
|
selector:
|
||||||
|
boolean: {}
|
||||||
|
time_between_changes:
|
||||||
|
name: Time between changes
|
||||||
|
description: Change the lights setting after this duration
|
||||||
|
default:
|
||||||
|
hours: 0
|
||||||
|
minutes: 0
|
||||||
|
seconds: 0
|
||||||
|
milliseconds: 0
|
||||||
|
selector:
|
||||||
|
duration:
|
||||||
|
enable_millisecond: true
|
||||||
|
transition_time:
|
||||||
|
name: Transition time
|
||||||
|
description: 'The time it takes for the light to transition to the assigned
|
||||||
|
value when it''s triggered.
|
||||||
|
|
||||||
|
`⚠️ This value should not be greater than the time between changes!`
|
||||||
|
|
||||||
|
'
|
||||||
|
default: 0
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 0.0
|
||||||
|
max: 300.0
|
||||||
|
step: 1.0
|
||||||
|
unit_of_measurement: s
|
||||||
|
mode: slider
|
||||||
|
color_mode:
|
||||||
|
name: Color mode
|
||||||
|
description: "Select how the lights need to change\n \n 1. ⬛ **NO COLOR CHANGE:**\n
|
||||||
|
\ Don't change colors.\n 2. \U0001F500 **RANDOM COLOR MODE:**\n Change all
|
||||||
|
RGB values randomly.\n 3. \U0001F308 **SATURATED COLOR MODE**\n Random,
|
||||||
|
but deeply saturated, colors only.\n 4. \U0001F384 **CHRISTMAS COLORS:**\n
|
||||||
|
\ Change only between Christmas colors.\n 5. \U0001F6A8 **POLICE LIGHTS**\n
|
||||||
|
\ Change between red and blue.\n `⚠️ Lights will be synchronized!`\n 6.
|
||||||
|
\U0001F7E5 **REDS ONLY MODE:**\n Change only red value randomly.\n 7. \U0001F7E9
|
||||||
|
**GREENS ONLY MODE:**\n Change only green value randomly.\n 8. \U0001F7E6
|
||||||
|
**BLUES ONLY MODE:**\n Change only blue value randomly.\n 9. \U0001F7E6
|
||||||
|
**TEALS ONLY MODE:**\n Change only teal shades randomly.\n 10. \U0001F338
|
||||||
|
**PINKS ONLY MODE:**\n Change only pink shades randomly.\n 11. \U0001F7E8
|
||||||
|
**YELLOWS ONLY MODE:**\n Change only yellow shades randomly.\n"
|
||||||
|
default: no_color_change
|
||||||
|
selector:
|
||||||
|
select:
|
||||||
|
mode: dropdown
|
||||||
|
options:
|
||||||
|
- label: NO COLOR CHANGE
|
||||||
|
value: no_color_change
|
||||||
|
- label: RANDOM COLOR MODE
|
||||||
|
value: random
|
||||||
|
- label: SATURATED COLOR MODE
|
||||||
|
value: deep
|
||||||
|
- label: CHRISTMAS COLORS
|
||||||
|
value: christmas
|
||||||
|
- label: POLICE LIGHTS
|
||||||
|
value: police
|
||||||
|
- label: REDS ONLY MODE
|
||||||
|
value: red
|
||||||
|
- label: GREENS ONLY MODE
|
||||||
|
value: green
|
||||||
|
- label: BLUES ONLY MODE
|
||||||
|
value: blue
|
||||||
|
- label: TEALS ONLY MODE
|
||||||
|
value: teal
|
||||||
|
- label: PINKS ONLY MODE
|
||||||
|
value: pink
|
||||||
|
- label: YELLOWS ONLY MODE
|
||||||
|
value: yellow
|
||||||
|
multiple: false
|
||||||
|
custom_value: false
|
||||||
|
sort: false
|
||||||
|
brightness_mode:
|
||||||
|
name: Brightness mode
|
||||||
|
description: "Select how the lights need to change\n 1. **RANDOM BRIGHTNESS:**\n
|
||||||
|
\ Change the brightness randomly within a set range\n \n 2. **FIXED BRIGHTNESS:**\n
|
||||||
|
\ Keep the light at a user defined brightness\n"
|
||||||
|
default: random
|
||||||
|
selector:
|
||||||
|
select:
|
||||||
|
mode: dropdown
|
||||||
|
options:
|
||||||
|
- label: RANDOM BRIGHTNESS
|
||||||
|
value: random
|
||||||
|
- label: FIXED BRIGHTNESS
|
||||||
|
value: fixed
|
||||||
|
multiple: false
|
||||||
|
custom_value: false
|
||||||
|
sort: false
|
||||||
|
random_brightness_section:
|
||||||
|
name: Settings for RANDOM BRIGHTNESS
|
||||||
|
icon: mdi:brightness-auto
|
||||||
|
collapsed: true
|
||||||
|
input:
|
||||||
|
min_brightness_pct:
|
||||||
|
name: Minimum brightness (RANDOM BRIGHTNESS MODE)
|
||||||
|
description: Don't set the brightness of the light below this value
|
||||||
|
default: 0
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 0.0
|
||||||
|
max: 100.0
|
||||||
|
step: 1.0
|
||||||
|
mode: slider
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
max_brightness_pct:
|
||||||
|
name: Maximum brightness (RANDOM BRIGHTNESS MODE)
|
||||||
|
description: Don't set the brightness of the light above this value
|
||||||
|
default: 100
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 0.0
|
||||||
|
max: 100.0
|
||||||
|
step: 1.0
|
||||||
|
mode: slider
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
fixed_brightness_section:
|
||||||
|
name: Settings for FIXED BRIGHTNESS
|
||||||
|
icon: mdi:brightness-percent
|
||||||
|
collapsed: true
|
||||||
|
input:
|
||||||
|
fixed_brightness_pct:
|
||||||
|
name: Brightness (FIXED BRIGHTNESS MODE)
|
||||||
|
description: Keep the light at this percentage (color changes might affect
|
||||||
|
this somewhat)
|
||||||
|
default: 0
|
||||||
|
selector:
|
||||||
|
number:
|
||||||
|
min: 0.0
|
||||||
|
max: 100.0
|
||||||
|
step: 1.0
|
||||||
|
mode: slider
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
light_effects_section:
|
||||||
|
name: Light Effects
|
||||||
|
icon: mdi:creation-outline
|
||||||
|
collapsed: true
|
||||||
|
input:
|
||||||
|
light_effect:
|
||||||
|
name: Effects (All modes)
|
||||||
|
description: 'Which light effect do you want to run?
|
||||||
|
|
||||||
|
`ℹ️ Recommended to set the time between changes long enough for the effects
|
||||||
|
to loop at least once.`
|
||||||
|
|
||||||
|
'
|
||||||
|
default: ''
|
||||||
|
selector:
|
||||||
|
text:
|
||||||
|
multiple: false
|
||||||
|
multiline: false
|
||||||
|
turn_off_settings_section:
|
||||||
|
name: Turn off settings
|
||||||
|
icon: mdi:cog-stop-outline
|
||||||
|
collapsed: true
|
||||||
|
input:
|
||||||
|
turn_off_delay:
|
||||||
|
name: Turn off delay
|
||||||
|
description: 'The time to wait before the automation is turned off and the
|
||||||
|
After Party State becomes active.
|
||||||
|
|
||||||
|
'
|
||||||
|
default:
|
||||||
|
hours: 0
|
||||||
|
minutes: 0
|
||||||
|
seconds: 0
|
||||||
|
selector:
|
||||||
|
duration: {}
|
||||||
|
after_party_state:
|
||||||
|
name: After party state
|
||||||
|
description: "What state should the lights have when the party mode is turned
|
||||||
|
off.\n \n 1. **NO CHANGE:**\n Keep the lights in the state they are
|
||||||
|
at the end of the party.\n 2. **TURN OFF:**\n Turn the lights off.\n
|
||||||
|
\ 3. **RETURN TO PREVIOUS STATE:**\n Return the lights to the state they
|
||||||
|
were before the party began.\n 4. **USER DEFINED SCENE:**\n Activate
|
||||||
|
a scene that determines the state of the lights after the party.\n 5.
|
||||||
|
**SCENE THEN OFF**\n Set the lights to a specific setting by activating
|
||||||
|
the user defined scene, then turn them off.\n"
|
||||||
|
default: return_to_previous
|
||||||
|
selector:
|
||||||
|
select:
|
||||||
|
mode: dropdown
|
||||||
|
options:
|
||||||
|
- label: NO CHANGE
|
||||||
|
value: no_change
|
||||||
|
- label: LIGHTS OFF
|
||||||
|
value: lights_off
|
||||||
|
- label: RETURN TO PREVIOUS STATE
|
||||||
|
value: return_to_previous
|
||||||
|
- label: USER DEFINED SCENE
|
||||||
|
value: user_defined_scene
|
||||||
|
- label: SCENE THEN OFF
|
||||||
|
value: scene_then_off
|
||||||
|
multiple: false
|
||||||
|
custom_value: false
|
||||||
|
sort: false
|
||||||
|
after_party_scene:
|
||||||
|
name: After party scene
|
||||||
|
description: 'User defined scene that can be activated after the party mode
|
||||||
|
is turned off.
|
||||||
|
|
||||||
|
'
|
||||||
|
default: []
|
||||||
|
selector:
|
||||||
|
entity:
|
||||||
|
filter:
|
||||||
|
- domain:
|
||||||
|
- scene
|
||||||
|
reorder: false
|
||||||
|
multiple: false
|
||||||
|
mode: restart
|
||||||
|
variables:
|
||||||
|
party_mode_trigger: !input party_mode_trigger
|
||||||
|
target_lights: !input target_lights
|
||||||
|
time_between_changes: !input time_between_changes
|
||||||
|
transition_time: !input transition_time
|
||||||
|
color_mode: !input color_mode
|
||||||
|
brightness_mode: !input brightness_mode
|
||||||
|
min_brightness_pct: !input min_brightness_pct
|
||||||
|
max_brightness_pct: !input max_brightness_pct
|
||||||
|
fixed_brightness_pct: !input fixed_brightness_pct
|
||||||
|
light_effect: !input light_effect
|
||||||
|
after_party_state: !input after_party_state
|
||||||
|
after_party_scene: !input after_party_scene
|
||||||
|
turn_off_delay: !input turn_off_delay
|
||||||
|
input_sync_lights: !input input_sync_lights
|
||||||
|
sync_lights: '{{ true if color_mode == "police" else input_sync_lights }}
|
||||||
|
|
||||||
|
'
|
||||||
|
triggers:
|
||||||
|
- trigger: state
|
||||||
|
entity_id: !input party_mode_trigger
|
||||||
|
to: 'on'
|
||||||
|
actions:
|
||||||
|
- action: scene.create
|
||||||
|
metadata: {}
|
||||||
|
data:
|
||||||
|
scene_id: before_state
|
||||||
|
snapshot_entities: '{{ target_lights }}'
|
||||||
|
- repeat:
|
||||||
|
sequence:
|
||||||
|
- choose:
|
||||||
|
- conditions: '{{ sync_lights is true }}'
|
||||||
|
sequence:
|
||||||
|
- variables:
|
||||||
|
brightness_value: "{% if brightness_mode == \"random\" %}\n {{ range(min_brightness_pct,
|
||||||
|
max_brightness_pct) | random }}\n{% else %}\n {{ fixed_brightness_pct
|
||||||
|
}}\n{% endif %}\n"
|
||||||
|
rgb_value: "{% if color_mode == \"random\" %}\n {{ range(256) | random,
|
||||||
|
range(256) | random, range(256) | random }}\n{% elif color_mode == \"deep\"
|
||||||
|
%}\n {% set r = range(256) |random %}\n {% set g = range(256) |random
|
||||||
|
%}\n {% set b = range(256) |random %}\n {# check if all values aren't
|
||||||
|
too high. This will mute the colors as they will go towards white. #}\n
|
||||||
|
\ {% if ( r >= 200 and g >= 200 and b >= 200) %}\n {% set rgb_changer
|
||||||
|
= range(3) | random %}\n \n {% if rgb_changer == 0 %}\n {{
|
||||||
|
(r - 100), g, b }}\n {% elif rgb_changer == 1 %}\n {{ r, (g
|
||||||
|
- 100), b }}\n {% elif rgb_changer == 2 %}\n {{ r, g, (b - 100)
|
||||||
|
}}\n {% endif %} \n \n {# check if all values aren't too close
|
||||||
|
together. This will mute the colors because they will form a grey color.
|
||||||
|
#}\n {% elif ( (r - g)|abs <= 100 and (g - b)|abs <= 100 and (b - r)|abs
|
||||||
|
<= 100 ) %}\n {% set rgb_changer = range(3) | random %}\n {%
|
||||||
|
if rgb_changer == 0 %}\n {{ (r / 2)|int , g, b }}\n {% elif
|
||||||
|
rgb_changer == 1 %}\n {{ r, (g / 2)|int, b }}\n {% elif rgb_changer
|
||||||
|
== 2 %}\n {{ r, g, (b / 2)|int }}\n {% endif %}\n {% else %}\n
|
||||||
|
\ {{ r, g, b }}\n {% endif %}\n{% elif color_mode == \"christmas\"
|
||||||
|
%} \n {% macro random_rgb_component(max) %}\n {{ range(256) | random
|
||||||
|
}}\n {% endmacro %}\n {% macro get_color(color_key) %}\n {% if
|
||||||
|
color_key == 1 %}\n [{{ random_rgb_component(256) }}, 0, 0]\n {%
|
||||||
|
elif color_key == 2 %}\n [0, {{ random_rgb_component(256) }}, 0]\n
|
||||||
|
\ {% elif color_key == 3 %}\n [0, 0, {{ random_rgb_component(256)
|
||||||
|
}}]\n {% elif color_key == 4 %}\n [255, 255, {{ random_rgb_component(50)
|
||||||
|
}}]\n {% endif %}\n {% endmacro %}\n {% set color_key = range(1,
|
||||||
|
5) | random %}\n {% set random_color = get_color(color_key) %}\n {{
|
||||||
|
random_color }} \n{% elif color_mode == \"police\" %}\n {% if state_attr(
|
||||||
|
target_lights[0], 'rgb_color') | string == '(255, 0, 0)' %}\n [ 0,
|
||||||
|
0, 255 ]\n {% else %}\n [ 255, 0, 0 ]\n {% endif %}\n{% elif color_mode
|
||||||
|
== \"red\" %}\n {{ range(256) | random, 0, 0 }}\n{% elif color_mode
|
||||||
|
== \"green\" %}\n {{ 0, range(256) | random, 0 }}\n{% elif color_mode
|
||||||
|
== \"blue\" %}\n {{ 0, 0, range(256) | random }}\n{% elif color_mode
|
||||||
|
== \"teal\" %}\n {{ range(256) | random, 255, 255 }}\n{% elif color_mode
|
||||||
|
== \"pink\" %}\n {{ 255, range(256) | random, 255 }}\n{% elif color_mode
|
||||||
|
== \"yellow\" %}\n {{ 255, 255, range(256) | random }}\n{% else %}\n
|
||||||
|
\ {{ 255, 255, 255 }}\n{% endif %}\n"
|
||||||
|
- action: light.turn_on
|
||||||
|
data: "{% if light_effect == \"\" %}\n {% if color_mode == \"no_color_change\"
|
||||||
|
%}\n {{ { \"transition\": transition_time, \"brightness_pct\": brightness_value
|
||||||
|
} }}\n {% else %}\n {{ { \"transition\": transition_time, \"brightness_pct\":
|
||||||
|
brightness_value, \"rgb_color\": rgb_value } }}\n {% endif %}\n{% else
|
||||||
|
%}\n {% if color_mode == \"no_color_change\" %}\n {{ { \"transition\":
|
||||||
|
transition_time, \"brightness_pct\": brightness_value, \"effect\": light_effect
|
||||||
|
\ } }}\n {% else %}\n {{ { \"transition\": transition_time, \"brightness_pct\":
|
||||||
|
brightness_value, \"rgb_color\": rgb_value, \"effect\": light_effect }
|
||||||
|
}}\n {% endif %}\n{% endif %}\n"
|
||||||
|
target:
|
||||||
|
entity_id: '{{ target_lights }}'
|
||||||
|
- conditions: '{{ sync_lights is false }}'
|
||||||
|
sequence:
|
||||||
|
- repeat:
|
||||||
|
for_each: '{{ target_lights }}'
|
||||||
|
sequence:
|
||||||
|
- variables:
|
||||||
|
brightness_value: "{% if brightness_mode == \"random\" %}\n {{ range(min_brightness_pct,
|
||||||
|
max_brightness_pct) | random }}\n{% else %}\n {{ fixed_brightness_pct
|
||||||
|
}}\n{% endif %}\n"
|
||||||
|
rgb_value: "{% if color_mode == \"random\" %}\n {{ range(256) | random,
|
||||||
|
range(256) | random, range(256) | random }}\n{% elif color_mode
|
||||||
|
== \"deep\" %}\n {% set r = range(256) |random %}\n {% set g =
|
||||||
|
range(256) |random %}\n {% set b = range(256) |random %}\n {#
|
||||||
|
check if all values aren't too high. This will mute the colors as
|
||||||
|
they will go towards white. #}\n {% if ( r >= 200 and g >= 200
|
||||||
|
and b >= 200) %}\n {% set rgb_changer = range(3) | random %}\n
|
||||||
|
\ \n {% if rgb_changer == 0 %}\n {{ (r - 100), g, b }}\n
|
||||||
|
\ {% elif rgb_changer == 1 %}\n {{ r, (g - 100), b }}\n {%
|
||||||
|
elif rgb_changer == 2 %}\n {{ r, g, (b - 100) }}\n {% endif
|
||||||
|
%} \n \n {# check if all values aren't too close together.
|
||||||
|
This will mute the colors because they will form a grey color. #}\n
|
||||||
|
\ {% elif ( (r - g)|abs <= 100 and (g - b)|abs <= 100 and (b - r)|abs
|
||||||
|
<= 100 ) %}\n {% set rgb_changer = range(3) | random %}\n {%
|
||||||
|
if rgb_changer == 0 %}\n {{ (r / 2)|int , g, b }}\n {% elif
|
||||||
|
rgb_changer == 1 %}\n {{ r, (g / 2)|int, b }}\n {% elif
|
||||||
|
rgb_changer == 2 %}\n {{ r, g, (b / 2)|int }}\n {% endif
|
||||||
|
%}\n {% else %}\n {{ r, g, b }}\n {% endif %}\n{% elif color_mode
|
||||||
|
== \"christmas\" %} \n {% macro random_rgb_component(max) %}\n
|
||||||
|
\ {{ range(0, max) | random }}\n {% endmacro %}\n {% macro get_color(color_key)
|
||||||
|
%}\n {% if color_key == 1 %}\n [{{ random_rgb_component(256)
|
||||||
|
}}, 0, 0]\n {% elif color_key == 2 %}\n [0, {{ random_rgb_component(256)
|
||||||
|
}}, 0]\n {% elif color_key == 3 %}\n [0, 0, {{ random_rgb_component(256)
|
||||||
|
}}]\n {% elif color_key == 4 %}\n [255, 255, {{ random_rgb_component(50)
|
||||||
|
}}]\n {% endif %}\n {% endmacro %}\n {% set color_key = range(1,
|
||||||
|
5) | random %}\n {% set random_color = get_color(color_key) %}\n
|
||||||
|
\ {{ random_color }}\n{% elif color_mode == \"red\" %}\n {{ range(256)
|
||||||
|
| random, 0, 0 }}\n{% elif color_mode == \"green\" %}\n {{ 0, range(256)
|
||||||
|
| random, 0 }}\n{% elif color_mode == \"blue\" %}\n {{ 0, 0, range(256)
|
||||||
|
| random }}\n{% elif color_mode == \"teal\" %}\n {{ range(256)
|
||||||
|
| random, 255, 255 }}\n{% elif color_mode == \"pink\" %}\n {{ 255,
|
||||||
|
range(256) | random, 255 }}\n{% elif color_mode == \"yellow\" %}\n
|
||||||
|
\ {{ 255, 255, range(256) | random }}\n{% else %}\n {{ 255, 255,
|
||||||
|
255 }}\n{% endif %}\n"
|
||||||
|
- action: light.turn_on
|
||||||
|
data: "{% if light_effect == \"\" %}\n {% if color_mode == \"no_color_change\"
|
||||||
|
%}\n {{ { \"transition\": transition_time, \"brightness_pct\":
|
||||||
|
brightness_value } }}\n {% else %}\n {{ { \"transition\": transition_time,
|
||||||
|
\"brightness_pct\": brightness_value, \"rgb_color\": rgb_value } }}\n
|
||||||
|
\ {% endif %}\n{% else %}\n {% if color_mode == \"no_color_change\"
|
||||||
|
%}\n {{ { \"transition\": transition_time, \"brightness_pct\":
|
||||||
|
brightness_value, \"effect\": light_effect } }}\n {% else %}\n {{
|
||||||
|
{ \"transition\": transition_time, \"brightness_pct\": brightness_value,
|
||||||
|
\"rgb_color\": rgb_value, \"effect\": light_effect } }}\n {% endif
|
||||||
|
%}\n{% endif %}\n"
|
||||||
|
target:
|
||||||
|
entity_id: '{{ repeat.item }}'
|
||||||
|
- delay: !input time_between_changes
|
||||||
|
until:
|
||||||
|
- condition: state
|
||||||
|
entity_id: !input party_mode_trigger
|
||||||
|
state: 'off'
|
||||||
|
- delay: !input turn_off_delay
|
||||||
|
- choose:
|
||||||
|
- conditions: '{{ "lights_off" in after_party_state }}'
|
||||||
|
sequence:
|
||||||
|
- action: light.turn_off
|
||||||
|
target:
|
||||||
|
entity_id: '{{ target_lights }}'
|
||||||
|
- conditions: '{{ "return_to_previous" in after_party_state }}'
|
||||||
|
sequence:
|
||||||
|
- action: scene.turn_on
|
||||||
|
metadata: {}
|
||||||
|
target:
|
||||||
|
entity_id: scene.before_state
|
||||||
|
- conditions: '{{ "user_defined_scene" in after_party_state }}'
|
||||||
|
sequence:
|
||||||
|
- action: scene.turn_on
|
||||||
|
metadata: {}
|
||||||
|
target:
|
||||||
|
entity_id: '{{ after_party_scene }}'
|
||||||
|
- conditions: '{{ "scene_then_off" in after_party_state }}'
|
||||||
|
sequence:
|
||||||
|
- action: scene.turn_on
|
||||||
|
metadata: {}
|
||||||
|
target:
|
||||||
|
entity_id: '{{ after_party_scene }}'
|
||||||
|
- action: light.turn_off
|
||||||
|
target:
|
||||||
|
entity_id: '{{ target_lights }}'
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
# alias: "Adaptive Lights: Kitchen"
|
||||||
|
# description: ""
|
||||||
|
# triggers:
|
||||||
|
# - trigger: state
|
||||||
|
# entity_id:
|
||||||
|
# - binary_sensor.kitchen_motion
|
||||||
|
# - binary_sensor.kitchen_presence
|
||||||
|
# to:
|
||||||
|
# - "on"
|
||||||
|
# id: Motion or Presence
|
||||||
|
# alias: Motion or Presence
|
||||||
|
# - trigger: event
|
||||||
|
# event_type: timer.finished
|
||||||
|
# event_data:
|
||||||
|
# entity_id: timer.kitchen_lights
|
||||||
|
# id: Timer finished
|
||||||
|
# alias: Kitchen Lights Timer Finished
|
||||||
|
# conditions: []
|
||||||
|
# actions:
|
||||||
|
# - alias: Turn on the lights, start the timer, or turn off the lights?
|
||||||
|
# choose:
|
||||||
|
# - conditions:
|
||||||
|
# - condition: trigger
|
||||||
|
# id:
|
||||||
|
# - Motion or Presence
|
||||||
|
# sequence:
|
||||||
|
# - if:
|
||||||
|
# - condition: state
|
||||||
|
# entity_id: switch.adaptive_lighting_kitchen_northern
|
||||||
|
# state:
|
||||||
|
# - "off"
|
||||||
|
# then:
|
||||||
|
# - action: switch.turn_on
|
||||||
|
# metadata: {}
|
||||||
|
# target:
|
||||||
|
# entity_id: switch.adaptive_lighting_kitchen_northern
|
||||||
|
# data: {}
|
||||||
|
# alias: Turn on the light, if needed
|
||||||
|
# - action: timer.start
|
||||||
|
# metadata: {}
|
||||||
|
# target:
|
||||||
|
# entity_id: timer.kitchen_lights
|
||||||
|
# data: {}
|
||||||
|
# alias: Occupancy with the lights off
|
||||||
|
# - conditions:
|
||||||
|
# - condition: trigger
|
||||||
|
# id:
|
||||||
|
# - Timer finished
|
||||||
|
# sequence:
|
||||||
|
# - action: switch.turn_off
|
||||||
|
# metadata: {}
|
||||||
|
# target:
|
||||||
|
# entity_id: switch.adaptive_lighting_kitchen_northern
|
||||||
|
# data: {}
|
||||||
|
# alias: Timer finished so turn off the lights
|
||||||
|
# mode: single
|
||||||
@@ -7,4 +7,4 @@ repeat:
|
|||||||
can_acknowledge: True
|
can_acknowledge: True
|
||||||
skip_first: false
|
skip_first: false
|
||||||
notifiers:
|
notifiers:
|
||||||
- mobile_app_pixel_7
|
- mobile_app_pixel_10_pro
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
name: "Dream-Frigate is unavailable"
|
||||||
|
done_message: "Dream-Frigate is now available"
|
||||||
|
entity_id: sensor.frigate_status
|
||||||
|
state: unavailable
|
||||||
|
repeat:
|
||||||
|
- 1
|
||||||
|
- 5
|
||||||
|
- 15
|
||||||
|
can_acknowledge: True
|
||||||
|
skip_first: true
|
||||||
|
notifiers:
|
||||||
|
- mobile_app_pixel_10_pro
|
||||||
@@ -9,4 +9,4 @@
|
|||||||
# can_acknowledge: True
|
# can_acknowledge: True
|
||||||
# skip_first: true
|
# skip_first: true
|
||||||
# notifiers:
|
# notifiers:
|
||||||
# - mobile_app_pixel_7
|
# - mobile_app_pixel_10_pro
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ repeat: 10
|
|||||||
can_acknowledge: True
|
can_acknowledge: True
|
||||||
skip_first: True
|
skip_first: True
|
||||||
notifiers:
|
notifiers:
|
||||||
- mobile_app_pixel_7
|
- mobile_app_pixel_10_pro
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ repeat: 10
|
|||||||
can_acknowledge: True
|
can_acknowledge: True
|
||||||
skip_first: True
|
skip_first: True
|
||||||
notifiers:
|
notifiers:
|
||||||
- mobile_app_pixel_7
|
- mobile_app_pixel_10_pro
|
||||||
|
|||||||
@@ -7,4 +7,4 @@
|
|||||||
# can_acknowledge: True
|
# can_acknowledge: True
|
||||||
# skip_first: false
|
# skip_first: false
|
||||||
# notifiers:
|
# notifiers:
|
||||||
# - mobile_app_pixel_7
|
# - mobile_app_pixel_10_pro
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# name: "The AC is probably broken again!"
|
# 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_multisensor_delta')}}"
|
# message: "It is {{states('sensor.front_porch_hue_motion_sensor_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_multisensor_delta')}}"
|
||||||
# done_message: "AC is now {{states('sensor.hvac_multisensor_delta')}}"
|
# done_message: "AC is now {{states('sensor.hvac_multisensor_delta')}}"
|
||||||
# entity_id: binary_sensor.hvac_multisensor_delta_too_small_for_too_long
|
# entity_id: binary_sensor.hvac_multisensor_delta_too_small_for_too_long
|
||||||
# state: "on"
|
# state: "on"
|
||||||
@@ -10,4 +10,4 @@
|
|||||||
# can_acknowledge: True
|
# can_acknowledge: True
|
||||||
# skip_first: true
|
# skip_first: true
|
||||||
# notifiers:
|
# notifiers:
|
||||||
# - mobile_app_pixel_7
|
# - mobile_app_pixel_10_pro
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ repeat:
|
|||||||
can_acknowledge: True
|
can_acknowledge: True
|
||||||
skip_first: false
|
skip_first: false
|
||||||
notifiers:
|
notifiers:
|
||||||
- mobile_app_pixel_7
|
- mobile_app_pixel_10_pro
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ repeat:
|
|||||||
can_acknowledge: True
|
can_acknowledge: True
|
||||||
skip_first: false
|
skip_first: false
|
||||||
notifiers:
|
notifiers:
|
||||||
- mobile_app_pixel_7
|
- mobile_app_pixel_10_pro
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ repeat:
|
|||||||
can_acknowledge: True
|
can_acknowledge: True
|
||||||
skip_first: true
|
skip_first: true
|
||||||
notifiers:
|
notifiers:
|
||||||
- mobile_app_pixel_7
|
- mobile_app_pixel_10_pro
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ repeat: 360
|
|||||||
can_acknowledge: True
|
can_acknowledge: True
|
||||||
skip_first: False
|
skip_first: False
|
||||||
notifiers:
|
notifiers:
|
||||||
- mobile_app_pixel_7
|
- mobile_app_pixel_10_pro
|
||||||
|
|||||||
@@ -1,31 +1,31 @@
|
|||||||
platform: 'bayesian'
|
platform: "bayesian"
|
||||||
name: 'Window Open HVAC On'
|
name: "Window Open HVAC On"
|
||||||
device_class: problem
|
device_class: problem
|
||||||
prior: 0
|
prior: 0
|
||||||
probability_threshold: 0.6
|
probability_threshold: 0.6
|
||||||
observations:
|
observations:
|
||||||
- entity_id: 'group.my_exterior_windows'
|
- entity_id: "group.my_exterior_windows"
|
||||||
prob_given_true: .5
|
prob_given_true: .5
|
||||||
prob_given_false: 0.01
|
prob_given_false: 0.01
|
||||||
platform: 'state'
|
platform: "state"
|
||||||
to_state: 'on'
|
to_state: "on"
|
||||||
- entity_id: 'group.my_exterior_doors'
|
- entity_id: "binary_sensor.exterior_doors"
|
||||||
prob_given_true: .5
|
prob_given_true: .5
|
||||||
prob_given_false: 0.01
|
prob_given_false: 0.01
|
||||||
platform: 'state'
|
platform: "state"
|
||||||
to_state: 'on'
|
to_state: "on"
|
||||||
- entity_id: sensor.hvac_action
|
- entity_id: sensor.hvac_action
|
||||||
prob_given_true: .5
|
prob_given_true: .5
|
||||||
prob_given_false: 0.01
|
prob_given_false: 0.01
|
||||||
platform: 'state'
|
platform: "state"
|
||||||
to_state: 'cooling'
|
to_state: "cooling"
|
||||||
- entity_id: sensor.hvac_action
|
- entity_id: sensor.hvac_action
|
||||||
prob_given_true: .5
|
prob_given_true: .5
|
||||||
prob_given_false: 0.01
|
prob_given_false: 0.01
|
||||||
platform: 'state'
|
platform: "state"
|
||||||
to_state: 'heating'
|
to_state: "heating"
|
||||||
- entity_id: sensor.hvac_action
|
- entity_id: sensor.hvac_action
|
||||||
prob_given_true: .01
|
prob_given_true: .01
|
||||||
prob_given_false: 0.01
|
prob_given_false: 0.01
|
||||||
platform: 'state'
|
platform: "state"
|
||||||
to_state: 'idle'
|
to_state: "idle"
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
platform: bayesian
|
# platform: bayesian
|
||||||
unique_id: bayesianbinarysensor.back_yard_occupied
|
# unique_id: bayesianbinarysensor.back_yard_occupied
|
||||||
name: Back Yard Occupied
|
# name: Back Yard Occupied
|
||||||
device_class: occupancy
|
# device_class: occupancy
|
||||||
prior: 0.25
|
# prior: 0.25
|
||||||
probability_threshold: 0.75
|
# probability_threshold: 0.75
|
||||||
observations:
|
# observations:
|
||||||
|
|
||||||
- entity_id: input_boolean.home_occupied
|
# - entity_id: input_boolean.home_occupied
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .01
|
# prob_given_true: .01
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
to_state: 'off'
|
# to_state: 'off'
|
||||||
|
|
||||||
- entity_id: group.back_yard_motion
|
# - entity_id: binary_sensor.back_yard_motion
|
||||||
prob_given_true: .9
|
# prob_given_true: .9
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|||||||
@@ -1,30 +1,30 @@
|
|||||||
platform: bayesian
|
# platform: bayesian
|
||||||
unique_id: bayesianbinarysensor.boys_room_occupied
|
# unique_id: bayesianbinarysensor.boys_room_occupied
|
||||||
name: Boys Room Occupied
|
# name: Boys Room Occupied
|
||||||
prior: 0.25
|
# prior: 0.25
|
||||||
probability_threshold: 0.75
|
# probability_threshold: 0.75
|
||||||
observations:
|
# observations:
|
||||||
|
|
||||||
- entity_id: binary_sensor.white_bed_occupied
|
# - entity_id: binary_sensor.white_bed_occupied
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .83
|
# prob_given_true: .83
|
||||||
prob_given_false: 0.0
|
# prob_given_false: 0.0
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: binary_sensor.boys_room_person_occupancy
|
# - entity_id: binary_sensor.boys_room_person_occupancy
|
||||||
prob_given_true: .4
|
# prob_given_true: .4
|
||||||
prob_given_false: 0.0
|
# prob_given_false: 0.0
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: input_boolean.home_occupied
|
# - entity_id: input_boolean.home_occupied
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .99
|
# prob_given_true: .99
|
||||||
prob_given_false: 0.67
|
# prob_given_false: 0.67
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: group.boys_room_motion
|
# - entity_id: binary_sensor.boys_room_motion
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .5
|
# prob_given_true: .5
|
||||||
prob_given_false: 0.0
|
# prob_given_false: 0.0
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|||||||
@@ -1,25 +1,19 @@
|
|||||||
platform: bayesian
|
# platform: bayesian
|
||||||
unique_id: bayesianbinarysensor.computer_area_occupied
|
# unique_id: bayesianbinarysensor.computer_area_occupied
|
||||||
name: Computer Area Occupied
|
# name: Computer Area Occupied
|
||||||
device_class: occupancy
|
# device_class: occupancy
|
||||||
prior: 0.25
|
# prior: 0.25
|
||||||
probability_threshold: 0.7
|
# probability_threshold: 0.7
|
||||||
observations:
|
# observations:
|
||||||
|
|
||||||
- entity_id: group.computer_area_motion
|
# - entity_id: binary_sensor.computer_area_motion
|
||||||
prob_given_true: .99
|
# prob_given_true: .99
|
||||||
prob_given_false: 0.5
|
# prob_given_false: 0.5
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
# - entity_id: binary_sensor.computer_chair_contact_occupied
|
# - entity_id: input_boolean.home_occupied
|
||||||
# prob_given_true: .99
|
# platform: state
|
||||||
# prob_given_false: 0.5
|
# prob_given_true: .7
|
||||||
# platform: state
|
# prob_given_false: 0.1
|
||||||
# to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: input_boolean.home_occupied
|
|
||||||
platform: state
|
|
||||||
prob_given_true: .7
|
|
||||||
prob_given_false: 0.1
|
|
||||||
to_state: 'on'
|
|
||||||
|
|||||||
@@ -1,25 +1,25 @@
|
|||||||
platform: bayesian
|
# platform: bayesian
|
||||||
unique_id: bayesianbinarysensor.dining_room_occupied
|
# unique_id: bayesianbinarysensor.dining_room_occupied
|
||||||
name: Dining Room Occupied
|
# name: Dining Room Occupied
|
||||||
device_class: occupancy
|
# device_class: occupancy
|
||||||
prior: 0.25
|
# prior: 0.25
|
||||||
probability_threshold: 0.7
|
# probability_threshold: 0.7
|
||||||
observations:
|
# observations:
|
||||||
|
|
||||||
- entity_id: group.dining_room_motion
|
# - entity_id: binary_sensor.dining_room_motion
|
||||||
prob_given_true: .99
|
# prob_given_true: .99
|
||||||
prob_given_false: .85
|
# prob_given_false: .85
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: binary_sensor.dining_room_person_occupancy
|
# - entity_id: binary_sensor.dining_room_person_occupancy
|
||||||
prob_given_true: .99
|
# prob_given_true: .99
|
||||||
prob_given_false: .85
|
# prob_given_false: .85
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: input_boolean.home_occupied
|
# - entity_id: input_boolean.home_occupied
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .99
|
# prob_given_true: .99
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|||||||
@@ -1,36 +1,36 @@
|
|||||||
platform: bayesian
|
# platform: bayesian
|
||||||
unique_id: bayesianbinarysensor.entryway_occupied
|
# unique_id: bayesianbinarysensor.entryway_occupied
|
||||||
name: Entryway Occupied
|
# name: Entryway Occupied
|
||||||
device_class: occupancy
|
# device_class: occupancy
|
||||||
prior: 0.02
|
# prior: 0.02
|
||||||
probability_threshold: 0.65
|
# probability_threshold: 0.65
|
||||||
observations:
|
# observations:
|
||||||
- entity_id: group.entryway_motion
|
# - entity_id: binary_sensor.entryway_motion
|
||||||
prob_given_true: 0.9
|
# prob_given_true: 0.9
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: input_boolean.home_occupied
|
# - entity_id: input_boolean.home_occupied
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .98
|
# prob_given_true: .98
|
||||||
prob_given_false: 0.85
|
# prob_given_false: 0.85
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: binary_sensor.entryway_person_occupancy
|
# - entity_id: binary_sensor.entryway_person_occupancy
|
||||||
prob_given_true: .02
|
# prob_given_true: .02
|
||||||
prob_given_false: 0.0
|
# prob_given_false: 0.0
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: binary_sensor.inner_garage_door_contact
|
# - entity_id: binary_sensor.inner_garage_door_contact
|
||||||
prob_given_true: 0.02
|
# prob_given_true: 0.02
|
||||||
prob_given_false: 0.0
|
# prob_given_false: 0.0
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: binary_sensor.front_door_contact
|
# - entity_id: binary_sensor.front_door_contact
|
||||||
prob_given_true: 0.02
|
# prob_given_true: 0.02
|
||||||
prob_given_false: 0.0
|
# prob_given_false: 0.0
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|||||||
@@ -1,37 +1,32 @@
|
|||||||
platform: bayesian
|
# platform: bayesian
|
||||||
unique_id: bayesianbinarysensor.front_room_occupied
|
# unique_id: bayesianbinarysensor.front_room_occupied
|
||||||
name: Front Room Occupied
|
# name: Front Room Occupied
|
||||||
device_class: occupancy
|
# device_class: occupancy
|
||||||
prior: 0.5
|
# prior: 0.5
|
||||||
probability_threshold: 0.75
|
# probability_threshold: 0.75
|
||||||
observations:
|
# observations:
|
||||||
|
|
||||||
- entity_id: group.front_room_motion
|
# - entity_id: binary_sensor.front_room_motion
|
||||||
prob_given_true: .75
|
# prob_given_true: .75
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: media_player.front_room_tv
|
# - entity_id: media_player.front_room_tv
|
||||||
prob_given_true: .9
|
# prob_given_true: .9
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'playing'
|
# to_state: 'playing'
|
||||||
|
|
||||||
- entity_id: media_player.front_room_tv
|
# - entity_id: media_player.front_room_tv
|
||||||
prob_given_true: .5
|
# prob_given_true: .5
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'home'
|
# to_state: 'home'
|
||||||
|
|
||||||
- entity_id: input_boolean.home_occupied
|
# - entity_id: input_boolean.home_occupied
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .01
|
# prob_given_true: .01
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
to_state: 'off'
|
# 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'
|
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
platform: bayesian
|
# platform: bayesian
|
||||||
unique_id: bayesianbinarysensor.front_yard_occupied
|
# unique_id: bayesianbinarysensor.front_yard_occupied
|
||||||
name: Front Yard Occupied
|
# name: Front Yard Occupied
|
||||||
device_class: occupancy
|
# device_class: occupancy
|
||||||
prior: 0.25
|
# prior: 0.25
|
||||||
probability_threshold: 0.75
|
# probability_threshold: 0.75
|
||||||
observations:
|
# observations:
|
||||||
|
|
||||||
- entity_id: input_boolean.home_occupied
|
# - entity_id: input_boolean.home_occupied
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .01
|
# prob_given_true: .01
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
to_state: 'off'
|
# to_state: 'off'
|
||||||
|
|
||||||
- entity_id: group.front_yard_motion
|
# - entity_id: binary_sensor.front_yard_motion
|
||||||
prob_given_true: .9
|
# prob_given_true: .9
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
platform: bayesian
|
# platform: bayesian
|
||||||
unique_id: bayesianbinarysensor.furnace_room_occupied
|
# unique_id: bayesianbinarysensor.furnace_room_occupied
|
||||||
name: Furnace Room Occupied
|
# name: Furnace Room Occupied
|
||||||
device_class: occupancy
|
# device_class: occupancy
|
||||||
prior: 0.2
|
# prior: 0.2
|
||||||
probability_threshold: 0.75
|
# probability_threshold: 0.75
|
||||||
observations:
|
# observations:
|
||||||
|
|
||||||
- entity_id: group.furnace_room_motion
|
# - entity_id: binary_sensor.furnace_room_motion
|
||||||
prob_given_true: .99
|
# prob_given_true: .99
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|||||||
@@ -1,67 +1,67 @@
|
|||||||
platform: bayesian
|
# platform: bayesian
|
||||||
unique_id: bayesianbinarysensor.garage_occupied
|
# unique_id: bayesianbinarysensor.garage_occupied
|
||||||
name: Garage Occupied
|
# name: Garage Occupied
|
||||||
device_class: occupancy
|
# device_class: occupancy
|
||||||
prior: 0.4
|
# prior: 0.4
|
||||||
probability_threshold: 0.6
|
# probability_threshold: 0.6
|
||||||
observations:
|
# observations:
|
||||||
|
|
||||||
- entity_id: group.garage_motion
|
# - entity_id: binary_sensor.garage_motion
|
||||||
prob_given_true: .8
|
# prob_given_true: .8
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: group.garage_motion
|
# - entity_id: binary_sensor.garage_motion
|
||||||
prob_given_true: .5
|
# prob_given_true: .5
|
||||||
prob_given_false: 0.5
|
# prob_given_false: 0.5
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'off'
|
# to_state: 'off'
|
||||||
|
|
||||||
- entity_id: cover.garage_door
|
# - entity_id: cover.garage_door
|
||||||
prob_given_true: .60
|
# prob_given_true: .60
|
||||||
prob_given_false: 0.5
|
# prob_given_false: 0.5
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'open'
|
# to_state: 'open'
|
||||||
|
|
||||||
- entity_id: cover.garage_door
|
# - entity_id: cover.garage_door
|
||||||
prob_given_true: .50
|
# prob_given_true: .50
|
||||||
prob_given_false: 0.5
|
# prob_given_false: 0.5
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'closed'
|
# to_state: 'closed'
|
||||||
|
|
||||||
- entity_id: binary_sensor.inner_garage_door_contact
|
# - entity_id: binary_sensor.inner_garage_door_contact
|
||||||
prob_given_true: .75
|
# prob_given_true: .75
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: binary_sensor.inner_garage_door_contact
|
# - entity_id: binary_sensor.inner_garage_door_contact
|
||||||
prob_given_true: .5
|
# prob_given_true: .5
|
||||||
prob_given_false: 0.5
|
# prob_given_false: 0.5
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'off'
|
# to_state: 'off'
|
||||||
|
|
||||||
- entity_id: binary_sensor.outer_garage_door_contact
|
# - entity_id: binary_sensor.outer_garage_door_contact
|
||||||
prob_given_true: .75
|
# prob_given_true: .75
|
||||||
prob_given_false: 0.5
|
# prob_given_false: 0.5
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: binary_sensor.outer_garage_door_contact
|
# - entity_id: binary_sensor.outer_garage_door_contact
|
||||||
prob_given_true: 0.5
|
# prob_given_true: 0.5
|
||||||
prob_given_false: 0.5
|
# prob_given_false: 0.5
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'off'
|
# to_state: 'off'
|
||||||
|
|
||||||
- entity_id: binary_sensor.workshop_person_occupancy
|
# - entity_id: binary_sensor.workshop_person_occupancy
|
||||||
prob_given_true: .99
|
# prob_given_true: .99
|
||||||
prob_given_false: 0.5
|
# prob_given_false: 0.5
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: binary_sensor.workshop_person_occupancy
|
# - entity_id: binary_sensor.workshop_person_occupancy
|
||||||
prob_given_true: 0.5
|
# prob_given_true: 0.5
|
||||||
prob_given_false: 0.5
|
# prob_given_false: 0.5
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'off'
|
# to_state: 'off'
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
platform: bayesian
|
|
||||||
unique_id: 608783dd-0d18-4e9b-a7f9-3f35eee41fc4
|
|
||||||
name: Girls Room Occupied
|
|
||||||
device_class: occupancy
|
|
||||||
prior: 0.25
|
|
||||||
probability_threshold: 0.90
|
|
||||||
observations:
|
|
||||||
- platform: state
|
|
||||||
entity_id: binary_sensor.girls_room_motion
|
|
||||||
to_state: "on"
|
|
||||||
prob_given_true: .33
|
|
||||||
prob_given_false: 0.0
|
|
||||||
|
|
||||||
- entity_id: binary_sensor.girls_room_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
|
|
||||||
|
|
||||||
- entity_id: input_boolean.home_occupied
|
|
||||||
platform: state
|
|
||||||
prob_given_true: .92
|
|
||||||
prob_given_false: 0.5
|
|
||||||
to_state: "on"
|
|
||||||
@@ -1,43 +1,43 @@
|
|||||||
platform: bayesian
|
# platform: bayesian
|
||||||
unique_id: bayesianbinarysensor.great_room_occupied
|
# unique_id: bayesianbinarysensor.great_room_occupied
|
||||||
name: Great Room Occupied
|
# name: Great Room Occupied
|
||||||
device_class: occupancy
|
# device_class: occupancy
|
||||||
prior: 0.5
|
# prior: 0.5
|
||||||
probability_threshold: 0.75
|
# probability_threshold: 0.75
|
||||||
observations:
|
# observations:
|
||||||
|
|
||||||
- entity_id: group.great_room_motion
|
# - entity_id: binary_sensor.great_room_motion
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .9
|
# prob_given_true: .9
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|
||||||
- entity_id: input_boolean.home_occupied
|
# - entity_id: input_boolean.home_occupied
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .01
|
# prob_given_true: .01
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
to_state: 'off'
|
# to_state: 'off'
|
||||||
|
|
||||||
- entity_id: media_player.downstairs_roku
|
# - entity_id: media_player.downstairs_roku
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .9
|
# prob_given_true: .9
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
to_state: 'playing'
|
# to_state: 'playing'
|
||||||
|
|
||||||
- entity_id: media_player.downstairs_roku
|
# - entity_id: media_player.downstairs_roku
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .9
|
# prob_given_true: .9
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
to_state: 'paused'
|
# to_state: 'paused'
|
||||||
|
|
||||||
- entity_id: media_player.downstairs_roku
|
# - entity_id: media_player.downstairs_roku
|
||||||
platform: state
|
# platform: state
|
||||||
prob_given_true: .5
|
# prob_given_true: .5
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
to_state: 'idle'
|
# to_state: 'idle'
|
||||||
|
|
||||||
- entity_id: binary_sensor.great_room_person_occupancy
|
# - entity_id: binary_sensor.great_room_person_occupancy
|
||||||
prob_given_true: .99
|
# prob_given_true: .99
|
||||||
prob_given_false: 0.01
|
# prob_given_false: 0.01
|
||||||
platform: state
|
# platform: state
|
||||||
to_state: 'on'
|
# to_state: 'on'
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user