SuplaDevice 26.08 - sezon ogórkowy

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

Zebrało się sporo zmian od wydania 26.04, więc szykuję kolejne wydanie supla-device: 26.08.

Poniżej najważniejsze rzeczy z punktu widzenia DIY, Arduino IDE, PlatformIO i sd4linux. Pełna lista zmian jest oczywiście znacznie dłuższa.

1. RelayRollerShutterPair - roleta albo dwa przekaźniki

Doszła nowa klasa `RelayRollerShutterPair`, przeznaczona dla urządzeń, które mogą pracować jako:
- jeden sterownik rolety lub żaluzji,
- dwa niezależne przekaźniki.

Tryb pracy może być zmieniany w runtime i z lokalnej strony WWW. Jest też obsługa domyślnych funkcji, zapamiętywania stanów, przycisków i Action Triggerów.

Przy okazji poprawiłem sporo przypadków brzegowych w roletach i żaluzjach fasadowych:
- bezpieczniejsze przełączanie kierunku,
- walidacja kąta lameli,
- czyszczenie nieaktualnej konfiguracji,
- poprawne oznaczanie stanu "not calibrated",
- poprawki przy zmianie funkcji kanału.

2. Arduino IDE i PlatformIO

ESP8266 i ESP32 w Arduino IDE oraz PlatformIO nadal są wspierane.

Usunięty został stary target ESP8266 RTOS SDK. Nie dotyczy to normalnych projektów ESP8266 budowanych przez Arduino IDE lub PlatformIO.

Pozostałe zmiany:
- poprawka uszkodzenia stosu na ESP8266 po DeviceConfig,
- poprawione skalowanie PWM na platformach, które nie używają rozdzielczości 10-bitowej,
- poprawki PWM i oświetlenia przy zmianie funkcji kanału,
- dodana obsługa SHT10 wraz z przykładem.

3. Ważne zmiany przy aktualizacji istniejących projektów

Usunięty został tryb singletona z `Supla::Io::Base`.

Jeżeli ktoś używał własnego backendu GPIO jako globalnego singletona, powinien teraz przekazywać instancję `Io` jawnie, najlepiej przez `IoPin`.

Usunięta została też metoda: `SuplaDevice.setPermanentWebInterface()`

4. Sieć, lokalne WWW i MQTT

Lokalna strona konfiguracyjna dostała kilka praktycznych zmian:
- cykliczne skanowanie Wi-Fi,
- wybór sieci z listy,
- RSSI i jakość sygnału,
- czytelniejsze ostrzeżenia i błędy,
- ustawienia funkcji roleta/przekaźnik,
- privacy mode, przydatny np. do robienia screenshotów bez ujawniania danych.

Doszła też konfiguracja statycznego IP dla Ethernetu na ESP32 oraz kilka poprawek przełączania pomiędzy Wi-Fi, Ethernetem i trybem konfiguracji.

5. Czujniki i konfiguracja urządzenia

MultiDS / DS18B20 dostał sporo zmian:
- rozdzielenie wewnętrznego indeksu czujnika od `SubDeviceId`,
- poprawki parowania i rozwiązywania konfliktów,
- backend dla ESP-IDF.

Doszła też obsługa konfiguracji urządzenia:
- `InputActivation`,
- `ThermalProtection`.

Protokół SUPLA został zaktualizowany z wersji 28 do 29 (zmiany rozwojowe, bo serwer jeszcze nie ma wersji 29).

6. sd4linux

W sd4linux doszło źródło HTTP wraz z przykładem integracji pralki SmartThings.

Poza tym:
- opcjonalna zależność od curl,
- możliwość dodawania rozszerzeń podczas kompilacji,
- obsługa SolarEdge,
- dokładniejsze komunikaty o błędach w YAML,
- poprawiona walidacja TLS,
- ograniczenie rozmiaru odpowiedzi HTTP,
- poprawki bezpieczeństwa w obsłudze poleceń.

7. Bezpieczeństwo i stabilność

W tej wersji jest też sporo mniej widocznych, ale ważnych poprawek:
- usuwanie haseł, tokenów i innych danych wrażliwych z logów,
- poprawki obsługi certyfikatów HTTPS i OTA (esp-idf),
- ochrona CSRF formularzy konfiguracyjnych,
- dokładniejsza walidacja storage, CRC i granic partycji,
- poprawki wycieków pamięci, błędów buforów i reconnectów SRPC.

Podsumowanie

