Skip to content

Instantly share code, notes, and snippets.

@jasonmadigan
Created December 12, 2024 20:44
Show Gist options
  • Save jasonmadigan/365ed85dde1024351bdc91803f782423 to your computer and use it in GitHub Desktop.
Save jasonmadigan/365ed85dde1024351bdc91803f782423 to your computer and use it in GitHub Desktop.
Gate cover, no contact sensor. input_text for state
input_text:
gate_state:
name: Gate State
---
template:
cover:
- name: Gate
friendly_name: "Gate"
value_template: >-
{{ states('input_text.gate_state') }}
open_cover:
service: script.open_gate
close_cover:
service: script.close_gate
icon_template: >-
{% if states('input_text.gate_state') == 'closed' %}
mdi:gate
{% elif states('input_text.gate_state') == 'opening' %}
mdi:gate-arrow-left
{% elif states('input_text.gate_state') == 'closing' %}
mdi:gate-arrow-right
{% elif states('input_text.gate_state') == 'open' %}
mdi:gate-open
{% else %}
mdi:gate-alert
{% endif %}
---
automation:
- alias: Gate Opening State Handler
trigger:
- platform: event
event_type: call_service
event_data:
domain: script
service: open_gate
condition: []
action:
- service: input_text.set_value
target:
entity_id: input_text.gate_state
data:
value: "opening"
- delay: "00:00:30" # Adjust delay to match your gate opening time
- service: input_text.set_value
target:
entity_id: input_text.gate_state
data:
value: "open"
- alias: Gate Closing State Handler
trigger:
- platform: event
event_type: call_service
event_data:
domain: script
service: close_gate
condition: []
action:
- service: input_text.set_value
target:
entity_id: input_text.gate_state
data:
value: "closing"
- delay: "00:00:30" # Adjust delay to match your gate closing time
- service: input_text.set_value
target:
entity_id: input_text.gate_state
data:
value: "closed"
---
automation:
- alias: Notify Gate Open or Closed
trigger:
- platform: state
entity_id: input_text.gate_state
condition:
- condition: template
value_template: >
{{ trigger.to_state.state in ['open', 'closed'] }}
action:
- service: notify.notify
data:
title: >-
{% if trigger.to_state.state == 'open' %}
🌟 Gate Opened
{% elif trigger.to_state.state == 'closed' %}
βœ… Gate Closed
{% endif %}
message: >-
{% if trigger.to_state.state == 'open' %}
The gate is now open. πŸšͺ✨
{% elif trigger.to_state.state == 'closed' %}
The gate is now closed. πŸ”’
{% endif %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment