Nowa funkcjonalność - lokalne akcje i warunkowanie [bramka ZigBee]

Moderator: vajera

User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Przyjrzę się tym Waszym schematom w wolnej chwili a najlepiej zrobię test tego układu.

Natomiast tak na szybko chciałbym coś uporządkować/wyjaśnić:

te bramki logiczne, które są obecnie dostępne w Z2S, działają w oparciu o system akcji/zdarzeń wbudowany w SuplaDevice - dzięki temu można je integrować z innymi elementami SD, takimi jak np. przekaźniki czy termostaty.

Poniżej opis mechanizmu, w jakim pracuje np. bramka AND3:

1) bramka ma trzy "piny" A, B, C = na starcie każdy ma z nich ma wartość 0.
2) Każda akcja wejściowa TURN_ON na bramkę logiczną powoduje, że bramka zaczyna od pinu A i pierwszy pin == 0 ustawia na 1,
3) oraz jeżeli któryś z pinów się zmienił (co nie zawsze jest prawdą - np. po 3x TURN ON pod rząd) przeprowadza operację AND na pinach,
4) na podstawie wyniku operacji AND generuje akcję wyjściową (TURN_ON/TURN OFF)
5) analogicznie w przypadku operacji wejściowej TURN_OFF na bramkę - bramka zaczyna od pinu A i pierwszy pin == 1 ustawia na 0,
6) oraz jeżeli któryś z pinów się zmienił (co nie zawsze jest prawdą - np. po 3x TURN OFF pod rząd) przeprowadza operację AND na pinach,
7) na podstawie wyniku operacji AND generuje akcję wyjściową (TURN_ON/TURN OFF).

To oznacza, że bramka nie ma "sztywnych" wejść - ten sam przekaźnik kolejnymi akcjami TURN_ON/TURN_OFF będzie przełączał różne piny w bramce -dzieje się tak dlatego, że ów system akcji/zdarzeń w SD nie przekazuje informacji o nadawcy - metoda handleAction dostaje tylko action i event.

Może się okazać, że do bardziej złożonych operacji potrzebne jest rozwiązanie, jakie zaimplementowałem w zdalnym termometrze - tam termometr rejestruje nowych klientów i umie rozpoznać, od którego przyszła nowa wiadomość.

Ewentualnie @klew rozszerzy SD o możliwość przekazywania danych klienta do handleAction - chyba, że ja czegoś nie dostrzegam ;)
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

myxhir wrote: Fri Dec 12, 2025 10:45 am Mi brakuje w akcjach do bramek przypisania ze ta akcja tyczy się wejścia 1 wówczas w programie logika mogła by być dosyć prosta bo byłaby jak w drabince na klasycznych PLC gdzie w szeregu mamy styki 3 wejść a stan wejścia jest Setowany / Resetowany zboczem
Moze @Vajera sie wypowie czy dobrze to rozumuje
Nie widziałem Twojej wiadomości, bo w międzyczasie pisałem swoją odpowiedź - na raty ;)
Niemniej to, co napisałem, mniej więcej adresuje Twoje spostrzeżenia.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
myxhir
Posts: 664
Joined: Thu Jan 07, 2021 12:16 pm
Location: Skórzewo, Poznań
Has thanked: 6 times
Been thanked: 9 times

Post

vajera wrote: Fri Dec 12, 2025 11:07 am Przyjrzę się tym Waszym schematom w wolnej chwili a najlepiej zrobię test tego układu.

Natomiast tak na szybko chciałbym coś uporządkować/wyjaśnić:

te bramki logiczne, które są obecnie dostępne w Z2S, działają w oparciu o system akcji/zdarzeń wbudowany w SuplaDevice - dzięki temu można je integrować z innymi elementami SD, takimi jak np. przekaźniki czy termostaty.

Poniżej opis mechanizmu, w jakim pracuje np. bramka AND3:

1) bramka ma trzy "piny" A, B, C = na starcie każdy ma z nich ma wartość 0.
2) Każda akcja wejściowa TURN_ON na bramkę logiczną powoduje, że bramka zaczyna od pinu A i pierwszy pin == 0 ustawia na 1,
3) oraz jeżeli któryś z pinów się zmienił (co nie zawsze jest prawdą - np. po 3x TURN ON pod rząd) przeprowadza operację AND na pinach,
4) na podstawie wyniku operacji AND generuje akcję wyjściową (TURN_ON/TURN OFF)
5) analogicznie w przypadku operacji wejściowej TURN_OFF na bramkę - bramka zaczyna od pinu A i pierwszy pin == 1 ustawia na 0,
6) oraz jeżeli któryś z pinów się zmienił (co nie zawsze jest prawdą - np. po 3x TURN OFF pod rząd) przeprowadza operację AND na pinach,
7) na podstawie wyniku operacji AND generuje akcję wyjściową (TURN_ON/TURN OFF).

