Witam serdecznie.
Kiedyś na “szrociarni” znalazłem za 5 zł Smart gniazdko TCP przywleczone z Anglii (angielska wtyczka) . Udało mi się go dodać poprzez Tuya i Tuya Local. Oprócz włącznika ma także w encjach Timer, Można ustawić np za ile minut ma się wyłączyć/włączyć.

Czy da radę dorobić taki Timer do dowolnego Przełącznika ??
W tym wypadku chciałbym dorobić do pompy CO aby włączać ją np na 5, 10 min i sama się wyłączała.
Pompa jest załączana poprzez wemos D1 z ESPHome na pokładzie.
Dzięki i pozdrawiam
Tu masz przykład dla ESPHome, nie jest taki wypasiony z możliwością ustawiania czasu
a tu taki bardziej wypasiony (nie wiem czy wykorzystuje wszystkie funkcje obecnie dostępne w ESPHome, bo wydaje mi się że sporo “ułatwiaczy” doszło stosunkowo niedawno, więc to rozwiązanie ich raczej nie zawiera)
PS Oprócz tego oczywiście timery można zbudować na bazie HA, ale rozwiązanie z uruchamianiem automatyzacji bezpośrednio w urządzeniu wykonawczym jest pod pewnymi względami lepsze.
Cześć3. .
Jak zwykle odkopię stary temat.
Ponieważ integracja ESP z HA bardzo mi się podoba próbuję częściej używane urządzenia Tuya przerobione na OpenBeken przerobić na ESPHome.
Mój mini smart switch powstał po lekturze powyższych linków oraz:
Działa pawie tak jak powinien czyli:
- Przekaźnik w stanie OFF: krótki klik włącza timer długi klik włącza na stałe.
- Przekaźnik w stanie ON: krótki klik wyłącza, długi klik nie zmienia stanu
Jest tylko jedno małe ale: czy może wyświetlać i wysyłać do HA stan timera?
esphome:
name: switch-1
friendly_name: Switch 1
bk72xx:
board: generic-bk7231n-qfn32-tuya
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "**************************"
ota:
- platform: esphome
password: "**************"
wifi:
networks:
- ssid: ************
password: !secret wifi_password_1
manual_ip:
static_ip: 192.168.1.50
gateway: 192.168.1.1
subnet: 255.255.255.0
dns1: 192.168.1.1
dns2: 91.234.8.8
ap:
ssid: !secret wifi_ap_ssid
password: !secret wifi_ap_password
captive_portal:
preferences:
flash_write_interval: 12h
web_server:
port: 80
version: 3
auth:
username: !secret web_username
password: !secret web_password
time:
- id: time_provider
platform: homeassistant
on_time_sync:
- logger.log: "Synchronized system clock"
text_sensor:
- platform: wifi_info
ip_address:
name: ESP IP Address
ssid:
name: ESP Connected SSID
mac_address:
name: ESP Mac Wifi Address
scan_results:
name: ESP Latest Scan Results
binary_sensor:
- platform: gpio
id: ext_onoff
pin:
number: P14
inverted: true
mode: INPUT_PULLUP
on_click:
- min_length: 50ms
max_length: 500ms
then:
- if:
condition:
lambda: 'return id(rel_1).state;'
then:
- switch.turn_off: rel_1
- script.stop: timer
else:
- script.execute: timer
- min_length: 1000ms
max_length: 5000ms
then:
- script.stop: timer
- switch.turn_on: rel_1
- platform: gpio
id: int_onoff
pin:
number: P24
inverted: true
mode: INPUT_PULLUP
on_click:
- min_length: 50ms
max_length: 500ms
then:
- if:
condition:
lambda: 'return id(rel_1).state;'
then:
- switch.turn_off: rel_1
- script.stop: timer
else:
- script.execute: timer
- min_length: 1000ms
max_length: 5000ms
then:
- script.stop: timer
- switch.turn_on: rel_1
switch:
- platform: gpio
id: rel_1
name: Relay 1
pin: P15
status_led:
pin:
number: P6
inverted: true
script:
- id: timer
then:
- switch.turn_on: rel_1
- delay: !lambda return id(run_time).state*60000;
- switch.turn_off: rel_1
number:
- platform: template
id: run_time
name: "Nast. czasu"
icon: mdi:av-timer
unit_of_measurement: "min."
optimistic: true
step: 1
mode: box
min_value: 1
max_value: 60
initial_value: 1
on_value:
- sensor.template.publish:
id: runtime
state: !lambda 'return x;'
sensor:
- platform: template
id: runtime
name: "Timer"
Teraz tylko brakuje mi do szczęścia aby:
- Timer pokazywał czas pozostały do wyłączenia przekaźnika w minutach i ewentualnie sekundach
- Dioda LED miała drugą funkcję oprócz statusu czyli świeciła jak zadziała przekaźnik
- Ustawiona wartość timera zapisywała się i przywracała po restarcie. EDIT: ok to już ogarnąłem