Przekaźniki/Relay w SuplaDevice Arduino IDE

zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

vajera wrote: Sun Apr 27, 2025 4:00 pm To wygląda poważnie tylko na pierwszy rzut oka 😉
Rozwiązania, które zastosował @klew w SuplaDevice to przykład bardzo dobrze zaprojektowanego systemu, który łatwo rozbudowywać o nowe funkcje.
Tak to jest właśnie zazwyczaj że jak się już zacznie to się i skończy :)
Mnie jednak dziwi bo w pierwszym poście tego tematu @klew właśnie opisał Relay i VirtualRelay tak jakby i jeden i drugi posiadał tą opcję.
cyt. z pierwszego posta autor @klew :) ...VirtualRelay działa analogicznie jak Relay, z tą różnicą, że jest to wirtualny przekaźnik bez powiązania z fizycznym pinem. Wszystkie metody opisane powyżej dla Relay mogą być tutaj stosowane.
@klew skłamałeś? ;)
User avatar
klew
Posts: 13905
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Kto? Ja? ;)

Wydaje mi się że powinno działać na virtual relay.
Jeśli nie działa, to poprawię.
Najlepsze suple dla Twojego domu :mrgreen:
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

klew wrote: Sun Apr 27, 2025 4:30 pm Kto? Ja? ;)

Wydaje mi się że powinno działać na virtual relay.
Jeśli nie działa, to poprawię.
Bo ja w razie czego mam dla Ciebie przygotowaną pokutę jeśli to nie działa. :lol: ;)

https://github.com/SUPLA/supla-core/issues/535 :P
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

@klew mówiłeś na poważnie że zerkniesz o co chodzi? Bo nie wiem czy poczekać czy zrobić to inaczej. Jeśli by to miało działać to by była lepsza opcja. No i było by zgodnie z założeniem. Nadaj kierunek co robić ;)
User avatar
klew
Posts: 13905
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

zzrr wrote: Sun Apr 27, 2025 8:13 pm @klew mówiłeś na poważnie że zerkniesz o co chodzi? Bo nie wiem czy poczekać czy zrobić to inaczej. Jeśli by to miało działać to by była lepsza opcja. No i było by zgodnie z założeniem. Nadaj kierunek co robić ;)
Sprawdziłem i wszystko działa poprawnie. Stan się zapisuje i odtwarza.
Dorzuciłem na szybko przykład do Arduino z VirtualRelay: https://github.com/SUPLA/supla-device/b ... lRelay.ino
Najlepsze suple dla Twojego domu :mrgreen:
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

klew wrote: Mon Apr 28, 2025 6:03 pm Sprawdziłem i wszystko działa poprawnie. Stan się zapisuje i odtwarza.
Dorzuciłem na szybko przykład do Arduino z VirtualRelay: https://github.com/SUPLA/supla-device/b ... lRelay.ino
Jak tylko przeczytałem sprawdzam jeszcze raz... nie zadziałało. No ale skoro napisałeś że działa szukam przyczyny i jest tak...
Jeśli jest offset:
Supla::Eeprom eeprom(512); - nie działa
bez offsetu
Supla::Eeprom eeprom; - działa. A offset mi potrzebny.
Coś @klew poradzisz?
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

zzrr wrote: Mon Apr 28, 2025 6:35 pm
klew wrote: Mon Apr 28, 2025 6:03 pm Sprawdziłem i wszystko działa poprawnie. Stan się zapisuje i odtwarza.
Dorzuciłem na szybko przykład do Arduino z VirtualRelay: https://github.com/SUPLA/supla-device/b ... lRelay.ino
Jak tylko przeczytałem sprawdzam jeszcze raz... nie zadziałało. No ale skoro napisałeś że działa szukam przyczyny i jest tak...
Jeśli jest offset:
Supla::Eeprom eeprom(512); - nie działa
bez offsetu
Supla::Eeprom eeprom; - działa. A offset mi potrzebny.
Coś @klew poradzisz?
offsetem wychodzisz poza zadeklarowany rozmiar, jeśli działasz na ESP32

Code: Select all

bool Eeprom::init() {
#if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32)
  if (reservedSize <= 0) {
#if defined(ARDUINO_ARCH_ESP8266)
    EEPROM.begin(1024);
#elif defined(ARDUINO_ARCH_ESP32)
    EEPROM.begin(512);
#endif
  } else {
    EEPROM.begin(reservedSize);
  }
  delay(15);
#endif

  return Storage::init();
}
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

lukfud wrote: Mon Apr 28, 2025 8:01 pm
offsetem wychodzisz poza zadeklarowany rozmiar, jeśli działasz na ESP32

No działam na ESP32 a dokładnie ESP32C3, ale w tym przypadku to chyba bez znaczenia.

@lukfud wiesz co... Jak zwykle masz rację 👍 Kurde ale Zonk. Dzięki.

Ile sobie SUPLA w takim razie rezerwuje NVS na swoje dane?🤔
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

zzrr wrote: Mon Apr 28, 2025 8:55 pm
lukfud wrote: Mon Apr 28, 2025 8:01 pm
offsetem wychodzisz poza zadeklarowany rozmiar, jeśli działasz na ESP32

No działam na ESP32 a dokładnie ESP32C3, ale w tym przypadku to chyba bez znaczenia.

@lukfud wiesz co... Jak zwykle masz rację 👍 Kurde ale Zonk. Dzięki.

Ile sobie SUPLA w takim razie rezerwuje NVS na swoje dane?🤔
Ustaw np.:

Code: Select all

Supla::Eeprom eeprom(512, 2048); // offset. rozmiar
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: 13905
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

zzrr wrote: Mon Apr 28, 2025 8:55 pm
lukfud wrote: Mon Apr 28, 2025 8:01 pm
offsetem wychodzisz poza zadeklarowany rozmiar, jeśli działasz na ESP32

No działam na ESP32 a dokładnie ESP32C3, ale w tym przypadku to chyba bez znaczenia.

@lukfud wiesz co... Jak zwykle masz rację 👍 Kurde ale Zonk. Dzięki.

Ile sobie SUPLA w takim razie rezerwuje NVS na swoje dane?🤔
W Arduino IDE Supla kiedyś nie używała NVS wcale.
Następnie w esp-idf zacząłem używać NVS do Storage::Config, ale z racji braku wsparcia dla NVS na ESP8266, dla Arduino był napisany nieco prostszy mechanizm Supla::KeyValue, który używa LittleFS do przechowywania danych z Configa.
Także sam Config nie używa.
No i jest jeszcze Storage od przechowywania stanu. Tam w Arduino lecimy na klasie emulującej EEPROM. No i chyba od jakiegoś czasu ten EEPROM w esp32 jest postawiony na NVS (a przynajmniej tak coś kojarzę).
Sam goły Storage zajmuje pewnie koło kilkunastu bajtów. Do tego użyte elementy (przechowujące stan) dorzucają z reguły po kilka bajtów od siebie. Także wszystko zależy od tego czego tam używasz.
Najprościej wrzucić wszystko i z logów odczytać ile zajmuje Storage.
Najlepsze suple dla Twojego domu :mrgreen:

Return to “Arduino IDE”