W Tasmocie jest podobnie, pełne wsparcie dla multi-press, “problem” pojawił sie w obsłudze PCF8574. ESPHome też używam .
A dlaczego uważasz że działanie EspHome jest uzależnione od HA?
Nie chodzi mi o same działanie ESPHome ale automatyzacje zależne od HA czy NR (poza samym ESP). Podobno można pisać automatyzacje w ESPHome ale raczej do prostych (moim zdaniem) to nie należy.
Czy w ESPHome jest podobna funkcjonalność do reguł Tasmota?
JEST:
Widzę że już sam sobie odpowiedziałeś
Dorzucę ten link żeby był komplet dla Single, Double, Hold click:
Dla mnie to jest czytelne rozwiązanie.
Teraz pytanie jak wpisać funkcjonalność Single, Double, Hold click pod konfigurację KC868-A8 z użyciem PCF8574?
esphome:
name: kc868-a8
platform: ESP32
board: esp32dev
# Example configuration entry for ESP32
i2c:
sda: 4
scl: 5
scan: true
id: bus_a
# Example configuration entry
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO17_OUT
phy_addr: 0
# Optional manual IP
manual_ip:
static_ip: 192.168.1.199
gateway: 192.168.1.1
subnet: 255.255.255.0
# Example configuration entry
pcf8574:
– id: ‘pcf8574_hub_out_1’ # for output channel 1-8
address: 0x24
– id: ‘pcf8574_hub_in_1’ # for input channel 9-16
address: 0x22
# Individual outputs
switch:
– platform: gpio
name: “light1”
pin:
pcf8574: pcf8574_hub_out_1
number: 0
mode: OUTPUT
inverted: true
– platform: gpio
name: “light2”
pin:
pcf8574: pcf8574_hub_out_1
number: 1
mode: OUTPUT
inverted: true
– platform: gpio
name: “light3”
pin:
pcf8574: pcf8574_hub_out_1
number: 2
mode: OUTPUT
inverted: true
– platform: gpio
name: “light4”
pin:
pcf8574: pcf8574_hub_out_1
number: 3
mode: OUTPUT
inverted: true
– platform: gpio
name: “light5”
pin:
pcf8574: pcf8574_hub_out_1
number: 4
mode: OUTPUT
inverted: true
– platform: gpio
name: “light6”
pin:
pcf8574: pcf8574_hub_out_1
number: 5
mode: OUTPUT
inverted: true
– platform: gpio
name: “light7”
pin:
pcf8574: pcf8574_hub_out_1
number: 6
mode: OUTPUT
inverted: true
– platform: gpio
name: “light8”
pin:
pcf8574: pcf8574_hub_out_1
number: 7
mode: OUTPUT
inverted: true
binary_sensor:
– platform: gpio
name: “input1”
pin:
pcf8574: pcf8574_hub_in_1
number: 0
mode: INPUT
inverted: true
– platform: gpio
name: “input2”
pin:
pcf8574: pcf8574_hub_in_1
number: 1
mode: INPUT
inverted: true
– platform: gpio
name: “input3”
pin:
pcf8574: pcf8574_hub_in_1
number: 2
mode: INPUT
inverted: true
– platform: gpio
name: “input4”
pin:
pcf8574: pcf8574_hub_in_1
number: 3
mode: INPUT
inverted: true
– platform: gpio
name: “input5”
pin:
pcf8574: pcf8574_hub_in_1
number: 4
mode: INPUT
inverted: true
– platform: gpio
name: “input6”
pin:
pcf8574: pcf8574_hub_in_1
number: 5
mode: INPUT
inverted: true
– platform: gpio
name: “input7”
pin:
pcf8574: pcf8574_hub_in_1
number: 6
mode: INPUT
inverted: true
– platform: gpio
name: “input8”
pin:
pcf8574: pcf8574_hub_in_1
number: 7
mode: INPUT
inverted: true
# Enable logging
logger:
# Enable Home Assistant API
api:
switch zmieniasz na binary_sensor
i dodajesz sekcję np. taką:
on_multi_click:
- timing:
- ON for at most 1s
- OFF for at most 1s
- ON for at most 1s
- OFF for at least 0.2s
then:
- logger.log: "Double Clicked"
- timing:
- ON for 1s to 2s
- OFF for at least 0.5s
then:
- logger.log: "Single Long Clicked"
- timing:
- ON for at most 1s
- OFF for at least 0.5s
then:
- logger.log: "Single Short Clicked"
Niestety nie da się:
From the perspective of Tasmota, PCF8574 pins are not buttons, merely inputs which can change state. Since your device is ESP32-based, with Berry you have a good programming environment for coding additional handling, like detecting multiple actions within a short time.
A “real” button is what’s configured on gpio 0.
Pozostaje sprawdzić ESPHome ale raczej będzie pod górkę , każda zmiana w kodzie to ponowna kompilacja kodu, wgrywanie, analiza, poprawianie i tak w kółko dlatego ESPHome nie przypadło mi do gustu ale trudno, trzeba się przeprosić i spróbować aby w pełni wykorzystać posiadany sprzęt.