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

Moderator: vajera

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

Post

Przy okazji prac nad TRV przyszedł mi do głowy pewien pomysł i dzisiaj wdrożyłem w życie jego pierwszą wersję - jeszcze bardzo roboczą, ale już działającą.

UWAGA - aktualna wersja NIE zapisuje dodanych akcji w pamięci FLASH, nie pozwala też na ich modyfikację lub usuwanie - restart bramki czyści wszystkie wcześniej zdefiniowane akcje - w planach jest oczywiście dodanie tych funkcji, ale najpierw chciałbym poznać Wasze opinie i uwagi zanim zdefiniuje ostateczny format zapisu danych...albo porzucę temat, jeżeli nie będzie miał Waszym zdaniem potencjału rozwojowego.

W konsoli pojawiło się nowe polecenie add-action, które może przyjmować 5 lub 7 parametrów:
  1. add-action action_name src_channel_id Supla_action dst_channel_id Supla_event
  2. add-action action_name src_channel_id Supla_action dst_channel_id Supla_condition threshold_1 threshold_2
action_name - nazwa akcji - póki co jest nieużywana, ale musi być podana,

src_channel_id - to jest kanał Supla, który będzie źródłem zdarzenia, np. termometr ze zmianą temperatury, przycisk bateryjny...,

Supla_action to akcja, która wykona się na kanale docelowym, aktualne opcje to:
  • TURN_ON
  • TURN_OFF
  • TOGGLE
  • SET //czujnik binarny
  • CLEAR //j.w.
  • INCREASE_TEMPERATURE
  • DECREASE_TEMPERATURE
  • TOGGLE_OFF_MANUAL_WEEKLY_SCHEDULE_MODES
dst_channel_id - to kanał docelowy, np. gniazdko, żarówka, termostat...,

Supla_event - to zdarzenie, które wywoła akcję, aktualne opcje to:
  • ON_TURN_ON
  • ON_TURN_OFF
  • ON_CHANGE
Supla_condition - to warunek (porównanie z wartością/ami), które wywoła akcję, aktualne opcje to:
  • ON_LESS
  • ON_LESS_EQ
  • ON_GREATER
  • ON_GREATER_EQ
  • ON_BETWEEN
  • ON_BETWEEN_EQ
  • ON_EQUAL
Threshold_1, Threshold_2 - liczby typu double np. 20.5.

Ponieważ przykłady są najlepsze wrzucam kilka do testowania:

Mamy bateryjny przycisk Tuya z 4 klawiszami, który ma BUTTON_1_PRESSED na kanale 0 i BUTTON_2_PRESSED na kanale 3 oraz gniazdko, które ma przekaźnik elektryczny na kanale 9.

add-action TESTOWA1 0 TURN_ON 9 ON_CHANGE - gdy użytkownik naciśnie klawisz 1 włączy przekaźnik,

add-action TESTOWA2 3 TOGGLE 9 ON_CHANGE - gdy użytkownik naciśnie klawisz 2 przełączy przekaźnik,

a teraz termometr, np. ten testowy na kanale 100 ;)

add-action TESTOWA3 100 TURN_OFF 9 ON_LESS 19.5 0 - gdy temperatura spadnie < 19,5 st. C termometr wyłączy przekaźnik

UWAGA!Na razie zawsze trzeba podać obie wartości threshold_1 i treshhold_2 - ta druga jest używana tylko dla ON_BETWEEN i ON_BETWEEN_EQ, więc dla innych można wpisać 0, ale nie można jej pominąć.

Ktoś może zapytać, jaki sens dublować doskonale działające reakcje, ale tutaj mamy jedną zasadniczą przewagę - zdarzenia działają lokalnie w obrębie bramki, więc w teorii powinny zadziałać nawet przy chwilowym braku Internetu. Pytanie czy to się w praktyce do czegoś przyda...
Last edited by vajera on Tue Apr 29, 2025 7:13 pm, edited 1 time in total.
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
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

