2138 lines
72 KiB
YAML
2138 lines
72 KiB
YAML
- id: activate_amars_bathroom_fan_timer
|
|
alias: Activate Amar's Bathroom Fan Timer
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: switch.amar_bathroom_fan
|
|
to: 'on'
|
|
actions:
|
|
- action: timer.start
|
|
entity_id: timer.amar_bathroom_fan_timer
|
|
data:
|
|
duration: 1200
|
|
- id: deactivate_amars_bathroom_fan_timer
|
|
alias: Deactivate Amar's Bathroom Fan Timer
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: switch.amar_bathroom_fan
|
|
to: 'off'
|
|
actions:
|
|
- action: timer.cancel
|
|
entity_id: timer.amar_bathroom_fan_timer
|
|
- id: deactivate_amars_bathroom_fan_when_timer_finishes
|
|
alias: Deactivate Amar's Bathroom Fan when Timer Finishes
|
|
triggers:
|
|
- trigger: event
|
|
event_type: timer.finished
|
|
event_data:
|
|
entity_id: timer.amar_bathroom_fan_timer
|
|
actions:
|
|
- action: switch.turn_off
|
|
entity_id: switch.amar_bathroom_fan
|
|
- id: activate_guest_bathroom_fan_timer
|
|
alias: Activate Guest Bathroom Fan Timer
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: switch.guest_bathroom_fan
|
|
to: 'on'
|
|
actions:
|
|
- action: timer.start
|
|
entity_id: timer.guest_bathroom_fan_timer
|
|
data:
|
|
duration: 1200
|
|
- id: deactivate_guest_bathroom_fan_timer
|
|
alias: Deactivate Guest Bathroom Fan Timer
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: switch.guest_bathroom_fan
|
|
to: 'off'
|
|
actions:
|
|
- action: timer.cancel
|
|
entity_id: timer.guest_bathroom_fan_timer
|
|
- id: deactivate_guest_bathroom_fan_when_timer_finishes
|
|
alias: Deactivate Guest Bathroom Fan when Timer Finishes
|
|
triggers:
|
|
- trigger: event
|
|
event_type: timer.finished
|
|
event_data:
|
|
entity_id: timer.guest_bathroom_fan_timer
|
|
actions:
|
|
- action: switch.turn_off
|
|
entity_id: switch.guest_bathroom_fan
|
|
- id: increment_amars_roof_extraction_fan_users
|
|
alias: Increment Amar's Roof Extraction Fan Users
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- switch.amar_bathroom_fan
|
|
- switch.guest_bathroom_fan
|
|
to: 'on'
|
|
actions:
|
|
- action: input_number.set_value
|
|
data_template:
|
|
entity_id: input_number.amar_roof_extraction_fan_users
|
|
value: "{% if states('input_number.amar_roof_extraction_fan_users') | int\n\
|
|
\ < state_attr('input_number.amar_roof_extraction_fan_users', 'max') %}\n\
|
|
\ {{ (states('input_number.amar_roof_extraction_fan_users') | int) + 1 }}\n\
|
|
{% else %}\n {{ states('input_number.amar_roof_extraction_fan_users') | int\
|
|
\ }}\n{% endif %}\n"
|
|
- id: decrement_amars_roof_extraction_fan_users
|
|
alias: Decrement Amar's Roof Extraction Fan Users
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- switch.amar_bathroom_fan
|
|
- switch.guest_bathroom_fan
|
|
to: 'off'
|
|
actions:
|
|
- action: input_number.set_value
|
|
data_template:
|
|
entity_id: input_number.amar_roof_extraction_fan_users
|
|
value: "{% if states('input_number.amar_roof_extraction_fan_users') | int\n\
|
|
\ > state_attr('input_number.amar_roof_extraction_fan_users', 'min') %}\n\
|
|
\ {{ (states('input_number.amar_roof_extraction_fan_users') | int) - 1 }}\n\
|
|
{% else %}\n {{ states('input_number.amar_roof_extraction_fan_users') | int\
|
|
\ }}\n{% endif %}\n"
|
|
- id: activate_amars_roof_extraction_fan
|
|
alias: Activate Amar's Roof Extraction Fan
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_number.amar_roof_extraction_fan_users
|
|
actions:
|
|
- action: switch.turn_on
|
|
entity_id: switch.amar_roof_extraction_fan
|
|
conditions:
|
|
- condition: numeric_state
|
|
entity_id: input_number.amar_roof_extraction_fan_users
|
|
value_template: '{{ states(''input_number.amar_roof_extraction_fan_users'') |
|
|
int }}'
|
|
above: 0
|
|
- id: deactivate_amars_roof_extraction_fan
|
|
alias: Deactivate Amar's Roof Extraction Fan
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_number.amar_roof_extraction_fan_users
|
|
actions:
|
|
- action: switch.turn_off
|
|
entity_id: switch.amar_roof_extraction_fan
|
|
conditions:
|
|
- condition: numeric_state
|
|
entity_id: input_number.amar_roof_extraction_fan_users
|
|
value_template: '{{ states(''input_number.amar_roof_extraction_fan_users'') |
|
|
int }}'
|
|
below: 1
|
|
- id: 28dd9f30-e3e5-4071-900c-3a15a30fc16f
|
|
alias: Manage the Family Room Roller Shades
|
|
description: Automatically open/close the Family Room Roller Shades based on the
|
|
Sun Position
|
|
triggers:
|
|
- trigger: sun
|
|
event: sunset
|
|
- trigger: sun
|
|
event: sunrise
|
|
offset: '+4:00:00'
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type: automation_reloaded
|
|
actions:
|
|
- choose:
|
|
- alias: If it's after sunset or before sunrise, then close the shades.
|
|
conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: sun
|
|
after: sunset
|
|
- condition: sun
|
|
before: sunrise
|
|
before_offset: '+1:30:00'
|
|
sequence:
|
|
- action: cover.close_cover
|
|
target:
|
|
entity_id: cover.family_room_shades
|
|
- alias: If it's 4 hours after sunrise, then open the shade.
|
|
conditions:
|
|
- condition: sun
|
|
after: sunrise
|
|
after_offset: '+4:00:00'
|
|
sequence:
|
|
- action: cover.open_cover
|
|
target:
|
|
entity_id: cover.family_room_shades
|
|
mode: single
|
|
- id: 9b1748d1-7cf1-4459-bb17-2936820e333f
|
|
alias: Print Left Label
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_button.print_left_label
|
|
actions:
|
|
- action: shell_command.print_left_label
|
|
data:
|
|
content: "{{ states('input_text.label_text_first') }} {%- if states('input_text.label_text_second')\
|
|
\ != \"\" -%}\n \\n{{ states('input_text.label_text_second') }}\n{%- endif\
|
|
\ -%} {%- if states('input_text.label_text_third') != \"\" -%}\n \\n{{ states('input_text.label_text_third')\
|
|
\ }}\n{%- endif -%}\n"
|
|
copies: '{{ states(''input_number.label_copies'') | round(0) }}'
|
|
- id: e94111fb-6aa4-463a-9ac6-5e6020ecdfe5
|
|
alias: Print Right Label
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_button.print_right_label
|
|
actions:
|
|
- action: shell_command.print_right_label
|
|
data:
|
|
content: "{{ states('input_text.label_text_first') }} {%- if states('input_text.label_text_second')\
|
|
\ != \"\" -%}\n \\n{{ states('input_text.label_text_second') }}\n{%- endif\
|
|
\ -%} {%- if states('input_text.label_text_third') != \"\" -%}\n \\n{{ states('input_text.label_text_third')\
|
|
\ }}\n{%- endif -%}\n"
|
|
copies: '{{ states(''input_number.label_copies'') | round(0) }}'
|
|
- id: activate_master_bathroom_wc_fan_timer
|
|
alias: Activate Master Bathroom WC Fan Timer
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: switch.master_bathroom_wc_fan
|
|
to: 'on'
|
|
actions:
|
|
- action: timer.start
|
|
entity_id: timer.master_bathroom_wc_fan_timer
|
|
data:
|
|
duration: 1200
|
|
- id: deactivate_master_bathroom_wc_fan_timer
|
|
alias: Deactivate Master Bathroom WC Fan Timer
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: switch.master_bathroom_wc_fan
|
|
to: 'off'
|
|
actions:
|
|
- action: timer.cancel
|
|
entity_id: timer.master_bathroom_wc_fan_timer
|
|
- id: deactivate_master_bathroom_wc_fan_when_timer_finishes
|
|
alias: Deactivate Master Bathroom WC Fan when Timer Finishes
|
|
triggers:
|
|
- trigger: event
|
|
event_type: timer.finished
|
|
event_data:
|
|
entity_id: timer.master_bathroom_wc_fan_timer
|
|
actions:
|
|
- action: switch.turn_off
|
|
entity_id: switch.master_bathroom_wc_fan
|
|
- id: activate_master_bathroom_shower_fan_timer
|
|
alias: Activate Master Bathroom Shower Fan Timer
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: switch.master_bathroom_shower_fan
|
|
to: 'on'
|
|
actions:
|
|
- action: timer.start
|
|
entity_id: timer.master_bathroom_shower_fan_timer
|
|
data:
|
|
duration: 1200
|
|
- id: deactivate_master_bathroom_shower_fan_timer
|
|
alias: Deactivate Master Bathroom Shower Fan Timer
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: switch.master_bathroom_shower_fan
|
|
to: 'off'
|
|
actions:
|
|
- action: timer.cancel
|
|
entity_id: timer.master_bathroom_shower_fan_timer
|
|
- id: deactivate_master_bathroom_shower_fan_when_timer_finishes
|
|
alias: Deactivate Master Bathroom Shower Fan when Timer Finishes
|
|
triggers:
|
|
- trigger: event
|
|
event_type: timer.finished
|
|
event_data:
|
|
entity_id: timer.master_bathroom_shower_fan_timer
|
|
actions:
|
|
- action: switch.turn_off
|
|
entity_id: switch.master_bathroom_shower_fan
|
|
- id: increment_master_bathroom_roof_extraction_fan_users
|
|
alias: Increment Master Bathroom Roof Extraction Fan Users
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- switch.master_bathroom_wc_fan
|
|
- switch.master_bathroom_shower_fan
|
|
to: 'on'
|
|
actions:
|
|
- action: input_number.set_value
|
|
data_template:
|
|
entity_id: input_number.master_bathroom_roof_extraction_fan_users
|
|
value: "{% if states('input_number.master_bathroom_roof_extraction_fan_users')\
|
|
\ | int\n < state_attr('input_number.master_bathroom_roof_extraction_fan_users',\
|
|
\ 'max') %}\n {{ (states('input_number.master_bathroom_roof_extraction_fan_users')\
|
|
\ | int) + 1 }}\n{% else %}\n {{ states('input_number.master_bathroom_roof_extraction_fan_users')\
|
|
\ | int }}\n{% endif %}\n"
|
|
- id: decrement_master_bathroom_roof_extraction_fan_users
|
|
alias: Decrement Master Bathroom Roof Extraction Fan Users
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- switch.master_bathroom_wc_fan
|
|
- switch.master_bathroom_shower_fan
|
|
to: 'off'
|
|
actions:
|
|
- action: input_number.set_value
|
|
data_template:
|
|
entity_id: input_number.master_bathroom_roof_extraction_fan_users
|
|
value: "{% if states('input_number.master_bathroom_roof_extraction_fan_users')\
|
|
\ | int\n > state_attr('input_number.master_bathroom_roof_extraction_fan_users',\
|
|
\ 'min') %}\n {{ (states('input_number.master_bathroom_roof_extraction_fan_users')\
|
|
\ | int) - 1 }}\n{% else %}\n {{ states('input_number.master_bathroom_roof_extraction_fan_users')\
|
|
\ | int }}\n{% endif %}\n"
|
|
- id: activate_master_bathroom_roof_extraction_fan
|
|
alias: Activate Master Bathroom Roof Extraction Fan
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_number.master_bathroom_roof_extraction_fan_users
|
|
actions:
|
|
- action: switch.turn_on
|
|
entity_id: switch.master_bathroom_roof_extraction_fan
|
|
conditions:
|
|
- condition: numeric_state
|
|
entity_id: input_number.master_bathroom_roof_extraction_fan_users
|
|
value_template: '{{ states(''input_number.master_bathroom_roof_extraction_fan_users'')
|
|
| int }}'
|
|
above: 0
|
|
- id: deactivate_master_bathroom_roof_extraction_fan
|
|
alias: Deactivate Master Bathroom Roof Extraction Fan
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_number.master_bathroom_roof_extraction_fan_users
|
|
actions:
|
|
- action: switch.turn_off
|
|
entity_id: switch.master_bathroom_roof_extraction_fan
|
|
conditions:
|
|
- condition: numeric_state
|
|
entity_id: input_number.master_bathroom_roof_extraction_fan_users
|
|
value_template: '{{ states(''input_number.master_bathroom_roof_extraction_fan_users'')
|
|
| int }}'
|
|
below: 1
|
|
- id: eb962a09-eb64-4a54-bd9f-a8ee12e1493c
|
|
alias: Manage the Garage Exterior Lights
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: sun.sun
|
|
to: below_horizon
|
|
- trigger: state
|
|
entity_id: sun.sun
|
|
to: above_horizon
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type: automation_reloaded
|
|
actions:
|
|
- choose:
|
|
- alias: If it's after sunset or before sunrise, then turn on the lights.
|
|
conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: sun
|
|
after: sunset
|
|
after_offset: -0:15:00
|
|
- condition: sun
|
|
before: sunrise
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.garage_exterior_lights
|
|
- alias: If it's after sunrise, then turn off the lights.
|
|
conditions:
|
|
- condition: sun
|
|
after: sunrise
|
|
sequence:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id: light.garage_exterior_lights
|
|
- id: 2453b77a-30be-441b-a355-74a77268b768
|
|
alias: Manage the Front Door Exterior Lights
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: sun.sun
|
|
to: below_horizon
|
|
- trigger: state
|
|
entity_id: sun.sun
|
|
to: above_horizon
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type: automation_reloaded
|
|
actions:
|
|
- choose:
|
|
- alias: If it's after sunset or before sunrise, then turn on the lights.
|
|
conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: sun
|
|
after: sunset
|
|
after_offset: -0:15:00
|
|
- condition: sun
|
|
before: sunrise
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.front_door_exterior_lights
|
|
- alias: If it's after sunrise, then turn off the lights.
|
|
conditions:
|
|
- condition: sun
|
|
after: sunrise
|
|
sequence:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id: light.front_door_exterior_lights
|
|
- id: ec2ae516-1e3d-4134-9f2a-6d67c12d7de9
|
|
alias: Manage the Garden Exterior Lights
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: sun.sun
|
|
to: below_horizon
|
|
- trigger: state
|
|
entity_id: sun.sun
|
|
to: above_horizon
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type: automation_reloaded
|
|
actions:
|
|
- choose:
|
|
- alias: If it's after sunset or before sunrise, then turn on the lights.
|
|
conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: sun
|
|
after: sunset
|
|
after_offset: -0:15:00
|
|
- condition: sun
|
|
before: sunrise
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id:
|
|
- light.exterior_lights_cherry_tree
|
|
- light.exterior_lights_maple_tree
|
|
- light.exterior_lights_driveway_end
|
|
- light.exterior_lights_walkway_lights
|
|
- light.exterior_lights_bay_window_conifers
|
|
- light.exterior_lights_forsythia_bed
|
|
- light.exterior_lights_back_woods
|
|
- alias: If it's after sunrise, then turn off the lights.
|
|
conditions:
|
|
- condition: sun
|
|
after: sunrise
|
|
sequence:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.exterior_lights_cherry_tree
|
|
- light.exterior_lights_maple_tree
|
|
- light.exterior_lights_driveway_end
|
|
- light.exterior_lights_walkway_lights
|
|
- light.exterior_lights_bay_window_conifers
|
|
- light.exterior_lights_forsythia_bed
|
|
- light.exterior_lights_back_woods
|
|
- id: c1789adb-ff1e-424d-8b85-65f307bf995d
|
|
alias: Control the Garage Lights
|
|
mode: restart
|
|
max_exceeded: silent
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type: automation_reloaded
|
|
- trigger: state
|
|
entity_id: cover.anu_garage_door
|
|
from: closed
|
|
to: open
|
|
- trigger: state
|
|
entity_id: cover.rakesh_garage_door
|
|
from: closed
|
|
to: open
|
|
action:
|
|
- choose:
|
|
- alias: If either garage door is open, then turn on the lights.
|
|
conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: state
|
|
entity_id: cover.anu_garage_door
|
|
state: open
|
|
- condition: state
|
|
entity_id: cover.rakesh_garage_door
|
|
state: open
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id:
|
|
- light.garage_lights
|
|
- wait_for_trigger:
|
|
- platform: template
|
|
value_template: '{{ is_state(''cover.anu_garage_door'', ''closed'') and
|
|
is_state(''cover.rakesh_garage_door'', ''closed'') }}
|
|
|
|
'
|
|
continue_on_timeout: false
|
|
- delay:
|
|
minutes: 10
|
|
- service: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.garage_lights
|
|
default:
|
|
- service: light.turn_off
|
|
entity_id:
|
|
- light.garage_lights
|
|
- id: 304cad1d-c405-4479-9177-2beb93c46cae
|
|
alias: Control the Front Door Lights
|
|
mode: restart
|
|
max_exceeded: silent
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type: automation_reloaded
|
|
- trigger: state
|
|
entity_id: binary_sensor.front_door_motion_sensor
|
|
from: 'off'
|
|
to: 'on'
|
|
actions:
|
|
- choose:
|
|
- alias: If it's dark and there is motion, then turn on the lights.
|
|
conditions:
|
|
- condition: and
|
|
conditions:
|
|
- condition: state
|
|
entity_id: binary_sensor.front_door_motion_sensor
|
|
state: 'on'
|
|
- condition: numeric_state
|
|
entity_id: sensor.garage_entry_motion_sensor_illuminance
|
|
below: 100
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.front_door_lights
|
|
- wait_for_trigger:
|
|
- trigger: template
|
|
value_template: '{{ is_state(''binary_sensor.front_door_motion_sensor'',
|
|
''off'') }}
|
|
|
|
'
|
|
continue_on_timeout: false
|
|
- delay:
|
|
minutes: 1
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id: light.front_door_lights
|
|
default:
|
|
- action: light.turn_off
|
|
entity_id: light.front_door_lights
|
|
- alias: keymaster_turn_on_access_limit_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_turn_on_access_limit_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
platform: state
|
|
entity_id: input_number.accesscount_LOCKNAME_TEMPLATENUM
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ (states(''input_number.accesscount_LOCKNAME_TEMPLATENUM'')
|
|
| int > 0) }}'
|
|
action:
|
|
service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.accesslimit_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_synchronize_codeslot_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_synchronize_codeslot_LOCKNAME_TEMPLATENUM
|
|
initial_state: true
|
|
mode: single
|
|
max_exceeded: silent
|
|
trigger:
|
|
- platform: state
|
|
entity_id: binary_sensor.pin_synched_LOCKNAME_TEMPLATENUM
|
|
from: 'on'
|
|
to: 'off'
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ states("sensor.LOCKNAME_code_slot_TEMPLATENUM") != "unavailable"
|
|
}}'
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: template
|
|
value_template: '{{ is_state(''binary_sensor.active_LOCKNAME_TEMPLATENUM'',''on'')
|
|
}}'
|
|
sequence:
|
|
- service: keymaster.add_code
|
|
data_template:
|
|
entity_id: LOCKENTITYNAME
|
|
code_slot: '{{ TEMPLATENUM }}'
|
|
usercode: '{{ states(''input_text.LOCKNAME_pin_TEMPLATENUM'').strip() }}'
|
|
- conditions:
|
|
- condition: template
|
|
value_template: '{{ is_state(''binary_sensor.active_LOCKNAME_TEMPLATENUM'',''off'')
|
|
}}'
|
|
sequence:
|
|
- service: keymaster.clear_code
|
|
data_template:
|
|
entity_id: LOCKENTITYNAME
|
|
code_slot: '{{ TEMPLATENUM }}'
|
|
- alias: keymaster_turn_on_access_limit_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_turn_on_access_limit_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
platform: state
|
|
entity_id: input_number.accesscount_LOCKNAME_TEMPLATENUM
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ (states(''input_number.accesscount_LOCKNAME_TEMPLATENUM'')
|
|
| int > 0) }}'
|
|
action:
|
|
service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.accesslimit_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_synchronize_codeslot_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_synchronize_codeslot_LOCKNAME_TEMPLATENUM
|
|
initial_state: true
|
|
mode: single
|
|
max_exceeded: silent
|
|
trigger:
|
|
- platform: state
|
|
entity_id: binary_sensor.pin_synched_LOCKNAME_TEMPLATENUM
|
|
from: 'on'
|
|
to: 'off'
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ states("sensor.LOCKNAME_code_slot_TEMPLATENUM") != "unavailable"
|
|
}}'
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: template
|
|
value_template: '{{ is_state(''binary_sensor.active_LOCKNAME_TEMPLATENUM'',''on'')
|
|
}}'
|
|
sequence:
|
|
- service: keymaster.add_code
|
|
data_template:
|
|
entity_id: LOCKENTITYNAME
|
|
code_slot: '{{ TEMPLATENUM }}'
|
|
usercode: '{{ states(''input_text.LOCKNAME_pin_TEMPLATENUM'').strip() }}'
|
|
- conditions:
|
|
- condition: template
|
|
value_template: '{{ is_state(''binary_sensor.active_LOCKNAME_TEMPLATENUM'',''off'')
|
|
}}'
|
|
sequence:
|
|
- service: keymaster.clear_code
|
|
data_template:
|
|
entity_id: LOCKENTITYNAME
|
|
code_slot: '{{ TEMPLATENUM }}'
|
|
- alias: keymaster_override_parent_LOCKNAME_TEMPLATENUM_state_change
|
|
id: keymaster_override_parent_LOCKNAME_TEMPLATENUM_state_change
|
|
trigger:
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
platform: state
|
|
to: 'off'
|
|
action:
|
|
- service: script.keymaster_LOCKNAME_copy_from_parent_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_name_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_name_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_text.PARENTLOCK_name_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_text.set_value
|
|
target:
|
|
entity_id: input_text.LOCKNAME_name_TEMPLATENUM
|
|
data:
|
|
value: '{{ states(''input_text.PARENTLOCK_name_TEMPLATENUM'') }}'
|
|
- alias: keymaster_copy_PARENTLOCK_pin_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_pin_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_text.PARENTLOCK_pin_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_text.set_value
|
|
target:
|
|
entity_id: input_text.LOCKNAME_pin_TEMPLATENUM
|
|
data:
|
|
value: '{{ states(''input_text.PARENTLOCK_pin_TEMPLATENUM'') }}'
|
|
- alias: keymaster_copy_PARENTLOCK_enabled_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_enabled_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.enabled_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.enabled_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.enabled_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_notify_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_notify_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.notify_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.notify_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.notify_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_reset_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_reset_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.reset_codeslot_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.reset_codeslot_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.reset_codeslot_PARENTLOCK_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_accesslimit_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_accesslimit_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.accesslimit_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.accesslimit_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.accesslimit_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_accesscount_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_accesscount_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_number.accesscount_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_number.set_value
|
|
entity_id: input_number.accesscount_LOCKNAME_TEMPLATENUM
|
|
data_template:
|
|
value: '{{ states.input_number.accesscount_PARENTLOCK_TEMPLATENUM.state | int
|
|
}}'
|
|
- alias: keymaster_copy_PARENTLOCK_daterange_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_daterange_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.daterange_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.daterange_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.daterange_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_start_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_start_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.start_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.start_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
datetime: '{{ states.input_datetime.start_date_PARENTLOCK_TEMPLATENUM.state
|
|
}}'
|
|
- alias: keymaster_copy_PARENTLOCK_end_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_end_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.end_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.end_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
datetime: '{{ states.input_datetime.end_date_PARENTLOCK_TEMPLATENUM.state }}'
|
|
- alias: keymaster_copy_PARENTLOCK_sun_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_sun_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.sun_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.sun_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.sun_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_sun_inc_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_sun_inc_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.sun_inc_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.sun_inc_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.sun_inc_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_sun_start_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_sun_start_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.sun_start_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.sun_start_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.sun_start_date_PARENTLOCK_TEMPLATENUM.state
|
|
}}'
|
|
- alias: keymaster_copy_PARENTLOCK_sun_end_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_sun_end_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.sun_end_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.sun_end_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.sun_end_date_PARENTLOCK_TEMPLATENUM.state }}'
|
|
- alias: keymaster_copy_PARENTLOCK_mon_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_mon_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.mon_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.mon_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.mon_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_mon_inc_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_mon_inc_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.mon_inc_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.mon_inc_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.mon_inc_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_mon_start_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_mon_start_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.mon_start_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.mon_start_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.mon_start_date_PARENTLOCK_TEMPLATENUM.state
|
|
}}'
|
|
- alias: keymaster_copy_PARENTLOCK_mon_end_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_mon_end_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.mon_end_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.mon_end_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.mon_end_date_PARENTLOCK_TEMPLATENUM.state }}'
|
|
- alias: keymaster_copy_PARENTLOCK_tue_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_tue_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.tue_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.tue_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.tue_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_tue_inc_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_tue_inc_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.tue_inc_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.tue_inc_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.tue_inc_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_tue_start_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_tue_start_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.tue_start_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.tue_start_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.tue_start_date_PARENTLOCK_TEMPLATENUM.state
|
|
}}'
|
|
- alias: keymaster_copy_PARENTLOCK_tue_end_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_tue_end_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.tue_end_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.tue_end_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.tue_end_date_PARENTLOCK_TEMPLATENUM.state }}'
|
|
- alias: keymaster_copy_PARENTLOCK_wed_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_wed_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.wed_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.wed_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.wed_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_wed_inc_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_wed_inc_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.wed_inc_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.wed_inc_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.wed_inc_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_wed_start_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_wed_start_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.wed_start_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.wed_start_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.wed_start_date_PARENTLOCK_TEMPLATENUM.state
|
|
}}'
|
|
- alias: keymaster_copy_PARENTLOCK_wed_end_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_wed_end_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.wed_end_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.wed_end_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.wed_end_date_PARENTLOCK_TEMPLATENUM.state }}'
|
|
- alias: keymaster_copy_PARENTLOCK_thu_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_thu_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.thu_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.thu_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.thu_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_thu_inc_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_thu_inc_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.thu_inc_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.thu_inc_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.thu_inc_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_thu_start_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_thu_start_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.thu_start_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.thu_start_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.thu_start_date_PARENTLOCK_TEMPLATENUM.state
|
|
}}'
|
|
- alias: keymaster_copy_PARENTLOCK_thu_end_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_thu_end_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.thu_end_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.thu_end_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.thu_end_date_PARENTLOCK_TEMPLATENUM.state }}'
|
|
- alias: keymaster_copy_PARENTLOCK_fri_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_fri_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.fri_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.fri_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.fri_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_fri_inc_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_fri_inc_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.fri_inc_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.fri_inc_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.fri_inc_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_fri_start_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_fri_start_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.fri_start_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.fri_start_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.fri_start_date_PARENTLOCK_TEMPLATENUM.state
|
|
}}'
|
|
- alias: keymaster_copy_PARENTLOCK_fri_end_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_fri_end_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.fri_end_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.fri_end_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.fri_end_date_PARENTLOCK_TEMPLATENUM.state }}'
|
|
- alias: keymaster_copy_PARENTLOCK_sat_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_sat_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.sat_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.sat_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.sat_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_sat_inc_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_sat_inc_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_boolean.sat_inc_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service_template: "{% if (states.input_boolean.sat_inc_PARENTLOCK_TEMPLATENUM.state\
|
|
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
|
|
{% endif %}\n"
|
|
entity_id: input_boolean.sat_inc_LOCKNAME_TEMPLATENUM
|
|
- alias: keymaster_copy_PARENTLOCK_sat_start_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_sat_start_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.sat_start_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.sat_start_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.sat_start_date_PARENTLOCK_TEMPLATENUM.state
|
|
}}'
|
|
- alias: keymaster_copy_PARENTLOCK_sat_end_date_LOCKNAME_TEMPLATENUM
|
|
id: keymaster_copy_PARENTLOCK_sat_end_date_LOCKNAME_TEMPLATENUM
|
|
trigger:
|
|
entity_id: input_datetime.sat_end_date_PARENTLOCK_TEMPLATENUM
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.override_parent_LOCKNAME_TEMPLATENUM
|
|
state: 'off'
|
|
action:
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.sat_end_date_LOCKNAME_TEMPLATENUM
|
|
data:
|
|
time: '{{ states.input_datetime.sat_end_date_PARENTLOCK_TEMPLATENUM.state }}'
|
|
- alias: keymaster_CASE_LOCK_NAME Reset Code Slot
|
|
id: keymaster_CASE_LOCK_NAME Reset Code Slot
|
|
trigger:
|
|
entity_id: INPUT_RESET_CODE_SLOT_HEADER
|
|
platform: state
|
|
to: 'on'
|
|
action:
|
|
- service: script.keymaster_LOCKNAME_reset_codeslot
|
|
data_template:
|
|
code_slot: '{{ trigger.entity_id.split(''_'')[-1] }}'
|
|
- alias: keymaster_CASE_LOCK_NAME Lock Notifications
|
|
id: keymaster_CASE_LOCK_NAME Lock Notifications
|
|
trigger:
|
|
platform: event
|
|
event_type: keymaster_lock_state_changed
|
|
event_data:
|
|
lockname: LOCKNAME
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.LOCKNAME_lock_notifications
|
|
state: 'on'
|
|
action:
|
|
- service: script.keymaster_LOCKNAME_manual_notify
|
|
data_template:
|
|
title: CASE_LOCK_NAME
|
|
message: '{{ trigger.event.data.action_text }} {% if trigger.event.data.code_slot
|
|
> 0 %}({{ trigger.event.data.code_slot_name }}){% endif %}'
|
|
- alias: keymaster_CASE_LOCK_NAME User Notifications
|
|
id: keymaster_CASE_LOCK_NAME User Notifications
|
|
trigger:
|
|
platform: event
|
|
event_type: keymaster_lock_state_changed
|
|
event_data:
|
|
lockname: LOCKNAME
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ trigger.event.data.code_slot > 0 }}'
|
|
- condition: template
|
|
value_template: '{{ is_state(''input_boolean.notify_LOCKNAME_'' + trigger.event.data.code_slot
|
|
| string, ''on'') }}'
|
|
- condition: state
|
|
entity_id: input_boolean.LOCKNAME_lock_notifications
|
|
state: 'off'
|
|
action:
|
|
- service: script.keymaster_LOCKNAME_manual_notify
|
|
data_template:
|
|
title: CASE_LOCK_NAME
|
|
message: '{{ trigger.event.data.action_text }} ({{ trigger.event.data.code_slot_name
|
|
}})'
|
|
- alias: keymaster_CASE_LOCK_NAME Door Open and Close
|
|
id: keymaster_CASE_LOCK_NAME Door Open and Close
|
|
trigger:
|
|
entity_id: DOORSENSORENTITYNAME
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.LOCKNAME_dooraccess_notifications
|
|
state: 'on'
|
|
- condition: template
|
|
value_template: '{{ trigger.from_state.state in (''on'', ''off'') and trigger.to_state.state
|
|
in (''on'', ''off'') }}'
|
|
action:
|
|
- service: script.keymaster_LOCKNAME_manual_notify
|
|
data_template:
|
|
title: CASE_LOCK_NAME
|
|
message: '{% if trigger.to_state.state == ''on'' %}Door Opened{% else %}Door
|
|
Closed{% endif %}'
|
|
- alias: keymaster_CASE_LOCK_NAME Changed Code
|
|
id: keymaster_CASE_LOCK_NAME Changed Code
|
|
trigger:
|
|
entity_id: INPUTLOCKPINHEADER
|
|
platform: state
|
|
condition:
|
|
- condition: template
|
|
value_template: "{{\n is_state('input_boolean.enabled_LOCKNAME_' + trigger.entity_id.split('_')[-1],\
|
|
\ 'on')\n and\n (trigger.from_state.state != trigger.to_state.state)\n}}"
|
|
action:
|
|
- service: persistent_notification.create
|
|
data_template:
|
|
title: CASE_LOCK_NAME LOCK MANAGER
|
|
message: '{{ ''You changed the PIN for CASE_LOCK_NAME code slot '' + trigger.entity_id.split(''_'')[-1]
|
|
+ ''. Please enable it in order to make it active.''}}'
|
|
- service: input_boolean.turn_off
|
|
data_template:
|
|
entity_id: '{{ ''input_boolean.enabled_LOCKNAME_'' + trigger.entity_id.split(''_'')[-1]
|
|
}}'
|
|
- alias: keymaster_CASE_LOCK_NAME Reset
|
|
id: keymaster_CASE_LOCK_NAME Reset
|
|
trigger:
|
|
entity_id: input_boolean.LOCKNAME_reset_lock
|
|
platform: state
|
|
from: 'off'
|
|
to: 'on'
|
|
action:
|
|
- service: script.keymaster_LOCKNAME_reset_lock
|
|
- service: input_boolean.turn_off
|
|
entity_id: input_boolean.LOCKNAME_reset_lock
|
|
- alias: keymaster_CASE_LOCK_NAME Decrement Access Count
|
|
id: keymaster_CASE_LOCK_NAME Decrement Access Count
|
|
trigger:
|
|
platform: event
|
|
event_type: keymaster_lock_state_changed
|
|
event_data:
|
|
lockname: LOCKNAME
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ is_state(''input_boolean.accesslimit_LOCKNAME_'' + trigger.event.data.code_slot
|
|
| string, ''on'') }}'
|
|
- condition: template
|
|
value_template: "{{\n trigger.event.data.code_slot > 0\n and\n (trigger.event.data.action_code\
|
|
\ is undefined or trigger.event.data.action_code in (6, 19))\n}}"
|
|
action:
|
|
- service: input_number.decrement
|
|
data_template:
|
|
entity_id: '{{ ''input_number.accesscount_LOCKNAME_'' + trigger.event.data.code_slot
|
|
| string }}'
|
|
- alias: keymaster_LOCKNAME_locked
|
|
id: keymaster_LOCKNAME_locked
|
|
trigger:
|
|
entity_id: LOCKENTITYNAME
|
|
platform: state
|
|
to: locked
|
|
action:
|
|
- service: timer.cancel
|
|
entity_id: timer.keymaster_LOCKNAME_autolock
|
|
- alias: keymaster_turn_off_retry_LOCKNAME
|
|
id: keymaster_turn_off_retry_LOCKNAME
|
|
trigger:
|
|
entity_id: LOCKENTITYNAME
|
|
platform: state
|
|
to: locked
|
|
action:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_retry
|
|
- alias: keymaster_retry_bolt_closed_LOCKNAME
|
|
id: keymaster_retry_bolt_closed_LOCKNAME
|
|
trigger:
|
|
platform: state
|
|
entity_id: DOORSENSORENTITYNAME
|
|
to: 'off'
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.keymaster_LOCKNAME_retry
|
|
state: 'on'
|
|
- condition: state
|
|
entity_id: input_boolean.keymaster_LOCKNAME_autolock
|
|
state: 'on'
|
|
action:
|
|
- service: persistent_notification.create
|
|
data_template:
|
|
title: LOCKNAME is closed
|
|
message: '{{ ''The LOCKNAME sensor indicates the door has been closed, re-attempting
|
|
to lock.''}}'
|
|
- service: lock.lock
|
|
entity_id: lock.boltchecked_LOCKNAME
|
|
- alias: keymaster_LOCKNAME_opened
|
|
id: keymaster_LOCKNAME_opened
|
|
trigger:
|
|
platform: state
|
|
entity_id: DOORSENSORENTITYNAME
|
|
to: 'on'
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.keymaster_LOCKNAME_autolock
|
|
state: 'on'
|
|
action:
|
|
- service: timer.start
|
|
data_template:
|
|
entity_id: timer.keymaster_LOCKNAME_autolock
|
|
duration: "{% if (((as_timestamp(states.sun.sun.attributes.next_dusk)) > (as_timestamp(states.sun.sun.attributes.next_dawn))))\
|
|
\ %}\n {{ states('input_text.keymaster_LOCKNAME_autolock_door_time_night')}}\n\
|
|
{% else %}\n {{ states('input_text.keymaster_LOCKNAME_autolock_door_time_day')}}\n\
|
|
{% endif %}\n"
|
|
- alias: keymaster_LOCKNAME_unlocked_start_autolock
|
|
id: keymaster_LOCKNAME_unlocked_start_autolock
|
|
trigger:
|
|
entity_id: LOCKENTITYNAME
|
|
platform: state
|
|
to: unlocked
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.keymaster_LOCKNAME_autolock
|
|
state: 'on'
|
|
action:
|
|
- service: script.turn_on
|
|
entity_id: script.keymaster_LOCKNAME_start_timer
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_retry
|
|
- alias: keymaster_LOCKNAME_timer_finished
|
|
id: keymaster_LOCKNAME_timer_finished
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.keymaster_LOCKNAME_autolock
|
|
state: 'on'
|
|
trigger:
|
|
platform: event
|
|
event_type: timer.finished
|
|
event_data:
|
|
entity_id: timer.keymaster_LOCKNAME_autolock
|
|
action:
|
|
- service: lock.lock
|
|
entity_id: lock.boltchecked_LOCKNAME
|
|
- alias: keymaster_LOCKNAME_timer_canceled
|
|
id: keymaster_LOCKNAME_timer_canceled
|
|
trigger:
|
|
platform: event
|
|
event_type: timer.cancelled
|
|
event_data:
|
|
entity_id: timer.keymaster_LOCKNAME_autolock
|
|
action:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_retry
|
|
- alias: keymaster_LOCKNAME_disable_auto_lock
|
|
id: keymaster_LOCKNAME_disable_auto_lock
|
|
trigger:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_autolock
|
|
platform: state
|
|
to: 'off'
|
|
action:
|
|
- service: timer.cancel
|
|
entity_id:
|
|
- timer.keymaster_LOCKNAME_autolock
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_retry
|
|
- alias: keymaster_LOCKNAME_enable_auto_lock
|
|
id: keymaster_LOCKNAME_enable_auto_lock
|
|
trigger:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_autolock
|
|
platform: state
|
|
to: 'on'
|
|
action:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_retry
|
|
- service: timer.cancel
|
|
entity_id:
|
|
- timer.keymaster_LOCKNAME_autolock
|
|
- service: script.turn_on
|
|
entity_id: script.keymaster_LOCKNAME_start_timer
|
|
- alias: keymaster_LOCKNAME_initialize
|
|
id: keymaster_LOCKNAME_initialize
|
|
trigger:
|
|
platform: homeassistant
|
|
event: start
|
|
action:
|
|
- service: input_text.set_value
|
|
entity_id: input_text.keymaster_LOCKNAME_autolock_door_time_day
|
|
data:
|
|
value: '{%- set current_value=states(''input_text.keymaster_LOCKNAME_autolock_door_time_day'')
|
|
-%} {{ iif(current_value in ['''', ''unknown''], "02:00:00", current_value)}}
|
|
|
|
'
|
|
- service: input_text.set_value
|
|
entity_id: input_text.keymaster_LOCKNAME_autolock_door_time_night
|
|
data:
|
|
value: '{%- set current_value=states(''input_text.keymaster_LOCKNAME_autolock_door_time_night'')
|
|
-%} {{ iif(current_value in ['''', ''unknown''], "00:05:00", current_value)}}
|
|
|
|
'
|
|
- alias: keymaster_CASE_LOCK_NAME Reset Code Slot
|
|
id: keymaster_CASE_LOCK_NAME Reset Code Slot
|
|
trigger:
|
|
entity_id: INPUT_RESET_CODE_SLOT_HEADER
|
|
platform: state
|
|
to: 'on'
|
|
action:
|
|
- service: script.keymaster_LOCKNAME_reset_codeslot
|
|
data_template:
|
|
code_slot: '{{ trigger.entity_id.split(''_'')[-1] }}'
|
|
- alias: keymaster_CASE_LOCK_NAME Lock Notifications
|
|
id: keymaster_CASE_LOCK_NAME Lock Notifications
|
|
trigger:
|
|
platform: event
|
|
event_type: keymaster_lock_state_changed
|
|
event_data:
|
|
lockname: LOCKNAME
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.LOCKNAME_lock_notifications
|
|
state: 'on'
|
|
action:
|
|
- service: script.keymaster_LOCKNAME_manual_notify
|
|
data_template:
|
|
title: CASE_LOCK_NAME
|
|
message: '{{ trigger.event.data.action_text }} {% if trigger.event.data.code_slot
|
|
> 0 %}({{ trigger.event.data.code_slot_name }}){% endif %}'
|
|
- alias: keymaster_CASE_LOCK_NAME User Notifications
|
|
id: keymaster_CASE_LOCK_NAME User Notifications
|
|
trigger:
|
|
platform: event
|
|
event_type: keymaster_lock_state_changed
|
|
event_data:
|
|
lockname: LOCKNAME
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ trigger.event.data.code_slot > 0 }}'
|
|
- condition: template
|
|
value_template: '{{ is_state(''input_boolean.notify_LOCKNAME_'' + trigger.event.data.code_slot
|
|
| string, ''on'') }}'
|
|
- condition: state
|
|
entity_id: input_boolean.LOCKNAME_lock_notifications
|
|
state: 'off'
|
|
action:
|
|
- service: script.keymaster_LOCKNAME_manual_notify
|
|
data_template:
|
|
title: CASE_LOCK_NAME
|
|
message: '{{ trigger.event.data.action_text }} ({{ trigger.event.data.code_slot_name
|
|
}})'
|
|
- alias: keymaster_CASE_LOCK_NAME Door Open and Close
|
|
id: keymaster_CASE_LOCK_NAME Door Open and Close
|
|
trigger:
|
|
entity_id: DOORSENSORENTITYNAME
|
|
platform: state
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.LOCKNAME_dooraccess_notifications
|
|
state: 'on'
|
|
- condition: template
|
|
value_template: '{{ trigger.from_state.state in (''on'', ''off'') and trigger.to_state.state
|
|
in (''on'', ''off'') }}'
|
|
action:
|
|
- service: script.keymaster_LOCKNAME_manual_notify
|
|
data_template:
|
|
title: CASE_LOCK_NAME
|
|
message: '{% if trigger.to_state.state == ''on'' %}Door Opened{% else %}Door
|
|
Closed{% endif %}'
|
|
- alias: keymaster_CASE_LOCK_NAME Changed Code
|
|
id: keymaster_CASE_LOCK_NAME Changed Code
|
|
trigger:
|
|
entity_id: INPUTLOCKPINHEADER
|
|
platform: state
|
|
condition:
|
|
- condition: template
|
|
value_template: "{{\n is_state('input_boolean.enabled_LOCKNAME_' + trigger.entity_id.split('_')[-1],\
|
|
\ 'on')\n and\n (trigger.from_state.state != trigger.to_state.state)\n}}"
|
|
action:
|
|
- service: persistent_notification.create
|
|
data_template:
|
|
title: CASE_LOCK_NAME LOCK MANAGER
|
|
message: '{{ ''You changed the PIN for CASE_LOCK_NAME code slot '' + trigger.entity_id.split(''_'')[-1]
|
|
+ ''. Please enable it in order to make it active.''}}'
|
|
- service: input_boolean.turn_off
|
|
data_template:
|
|
entity_id: '{{ ''input_boolean.enabled_LOCKNAME_'' + trigger.entity_id.split(''_'')[-1]
|
|
}}'
|
|
- alias: keymaster_CASE_LOCK_NAME Reset
|
|
id: keymaster_CASE_LOCK_NAME Reset
|
|
trigger:
|
|
entity_id: input_boolean.LOCKNAME_reset_lock
|
|
platform: state
|
|
from: 'off'
|
|
to: 'on'
|
|
action:
|
|
- service: script.keymaster_LOCKNAME_reset_lock
|
|
- service: input_boolean.turn_off
|
|
entity_id: input_boolean.LOCKNAME_reset_lock
|
|
- alias: keymaster_CASE_LOCK_NAME Decrement Access Count
|
|
id: keymaster_CASE_LOCK_NAME Decrement Access Count
|
|
trigger:
|
|
platform: event
|
|
event_type: keymaster_lock_state_changed
|
|
event_data:
|
|
lockname: LOCKNAME
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ is_state(''input_boolean.accesslimit_LOCKNAME_'' + trigger.event.data.code_slot
|
|
| string, ''on'') }}'
|
|
- condition: template
|
|
value_template: "{{\n trigger.event.data.code_slot > 0\n and\n (trigger.event.data.action_code\
|
|
\ is undefined or trigger.event.data.action_code in (6, 19))\n}}"
|
|
action:
|
|
- service: input_number.decrement
|
|
data_template:
|
|
entity_id: '{{ ''input_number.accesscount_LOCKNAME_'' + trigger.event.data.code_slot
|
|
| string }}'
|
|
- alias: keymaster_LOCKNAME_locked
|
|
id: keymaster_LOCKNAME_locked
|
|
trigger:
|
|
entity_id: LOCKENTITYNAME
|
|
platform: state
|
|
to: locked
|
|
action:
|
|
- service: timer.cancel
|
|
entity_id: timer.keymaster_LOCKNAME_autolock
|
|
- alias: keymaster_turn_off_retry_LOCKNAME
|
|
id: keymaster_turn_off_retry_LOCKNAME
|
|
trigger:
|
|
entity_id: LOCKENTITYNAME
|
|
platform: state
|
|
to: locked
|
|
action:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_retry
|
|
- alias: keymaster_retry_bolt_closed_LOCKNAME
|
|
id: keymaster_retry_bolt_closed_LOCKNAME
|
|
trigger:
|
|
platform: state
|
|
entity_id: DOORSENSORENTITYNAME
|
|
to: 'off'
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.keymaster_LOCKNAME_retry
|
|
state: 'on'
|
|
- condition: state
|
|
entity_id: input_boolean.keymaster_LOCKNAME_autolock
|
|
state: 'on'
|
|
action:
|
|
- service: persistent_notification.create
|
|
data_template:
|
|
title: LOCKNAME is closed
|
|
message: '{{ ''The LOCKNAME sensor indicates the door has been closed, re-attempting
|
|
to lock.''}}'
|
|
- service: lock.lock
|
|
entity_id: lock.boltchecked_LOCKNAME
|
|
- alias: keymaster_LOCKNAME_opened
|
|
id: keymaster_LOCKNAME_opened
|
|
trigger:
|
|
platform: state
|
|
entity_id: DOORSENSORENTITYNAME
|
|
to: 'on'
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.keymaster_LOCKNAME_autolock
|
|
state: 'on'
|
|
action:
|
|
- service: timer.start
|
|
data_template:
|
|
entity_id: timer.keymaster_LOCKNAME_autolock
|
|
duration: "{% if (((as_timestamp(states.sun.sun.attributes.next_dusk)) > (as_timestamp(states.sun.sun.attributes.next_dawn))))\
|
|
\ %}\n {{ states('input_text.keymaster_LOCKNAME_autolock_door_time_night')}}\n\
|
|
{% else %}\n {{ states('input_text.keymaster_LOCKNAME_autolock_door_time_day')}}\n\
|
|
{% endif %}\n"
|
|
- alias: keymaster_LOCKNAME_unlocked_start_autolock
|
|
id: keymaster_LOCKNAME_unlocked_ start_autolock
|
|
trigger:
|
|
entity_id: LOCKENTITYNAME
|
|
platform: state
|
|
to: unlocked
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.keymaster_LOCKNAME_autolock
|
|
state: 'on'
|
|
action:
|
|
- service: script.turn_on
|
|
entity_id: script.keymaster_LOCKNAME_start_timer
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_retry
|
|
- alias: keymaster_LOCKNAME_timer_finished
|
|
id: keymaster_LOCKNAME_timer_finished
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.keymaster_LOCKNAME_autolock
|
|
state: 'on'
|
|
trigger:
|
|
platform: event
|
|
event_type: timer.finished
|
|
event_data:
|
|
entity_id: timer.keymaster_LOCKNAME_autolock
|
|
action:
|
|
- service: lock.lock
|
|
entity_id: lock.boltchecked_LOCKNAME
|
|
- alias: keymaster_LOCKNAME_timer_canceled
|
|
id: keymaster_LOCKNAME_timer_canceled
|
|
trigger:
|
|
platform: event
|
|
event_type: timer.cancelled
|
|
event_data:
|
|
entity_id: timer.keymaster_LOCKNAME_autolock
|
|
action:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_retry
|
|
- alias: keymaster_LOCKNAME_disable_auto_lock
|
|
id: keymaster_LOCKNAME_disable_auto_lock
|
|
trigger:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_autolock
|
|
platform: state
|
|
to: 'off'
|
|
action:
|
|
- service: timer.cancel
|
|
entity_id:
|
|
- timer.keymaster_LOCKNAME_autolock
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_retry
|
|
- alias: keymaster_LOCKNAME_enable_auto_lock
|
|
id: keymaster_LOCKNAME_enable_auto_lock
|
|
trigger:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_autolock
|
|
platform: state
|
|
to: 'on'
|
|
action:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.keymaster_LOCKNAME_retry
|
|
- service: timer.cancel
|
|
entity_id:
|
|
- timer.keymaster_LOCKNAME_autolock
|
|
- service: script.turn_on
|
|
entity_id: script.keymaster_LOCKNAME_start_timer
|
|
- alias: keymaster_LOCKNAME_initialize
|
|
id: keymaster_LOCKNAME_initialize
|
|
trigger:
|
|
platform: homeassistant
|
|
event: start
|
|
action:
|
|
- service: input_text.set_value
|
|
entity_id: input_text.keymaster_LOCKNAME_autolock_door_time_day
|
|
data:
|
|
value: '{%- set current_value=states(''input_text.keymaster_LOCKNAME_autolock_door_time_day'')
|
|
-%} {{ iif(current_value in ['''', ''unknown''], "02:00:00", current_value)}}
|
|
|
|
'
|
|
- service: input_text.set_value
|
|
entity_id: input_text.keymaster_LOCKNAME_autolock_door_time_night
|
|
data:
|
|
value: '{%- set current_value=states(''input_text.keymaster_LOCKNAME_autolock_door_time_night'')
|
|
-%} {{ iif(current_value in ['''', ''unknown''], "00:05:00", current_value)}}
|
|
|
|
'
|
|
- id: c4fdcb6b-1b34-4445-950e-122605812a25
|
|
alias: Print Kitchen Main Label
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_button.print_main_label
|
|
actions:
|
|
- action: shell_command.print_kitchen_label
|
|
data:
|
|
content: "{{ states('input_text.label_text') }} {%- if is_state('input_boolean.print_date',\
|
|
\ 'on') -%}\n \\n{{ states('input_datetime.label_date') }}\n{%- endif -%}\n"
|
|
copies: '{{ states(''input_number.label_copies'') | round(0) }}'
|
|
- id: cc513eb7-2912-440d-baa9-9d4fd9fd056d
|
|
alias: Print Kitchen Tape Label
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_button.print_tape_label
|
|
actions:
|
|
- action: shell_command.print_tape_label
|
|
data:
|
|
content: "{{ states('input_text.label_text') }} {%- if is_state('input_boolean.print_date',\
|
|
\ 'on') -%}\n \\n{{ states('input_datetime.label_date') }}\n{%- endif -%}\n"
|
|
copies: '{{ states(''input_number.label_copies'') | round(0) }}'
|
|
- id: 925e45b5-affc-46cd-921d-227d7777306e
|
|
alias: Print Office Label
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_button.print_office_label
|
|
actions:
|
|
- action: shell_command.print_office_label
|
|
data:
|
|
content: "{{ states('input_text.label_text') }} {%- if is_state('input_boolean.print_date',\
|
|
\ 'on') -%}\n \\n{{ states('input_datetime.label_date') }}\n{%- endif -%}\n"
|
|
copies: '{{ states(''input_number.label_copies'') | round(0) }}'
|
|
- id: 828c11ac-62c2-49da-891c-7d6b99cd88c4
|
|
alias: Set Label Date to Today at Midnight
|
|
triggers:
|
|
- trigger: time
|
|
at: 00:00:00
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type: automation_reloaded
|
|
actions:
|
|
- action: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.label_date
|
|
data:
|
|
date: '{{ now().strftime(''%Y-%m-%d'') }}'
|
|
- id: faea6bc6-9c9b-439c-9f5a-ac65fbec8cdf
|
|
alias: Handle Shield Emulated Roku Harmony Commands
|
|
description: Executed commands on the Living Room Shield TV in response to Emulated
|
|
Roku events from the Harmony Hub
|
|
use_blueprint:
|
|
path: rohankapoorcom/emulated-roku.yaml
|
|
input:
|
|
emulated_roku_name: 4t8k7RAjE3TBcfheQvCATZ
|
|
up_action:
|
|
- action: media_player.select_source
|
|
target:
|
|
entity_id: media_player.living_room_shield_tv
|
|
data:
|
|
source: Netflix
|
|
right_action:
|
|
- action: media_player.select_source
|
|
target:
|
|
entity_id: media_player.living_room_shield_tv
|
|
data:
|
|
source: Plex
|
|
down_action:
|
|
- action: media_player.select_source
|
|
target:
|
|
entity_id: media_player.living_room_shield_tv
|
|
data:
|
|
source: YouTube
|
|
left_action:
|
|
- action: androidtv.adb_command
|
|
target:
|
|
entity_id: media_player.living_room_shield_tv
|
|
data:
|
|
command: am start -a android.intent.action.VIEW -d -n com.amazon.amazonvideo.livingroom/com.amazon.ignition.IgnitionActivity
|
|
home_action:
|
|
- action: media_player.select_source
|
|
target:
|
|
entity_id: media_player.living_room_shield_tv
|
|
data:
|
|
source: com.hbo.hbonow
|
|
search_action:
|
|
- action: androidtv.adb_command
|
|
target:
|
|
entity_id: media_player.living_room_shield_tv
|
|
data:
|
|
command: SEARCH
|
|
- id: c8ff656a-e0d6-4b26-9840-0da9863b1867
|
|
alias: Living Room Shield TV Notify Washer
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: binary_sensor.washer_wash_completed
|
|
to: 'on'
|
|
actions:
|
|
- action: notify.living_room_shield_tv
|
|
data:
|
|
title: Washer Complete
|
|
message: The washer has finished it's cycle.
|
|
data:
|
|
duration: 10
|
|
position: top-right
|
|
transparency: 50%
|
|
- id: e2f38056-ce90-46ca-8138-51a9637e3e50
|
|
alias: Living Room Shield TV Notify Dryer
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: binary_sensor.dryer_dry_completed
|
|
to: 'on'
|
|
actions:
|
|
- action: notify.living_room_shield_tv
|
|
data:
|
|
title: Dryer Complete
|
|
message: The dryer has finished it's cycle.
|
|
data:
|
|
duration: 10
|
|
position: top-right
|
|
transparency: 50%
|
|
- id: c34228e0-c6c9-431f-ad73-cef94537ca2c
|
|
alias: Living Room TV Notify Phone Call
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: sensor.line_103_status
|
|
to: incoming
|
|
actions:
|
|
- action: notify.living_room_shield_tv
|
|
data_template:
|
|
title: Incoming Phone Call
|
|
message: '{{ states(''sensor.line_103_caller_name'')}} - {{states(''sensor.line_103_caller_number'')
|
|
}}
|
|
|
|
'
|
|
data:
|
|
duration: 25
|
|
position: top-right
|
|
transparency: 50%
|
|
- id: 6ed8bef7-8ed6-4278-b79f-fefa9bf2ab8b
|
|
alias: Control the Living Room TV Remote when Charging
|
|
description: Turn off the motion detection and screen when the Living Room TV Remote
|
|
is charging.
|
|
mode: single
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type: automation_reloaded
|
|
- trigger: state
|
|
entity_id: binary_sensor.living_room_tv_remote_plugged_in
|
|
actions:
|
|
- choose:
|
|
- alias: If the Living Room TV Remote is charging, turn off the motion detection
|
|
and screen
|
|
conditions:
|
|
- condition: state
|
|
entity_id: binary_sensor.living_room_tv_remote_plugged_in
|
|
state: 'on'
|
|
sequence:
|
|
- action: switch.turn_off
|
|
entity_id: switch.living_room_tv_remote_motion_detection
|
|
- action: switch.turn_off
|
|
entity_id: switch.living_room_tv_remote_screen
|
|
default:
|
|
- action: switch.turn_on
|
|
entity_id: switch.living_room_tv_remote_motion_detection
|
|
- action: switch.turn_on
|
|
entity_id: switch.living_room_tv_remote_screen
|
|
- id: 22220e6d-5b70-4718-8a3c-7080f270f928
|
|
alias: Turn on the Hot Water Pump when there is motion in any of the bathrooms
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- binary_sensor.master_bathroom_motion
|
|
- binary_sensor.hallway_bathroom_motion
|
|
- binary_sensor.downstairs_bathroom_motion
|
|
- binary_sensor.kitchen_motion
|
|
from: 'off'
|
|
to: 'on'
|
|
actions:
|
|
- action: switch.turn_on
|
|
entity_id: switch.hot_water_pump
|
|
- id: '1701157132714'
|
|
alias: Update Server Rack Status Display
|
|
description: Display server rack climate controls status on the epaper displays
|
|
triggers:
|
|
- trigger: time_pattern
|
|
minutes: /10
|
|
actions:
|
|
- action: open_epaper_link.drawcustom
|
|
data:
|
|
background: white
|
|
rotate: 0
|
|
ttl: 300
|
|
dither: false
|
|
payload:
|
|
- type: line
|
|
fill: red
|
|
width: 5
|
|
x_start: 0
|
|
y_start: 40
|
|
x_end: 400
|
|
y_end: 40
|
|
- type: line
|
|
fill: red
|
|
width: 10
|
|
x_start: 200
|
|
y_start: 40
|
|
x_end: 200
|
|
y_end: 270
|
|
- type: line
|
|
fill: red
|
|
width: 5
|
|
x_start: 0
|
|
y_start: 270
|
|
x_end: 400
|
|
y_end: 270
|
|
- type: text
|
|
value: Server Rack
|
|
font: ppb.ttf
|
|
x: 200
|
|
y: 5
|
|
size: 40
|
|
color: red
|
|
anchor: mt
|
|
- type: text
|
|
value: Current
|
|
font: ppb.ttf
|
|
x: 100
|
|
y: 170
|
|
size: 40
|
|
color: red
|
|
anchor: mm
|
|
- type: icon
|
|
value: thermometer
|
|
x: 45
|
|
y: 85
|
|
size: 40
|
|
color: black
|
|
- type: text
|
|
value: '{{ states(''sensor.server_rack_exhaust_fan_temperature_1'') | round
|
|
}}°F'
|
|
font: ppb.ttf
|
|
x: 125
|
|
y: 105
|
|
size: 40
|
|
color: black
|
|
anchor: mm
|
|
- type: icon
|
|
value: water-percent
|
|
x: 50
|
|
y: 215
|
|
size: 40
|
|
color: black
|
|
- type: text
|
|
value: '{{ states(''sensor.server_rack_exhaust_fan_humidity_1'') | round }}%'
|
|
font: ppb.ttf
|
|
x: 125
|
|
y: 235
|
|
size: 40
|
|
color: black
|
|
anchor: mm
|
|
- type: text
|
|
value: Target
|
|
font: ppb.ttf
|
|
x: 300
|
|
y: 170
|
|
size: 40
|
|
color: red
|
|
anchor: mm
|
|
- type: icon
|
|
value: thermometer
|
|
x: 245
|
|
y: 85
|
|
size: 40
|
|
color: black
|
|
- type: text
|
|
value: '{{ state_attr(''climate.server_rack_exhaust_fan_fan_1_thermostat'',
|
|
''temperature'') | round }}°F'
|
|
font: ppb.ttf
|
|
x: 325
|
|
y: 105
|
|
size: 40
|
|
color: black
|
|
anchor: mm
|
|
- type: icon
|
|
value: fan
|
|
x: 240
|
|
y: 215
|
|
size: 40
|
|
color: black
|
|
- type: text
|
|
value: '{{ states(''sensor.server_rack_exhaust_fan_fan_1_speed'') | round
|
|
}}%'
|
|
font: ppb.ttf
|
|
x: 325
|
|
y: 235
|
|
size: 40
|
|
color: black
|
|
anchor: mm
|
|
- type: text
|
|
value: As of {{ now().strftime('%m/%d/%Y at %I:%M %p') }}
|
|
font: ppb.ttf
|
|
x: 200
|
|
y: 290
|
|
size: 15
|
|
color: black
|
|
anchor: mm
|
|
target:
|
|
device_id:
|
|
- a07813b027de345048bdf12eaf51eb10
|
|
mode: restart
|
|
- id: 2c8ca4d5-b0e5-48c9-9a6d-a3cd60d2a449
|
|
alias: Server Rack Battery Power Alert
|
|
description: Notifies when server rack switches to battery power for more than 10
|
|
minutes. Monitors server rack backup and UPS power source sensors.
|
|
mode: single
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: sensor.server_rack_backup_power_source
|
|
to: Battery
|
|
for:
|
|
minutes: 10
|
|
- trigger: state
|
|
entity_id: sensor.ups_source
|
|
to: Battery
|
|
for:
|
|
minutes: 10
|
|
conditions:
|
|
- alias: 'Safety check: Verify at least one sensor is on battery power to prevent
|
|
false notifications'
|
|
condition: template
|
|
value_template: '{% set server_rack_battery = is_state(''sensor.server_rack_backup_power_source'',
|
|
''Battery'') %} {% set ups_battery = is_state(''sensor.ups_source'', ''Battery'')
|
|
%} {{ server_rack_battery or ups_battery }}'
|
|
actions:
|
|
- action: notify.rohan_kapoor
|
|
data:
|
|
title: Server Rack Battery Power Alert
|
|
message: "{% set server_rack_battery = is_state('sensor.server_rack_backup_power_source',\
|
|
\ 'Battery') %} {% set ups_battery = is_state('sensor.ups_source', 'Battery')\
|
|
\ %} {% if server_rack_battery and ups_battery %}\n ⚠️ BOTH Server Rack Backup\
|
|
\ AND UPS are on battery power for 10+ minutes\n{% elif server_rack_battery\
|
|
\ %}\n ⚠️ Server Rack Backup Power Source switched to battery for 10+ minutes\n\
|
|
{% elif ups_battery %}\n ⚠️ UPS switched to battery power for 10+ minutes\n\
|
|
{% endif %}\nCurrent Status: • Server Rack Backup: {{ states('sensor.server_rack_backup_power_source')\
|
|
\ }} • UPS Source: {{ states('sensor.ups_source') }}\nBattery Information:\
|
|
\ • UPS Battery Capacity: {{ states('sensor.ups_battery_capacity') }}% • UPS\
|
|
\ Runtime Remaining: {{ states('sensor.ups_runtime_remaining') }} minutes\n\
|
|
• Server Rack Backup Time Remaining: {{ states('sensor.server_rack_backup_time_remaining')\
|
|
\ }} minutes • Server Rack Main Battery: {{ states('sensor.server_rack_backup_main_battery')\
|
|
\ }}% • Server Rack Extra1 Battery: {{ states('sensor.server_rack_backup_extra1_battery')\
|
|
\ }}% • Server Rack Extra2 Battery: {{ states('sensor.server_rack_backup_extra2_battery')\
|
|
\ }}%\nTime: {{ now().strftime('%m/%d/%Y at %I:%M %p') }}\nPlease check power\
|
|
\ status and take appropriate action."
|
|
- id: f126138c-bb79-4a9c-957a-a727ab53f95f
|
|
alias: Restart Fully Kiosk Browsers
|
|
description: Restart all tablets once a day to make sure that they don't get stuck.
|
|
triggers:
|
|
- trigger: time
|
|
at: 03:00:00
|
|
actions:
|
|
- action: button.press
|
|
target:
|
|
entity_id: "{{\n expand(integration_entities('fullykiosk'))\n | selectattr('entity_id',\
|
|
\ 'search', '_restart_browser')\n | map(attribute='entity_id')\n | list\n\
|
|
}}\n"
|
|
mode: single
|
|
- id: '1702712886222'
|
|
alias: Update ePaper Weather Displays
|
|
description: Display external weather on the epaper displays by the exterior doors
|
|
triggers:
|
|
- trigger: time_pattern
|
|
minutes: /15
|
|
conditions:
|
|
- condition: time
|
|
after: 07:00:00
|
|
before: 02:00:00
|
|
actions:
|
|
- data:
|
|
background: white
|
|
rotate: 0
|
|
ttl: 300
|
|
dither: false
|
|
payload:
|
|
- type: icon
|
|
value: "weather- {%- set condition = states('weather.pirateweather') -%} {%-\
|
|
\ if condition == 'partlycloudy' -%}\n {%- set condition = 'partly-cloudy'\
|
|
\ -%}\n{%- endif -%} {%- if condition == 'clear-night' -%}\n {%- set condition\
|
|
\ = 'night' -%}\n{%- endif -%} {%- if states('sun.sun') == 'below_horizon'\
|
|
\ -%}\n {%- if condition == 'sunny' -%}\n night\n {%- elif condition\
|
|
\ == 'partly-cloudy' -%}\n night-partly-cloudy\n {%- else -%}\n {{\
|
|
\ condition }}\n {%- endif -%}\n{%- else -%}\n {{ condition }}\n{%- endif\
|
|
\ -%}\n"
|
|
x: 42
|
|
y: 5
|
|
size: 75
|
|
color: black
|
|
- type: text
|
|
value: '{{ states(''sensor.weather_station_outdoor_temperature'') | round
|
|
}}°F'
|
|
font: ppb.ttf
|
|
x: 76
|
|
y: 105
|
|
size: 60
|
|
color: red
|
|
anchor: mm
|
|
- type: text
|
|
value: 'Updated: {{ now().strftime(''%I:%M %p'') }}'
|
|
font: ppb.ttf
|
|
x: 76
|
|
y: 135
|
|
size: 15
|
|
color: black
|
|
anchor: mt
|
|
target:
|
|
device_id:
|
|
- 93185d71c897d23075b33b802ad98658
|
|
action: open_epaper_link.drawcustom
|
|
mode: restart
|