Najbardziej widoczne zmiany dla DIY to `RelayRollerShutterPair`, poprawki rolet, lepsza lokalna konfiguracja Wi-Fi, nowe opcje Ethernetu oraz poprawki Arduino Mega i ESP8266.

Pod spodem jest też dużo pracy związanej z bezpieczeństwem, storage i stabilnością połączeń.

Pełen changelog:
https://github.com/SUPLA/supla-device/b ... ANGELOG.md
Najlepsze suple dla Twojego domu :mrgreen:
[email protected]
Posts: 1584
Joined: Mon Feb 06, 2023 8:56 am
Has thanked: 18 times
Been thanked: 26 times

Post

@klew

Aktualizuje w GG SD i potrzebuje chyba interpretacji zmian :D

https://github.com/SUPLA/supla-device/b ... elay.h#L60

metody pinOnValue/pinOffValue odwoływały się do metody isActiveHigh, która na podstawie wewnętrznego stanu obiektu podawała wartość, po nowemu writeActive aktywnie pisze do GPIO, żeby wyciągnąć stan, tak to miało być? A nie powinno tam być readActive w tym komentarzu obsolete ?
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

[email protected] wrote: Sun Aug 16, 2026 9:29 am
Tam ogólnie "wiedza" o sposobie sterowania danym gpio została przeniesiona do IoPin.
Z punktu widzenia klasy Relay nie musisz wiedzieć jak fizycznie odbywa się sterowanie. Klasa Relay ma jedynie włączać i wyłączać gpio.
To On/OffValue było używane na zasadzie digitalWrite(pinOnValue) - gdy chciałeś włączyć i analogicznie gdy chciałeś wyłączyć.
Ten komentarz deprecated idzie trochę na skróty, bo writeActive nie zastępuje pinOnValue, tylko całe użycie w połączeniu z digitalWrite.

Ogólnie klasy IoPin i Supla::Io pozwalają na pisanie wyższej logiki sterującej bez zagłębiania się niepotrzebnie w detale sprzętowe.
Dlatego potem to wszytko fajnie działa na ekspanderach i dowolnych innych backendach sprzętowych
Najlepsze suple dla Twojego domu :mrgreen:
[email protected]
Posts: 1584
Joined: Mon Feb 06, 2023 8:56 am
Has thanked: 18 times
Been thanked: 26 times

Post

klew wrote: Sun Aug 16, 2026 10:26 am
[email protected] wrote: Sun Aug 16, 2026 9:29 am
Tam ogólnie "wiedza" o sposobie sterowania danym gpio została przeniesiona do IoPin.
Z punktu widzenia klasy Relay nie musisz wiedzieć jak fizycznie odbywa się sterowanie. Klasa Relay ma jedynie włączać i wyłączać gpio.
To On/OffValue było używane na zasadzie digitalWrite(pinOnValue) - gdy chciałeś włączyć i analogicznie gdy chciałeś wyłączyć.
Ten komentarz deprecated idzie trochę na skróty, bo writeActive nie zastępuje pinOnValue, tylko całe użycie w połączeniu z digitalWrite.

Ogólnie klasy IoPin i Supla::Io pozwalają na pisanie wyższej logiki sterującej bez zagłębiania się niepotrzebnie w detale sprzętowe.
Dlatego potem to wszytko fajnie działa na ekspanderach i dowolnych innych backendach sprzętowych
Nie odpowiedziałeś do końca na pytanie bo ja ideę tego co robisz rozumiem :D
Wg mnie te metody deprecated to są swego rodzaju GETy, a Ty w komentarzu piszesz o SET, więc to nie jest jasne na podstawie tego komentarza co z tym zrobić i tak jak piszesz to nie jest ekwiwalent.

Szczególnie z takim kodem w GG to co piszesz nie wyjaśnia co z tym zrobić, jak potrzebuje znać stan, ja bym użył readActive zamiast pinOnValue:

Code: Select all

  Supla::Io::digitalWrite(channel.getChannelNumber(), pin, pinOnValue());
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

Przecież dokładnie ten use case opisałem;)
Najlepsze suple dla Twojego domu :mrgreen:
[email protected]
Posts: 1584
Joined: Mon Feb 06, 2023 8:56 am
Has thanked: 18 times
Been thanked: 26 times

Post

klew wrote: Sun Aug 16, 2026 11:18 am Przecież dokładnie ten use case opisałem;)
Owszem, na forum, w kodzie to nie ma takiego znaczenia i wyjaśnienia 😉