vajera wrote: Tue Apr 29, 2025 6:36 pm Przy okazji prac nad TRV przyszedł mi do głowy pewien pomysł i dzisiaj wdrożyłem w życie jego pierwszą wersję - jeszcze bardzo roboczą, ale już działającą.
[...]
Ktoś może zapytać, jaki sens dublować doskonale działające reakcje, ale tutaj mamy jedną zasadniczą przewagę - zdarzenia działają lokalnie w obrębie bramki, więc w teorii powinny zadziałać nawet przy chwilowym braku Internetu. Pytanie czy to się w praktyce do czegoś przyda...
Zanim doszedłem do końca, to już miałem w głowie, że @vajera zdublował reakcje ;)
Przydać się może. Jeszcze nie wiem do czego, ale przemyślę w wolnej chwili :D
Oczywiście też i potestuję.

Tak, też mi pierwsze co przyszło do głowy, to działanie lokalne. Jednak... wiele razy tłumaczono nam tutaj (nie bez racji), że obecnie przerwy w dostępie do serwerów Supli praktycznie nie występują, a dla tych, którzy mają problem z internetem poleca się postawienie własnego serwera.

Ja bym tutaj widział natomiast potencjał w jakiś kluczowych systemach, np. termostatach i zabezpieczeniach, np. że jeśli temperatura przekroczy jakiś próg, to zawsze wyłącz grzałkę. Oczywiście nie zwalnia to nikogo przed normalnymi (np. mechanicznymi) zabezpieczeniami, ale jako dodatkowy element zabezpieczeń byłoby całkiem OK.

Obawiam się tylko, że będzie to funkcjonalność, z której skorzysta bardzo nieliczny procent użytkowników bramki i szczerze, to nie wiem, czy jest sens w tej chwili na to poświęcać Twój cenny czas. Może odłożyć to na później? Pamiętasz, kiedyś pisaliśmy tutaj "mapę drogową" rozwoju bramki. Chyba zrobiliśmy już wszystko (albo prawie). Może pora na nowe pomysły? Użytkowników bramki przybyło, to może coś ciekawego podrzucą? A Ty zdecydujesz, czy coś z tych pomysłów zasługuje na uwagę i da się zrealizować?

Żeby nie było, to mogę być pierwszy:

1. Opcjonalna obsługa ekranu LCD - poza godziną i stanem bramki można by było wyświetlać ilość połączonych urządzeń, albo jakieś inne dane (np. siła sygnału radia, wifi itp.).
2. .....
Image Wiesz, że Supla obsługuje Zigbee? Wstąp do Klubu Promila: https://forum.supla.org/viewtopic.php?t=18018
Image Szukasz nowego GG? Jest tutaj: https://forum.supla.org/viewtopic.php?t=18036
lukasz06
Posts: 2540
Joined: Sun Jul 17, 2022 6:53 pm
Has thanked: 45 times
Been thanked: 21 times

Post

Na pewno fajna sprawa, tylko czy będziesz musiał, każdemu z osobna 100 razy tłumaczyć to samo,
ja będę pierwszy, ale spoko szybko się uczę :)
Odniosę się jeszcze do postu Zibiego, to myślę, że obsługa jakiegoś wyświetlacza by się przydała na pewno.
wydaje się być też interesujący temat dwóch procków połączonych po serialu, czyli Zigbee i Esp
User avatar
vajera
Posts: 7285
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Zibi_007 wrote: Tue Apr 29, 2025 6:57 pm Zanim doszedłem do końca, to już miałem w głowie, że @vajera zdublował reakcje ;)
Przydać się może. Jeszcze nie wiem do czego, ale przemyślę w wolnej chwili :D
Oczywiście też i potestuję.

Tak, też mi pierwsze co przyszło do głowy, to działanie lokalne. Jednak... wiele razy tłumaczono nam tutaj (nie bez racji), że obecnie przerwy w dostępie do serwerów Supli praktycznie nie występują, a dla tych, którzy mają problem z internetem poleca się postawienie własnego serwera.

