Ten pomysł zelo66 jest całkiem sprytny. Jedna scena dla jednego klawisza w nadajniku i w HA wiemy kiedy ten klawisz został naciśnięty.
Też tak uważam
Sam kiedyś myślałem, aby tak wykrywać zdarzenia z nadajników, ale wydaje mi się to dość karkołomnym rozwiązaniem. Poza tym wykrywamy tym sposobem jedynie wciśnięcie przycisku. Kontroler nie potrafi przypisać puszczenia przycisku do sceny, a mnie to jest potrzebne, aby wykrywać bardziej złożone sekwencje zdarzeń - w szczególności przytrzymanie przycisku. Chociaż juz dwuklik i trójklik dałoby się w ten sposób zrobić. Wymagałoby to trochę pracy i przebudowy, bo założenie było takie, że będzie dedykowana notyfikacja z kontrolera do tego, ale i z tym możnaby coś zrobić. Może kiedyś
Niemniej jednak nie zmienia to faktu, że samo wykrycie aktywacji sceny w ramach integracji okazało się bardzo proste i wymagało tylko kilku małych zmian (chyba udało mi się zbudować wystarczająco dobrą platformę, aby to tak łatwo obsłużyć)
Wydałem wersję 2.2b3 z obsługą zdarzeń
Dodałem wykrywanie aktywacji (i zakończenia wykonywania) sceny do integracji, która wrzuca je na HA event bus jako zdarzenie
extalife_sceneKontroler wysyla dwa komunikaty odnośnie scen:
1. Aktywacja (
start = true)
2. Zakończenie wykonywania (
start = false)
Postanowiłem wrzucać obydwa zdarzenia, bo jest to bardziej uniwersalne i może mieć więcej zastosowań, a zdarzenie końca wykonywania sceny można prosto odfiltrować warunkami na pole
start = false w HA.
Teraz wystarczy już tylko zrobić sobie automatyzację z triggerem na event z konkretnymi danymi i mamy wykrywanie naciśnięcia klawisza
Np tak:
alias: "[TEST] Event extalife_scene"
description: ""
trigger:
- platform: event
event_type: extalife_scene
event_data:
start: true
id: 0
condition: []
action:
- service: switch.toggle
data: {}
target:
entity_id: switch.kuchnia_led
mode: single
gdzie:
id to id sceny czyli pośrednio klawisza. Łatwo znaleźć która scena jest która - wystarczy w HA w narzędziach deweloperskich w sekcji Zdarzenia włączyć nasłuch dla zdarzenia "extalife_scene" i zaraz będzie widać co przychodzi w payload i jaka scena jest aktywowana.
Wersja 2.2b3 do pobrania:
https://github.com/dgtal1/extalife_custom_component/releases/tag/2.2b3