Pytanie o setDefaultStateRestore() dla obiektu typu Relay

proxxon
Posts: 104
Joined: Wed Nov 22, 2017 2:42 pm

Post

Hej,

Próbuje bawić się przykładami dla Arduino w Supla-Device. Z powodzeniem odpaliłem przykład dla wirtualnego przekaźnika. Co dla mnie istotne potrzebuję zapamiętać stan przekaźnika po ew. resecie zasilania i dla przykładu VirtualRelay.ino to działa:

Code: Select all

  // Channel #0 Virtual Relay
  auto vr = new Supla::Control::VirtualRelay();
  vr->setDefaultFunction(SUPLA_CHANNELFNC_POWERSWITCH);
  // Enable state restore after device restart:
  vr->setDefaultStateRestore();
  
Jednak gdy zmienię VirtualRelay() na:

Code: Select all

auto vr = new Supla::Control::Relay(39);
(fizyczny przekaźnik na pinie 39) to po wciśnięciu przycisku RESET na mojej płytce (OLIMEX ESP-Gateway) przekaźnik nie wraca do stanu z przed resetu (był wł a po resecie jest wył). Przed resetem przekaźnik był włączony co najmniej 10 minut więc stan powinien się zapisać w pamięci. Czy ktoś mógłby mi powiedzieć jak poprawnie przywracać stan dla fizycznych przekaźników?
Oczywiście relay.h zainkludowany oraz obiekt eeprom stworzony tak jak w ori przykładzie:

Code: Select all

#include <supla/control/relay.h>
#include <supla/storage/eeprom.h>

Supla::Eeprom eeprom();
User avatar
klew
Posts: 11254
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Wrzuć logi od włączenia, poczekaj, wyłącz zasilanie, włącz i jakaś 1 min po włączeniu
Supla: bo GPIO to dopiero początek.
User avatar
Bania
Posts: 42
Joined: Wed Jul 24, 2024 5:03 pm
Location: Bielsko-Biała

Post

Code: Select all

vr->setDefaultStateRestore();
vr->onSaveState(); // wlacz zapis
User avatar
klew
Posts: 11254
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Bania wrote: Sun Jun 01, 2025 4:36 pm

Code: Select all

vr->setDefaultStateRestore();
vr->onSaveState(); // wlacz zapis
Tak nie róbcie. onSaveState nie powinno być publiczna metodą.
Supla: bo GPIO to dopiero początek.
proxxon
Posts: 104
Joined: Wed Nov 22, 2017 2:42 pm

Post

Dzięki logom problem rozwiązany. Wybrałem GPI39 (bez O) czyli pin, który nie może być wyjściem :lol: Po zmianie na inny, już taki, który może być wyjściem zapisywanie stanu zaczęło działać :D

Return to “supla-dev”