Ja bym tutaj widział natomiast potencjał w jakiś kluczowych systemach, np. termostatach i zabezpieczeniach, np. że jeśli temperatura przekroczy jakiś próg, to zawsze wyłącz grzałkę. Oczywiście nie zwalnia to nikogo przed normalnymi (np. mechanicznymi) zabezpieczeniami, ale jako dodatkowy element zabezpieczeń byłoby całkiem OK.
Prawda jest taka, że najpierw zrobiłem a później pomyślałem :D Na szczęście to tylko kilka godzin, więc znacznych strat nie poniosłem.
Obawiam się tylko, że będzie to funkcjonalność, z której skorzysta bardzo nieliczny procent użytkowników bramki i szczerze, to nie wiem, czy jest sens w tej chwili na to poświęcać Twój cenny czas. Może odłożyć to na później?
Trudno się z Tobą nie zgodzić w tej kwestii, zresztą już pisząc ten komunikat nabrałem wątpliwości.

Natomiast przyszedł mi do głowy jeden scenariusz - @klew dodał swego czasu możliwość pracy offline dla SuplaDevice - czyli można by odpalić takie C6 tam, gdzie brakuje WiFi i połączyć ze sobą np. klawisz i żarówkę. Sam mam taki mini warsztat 800 m od domu 😉
Pamiętasz, kiedyś pisaliśmy tutaj "mapę drogową" rozwoju bramki. Chyba zrobiliśmy już wszystko (albo prawie). Może pora na nowe pomysły? Użytkowników bramki przybyło, to może coś ciekawego podrzucą? A Ty zdecydujesz, czy coś z tych pomysłów zasługuje na uwagę i da się zrealizować?

Żeby nie było, to mogę być pierwszy:

1. Opcjonalna obsługa ekranu LCD - poza godziną i stanem bramki można by było wyświetlać ilość połączonych urządzeń, albo jakieś inne dane (np. siła sygnału radia, wifi itp.).
2. .....
Pamiętam - to w sumie było całkiem niedawno 😉

Ad. 1 Lokalnie już od jakiegoś czasu kompiluję kod bramki z boardami 3.20 (na GitHub jest wciąż 3.13). Zrobili tam spory postęp z RCP, więc chcę wrócić do pomysłu modemu Zigbee połączonego np. z ESP32 S3 z LCD i 8MB PSRAM. LVGL rozwija wtedy pełnię swoich możliwości.
Last edited by vajera on Sat Oct 18, 2025 2:03 pm, edited 1 time in total.
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
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

vajera wrote: Tue Apr 29, 2025 7:34 pm

Natomiast przyszedł mi do głowy jeden scenariusz - @klew dodał swego czasu możliwość pracy offline dla SuplaDevice - czyli możnaby odpalić takie C6 tam, gdzie brakuje WiFi i połączyć ze sobą np. klawisz i żarówkę. Sam mam taki mini warsztat 800 m od domu 😉
No i to już ma sens, choć pewnie znajdą się tacy, co stwierdzą, że trzeba kupić żarówkę na zigbee, do tego przycisk na zigbee, no i bramkę, , to prościej "pociągnąć druta" z tej żarówki do przełącznika :lol: Ale tak na serio, pomysł ok, jeśli poszerzymy go o całą gamę dodatkowych możliwości. Patrząc na taki warsztat, czy też garaż, to bez wifi można zrobić sterowanie całym oświetleniem, do tego otwieranie i zamykanie bramy, a to wszystko opanujesz jednym przyciskiem 4CH, czy nawet "kółkiem" (sam mam na nim w tej chwili trzy źródła światła, do tego taśmę LED ze zmianą kolorów i jeszcze została mi wolna akcja). Do tego czujniki ruchu i otwarcia z alarmem. Jeśli uda się dołożyć ten ekran (oled, TFT czy inny), to i wyświetlać się na nim może np. temperatura z czujników. Reasumując: rozwijając ten pomysł można stworzyć Supla Zigbee Terminal Offline System (SZTOS) :lol:

Pamiętam - to w sumie było całkiem niedawno 😉

