esphome-ratgdo/base.yml

171 lines
4.3 KiB
YAML

---
esphome:
name: ${id_prefix}
friendly_name: ${friendly_name}
name_add_mac_suffix: true
project:
name: ratgdo.esphome
version: "1.0"
esp8266:
board: d1_mini_lite
restore_from_flash: true
external_components:
- source:
type: git
url: https://github.com/esphome-ratgdo/esphome-ratgdo
ref: dev
refresh: 1s
ratgdo:
id: ${id_prefix}
uart:
tx_pin:
number: D4 # red control terminal / GarageDoorOpener (UART1 TX) pin is D4 on D1 Mini
inverted: true
rx_pin:
number: D2 # red control terminal / GarageDoorOpener (UART1 RX) pin is D2 on D1 Mini
inverted: true
baud_rate: 9600
switch:
- platform: ratgdo
id: ${id_prefix}_lock_remotes
type: lock
entity_category: config
ratgdo_id: ${id_prefix}
name: "${friendly_name} Lock remotes"
- platform: gpio
id: "${id_prefix}_status_door"
pin:
number: D0 # D0 output door status, HIGH for open, LOW for closed
mode:
output: true
name: "${friendly_name} Status door"
entity_category: diagnostic
- platform: gpio
id: "${id_prefix}_status_obstruction"
pin:
number: D8 # D8 output for obstruction status, HIGH for obstructed, LOW for clear
mode:
output: true
name: "${friendly_name} Status obstruction"
entity_category: diagnostic
binary_sensor:
- platform: ratgdo
type: motion
id: ${id_prefix}_motion
ratgdo_id: ${id_prefix}
name: "${friendly_name} Motion"
device_class: motion
- platform: ratgdo
type: obstruction
id: ${id_prefix}_obstruction
ratgdo_id: ${id_prefix}
name: "${friendly_name} Obstruction"
device_class: problem
on_press:
- switch.turn_on: ${id_prefix}_status_obstruction
on_release:
- switch.turn_off: ${id_prefix}_status_obstruction
- platform: ratgdo
type: motor
id: ${id_prefix}_motor
ratgdo_id: ${id_prefix}
name: "${friendly_name} Motor"
device_class: running
entity_category: diagnostic
- platform: gpio
id: "${id_prefix}_dry_contact_open"
pin:
number: D5 # D5 dry contact for opening door
inverted: true
mode:
input: true
pullup: true
name: "${friendly_name} Dry contact open"
entity_category: diagnostic
on_press:
- if:
condition:
binary_sensor.is_off: ${id_prefix}_dry_contact_close
then:
- cover.open: ${id_prefix}_garage
- platform: gpio
id: "${id_prefix}_dry_contact_close"
pin:
number: D6 # D6 dry contact for closing door
inverted: true
mode:
input: true
pullup: true
name: "${friendly_name} Dry contact close"
entity_category: diagnostic
on_press:
- if:
condition:
binary_sensor.is_off: ${id_prefix}_dry_contact_open
then:
- cover.close: ${id_prefix}_garage
- platform: gpio
id: "${id_prefix}_dry_contact_light"
pin:
number: D3 # D3 dry contact for triggering light (no discrete light commands, so toggle only)
inverted: true
mode:
input: true
pullup: true
name: "${friendly_name} Dry contact light"
entity_category: diagnostic
on_press:
- light.toggle: ${id_prefix}_light
number:
- platform: ratgdo
id: ${id_prefix}_rolling_code_counter
type: rolling_code_counter
entity_category: config
ratgdo_id: ${id_prefix}
name: "${friendly_name} Rolling code counter"
mode: box
unit_of_measurement: "codes"
cover:
- platform: ratgdo
id: ${id_prefix}_garage
device_class: garage
name: ${friendly_name}
ratgdo_id: ${id_prefix}
on_closed:
- switch.turn_off: ${id_prefix}_status_door
on_open:
- switch.turn_on: ${id_prefix}_status_door
light:
- platform: ratgdo
id: ${id_prefix}_light
name: "${friendly_name} Light"
ratgdo_id: ${id_prefix}
button:
- platform: restart
name: "${friendly_name} Restart"
- platform: safe_mode
name: "${friendly_name} Safe mode boot"
entity_category: diagnostic
- platform: ratgdo
id: ${id_prefix}_sync
type: sync
entity_category: diagnostic
ratgdo_id: ${id_prefix}
name: "${friendly_name} Sync"
- platform: ratgdo
id: ${id_prefix}_query
type: query
entity_category: diagnostic
ratgdo_id: ${id_prefix}
name: "${friendly_name} Query"