Dzięki, wiem co dalej
lukasz06
Posts: 2540
Joined: Sun Jul 17, 2022 6:53 pm
Has thanked: 45 times
Been thanked: 21 times

Post

klew wrote: Fri Aug 14, 2026 2:54 pm Zebrało się sporo zmian od wydania 26.04, więc szykuję kolejne wydanie supla-device: 26.08.

Poniżej najważniejsze rzeczy z punktu widzenia DIY, Arduino IDE, PlatformIO i sd4linux. Pełna lista zmian jest oczywiście znacznie dłuższa.

1. Compilation error: 'class Supla::Control::RelayRollerShutterPair' has no member named 'setMode' - roleta albo dwa przekaźniki

Doszła nowa klasa `RelayRollerShutterPair`, przeznaczona dla urządzeń, które mogą pracować jako:
- jeden sterownik rolety lub żaluzji,
- dwa niezależne przekaźniki.

Tryb pracy może być zmieniany w runtime i z lokalnej strony WWW. Jest też obsługa domyślnych funkcji, zapamiętywania stanów, przycisków i Action Triggerów.

Przy okazji poprawiłem sporo przypadków brzegowych w roletach i żaluzjach fasadowych:
- bezpieczniejsze przełączanie kierunku,
- walidacja kąta lameli,
- czyszczenie nieaktualnej konfiguracji,
- poprawne oznaczanie stanu "not calibrated",
- poprawki przy zmianie funkcji kanału.

2. Arduino IDE i PlatformIO

ESP8266 i ESP32 w Arduino IDE oraz PlatformIO nadal są wspierane.

Usunięty został stary target ESP8266 RTOS SDK. Nie dotyczy to normalnych projektów ESP8266 budowanych przez Arduino IDE lub PlatformIO.

Pozostałe zmiany:
- poprawka uszkodzenia stosu na ESP8266 po DeviceConfig,
- poprawione skalowanie PWM na platformach, które nie używają rozdzielczości 10-bitowej,
- poprawki PWM i oświetlenia przy zmianie funkcji kanału,
- dodana obsługa SHT10 wraz z przykładem.

3. Ważne zmiany przy aktualizacji istniejących projektów

Usunięty został tryb singletona z `Supla::Io::Base`.

Jeżeli ktoś używał własnego backendu GPIO jako globalnego singletona, powinien teraz przekazywać instancję `Io` jawnie, najlepiej przez `IoPin`.

Usunięta została też metoda: `SuplaDevice.setPermanentWebInterface()`

4. Sieć, lokalne WWW i MQTT

Lokalna strona konfiguracyjna dostała kilka praktycznych zmian:
- cykliczne skanowanie Wi-Fi,
- wybór sieci z listy,
- RSSI i jakość sygnału,
- czytelniejsze ostrzeżenia i błędy,
- ustawienia funkcji roleta/przekaźnik,
- privacy mode, przydatny np. do robienia screenshotów bez ujawniania danych.

Doszła też konfiguracja statycznego IP dla Ethernetu na ESP32 oraz kilka poprawek przełączania pomiędzy Wi-Fi, Ethernetem i trybem konfiguracji.

5. Czujniki i konfiguracja urządzenia

MultiDS / DS18B20 dostał sporo zmian:
- rozdzielenie wewnętrznego indeksu czujnika od `SubDeviceId`,
- poprawki parowania i rozwiązywania konfliktów,
- backend dla ESP-IDF.

Doszła też obsługa konfiguracji urządzenia:
- `InputActivation`,
- `ThermalProtection`.

Protokół SUPLA został zaktualizowany z wersji 28 do 29 (zmiany rozwojowe, bo serwer jeszcze nie ma wersji 29).

6. sd4linux

W sd4linux doszło źródło HTTP wraz z przykładem integracji pralki SmartThings.

Poza tym:
- opcjonalna zależność od curl,
- możliwość dodawania rozszerzeń podczas kompilacji,
- obsługa SolarEdge,
- dokładniejsze komunikaty o błędach w YAML,
- poprawiona walidacja TLS,
- ograniczenie rozmiaru odpowiedzi HTTP,
- poprawki bezpieczeństwa w obsłudze poleceń.

7. Bezpieczeństwo i stabilność