Ad. 1 Lokalnie już od jakiegoś czasu kompiluję kod bramki z boardami 3.20 (na GitHub jest wciąż 3.13). Zrobili tam spory postęp z RCP, więc chcę wrócić do pomysłu modemu Zigbee połączonego np. z ESP32 S3 z LCD i 8MB PSRAM. LVGL rozwija wtedy pełnię swoich możliwości.
No to by było super. Pamiętam kilka wymian zdań na temat programowania z wykorzystaniem LVGL. Na początek myślałem o czymś prostszym. Może jakiś oled 0,96 albo 1,3".
Image Wiesz, że Supla obsługuje Zigbee? Wstąp do Klubu Promila: https://forum.supla.org/viewtopic.php?t=18018
Image Szukasz nowego GG? Jest tutaj: https://forum.supla.org/viewtopic.php?t=18036
endrju_88
Posts: 448
Joined: Tue Apr 25, 2023 1:02 pm
Has thanked: 3 times
Been thanked: 4 times

Post

Myślę ,że pomysł sterowania reakcjami w trybie bez Wifi jest świetną dodatkową funkcjonalnością. Tuya Zigbee ma tą możliwość , nie raz się przydało gdy brakowało wifi od dostawcy a trzeba było włączyć oświetlenie w pokojach. Czas na SUPLE Zigbee , tak więc pomysł jak najbardziej na + .
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

Moim zdaniem rewelacyjny pomysł. Logika sterowania jest w urządzeniu a nie w Cloud. Będzie więc to działać także bez Internetu.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
prze_cinek
Posts: 40
Joined: Sun Mar 23, 2025 3:05 pm
Been thanked: 2 times

Post

Moim zdaniem funkcjonalność jest jak najbardziej przydatna - zwłaszcza w kontekście tego, że Cloud może stać się dużo bardziej obciążony coraz większą ilością urządzeń Zigbee podłączanymi do bramek (a pewnie dla wielu użytkowników docker to może być co najwyżej w Gdańsku).
Wiele reakcji typu - otwórz okno - wyłącz głowicę - czy - otwórz drzwi - włącz światło - może być z powodzeniem zrealizowane lokalnie. Jedynie wydaje mi się, że sam telnet dla nowych użytkowników może być trochę za mało i przydałoby się to wyprowadzić też kiedyś w interfejsie graficznym (zwłaszcza, że oczami wyobraźni widzę, juz jak ktoś komuś mniej świadomemu zbuduje te reakcje w oparciu o bramkę, a później ta osoba będzie pytać na forum jak coś może działać jak nie ma tego w reakcjach on cloud). Osobiście na razie bym się wstrzymał z budową jakiś zaawansowanych algorytmów pod ogrzewanie - dużo ryzyk a pewnie mniej osób by z tego skorzystało (a analiza czujników temperatury zewnętrznej, wewnętrznej, histerez otwarć okien pewnie by nadawała się na półroczny projekt semestralny na informatyce).

Dla mnie bramka stała się świetnym uzupełnieniem systemu o urządzenia, które nie są produkowane przez komercyjnych partnerów Supli (zwłaszcza czujniki otwarcia, PIR czy wstrząsów) i dziękuje Vajerze za ogromną pracę jaką wykonał.
LukiSpajder
Posts: 1548
Joined: Tue Aug 18, 2020 2:22 pm
Has thanked: 25 times
Been thanked: 34 times

Post

Myślę że to dobry pomysł . Sam mam wentylator w łazience na dwuklik plus załączenie przy zaświeceniu światła jak i przez wilgotność . Przy internecie LTE . Zdarza brak internetu i co za tym idzie że nie wyłączy automatycznie jak i ręcznie nie można wyłączyć i se działa cały czas 😉 a tak czy jest internet czy nie to by działały zależności 😁
Jedynie co to w moim przypadku mała liczba urządzeń zigbee . Większość to wi-fi . W tej chwili urządzenia zigbee zarządzają tymi WiFi poprzez przyciski , czujki ruchu .

Dobra funkcjonalność w systemach krytycznych np. Ogrzewanie , monitorowanie zalania które steruje zaworem

Muszę się przyznać że jeszcze tego nie testowałem
User avatar
Zibi_007
Posts: 3985
Joined: Tue Oct 31, 2023 10:06 pm
Has thanked: 10 times
Been thanked: 31 times

Post

vajera wrote: Tue Apr 29, 2025 6:36 pm Przy okazji prac nad TRV przyszedł mi do głowy pewien pomysł i dzisiaj wdrożyłem w życie jego pierwszą wersję - jeszcze bardzo roboczą, ale już działającą.

