Obecnie mój mały upgrade płytki pod napędem bramy garażowej i jej zamiana na ten model z dwoma przekaźnikami.
Dlaczego zamiana płytki? Ponieważ dokładam barierę IR “fotokomórki” i drugi przekaźnik odzwierciedli jej stan dla napędu bramy. Pozostaje nadal kontaktron dla sygnalizacji otwarcia bramy. Na pośredniczeniu sygnału z bariery przez ESP, zyskuję dodatkowo informację dla sterowania zaplanowaną sygnalizacją świetlną w garażu. Tak aby wiedzieć/widzieć czy odpowiednio głęboko się autem wjechało, a nie trzeba było wysiadać i patrzeć czy już wystarczy… Czyli następnym etapem będzie jakiś semafor
Oprogramowanie na ESPHome i tu zaskoczenie, pomógł mi zweryfikować składnię i podpowiedział fragmenty kodu ChatGTP (wystarczy odpowiednio formułować pytania i podawać kontekst)
Załączam mój albo nasz kod:
substitutions:
device_name: "esp12frelayx2"
device_name_lower: "brama_foto"
esphome:
name: ${device_name_lower}
esp8266:
board: esp12e
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: ${device_name}
password: "haslo"
captive_portal:
web_server:
port: 80
time:
- platform: homeassistant
id: homeassistant_time
binary_sensor:
- platform: gpio
pin:
number: GPIO12
mode: INPUT_PULLUP
inverted: false
name: "kontaktron brama"
id: contact_sensor
device_class: garage_door
- platform: gpio
pin:
number: GPIO13
mode: INPUT_PULLUP
inverted: false
name: "fotoIR"
id: fotoIR_sensor
device_class: safety
on_press:
then:
- switch.turn_on: foto
on_release:
then:
- switch.turn_off: foto
status_led:
pin:
number: GPIO2
inverted: True
switch:
- platform: gpio
pin: GPIO4
name: "Garage Door Relay"
id: relay
internal: true
- platform: gpio
pin: GPIO5
name: "Garage Door foto"
id: foto
internal: true
cover:
- platform: template
device_class: garage
name: "Garaż"
id: template_cov
lambda: |-
if (id(contact_sensor).state) {
return COVER_OPEN;
} else {
return COVER_CLOSED;
}
open_action:
- switch.turn_on: relay
- delay: 0.3s
- switch.turn_off: relay
# stop_action:
# - switch.turn_on: relay
# - delay: 0.3s
# - switch.turn_off: relay
close_action:
- switch.turn_on: relay
- delay: 0.3s
- switch.turn_off: relay
button:
- platform: restart
name: "${device_name} Restart"
device_class: "restart"
sensor:
- platform: uptime
name: "${device_name} Last Restart"
update_interval: 300s
device_class: "timestamp"
entity_category: "diagnostic"
unit_of_measurement: ""
filters:
- lambda: |-
auto time = id(homeassistant_time).now();
if (time.is_valid()) {
return time.timestamp - x;
} else {
return {};
}
- platform: wifi_signal
name: "${device_name} WiFi Signal"
update_interval: 300s
device_class: "signal_strength"
entity_category: "diagnostic"