Wyłącznik krzyzowy w node red

Cześć :slight_smile:
w jaki sposób zrealizować w node red, układ 3 wyłączników jako układ krzyżowy? próbuję na różne sposoby i za każdym razem (przynajmniej po pewnym czasie), kończy się miganiem stroboskopowym :frowning:


w aplikacji Tuya miałem taki układ (tylko z delay zamiast limit) i działało, nie potrafię tego przenieść do node red tak żeby działało :wink:

Napisz jaki to przełącznik i dodaj kod nodered

To są dwa przełączniki Tuya zigbee 3 klawiszowe i jeden dwu klawiszowy

flows (2).json (15,1 KB)

Masz to w zigbee więc puść sobie to po mqtt.


W logach podejrzyj sobie topic twojego przełącznika i payload każdego przycisku payload ‘1_single’
to mój

topic 'zigbee2mqtt/WallS3', payload '{"action":"1_single","linkquality":84}'


konfiguracja mqtt i topic

Kod: przelacznik.json (9,4 KB)

W razie czego pytaj

@artpc Arturze u mnie przełącznik z każdą zmianą stanu przesyła w payload komplet danych, a nie tylko zmianę stanu konkretnego klawisza:

MQTT publish: topic ‘zigbee2mqtt/przedp switch 1’, payload ‘{“linkquality”:34,“state_center”:“OFF”,“state_left”:“OFF”,“state_right”:“OFF”}’ - w jaki sposób “wyjąć” z tego komunikatu to co nas interesuje?

a druga kwestia, czy przejście z events:state na pobieranie stanu z mqqt, rozwiąże kwestie migania światła (zapętlania procesu)?

O jakim miganiu mówisz ? Światła się przełączają on/off czy mrugają ci ledy ?

przelacznik2: przelacznik2.json (3,1 KB)

on/off. proces jakkolwiek bym tego nie zrobił, prędzej czy później wchodzi w pętlę.

a tego co teraz wrzuciłeś niestety nie potrafię zaimplementowac u siebie :frowning:

Na wyjściu każdego przełącznika daj osobny switch i do niego włącz/wyłącz.

Screenshot - 07.05.2021 , 03_47_56

Z delay msg limit daj sobie spokój na przełącznikach, bo wszystkie twoje kliknięcia będą czekały w kolejce i każde po kolei zostanie wykonane.

Artur… ale że jak to ma działać? włączam P1, switch sprawdza stan i jeśli włączony to włącza P1? :stuck_out_tongue:

Switch nie sprawdza bo otrzymuje komendę z twojego P1 on/off 1/0 czy co tam jest na wyjściu twojego P1 i rozdziela to na odpowiednie wyjście . W twojej pierwszej konfiguracji nie dziwne ze masz dyskotekę bo jak niby 1 switch ma rozpoznać 6 różnych stanów ? :slight_smile: :slight_smile:

Screenshot - 16.05.2021 , 19_20_48

@artpc i takie rozwiązanie miałem (jak poniżej - osobne dla każdego włącznika) a i tak dyskoteka się zdarzała - wystarczyło że ktoś wł i wył światło

Bo źle to konfigurujesz dlatego tak masz, twój switch ma filtrować wchodzące wiadomości i rozdzielać je na odpowiednie wyjścia, w twojej ostatnie konfiguracji masz switch z dwoma wyjściami czyli możesz kontrolować tylko dwa stany, a nie cztery jak chcesz. Rozbuduj swój switch o dwa kolejne wyjścia czy ile ich tam potrzebujesz. Musisz znać stany jakie wysyła twój przełącznik i je wpisać w switch.
Screenshot - 16.05.2021 , 20_35_34
Screenshot - 16.05.2021 , 20_35_24

Artur w moim przypadku nie ma czego filtrować. W payload znajduje się “on” i to “on” z P1_1 ma włączyć P2_1 i P3_1 a “off” analogicznie wyłączyć. Dla każdego z wyłączników buduję osobny proces - czyli mam trzy takie analogiczne moduły. i to generalnie działa, dopóki nie zrobisz szybkiego wł/wył lub dwie osoby po dwóch stronach korytarza przypadkowo włączą światło - wtedy zaczyna się pętla.

image

To działa chyba logicznie :slight_smile: To ile masz tych przełączników ?

Przełączniki są trzy i np. każdy lewy klawisz w każdym z włączników ma wł/wył lewe klawisze w pozostałych dwóch itd.

To musisz po każdym włączeniu wyłączeniu blokować przez jakiś czas zmianę stanu z innego przełącznika ale nie nodem limit bo on kolekcjonuje to co dostaje na wejściu i wysyła to co jest w kolejce. Spróbuj node wait until is on / off

Dodaj cały swój node red z wszystkimi przełącznikami

@artpc w zał. ten node z przełącznikami. W nodzie limit jest opcja drop intermediate msg ale to też ma swoje konsekwencje niestety…

przełączniki_przedp.json (19,9 KB)