UWAGA - aktualna wersja NIE zapisuje dodanych akcji w pamięci FLASH, nie pozwala też na ich modyfikację lub usuwanie - restart bramki czyści wszystkie wcześniej zdefiniowane akcje - w planach jest oczywiście dodanie tych funkcji, ale najpierw chciałbym poznać Wasze opinie i uwagi zanim zdefiniuje ostateczny format zapisu danych...albo porzucę temat, jeżeli nie będzie miał Waszym zdaniem potencjału rozwojowego.

W konsoli pojawiło się nowe polecenie add-action, które może przyjmować 5 lub 7 parametrów:
  1. add-action action_name src_channel_id Supla_action dst_channel_id Supla_event
  2. add-action action_name src_channel_id Supla_action dst_channel_id Supla_condition threshold_1 threshold_2
action_name - nazwa akcji - póki co jest nieużywana, ale musi być podana,

src_channel_id - to jest kanał Supla, który będzie źródłem zdarzenia, np. termometr ze zmianą temperatury, przycisk bateryjny...,

Supla_action to akcja, która wykona się na kanale docelowym, aktualne opcje to:
  • TURN_ON
  • TURN_OFF
  • TOGGLE
  • SET //czujnik binarny
  • CLEAR //j.w.
  • INCREASE_TEMPERATURE
  • DECREASE_TEMPERATURE
  • TOGGLE_OFF_MANUAL_WEEKLY_SCHEDULE_MODES
dst_channel_id - to kanał docelowy, np. gniazdko, żarówka, termostat...,

Supla_event - to zdarzenie, które wywoła akcję, aktualne opcje to:
  • ON_TURN_ON
  • ON_TURN_OFF
  • ON_CHANGE
Supla_condition - to warunek (porównanie z wartością/ami), które wywoła akcję, aktualne opcje to:
  • ON_LESS
  • ON_LESS_EQ
  • ON_GREATER
  • ON_GREATER_EQ
  • ON_BETWEEN
  • ON_BETWEEN_EQ
  • ON_EQUAL
Threshold_1, Threshold_2 - liczby typu double np. 20.5.

Ponieważ przykłady są najlepsze wrzucam kilka do testowania:

Mamy bateryjny przycisk Tuya z 4 klawiszami, który ma BUTTON_1_PRESSED na kanale 0 i BUTTON_2_PRESSED na kanale 3 oraz gniazdko, które ma przekaźnik elektryczny na kanale 9.

add-action TESTOWA1 0 TURN_ON 9 ON_CHANGE - gdy użytkownik naciśnie klawisz 1 włączy przekaźnik,

add-action TESTOWA2 3 TOGGLE 9 ON_CHANGE - gdy użytkownik naciśnie klawisz 2 przełączy przekaźnik,

a teraz termometr, np. ten testowy na kanale 100 ;)

add-action TESTOWA3 100 TURN_OFF 9 ON_LESS 19.5 0 - gdy temperatura spadnie < 19,5 st. C termometr wyłączy przekaźnik

UWAGA!Na razie zawsze trzeba podać obie wartości threshold_1 i treshhold_2 - ta druga jest używana tylko dla ON_BETWEEN i ON_BETWEEN_EQ, więc dla innych można wpisać 0, ale nie można jej pominąć.

Ktoś może zapytać, jaki sens dublować doskonale działające reakcje, ale tutaj mamy jedną zasadniczą przewagę - zdarzenia działają lokalnie w obrębie bramki, więc w teorii powinny zadziałać nawet przy chwilowym braku Internetu. Pytanie czy to się w praktyce do czegoś przyda...
Zanim zacznę testować (a mam pewien fajny pomysł) to tylko zapytam, czy działa to już na stałe, czy dalej nie zapisuje ustawień i każdy reset je usuwa?
Image Wiesz, że Supla obsługuje Zigbee? Wstąp do Klubu Promila: https://forum.supla.org/viewtopic.php?t=18018
Image Szukasz nowego GG? Jest tutaj: https://forum.supla.org/viewtopic.php?t=18036

Return to “Bramka ZigBee”