Własna kompilacja GUI - wyłączanie RELAYA z poziomu kodu

petione
Posty: 90
Rejestracja: sob lip 21, 2018 4:26 pm

Witam.
Kompiluje sobie sam GUI celem dostosowania do własnych celów. Kiedyś robiłem swój programik z wykorzystaniem Primary GUI lecz zapragnęły mi się nowe fiuczery i chciałbym spróbować uruchomić nową wersję tego cudowne softu.
Mianowicie (proszę wybaczyć za niefachowy język) jak z poziomu kodu wyłączyć przekaźnik tak aby ten fakt zaistniał również w cloudzie. Dla starej biblioteki SuplaDevice była to (chyba) komenda przykładowo SuplaDevice.relayOff(4). A jak będzie wyglądała teraz?

Potrzebuje takiej funkcjonalności bo przykładowo oświetlenie mogę włączać/wyłączać z poziomu clouda ale w zależności od różnych czynników samo urządzenie może też wyłączyć lub włączyć to oświetlenie. Nie chodzi mi tu o wykorzystanie funkcjonalności Buttona , ponieważ warunki wyłączenia są zależne od większej ilości czynników (warunków).
Awatar użytkownika
lukfud
Posty: 2091
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

petione pisze: pn lis 22, 2021 12:59 pm Witam.
Kompiluje sobie sam GUI celem dostosowania do własnych celów. Kiedyś robiłem swój programik z wykorzystaniem Primary GUI lecz zapragnęły mi się nowe fiuczery i chciałbym spróbować uruchomić nową wersję tego cudowne softu.
Mianowicie (proszę wybaczyć za niefachowy język) jak z poziomu kodu wyłączyć przekaźnik tak aby ten fakt zaistniał również w cloudzie. Dla starej biblioteki SuplaDevice była to (chyba) komenda przykładowo SuplaDevice.relayOff(4). A jak będzie wyglądała teraz?

Potrzebuje takiej funkcjonalności bo przykładowo oświetlenie mogę włączać/wyłączać z poziomu clouda ale w zależności od różnych czynników samo urządzenie może też wyłączyć lub włączyć to oświetlenie. Nie chodzi mi tu o wykorzystanie funkcjonalności Buttona , ponieważ warunki wyłączenia są zależne od większej ilości czynników (warunków).

Kod: Zaznacz cały

relay->turnOff();
https://www.facebook.com/groups/supladiy/
petione
Posty: 90
Rejestracja: sob lip 21, 2018 4:26 pm

Kod: Zaznacz cały

relay->turnOff();
Dzięki wielkie.

Mam natomiast kolejne pytania.

AT działa dla wszelkiego rodzaju przycisków czujników itp. A czy istnieje możliwość przypisania AT do relaya (widocznego oczywiście w cloud), uruchamianego poprzez własny kod programu? Wiem że można wykorzystać tutaj linki symboliczne ale gdy z poziomu kodu dodam swój relay to nie pojawi się on chyba na stronie konfiguracyjnej i nie ma wtedy możliwości przypisania linków a tak można by to było skonfigurować po stronie clouda.

I tutaj kolejne pytanie z tym powiązane. Gdy dodam z poziomu własnego kodu relaya to czy mogę go jakoś zobaczyć z poziomu strony konfiguracyjnej czyli czy strona konfiguracyjna przy włączeniu jej pokaże ze istnieje przekaźnik przypisany do określonego wyjścia.

A może można poprostu z poziomu kodu jakoś sterować relayem, który został utworzony przez stronę konfiguracyjną?
Awatar użytkownika
lukfud
Posty: 2091
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

