AutomationDataset/dhutchison/dhutchison_automations.yaml

116 lines
2.9 KiB
YAML

- alias: Office Door Light
description: Automation controlling the 'on-call' light at the office door
triggers:
- trigger: state
entity_id:
- input_boolean.toggl_task_running
id: task-running
to: 'on'
- trigger: state
entity_id:
- input_boolean.toggl_task_running
to: 'off'
id: task-stopped
conditions: []
actions:
- if:
- condition: trigger
id:
- task-running
then:
- if:
- condition: state
entity_id: input_boolean.toggl_task_meeting
state: 'on'
then:
- action: light.turn_on
metadata: {}
data:
rgb_color:
- 255
- 38
- 0
brightness_pct: 100
target:
entity_id: light.atom_matrix_dooralertm5
alias: Turn M5 Red
else:
- action: light.turn_on
metadata: {}
data:
rgb_color:
- 0
- 249
- 0
brightness_pct: 100
target:
entity_id: light.atom_matrix_dooralertm5
alias: Turn M5 Green
alias: Turn M5 On with a colour depending on if in a meeting or not
else:
- action: light.turn_off
metadata: {}
data: {}
target:
entity_id: light.atom_matrix_dooralertm5
mode: single
- alias: Toggl Webhook Handler
description: 'Automation for setting input helper state based on toggl webhook events. '
triggers:
- trigger: webhook
allowed_methods:
- POST
- PUT
local_only: false
webhook_id: toggl-webhook-handler-<your unique id>
actions:
- variables:
payload: '{{ trigger.json.payload }}'
description: '{{ payload.description | default(''No Description'') }}'
meeting: '{{ ''meeting'' in payload.tags }}'
running: '{{ not payload.stop }}'
duration: '{{ ((as_timestamp(now()) - as_timestamp(payload.start)) if payload.start
else 0) / 60 | round(1) }}'
- data:
entity_id: input_text.toggl_task_name
value: '{{ description }}'
action: input_text.set_value
- data:
entity_id: input_number.toggl_task_duration_min
value: '{{ duration }}'
action: input_number.set_value
- alias: If Running
if:
- condition: template
value_template: '{{ running }}'
then:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id:
- input_boolean.toggl_task_running
else:
- action: input_boolean.turn_off
metadata: {}
data: {}
target:
entity_id:
- input_boolean.toggl_task_running
- if:
- condition: template
value_template: '{{ meeting }}'
then:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.toggl_task_meeting
else:
- action: input_boolean.turn_off
metadata: {}
data: {}
target:
entity_id: input_boolean.toggl_task_meeting
alias: If Meeting