Obsługa przycisków w SuplaDevice

krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

Spróbowałem to samo zrobić nie za pomocą vektorów i ten sam efekt ;/

Code: Select all

  Supla::Control::Relay *relay = new Supla::Control::Relay(5);
  Supla::Control::Button *button = new Supla::Control::Button(0, true);
  button->willTrigger(*relay, Supla::ON_PRESS, Supla::TOGGLE);
PS.
Udało się okazała się rzecz banalna! Jeżeli operuje się na wskaźnikach to kod powyższy musi być przed SuplaDevice.begin w innym przypadku nie ma to znaczenia w którym miejscu się go odpali :)
https://gui-generic-builder.supla.io/
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

krycha88 wrote: Sun May 24, 2020 8:26 am Spróbowałem to samo zrobić nie za pomocą vektorów i ten sam efekt ;/

Code: Select all

  Supla::Control::Relay *relay = new Supla::Control::Relay(5);
  Supla::Control::Button *button = new Supla::Control::Button(0, true);
  button->willTrigger(*relay, Supla::ON_PRESS, Supla::TOGGLE);
PS.
Udało się okazała się rzecz banalna! Jeżeli operuje się na wskaźnikach to kod powyższy musi być przed SuplaDevice.begin w innym przypadku nie ma to znaczenia w którym miejscu się go odpali :)
Wszystkie elementy sterujące muszą być przed "begin". Inaczej nie zostanie odpalona metoda "onInit" i element się nie zainicjalizuje.

"willTrigger" warto dać po "begin", bo aktualnie nie ma zabezpieczenia i może się okazać, że "button" jest dodany wcześniej i postanowi on wykonać akcję na nie zainicjalizowanym przekaźniku. To tymczasowa niedogodność - planuję się pozbyć tego problemu
Najlepsze suple dla Twojego domu :mrgreen:
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

Jak ustawić domyślny stan przekaźnika po starcie urządzenia, np. chciał bym ustawić aby przekaźnik był na ON?
https://gui-generic-builder.supla.io/
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

krycha88 wrote: Sat Jun 06, 2020 6:28 pm Jak ustawić domyślny stan przekaźnika po starcie urządzenia, np. chciał bym ustawić aby przekaźnik był na ON?
Na chwilę obecną możesz po "SuplaDevice.begin()" wstawić przekaznik->turnOn();
Najlepsze suple dla Twojego domu :mrgreen:
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

klew wrote: Sat Jun 06, 2020 9:32 pm
krycha88 wrote: Sat Jun 06, 2020 6:28 pm Jak ustawić domyślny stan przekaźnika po starcie urządzenia, np. chciał bym ustawić aby przekaźnik był na ON?
Na chwilę obecną możesz po "SuplaDevice.begin()" wstawić przekaznik->turnOn();
Faktycznie działa.

Mam przekaźniki sterowane stanem niskim i podłączone do nodemcu. Przekaźnika po przełączeniu z aplikacji zawsze jest odwrotny niezależnie od ustawień. Przełączenie dla przycisku ustawia odpowiednie stany.
https://gui-generic-builder.supla.io/
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

krycha88 wrote: Sun Jun 07, 2020 10:24 am Mam przekaźniki sterowane stanem niskim i podłączone do nodemcu. Przekaźnika po przełączeniu z aplikacji zawsze jest odwrotny niezależnie od ustawień. Przełączenie dla przycisku ustawia odpowiednie stany.

Code: Select all

new Supla::Control::Relay(pin, false);
nie działa poprawnie?
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

lukfud wrote: Sun Jun 07, 2020 12:33 pm
krycha88 wrote: Sun Jun 07, 2020 10:24 am Mam przekaźniki sterowane stanem niskim i podłączone do nodemcu. Przekaźnika po przełączeniu z aplikacji zawsze jest odwrotny niezależnie od ustawień. Przełączenie dla przycisku ustawia odpowiednie stany.

Code: Select all

new Supla::Control::Relay(pin, false);
nie działa poprawnie?
Błąd był po mojej stronie a nie biblioteki :)
https://gui-generic-builder.supla.io/
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

@klew,
wczoraj zauważyłem, że przy braku połączenia z serwerem (wyłączone raspberry) przycisk nie działa za każdym naciśnięciem.
To jest normalne zachowanie, że musi się wstrzelić pomiędzy próbę połączenia, czy ja coś namieszałem?
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

lukfud wrote: Mon Jun 08, 2020 7:37 am @klew,
wczoraj zauważyłem, że przy braku połączenia z serwerem (wyłączone raspberry) przycisk nie działa za każdym naciśnięciem.
To jest normalne zachowanie, że musi się wstrzelić pomiędzy próbę połączenia, czy ja coś namieszałem?
Na EPS czy Arduino Mega?
Funkcje sieciowe na Arduino są niestety blokujące, więc pewnie stąd ten efekt. Pewnie trzeba będzie przerzucić obsługę większości rzeczy na przerwania.
Najlepsze suple dla Twojego domu :mrgreen:
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

lukfud wrote: Mon Jun 08, 2020 7:37 am @klew,
wczoraj zauważyłem, że przy braku połączenia z serwerem (wyłączone raspberry) przycisk nie działa za każdym naciśnięciem.
To jest normalne zachowanie, że musi się wstrzelić pomiędzy próbę połączenia, czy ja coś namieszałem?
też to zauważyłem, ustaw sobie setTimeout(500) w esp_wifi.h w setupie i będzie znaczna poprawa :)
https://gui-generic-builder.supla.io/

Return to “Arduino IDE”