mirror of
https://github.com/GeorgeSG/sarah.git
synced 2026-04-29 06:48:16 +00:00
Move config out of subfolder
This commit is contained in:
26
blueprints/automation/aqara_switch.yaml
Normal file
26
blueprints/automation/aqara_switch.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
blueprint:
|
||||
name: Aqara single switch
|
||||
domain: automation
|
||||
input:
|
||||
z2m_topic:
|
||||
click:
|
||||
default: []
|
||||
double_click:
|
||||
default: []
|
||||
hold:
|
||||
default: []
|
||||
|
||||
trigger:
|
||||
platform: mqtt
|
||||
topic: !input z2m_topic
|
||||
|
||||
action:
|
||||
- choose:
|
||||
- conditions: "{{ trigger.payload_json.click == 'single' }}"
|
||||
sequence: !input click
|
||||
|
||||
- conditions: "{{ trigger.payload_json.click == 'double' }}"
|
||||
sequence: !input double_click
|
||||
|
||||
- conditions: "{{ trigger.payload_json.action == 'hold' }}"
|
||||
sequence: !input hold
|
||||
40
blueprints/automation/arrival_detection.yaml
Normal file
40
blueprints/automation/arrival_detection.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
# When someone's state changesd to "home", wait for 15 minutes for the door to be opened,
|
||||
# and then mark me as home
|
||||
|
||||
blueprint:
|
||||
name: Person arrival detection
|
||||
domain: automation
|
||||
input:
|
||||
person:
|
||||
name:
|
||||
input_boolean:
|
||||
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: !input person
|
||||
to: "home"
|
||||
|
||||
condition:
|
||||
condition: state
|
||||
entity_id: !input input_boolean
|
||||
state: "off"
|
||||
|
||||
variables:
|
||||
name: !input name
|
||||
|
||||
action:
|
||||
- service: notify.telegram
|
||||
data_template:
|
||||
title: "🏠 *Presence Module · Arrival Detection*"
|
||||
message: >-
|
||||
{{ name + "\'s device marked as home. Waiting for door to open!" }}
|
||||
- wait_template: "{{ is_state('binary_sensor.front_door', 'on') }}"
|
||||
continue_on_timeout: false
|
||||
timeout: 00:15:00
|
||||
- service: input_boolean.turn_on
|
||||
entity_id: !input input_boolean
|
||||
- service: notify.telegram
|
||||
data_template:
|
||||
title: "🏠 *Presence Module · Arrival Detection*"
|
||||
message: >-
|
||||
{{ "✅ Hey, I've marked " + name + " as home now!" }}
|
||||
50
blueprints/automation/homeassistant/motion_light.yaml
Normal file
50
blueprints/automation/homeassistant/motion_light.yaml
Normal file
@@ -0,0 +1,50 @@
|
||||
blueprint:
|
||||
name: Motion-activated Light
|
||||
description: Turn on a light when motion is detected.
|
||||
domain: automation
|
||||
source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml
|
||||
input:
|
||||
motion_entity:
|
||||
name: Motion Sensor
|
||||
selector:
|
||||
entity:
|
||||
domain: binary_sensor
|
||||
device_class: motion
|
||||
light_target:
|
||||
name: Light
|
||||
selector:
|
||||
target:
|
||||
entity:
|
||||
domain: light
|
||||
no_motion_wait:
|
||||
name: Wait time
|
||||
description: Time to leave the light on after last motion is detected.
|
||||
default: 120
|
||||
selector:
|
||||
number:
|
||||
min: 0
|
||||
max: 3600
|
||||
unit_of_measurement: seconds
|
||||
|
||||
# If motion is detected within the delay,
|
||||
# we restart the script.
|
||||
mode: restart
|
||||
max_exceeded: silent
|
||||
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: !input motion_entity
|
||||
from: "off"
|
||||
to: "on"
|
||||
|
||||
action:
|
||||
- service: light.turn_on
|
||||
target: !input light_target
|
||||
- wait_for_trigger:
|
||||
platform: state
|
||||
entity_id: !input motion_entity
|
||||
from: "on"
|
||||
to: "off"
|
||||
- delay: !input no_motion_wait
|
||||
- service: light.turn_off
|
||||
target: !input light_target
|
||||
41
blueprints/automation/homeassistant/notify_leaving_zone.yaml
Normal file
41
blueprints/automation/homeassistant/notify_leaving_zone.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
blueprint:
|
||||
name: Zone Notification
|
||||
description: Send a notification to a device when a person leaves a specific zone.
|
||||
domain: automation
|
||||
source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/notify_leaving_zone.yaml
|
||||
input:
|
||||
person_entity:
|
||||
name: Person
|
||||
selector:
|
||||
entity:
|
||||
domain: person
|
||||
zone_entity:
|
||||
name: Zone
|
||||
selector:
|
||||
entity:
|
||||
domain: zone
|
||||
notify_device:
|
||||
name: Device to notify
|
||||
description: Device needs to run the official Home Assistant app to receive notifications.
|
||||
selector:
|
||||
device:
|
||||
integration: mobile_app
|
||||
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: !input person_entity
|
||||
|
||||
variables:
|
||||
zone_entity: !input zone_entity
|
||||
# This is the state of the person when it's in this zone.
|
||||
zone_state: "{{ states[zone_entity].name }}"
|
||||
person_entity: !input person_entity
|
||||
person_name: "{{ states[person_entity].name }}"
|
||||
|
||||
condition: "{{ trigger.from_state.state == zone_state and trigger.to_state.state != zone_state }}"
|
||||
|
||||
action:
|
||||
domain: mobile_app
|
||||
type: notify
|
||||
device_id: !input notify_device
|
||||
message: "{{ person_name }} has left {{ zone_state }}"
|
||||
61
blueprints/automation/light_on_set_temperature.yaml
Normal file
61
blueprints/automation/light_on_set_temperature.yaml
Normal file
@@ -0,0 +1,61 @@
|
||||
blueprint:
|
||||
name: Light on set temperature
|
||||
domain: automation
|
||||
input:
|
||||
light:
|
||||
day_temp:
|
||||
default: 350
|
||||
evening_temp:
|
||||
default: 400
|
||||
night_temp:
|
||||
default: 500
|
||||
|
||||
trigger:
|
||||
platform: state
|
||||
entity_id: !input light
|
||||
to: "on"
|
||||
|
||||
mode: parallel
|
||||
|
||||
condition:
|
||||
condition: state
|
||||
entity_id: sensor.house_mode
|
||||
state: "day"
|
||||
|
||||
action:
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: sun
|
||||
before: sunset
|
||||
sequence:
|
||||
- service: light.turn_on
|
||||
data_template:
|
||||
entity_id: "{{ trigger.entity_id }}"
|
||||
color_temp: !input day_temp
|
||||
|
||||
- conditions:
|
||||
and:
|
||||
- condition: sun
|
||||
after: sunset
|
||||
- condition: not
|
||||
conditions:
|
||||
- condition: sun
|
||||
after: sunset
|
||||
after_offset: "+03:00:00"
|
||||
sequence:
|
||||
- service: light.turn_on
|
||||
data_template:
|
||||
entity_id: "{{ trigger.entity_id }}"
|
||||
color_temp: !input evening_temp
|
||||
|
||||
- conditions:
|
||||
- condition: sun
|
||||
after: sunset
|
||||
after_offset: "+03:00:00"
|
||||
- condition: sun
|
||||
before: sunrise
|
||||
sequence:
|
||||
- service: light.turn_on
|
||||
data_template:
|
||||
entity_id: "{{ trigger.entity_id }}"
|
||||
color_temp: !input night_temp
|
||||
25
blueprints/automation/light_sun_set_temperature.yaml
Normal file
25
blueprints/automation/light_sun_set_temperature.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
blueprint:
|
||||
name: Light sun set temperature
|
||||
domain: automation
|
||||
input:
|
||||
light:
|
||||
temp:
|
||||
after_offset:
|
||||
default: "+00:00:00"
|
||||
|
||||
mode: parallel
|
||||
|
||||
trigger:
|
||||
platform: sun
|
||||
event: sunset
|
||||
offset: !input after_offset
|
||||
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: !input light
|
||||
state: "on"
|
||||
action:
|
||||
- service: light.turn_on
|
||||
data_template:
|
||||
entity_id: !input light
|
||||
color_temp: !input temp
|
||||
204
blueprints/automation/oppo_6_btn_switch.yaml
Normal file
204
blueprints/automation/oppo_6_btn_switch.yaml
Normal file
@@ -0,0 +1,204 @@
|
||||
blueprint:
|
||||
name: Oppo 6 button switch controls
|
||||
domain: automation
|
||||
input:
|
||||
opple_z2m_name:
|
||||
action_sensor:
|
||||
button_1_single:
|
||||
default: []
|
||||
button_1_double:
|
||||
default: []
|
||||
button_1_triple:
|
||||
default: []
|
||||
button_1_release:
|
||||
default: []
|
||||
button_2_single:
|
||||
default: []
|
||||
button_2_double:
|
||||
default: []
|
||||
button_2_triple:
|
||||
default: []
|
||||
button_2_release:
|
||||
default: []
|
||||
button_3_single:
|
||||
default: []
|
||||
button_3_double:
|
||||
default: []
|
||||
button_3_triple:
|
||||
default: []
|
||||
button_3_release:
|
||||
default: []
|
||||
button_4_single:
|
||||
default: []
|
||||
button_4_double:
|
||||
default: []
|
||||
button_4_triple:
|
||||
default: []
|
||||
button_4_release:
|
||||
default: []
|
||||
button_5_single:
|
||||
default: []
|
||||
button_5_double:
|
||||
default: []
|
||||
button_5_triple:
|
||||
default: []
|
||||
button_5_release:
|
||||
default: []
|
||||
button_6_single:
|
||||
default: []
|
||||
button_6_double:
|
||||
default: []
|
||||
button_6_triple:
|
||||
default: []
|
||||
button_6_release:
|
||||
default: []
|
||||
|
||||
mode: queued
|
||||
trigger:
|
||||
platform: mqtt
|
||||
topic: !input opple_z2m_name
|
||||
action:
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_1_single'
|
||||
sequence: !input button_1_single
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_1_double'
|
||||
sequence: !input button_1_double
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_1_triple'
|
||||
sequence: !input button_1_triple
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_1_release'
|
||||
sequence: !input button_1_release
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_2_single'
|
||||
sequence: !input button_2_single
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_2_double'
|
||||
sequence: !input button_2_double
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_2_triple'
|
||||
sequence: !input button_2_triple
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_2_release'
|
||||
sequence: !input button_2_release
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_3_single'
|
||||
sequence: !input button_3_single
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_3_double'
|
||||
sequence: !input button_3_double
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_3_triple'
|
||||
sequence: !input button_3_triple
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_3_release'
|
||||
sequence: !input button_3_release
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_4_single'
|
||||
sequence: !input button_4_single
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_4_double'
|
||||
sequence: !input button_4_double
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_4_triple'
|
||||
sequence: !input button_4_triple
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_4_release'
|
||||
sequence: !input button_4_release
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_5_single'
|
||||
sequence: !input button_5_single
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_5_double'
|
||||
sequence: !input button_5_double
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_5_triple'
|
||||
sequence: !input button_5_triple
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_5_release'
|
||||
sequence: !input button_5_release
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_6_single'
|
||||
sequence: !input button_6_single
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_6_double'
|
||||
sequence: !input button_6_double
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_6_triple'
|
||||
sequence: !input button_6_triple
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: !input action_sensor
|
||||
state: 'button_6_release'
|
||||
sequence: !input button_6_release
|
||||
@@ -0,0 +1,74 @@
|
||||
blueprint:
|
||||
name: Confirmable Notification
|
||||
description: >-
|
||||
A script that sends an actionable notification with a confirmation before
|
||||
running the specified action.
|
||||
domain: script
|
||||
source_url: https://github.com/home-assistant/core/blob/master/homeassistant/components/script/blueprints/confirmable_notification.yaml
|
||||
input:
|
||||
notify_device:
|
||||
name: Device to notify
|
||||
description: Device needs to run the official Home Assistant app to receive notifications.
|
||||
selector:
|
||||
device:
|
||||
integration: mobile_app
|
||||
title:
|
||||
name: "Title"
|
||||
description: "The title of the button shown in the notification."
|
||||
default: ""
|
||||
selector:
|
||||
text:
|
||||
message:
|
||||
name: "Message"
|
||||
description: "The message body"
|
||||
selector:
|
||||
text:
|
||||
confirm_text:
|
||||
name: "Confirmation Text"
|
||||
description: "Text to show on the confirmation button"
|
||||
default: "Confirm"
|
||||
selector:
|
||||
text:
|
||||
confirm_action:
|
||||
name: "Confirmation Action"
|
||||
description: "Action to run when notification is confirmed"
|
||||
default: []
|
||||
selector:
|
||||
action:
|
||||
dismiss_text:
|
||||
name: "Dismiss Text"
|
||||
description: "Text to show on the dismiss button"
|
||||
default: "Dismiss"
|
||||
selector:
|
||||
text:
|
||||
dismiss_action:
|
||||
name: "Dismiss Action"
|
||||
description: "Action to run when notification is dismissed"
|
||||
default: []
|
||||
selector:
|
||||
action:
|
||||
|
||||
mode: restart
|
||||
|
||||
sequence:
|
||||
- alias: "Send notification"
|
||||
domain: mobile_app
|
||||
type: notify
|
||||
device_id: !input notify_device
|
||||
title: !input title
|
||||
message: !input message
|
||||
data:
|
||||
actions:
|
||||
- action: "CONFIRM"
|
||||
title: !input confirm_text
|
||||
- action: "DISMISS"
|
||||
title: !input dismiss_text
|
||||
- alias: "Awaiting response"
|
||||
wait_for_trigger:
|
||||
- platform: event
|
||||
event_type: mobile_app_notification_action
|
||||
- choose:
|
||||
- conditions: "{{ wait.trigger.event.data.action == 'CONFIRM' }}"
|
||||
sequence: !input confirm_action
|
||||
- conditions: "{{ wait.trigger.event.data.action == 'DISMISS' }}"
|
||||
sequence: !input dismiss_action
|
||||
20
blueprints/script/sonos_join.yaml
Normal file
20
blueprints/script/sonos_join.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
blueprint:
|
||||
name: Sonos · Join to master
|
||||
domain: script
|
||||
input:
|
||||
join_player:
|
||||
name: Sonos player to join to master
|
||||
selector:
|
||||
device:
|
||||
integration: media_player
|
||||
|
||||
sequence:
|
||||
- service: media_player.join
|
||||
data_template:
|
||||
group_members: !input join_player
|
||||
entity_id: >-
|
||||
{% if is_state('binary_sensor.sonos_is_living_room_master', 'on') %}
|
||||
media_player.living_room
|
||||
{% else %}
|
||||
media_player.master_bedroom
|
||||
{% endif %}
|
||||
Reference in New Issue
Block a user