Hej.
Proszę niech ktoś wrzuci gotowy kod w ESPHome na przełącznik bistabilny z multiclickiem.
Cześć,
A jak sobie to wyobrażasz? Podaj jakieś oczekiwane scenariusze.
Da się zrobić wiele rzeczy, ale uważam że np. włączenie światła dopiero po 2s od zmiany pozycji przełącznika to kiepski scenariusz.
Przykład masz w dokumentacji - Binary Sensor Component — ESPHome .
Założenie jest takie, żeby przełącznik bistabilny do którego podłączony jest sonoff mini po:
- jednym kliknięciu załączył światło podłączone do sonoff mini
- podwójnym kliknięciu zapali inne światło z wykorzystaniem np. node red w moimi przypadku ledy
Zrobiłem wykorzystaniem tego: Making a custom multi-click push button using ESPHome · GitHub
Poniżej mój kod:
substitutions:
device_name: lampa-w-pokoj-heleny
device_ip: 192.168.20.4
esphome:
name: "${device_name}"
platform: ESP8266
board: esp8285
api:
encryption:
key: !secret encryption_key
ota:
password: !secret ota_password
safe_mode: True
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
fast_connect: true
manual_ip:
static_ip: ${device_ip}
gateway: 192.168.20.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "LampaHelena-Esp8266"
password: !secret wifi_password
web_server:
port: 80
captive_portal:
logger:
light:
# the 4 lines below define the main relay as a light
- platform: binary
name: "Lampa w Pokoju Heleny" # you can enter a custom name to appear in HomeAsistant here.
id: light_1
output: relay_1
restore_mode: RESTORE_DEFAULT_OFF
# the 4 lines below define the Blue LED light on Sonoff Mini, to expose in HomeAssistant remove line "internal: true"
- platform: monochromatic
name: ${device_name}_blueled
output: blue_led
internal: true # hides the Blue LED from Homeassistant
output:
# the 3 lines below control the main relay
- platform: gpio
pin: GPIO12
id: relay_1
# the 3 lines below control the Blue LED
- platform: esp8266_pwm
id: blue_led
pin: GPIO13
inverted: True
# Individual sensors
binary_sensor:
# the 7 lines below define the reset button
- platform: gpio
pin: GPIO00
id: reset
internal: true # hides reset switch from HomeAssistant
filters:
- invert:
- delayed_off: 10ms
# the 3 lines below toggle the main relay on press of reset button
on_press:
- light.toggle:
id: light_1
# the 13 lines below toggle the main relay on command
- platform: gpio
name: relay_toggle
internal: true # hides relay toggle from HomeAssistant
pin: GPIO04
id: gpio_light_id
on_multi_click:
- timing:
- ON for at most 1s
- OFF for at least 0.5s
then:
- text_sensor.template.publish:
id: wlacznik_pokoj_helena
state: !lambda 'return "double-clicked";'
- timing:
- OFF for at most 1s
- ON for at least 0.5s
then:
- text_sensor.template.publish:
id: wlacznik_pokoj_helena
state: !lambda 'return "double-clicked";'
- timing:
- OFF for at least 0.5s
then:
- light.turn_off: light_1
- timing:
- ON for at least 0.5s
then:
- light.turn_on: light_1
text_sensor:
- platform: template
name: "Włącznik Pokój Helena"
id: wlacznik_pokoj_helena
icon: "mdi:toggle-switch"
on_value:
then:
- if:
condition:
text_sensor.state:
id: wlacznik_pokoj_helena
state: ""
else:
- delay: 20ms
- text_sensor.template.publish:
id: wlacznik_pokoj_helena
state: !lambda 'return "";'
# the 2 lines below create a status entity in HomeAssistant.
#- platform: status
# name: ${device_name} Status
#status_led:
# pin:
# number: GPIO13
# inverted: true
oraz ustawienia w node red:
Generalnie działa zgodnie z założeniami czyli podwójne kliknięcie wysyła wiadomość double-clicked która wykorzystuje w node red do zapalenia ledów.
Ale przynajmniej raz dziennie sonoffa wyrzuca z sieci wifi i pomaga tylko odłączenie zasilania. Podejrzewam, że jednak w kodzie jest coś nie tak.
Chyba najlepiej byłoby zrobić zapalenie ledów bezpośrednio w kodzie esphome ale ostatnio trudno mi znaleźć czas i dlatego poprosiłem o gotowca
dopisz to:
wifi:
reboot_timeout: 0s
Chyba znalazłem przyczynę…
Wgrałem prosty program który działa na innym module tylko włącz/wyłącz i dalej to samo.
Wyjąłem sonoffa mini z puszki i od razu zauważyłem że mocno ciepły.
Po rozebraniu zauważyłem wyciek z przetwornicy.
Mam nadzieję, że to nie wina softu
Na 100 procent nie.
Na zdjęciu niewiele widać, ale prawdopodobnie któryś z kondensatorów elektrolitycznych jest nieszczelny (był wadliwy fabrycznie, albo układ jest źle zaprojektowany, jeśli ustalisz który możesz go wymienić na sprawny o tych samych kluczowych parametrach i zapewne low-esr, koszt to od kilkudziesięciu groszy do kilku zł oczywiście skutki wycieku należy usunąć).
Raczej nie będę podejmował tematu ale jakby ktoś chciał to mogę wrzucić na olx wraz z kilkoma innymi uszkodzynymi modułami za 0zl.
Tak dla formalności, soft OK, zamontowałem nowego sonoffa z tym samy oprogramowanie i działa ponad 2 tygodnie prawidłowo.