petione pisze: wt lis 23, 2021 8:15 am Mam natomiast kolejne pytania.
1 - AT działa dla wszelkiego rodzaju przycisków czujników itp. A czy istnieje możliwość przypisania AT do relaya (widocznego oczywiście w cloud), uruchamianego poprzez własny kod programu? Wiem że można wykorzystać tutaj linki symboliczne ale gdy z poziomu kodu dodam swój relay to nie pojawi się on chyba na stronie konfiguracyjnej i nie ma wtedy możliwości przypisania linków a tak można by to było skonfigurować po stronie clouda.
2 - I tutaj kolejne pytanie z tym powiązane. Gdy dodam z poziomu własnego kodu relaya to czy mogę go jakoś zobaczyć z poziomu strony konfiguracyjnej czyli czy strona konfiguracyjna przy włączeniu jej pokaże ze istnieje przekaźnik przypisany do określonego wyjścia.
3 - A może można poprostu z poziomu kodu jakoś sterować relayem, który został utworzony przez stronę konfiguracyjną?
Jeszcze raz i po kolei :)
1 - Chcesz AT wykonać stanem przekaźnika? Jeśli tak, to można to zrobić.
2 - Jeśli dodasz coś w kodzie poza mechanizmem dodawania elementów (przyciski, przekaźniki, czujniki) to wątpię aby pokazało się to na stronie konfiguracyjnej.
3 - można, o ile wiesz w którym miejscu, co dopisać.
https://www.facebook.com/groups/supladiy/
petione
Posty: 90
Rejestracja: sob lip 21, 2018 4:26 pm

lukfud pisze: wt lis 23, 2021 8:28 am
petione pisze: wt lis 23, 2021 8:15 am Mam natomiast kolejne pytania.
1 - AT działa dla wszelkiego rodzaju przycisków czujników itp. A czy istnieje możliwość przypisania AT do relaya (widocznego oczywiście w cloud), uruchamianego poprzez własny kod programu? Wiem że można wykorzystać tutaj linki symboliczne ale gdy z poziomu kodu dodam swój relay to nie pojawi się on chyba na stronie konfiguracyjnej i nie ma wtedy możliwości przypisania linków a tak można by to było skonfigurować po stronie clouda.
2 - I tutaj kolejne pytanie z tym powiązane. Gdy dodam z poziomu własnego kodu relaya to czy mogę go jakoś zobaczyć z poziomu strony konfiguracyjnej czyli czy strona konfiguracyjna przy włączeniu jej pokaże ze istnieje przekaźnik przypisany do określonego wyjścia.
3 - A może można poprostu z poziomu kodu jakoś sterować relayem, który został utworzony przez stronę konfiguracyjną?
Jeszcze raz i po kolei :)
1 - Chcesz AT wykonać stanem przekaźnika? Jeśli tak, to można to zrobić.
2 - Jeśli dodasz coś w kodzie poza mechanizmem dodawania elementów (przyciski, przekaźniki, czujniki) to wątpię aby pokazało się to na stronie konfiguracyjnej.
3 - można, o ile wiesz w którym miejscu, co dopisać.
1. Jak więc wykonać AT stanem przekaźnika? Dodałem w kodzie swój relay ale w cloudzie nie widzę nigdzie żadnej opcji związanej z AT tak jak jest to choćby po dodaniu przycisku. Może w kodzie potrzebna jest jakaś dodatkowa konfiguracja aby przekaźnik wspierał AT?
2. Tak też myślałem stąd poniekąd ptk 1 rozwiązywał by ten problem (ale z ciekawości musze spróbować co się stanie jak przez WWW dodam przekaźnik przypisany do tego samego pinu co w kodzie - pewnie konflikt kanałów?).
3. No właśnie nie wiem jak to ewentualnie ugryźć ale znów pkt 1 pozwoli rozwiązać mój problem aczkolwiek i tak będę musiał wróć w kolejnych pytaniach do tego tematu bo będę potrzebował zmiennej regulowanie ze strony WWW (w Primary GUI udało mi się to ale tutaj jakoś inaczej są dodawane wpisy widoczne w stronie konfiguracyjnej a ja się dopiero wgryzam po dłuższej przerwie :roll: )

Generalnie chodzi o to że kod uruchamia na podstawie własnych warunków oświetlenie w urządzeniu A a zamiar jest taki aby zdalnie bez kabelków uruchomić na ten sam czas oświetlenie w urządzeniu B)
Awatar użytkownika
Goral64
Posty: 3131
Rejestracja: pt gru 27, 2019 6:22 pm
Lokalizacja: Żerniki Wrocławskie
Kontakt:

AT oparte jest o Przycisk (Button), nie o Przekaźnik (Relay)
O ile się nie mylę, to GUI Generic obsługę AT ma jeszcze tylko w gałęzi develop, więc jeśli kompilujesz na podstawie master to ten tego...
Widzimy się na Supla Offline Party Season 2 :D

Obrazek
Awatar użytkownika
lukfud
Posty: 2091
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

Goral64 pisze: wt lis 23, 2021 9:20 am AT oparte jest o Przycisk (Button), nie o Przekaźnik (Relay)
O ile się nie mylę, to GUI Generic obsługę AT ma jeszcze tylko w gałęzi develop, więc jeśli kompilujesz na podstawie master to ten tego...
AT dodajesz do czego chcesz, nie musi być to koniecznie przycisk.
Nie istotna jest wersja samego GG, ale biblioteki, skoro @petione chce to sobie sam dopisać.
https://www.facebook.com/groups/supladiy/
Awatar użytkownika
lukfud
Posty: 2091
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

petione pisze: wt lis 23, 2021 9:14 am Generalnie chodzi o to że kod uruchamia na podstawie własnych warunków oświetlenie w urządzeniu A a zamiar jest taki aby zdalnie bez kabelków uruchomić na ten sam czas oświetlenie w urządzeniu B)

Kod: Zaznacz cały

auto relay = new Supla::Control::Relay(relay_pin);
auto at = new Supla::Control::ActionTrigger();
at->setRelatedChannel(relay);
relay->addAction(Supla::SEND_AT_SHORT_PRESS_x2, at, Supla::ON_TURN_ON);
relay->addAction(Supla::SEND_AT_SHORT_PRESS_x3, at, Supla::ON_TURN_OFF);
https://www.facebook.com/groups/supladiy/
Awatar użytkownika
Goral64
Posty: 3131
Rejestracja: pt gru 27, 2019 6:22 pm
Lokalizacja: Żerniki Wrocławskie
Kontakt:

lukfud pisze: wt lis 23, 2021 9:39 am

Kod: Zaznacz cały

auto relay = new Supla::Control::Relay(relay_pin);
auto at = new Supla::Control::ActionTrigger();
at->setRelatedChannel(relay);
relay->addAction(Supla::SEND_AT_SHORT_PRESS_x2, at, Supla::ON_TURN_ON);
relay->addAction(Supla::SEND_AT_SHORT_PRESS_x3, at, Supla::ON_TURN_OFF);
Hmm, to by oznaczało, że szybkie załączenie przekaźnika 2 razy włączy ten przekaźnik a szybkie załączenie przekaźnika 3 razy go wyłączy?
Widzimy się na Supla Offline Party Season 2 :D

Obrazek
Awatar użytkownika
lukfud
Posty: 2091
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

Goral64 pisze: wt lis 23, 2021 10:34 am
lukfud pisze: wt lis 23, 2021 9:39 am

Kod: Zaznacz cały

auto relay = new Supla::Control::Relay(relay_pin);
auto at = new Supla::Control::ActionTrigger();
at->setRelatedChannel(relay);
relay->addAction(Supla::SEND_AT_SHORT_PRESS_x2, at, Supla::ON_TURN_ON);
relay->addAction(Supla::SEND_AT_SHORT_PRESS_x3, at, Supla::ON_TURN_OFF);
Hmm, to by oznaczało, że szybkie załączenie przekaźnika 2 razy włączy ten przekaźnik a szybkie załączenie przekaźnika 3 razy go wyłączy?
Nie, AT_SHORT_PRESS_x2 to tylko nazwa (aby odpowiadała całemu mechanizmowi), mogło by być tu słowo "serdelki". Włączenie przekaźnika wyśle AT jako 2-klik, a wyłączenie jako 3-klik.
https://www.facebook.com/groups/supladiy/
ODPOWIEDZ

Wróć do „GUI Generic”