logo elektroda
logo elektroda
X
logo elektroda
ADVERTISEMENT
ADVERTISEMENT
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

OpenBeken - czy stan przełącznika GPIO może być oddzielny od przekaźnika w MQTT/Home Assistant?

MotoHolic 04 Jun 2026 06:04 114 2
ADVERTISEMENT
Treść została przetłumaczona english » polish Zobacz oryginalną wersję tematu
  • #1 21915219
    MotoHolic
    Level 3  
    Posts: 7
    Używam oprogramowania OpenBeken w wersji 1.18.289 na płycie BK7238/T1 (Tuya), sprzedawanej przez Aziot jako Smart Switch 4 Node.

    Wejściowe GPIO to P1, P8, P22 i P26 z odpowiednimi kanałami 1-4, zasilane napięciem 3,3 V, dlatego wymagają wewnętrznego obejścia PULL DOWN, które zapewnia rola "TglChanOnTgl_pd".
    Przekaźniki są podłączone jako rola "Rel" do P6, P9, P23 i P24 z odpowiednimi kanałami 1-4.

    Czy OpenBeken może udostępnić stan przełącznika lub przycisku podłączonego do GPIO jako oddzielną jednostkę MQTT/Home Assistant, niezależnie od stanu powiązanego przekaźnika?

    Mój przypadek użycia polega na tym, że fizyczna pozycja przełącznika niesie przydatne informacje wykraczające poza zwykłe sterowanie przekaźnikiem. Na przykład:

    * Physical Switch 1 ON -> Relay 1 ON
    * Home Assistant wykrywa, że fizyczny przełącznik 1 jest włączony i uruchamia automatyzację (na przykład wyłączenie oświetlenia w kuchni)

    Chciałbym, aby Home Assistant był w stanie odczytać rzeczywisty stan fizycznego przełącznika, nawet jeśli sam przełącznik nie może być sterowany zdalnie.

    Posiadanie oddzielnych jednostek dla:

    * Stan przekaźnika
    * Stan fizycznego przełącznika/przycisku

    ułatwiłoby:

    * Tworzenie automatyzacji w oparciu o fizyczną pozycję przełącznika, a nie stan przekaźnika
    * Synchronizować stany przekaźników i przełączników, gdy przestaną być zsynchronizowane
    * Na przykład całkowicie oddzielić przełączniki/przyciski od przekaźników:

    * Przełącznik 1 w module A jest włączony
    * Home Assistant wykrywa stan przełącznika i włącza przekaźnik 2 w module B

    Czy jest to obecnie możliwe, czy można to dodać jako funkcję?
  • ADVERTISEMENT
  • #2 21915484
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14559
    Help: 654
    Rate: 12571
    Myślę, że piny dInput są już dostępne i mogą być używane w HA do wyzwalania automatyzacji. Możesz także ręcznie skryptować rzeczy w samym OBK za pomocą zdarzeń kliknięcia (addEventHandler).

    Spróbuj przypisać rolę dInput do pinu i uruchom HA Discovery.
    Helpful post? Buy me a coffee.
  • #3 21915696
    MotoHolic
    Level 3  
    Posts: 7
    p.kaczmarek2 wrote:
    Spróbuj przypisać rolę dInput do pinu i uruchom HA Discovery.

    Kiedy przypisałem rolę
    dInput
    do GPIO podłączonego do jednego z przełączników ściennych, nie zadziałało, ponieważ GPIO domyślnie ma wartość HIGH, a wyjście transoptora w moim module również napędza GPIO HIGH. W rezultacie nie ma wykrywalnej zmiany stanu.

    Aby to poprawnie przetestować, potrzebowałbym roli
    dInput_pd
    (lub jej odpowiednika), która włącza wewnętrzny rezystor podciągający.

    Znalazłem obejście, ale wymaga ono jednego dodatkowego kanału na przekaźnik, niestandardowych reguł
    addEventHandler
    i dodatkowej konfiguracji Home Assistant.

    Moja obecna konfiguracja działa następująco:

    * Fizyczny przełącznik jest podłączony do
    TglChanOnTgl_pd
    .
    *
    TglChanOnTgl_pd
    kontroluje "wirtualny" przekaźnik na kanale 1.
    * Rzeczywisty przekaźnik jest przypisany do kanału 2.
    * Funkcja
    addEventHandler
    utrzymuje kanał 2 zsynchronizowany z kanałem 1 poprzez kopiowanie stanu z kanału 1 za każdym razem, gdy ten się zmienia.

    Osiąga to zachowanie, którego potrzebuję:

    * Switch ON -> Kanał 1 staje się włączony.
    * Jeśli kanał 2 jest wyłączony, zostaje włączony.
    * Jeśli kanał 2 jest już włączony (na przykład dlatego, że włączył go Home Assistant lub automatyzacja), nic się nie zmienia.

    W rezultacie:

    * Kanał 1 działa jako jednostka "stanu przełącznika".
    * Kanał 2 to rzeczywisty przekaźnik sterujący obciążeniem.

    W Home Assistant eksponuję obie jednostki:

    * Kanał 1 = Fizyczny stan przełącznika (tylko informacyjny, nigdy nie sterowany bezpośrednio).
    * Kanał 2 = rzeczywiste sterowane urządzenie (światło, wentylator, telewizor, pasek LED itp.).

    To działa, ale staje się trudne do utrzymania na dużą skalę.

    W przypadku pojedynczego modułu przekaźnika można zarządzać dodatkowymi jednostkami i programami obsługi zdarzeń. Jednak w przypadku modułów 4-kanałowych lub 8-kanałowych i wielu modułów w całym domu, liczba dodatkowych kanałów, jednostek, programów obsługi zdarzeń i konfiguracji Home Assistant znacznie wzrasta.

    Wbudowane rozwiązanie, które ujawnia stan przełącznika niezależnie od stanu przekaźnika i / lub zapewnia role wejściowe przełącznika z funkcją pull-down, znacznie uprościłoby konfigurację i sprawiłoby, że moduły te byłyby znacznie łatwiejsze w użyciu w większych instalacjach.

    Nie zgłaszam błędu - po prostu szukam czystszego i bardziej skalowalnego sposobu na osiągnięcie tego zachowania.
ADVERTISEMENT