W tej wersji jest też sporo mniej widocznych, ale ważnych poprawek:
- usuwanie haseł, tokenów i innych danych wrażliwych z logów,
- poprawki obsługi certyfikatów HTTPS i OTA (esp-idf),
- ochrona CSRF formularzy konfiguracyjnych,
- dokładniejsza walidacja storage, CRC i granic partycji,
- poprawki wycieków pamięci, błędów buforów i reconnectów SRPC.

Podsumowanie

Najbardziej widoczne zmiany dla DIY to `RelayRollerShutterPair`, poprawki rolet, lepsza lokalna konfiguracja Wi-Fi, nowe opcje Ethernetu oraz poprawki Arduino Mega i ESP8266.

Pod spodem jest też dużo pracy związanej z bezpieczeństwem, storage i stabilnością połączeń.

Pełen changelog:
https://github.com/SUPLA/supla-device/b ... ANGELOG.md
@klew Możesz podać jakiś przykład jak użyć `RelayRollerShutterPair`, aby można było zmieniać w webserwer przekaźnik/roleta
User avatar
veeroos
Posts: 1081
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów
Has thanked: 1 time
Been thanked: 9 times

Post

lukasz06 wrote: Wed Aug 19, 2026 2:21 pm Możesz podać jakiś przykład jak użyć `RelayRollerShutterPair`, aby można było zmieniać w webserwer przekaźnik/roleta
Chodzi Ci o coś takiego? ;)
Screenshot_2026-08-21-12-56-17-497_com.mi.globalbrowser.jpg
Screenshot_2026-08-21-12-56-25-028_com.mi.globalbrowser.jpg

No to nie wiem jak to zrobić :lol: :lol: :lol:

Ale jak już rozgryziesz bibliotekę jak deklarować dane, to dodajesz do webserwera przez bibliotekę do obsługi ustawień rolet "roller_shutter_parameters.h", ale to i tak nie działa poprawnie, wyświetla mi tylko opcje do wyboru, ale wybieram tylko rolety, muszę zobaczyć co namieszałem 😂😂, na pewno użyłem złęj biblioteki do wyświetlania parametrów. Użycie Supla::Html::ChannelFunctionParameters(); natomiast wyświetla w webserwerze oba dostępne warianty kanałów, po dodaniu do clouda widzimy pierwszy kanał (u mnie domyślnie roleta) dostępny, a drugi niedostępny, po wyłączeniu rolety pojawiają nam się opcje ustawiania obu kanałów.
You do not have the required permissions to view the files attached to this post.
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more

https://github.com/v33r005
User avatar
YoMan
Posts: 3521
Joined: Thu Apr 30, 2020 5:18 pm
Location: Częstochowa
Has thanked: 3 times
Been thanked: 3 times

Post

klew wrote: Fri Aug 14, 2026 2:54 pm Zebrało się sporo zmian od wydania 26.04, więc szykuję kolejne wydanie supla-device: 26.08.

Poniżej najważniejsze rzeczy z punktu widzenia DIY, Arduino IDE, PlatformIO i sd4linux. Pełna lista zmian jest oczywiście znacznie dłuższa.

1. RelayRollerShutterPair - roleta albo dwa przekaźniki

Doszła nowa klasa `RelayRollerShutterPair`, przeznaczona dla urządzeń, które mogą pracować jako:
- jeden sterownik rolety lub żaluzji,
- dwa niezależne przekaźniki.

Tryb pracy może być zmieniany w runtime i z lokalnej strony WWW. Jest też obsługa domyślnych funkcji, zapamiętywania stanów, przycisków i Action Triggerów.

Przy okazji poprawiłem sporo przypadków brzegowych w roletach i żaluzjach fasadowych:
- bezpieczniejsze przełączanie kierunku,
- walidacja kąta lameli,
- czyszczenie nieaktualnej konfiguracji,
- poprawne oznaczanie stanu "not calibrated",
- poprawki przy zmianie funkcji kanału.
Spróbowałem tej nowości z roletami i po przełączeniu w apce pierwszego przekaźnika na rolety sterowanie zaczeło działać jak rolety na dwóch kanałach ale w zarówno w cloud jak i w apce pozostaje kanał "nieczynny" - do ukrycia (taka sugestia też jest w apce). Tak to docelowo ma być czy też w przyszłosci będzie znikał automatycznie?
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
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

Możesz albo w Cloud ten kanał ukryć, albo w sofę ustawić opcję aby nie pokazywał takich kanałów
Najlepsze suple dla Twojego domu :mrgreen:

Return to “supla-dev”