To oznacza, że bramka nie ma "sztywnych" wejść - ten sam przekaźnik kolejnymi akcjami TURN_ON/TURN_OFF będzie przełączał różne piny w bramce -dzieje się tak dlatego, że ów system akcji/zdarzeń w SD nie przekazuje informacji o nadawcy - metoda handleAction dostaje tylko action i event.

Może się okazać, że do bardziej złożonych operacji potrzebne jest rozwiązanie, jakie zaimplementowałem w zdalnym termometrze - tam termometr rejestruje nowych klientów i umie rozpoznać, od którego przyszła nowa wiadomość.

Ewentualnie @klew rozszerzy SD o możliwość przekazywania danych klienta do handleAction - chyba, że ja czegoś nie dostrzegam ;)
I tu mi odpowiedziałeś na pytanie :)
Tak mi się wydawało że tutaj kolejne akcje turn on turn off załączają kolejne wejścia i nie ma tych sztywnych przypisań wejść - a to by wszystko uprościło, co przy moim układzie daje możliwość "wysypania" automatu na bramkach :) co tez pokazałem na filmiku :). Może prościej będzie zamiast jednego ANDa 3 pinowego (którego idzie łatwiej wysypać w tym przypadku) zrobić to na 2 ANDach 2 pinowych w kaskadzie - mniejsze ryzyko wysypania sekwencji - jak np przesuwałem sobie ten suwak interlocka :)
Nie mniej i tak super że z tego co miałeś "urzeźbiłeś" taką możliwość logiki na poziomie bramki :)
Spełniony Automatyk / Mąż / Świeżo Upieczony Ojciec
Robinson74
Posts: 404
Joined: Sun Nov 20, 2022 9:37 am
Has thanked: 13 times
Been thanked: 6 times

Post

Ja dopiero planuję sobie ustawić akcje lokalne, żeby uniezależnić się od ewentualnej przerwy internetu.
W tej chwili w Supla Cloud mam ustawionych trochę reakcji, np. dla każdego czujnika zalania jest ustawiona reakcja włączająca przekaźnik w celu zamknięcia zaworu wody.
Teraz można chyba ustawić to w lokalnych akcjach za pomocą bramki OR, czyli jeśli chociaż 1 czujnik zalania wskaże stan wysoki, to przekaźnik zamknie zawór.
Rozumiem, że jeśli dodam te akcje lokalne, to odpowiadające im reakcje w Supla Cloud należy wyłączyć?
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Robinson74 wrote: Sun Apr 05, 2026 10:31 pm Ja dopiero planuję sobie ustawić akcje lokalne, żeby uniezależnić się od ewentualnej przerwy internetu.
W tej chwili w Supla Cloud mam ustawionych trochę reakcji, np. dla każdego czujnika zalania jest ustawiona reakcja włączająca przekaźnik w celu zamknięcia zaworu wody.
Teraz można chyba ustawić to w lokalnych akcjach za pomocą bramki OR, czyli jeśli chociaż 1 czujnik zalania wskaże stan wysoki, to przekaźnik zamknie zawór.
Rozumiem, że jeśli dodam te akcje lokalne, to odpowiadające im reakcje w Supla Cloud należy wyłączyć?
To chyba najbardziej sensowne rozwiązanie.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
Robinson74
Posts: 404
Joined: Sun Nov 20, 2022 9:37 am
Has thanked: 13 times
Been thanked: 6 times

Post

Dzięki.
U mnie sytuacja jest taka.
Mam około 10 czujników zalania. W tej chwili w reakcjach w Supla Cloud mam to ustawione tak, że dla każdego czujnika zalania przypisana jest REAKCJA: Kiedy zalanie zostanie wykryte -> włącz kanał "przekaźnik zamykający wodę". Jest to fizyczny przekaźnik ZigBee, który uruchamia siłownik zaworu wody.
I teraz chcąc wyeliminować te reakcje, powinienem dodać "virtual binary"? Tylko nie widzę tego w Full GUI. Gdzie jest ta opcja?
Jeśli dobrze rozumiem, to trzeba tak ustawić ten czujnik wirtualny, żeby zwracał 1, jeśli chociaż jeden czujnik zalania będzie miał stan wysoki. To pewnie ustawię w "Local actions", ale nie widzę gdzie dodaje się ten virtual binary.
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

Robinson74 wrote: Mon Apr 06, 2026 10:16 am Dzięki.
U mnie sytuacja jest taka.
Mam około 10 czujników zalania. W tej chwili w reakcjach w Supla Cloud mam to ustawione tak, że dla każdego czujnika zalania przypisana jest REAKCJA: Kiedy zalanie zostanie wykryte -> włącz kanał "przekaźnik zamykający wodę". Jest to fizyczny przekaźnik ZigBee, który uruchamia siłownik zaworu wody.
I teraz chcąc wyeliminować te reakcje, powinienem dodać "virtual binary"? Tylko nie widzę tego w Full GUI. Gdzie jest ta opcja?
Jeśli dobrze rozumiem, to trzeba tak ustawić ten czujnik wirtualny, żeby zwracał 1, jeśli chociaż jeden czujnik zalania będzie miał stan wysoki. To pewnie ustawię w "Local actions", ale nie widzę gdzie dodaje się ten virtual binary.
Można dodać VB bo tutaj w sumie można zastosować kilka różnych rozwiązań, a można też zrobić lokalne akcje w których bezpośrednio z wykrytego na czujniku stanu uruchamia zamkniecie zaworu. Podobnie jak w reakcjach tylko zrobić lokalnie w bramce. Ale VB to dobry pomysł o ile miałeś zamiar użyć go w konkretnym celu. Bo jego stanem możesz sterować zawór a dodatkowo ustawić na nim powiadamianie. Jak kiedyś @vajera zrobi pushover w bramce, na co cały czas liczę będzie można wysyłać powiadomienia do każdej akcji jaką się zrobi na bramce. ;)
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Robinson74 wrote: Mon Apr 06, 2026 10:16 am Dzięki.
U mnie sytuacja jest taka.
Mam około 10 czujników zalania. W tej chwili w reakcjach w Supla Cloud mam to ustawione tak, że dla każdego czujnika zalania przypisana jest REAKCJA: Kiedy zalanie zostanie wykryte -> włącz kanał "przekaźnik zamykający wodę". Jest to fizyczny przekaźnik ZigBee, który uruchamia siłownik zaworu wody.
I teraz chcąc wyeliminować te reakcje, powinienem dodać "virtual binary"? Tylko nie widzę tego w Full GUI. Gdzie jest ta opcja?
Jeśli dobrze rozumiem, to trzeba tak ustawić ten czujnik wirtualny, żeby zwracał 1, jeśli chociaż jeden czujnik zalania będzie miał stan wysoki. To pewnie ustawię w "Local actions", ale nie widzę gdzie dodaje się ten virtual binary.
Można to zrobić z użyciem kilku bramek OR-3 i OR, ale @zzrr ma rację - to będzie niepotrzebna komplikacja w sumie prostego rozwiązania.
To, co masz w tej chwili w reakcjach, możesz przenieść na lokalne akcje, czyli sygnał zalania zamyka zawór - wtedy robisz tyle lokalnych akcji, ile masz czujników zalania.

Inaczej przedstawia się rozwiązanie, w którym chciałbyś również automatycznie otwierać zawór, gdy wszystkie czujniki pokażą 0 - wtedy trzeba by użyć kilku bramek OR.
Niemniej takie rozwiązanie nie ma sensu - masz powódź, czujnik uruchamia zamknięcie zaworu, woda przestaje lecieć, czujnik otwiera zawór, woda znowu zaczyna lecieć, czujnik zamyka zawór ...
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
Robinson74
Posts: 404
Joined: Sun Nov 20, 2022 9:37 am
Has thanked: 13 times
Been thanked: 6 times

Post

Dzięki. Czy w moim przypadku te dwa ostatnie parametry akcji (warunki) mogą pozostać na 0?
I jaka powinna być "destination action"? TURN ON? SET? A może coś innego?
Robinson74
Posts: 404
Joined: Sun Nov 20, 2022 9:37 am
Has thanked: 13 times
Been thanked: 6 times

Post

Czy nie byłoby bardziej intuicyjnie, gdyby te 2 przyciski zamienić miejscami?
Wstecz po lewej, a do przodu po prawej.
Panel akcji.jpg
You do not have the required permissions to view the files attached to this post.

Return to “Bramka ZigBee”