SuplaDevice wersja 25.08.01

Fryga
Posts: 136
Joined: Tue Oct 13, 2020 5:57 pm
Location: Mińsk Mazowiecki

Post

klew wrote: Thu Sep 18, 2025 8:27 am
Fryga wrote: Thu Sep 18, 2025 8:06 am ja to rozumiem, nie wszystko co piękne i łatwe jest opłacalne.
......
Takie coś też było kilka razy rozważane. W sumie rozmowy sprowadzały się do czegoś w stylu "kanału enum" z kilkoma predefiniowanymi wartościami.
Ale może tu by się przydały ogólnie jakieś bardziej elastyczne ikonki, gdzie w Cloud można sobie przypisać ikony do różnych zakresów.
Aktualnie tego nie zrealizujesz w Supli.

I nie jest to temat dla SuplaDevice, tylko raczej Cloud + server + apki
No a jakbym:

Supla::Control::BinarySensor *chargingDone;
Supla::Control::BinarySensor *chargingInProgress;
Supla::Control::BinarySensor *needsCharging;

potem w setup()
255 = taka jegomość wirtualność
chargingDone = new Supla::Control::BinarySensor(255, true); // Ładowanie zakończone
chargingInProgress = new Supla::Control::BinarySensor(255, true); // Ładowanie w toku
needsCharging = new Supla::Control::BinarySensor(255, true); //Należy naładować

potem w loop()

odczytalbym czujnik
float voltage = ina219.getBusVoltage_V();

ustawiłbym resecik na nich:


chargingDone->setState(false);
chargingInProgress->setState(false);
needsCharging->setState(false);

i w zależności od napięcia

// Ustawić odpowiedni kanał jako aktywny
if (voltage >= 14.5) {
chargingDone->setState(true);
} else if (voltage >= 11.0) {
chargingInProgress->setState(true);
} else {
needsCharging->setState(true);
}
Dla każdego czujnika zdefiniować inną ikonę (nie wiem jak).
ma to tylko wadę że trzeba było dodać: histerezę (taki debouncing pomiarowy) aby nie pchać tego w chmurę za często, powiedzmy tutaj - raz na minutę. WDT się wyrobi w loop.

Krzysiek - Da to radę? Bo mi tutaj Vajera (pozdrawiam) - śmieje się że "niedaś"
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

Mniej więcej tak.
Tylko VirtualBinary użyj. Nazwy metod chyba się nie zgadzają, ale ogólnie pisałem wcześniej, że tak można.
Możesz stan zmieniać przy pomocy addAction z warunkowaniem.
Najlepsze suple dla Twojego domu :mrgreen:
Fryga
Posts: 136
Joined: Tue Oct 13, 2020 5:57 pm
Location: Mińsk Mazowiecki

Post

gdzie zobaczyć jak użyć tej addAction, jakby sie dało jeszcze ukrywać kanał zamiast wyszarzać (w sensie dawać nieaktywny)- to byłaby podmianka zależna od np. wartości.
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

Nie da się ukryć kanału z poziomu kodu SD.
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

Będę chciał zaktualizować starsze urządzenia do nowej wersji SD. Przy próbie kompilacji programu zgłasza mi błąd
identyfikator "mbedtls_pkcs5_pbkdf2_hmac_ext" jest niezdefiniowany

i kieruje mnie do funkcji
bool Supla::Crypto::pbkdf2Sha256(const char *password,... w pliku crypto.cpp.

Przy komunikacie błędu jest sugestia zmiany funkcji mbedtls_pkcs5_pbkdf2_hmac_ext na mbedtls_pkcs5_pbkdf2_hmac
i kilka innych zmian. Osobiście uważam że to pewnie ja robię coś źle lub brakuje mi w kodzie czegoś co jest potrzebne w wersji 25.08.01 i nie za bardzo chciałbym eksperymentować ze zmianami w bibliotece SD . W wersji 25.6 tego problemu nie ma. Wiem że doszło sporo zmian dot. zabezpieczeń i w poprzednich wersjach tego pliku crypto nawet nie ma.
Ktoś wie jak pomóc, może coś muszę dodać w kodzie programu? Ktoś przy tej wersji SD miał podobny problem?
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

zzrr wrote: Sat Oct 04, 2025 10:21 am Będę chciał zaktualizować starsze urządzenia do nowej wersji SD. Przy próbie kompilacji programu zgłasza mi błąd
identyfikator "mbedtls_pkcs5_pbkdf2_hmac_ext" jest niezdefiniowany

i kieruje mnie do funkcji
bool Supla::Crypto::pbkdf2Sha256(const char *password,... w pliku crypto.cpp.

Przy komunikacie błędu jest sugestia zmiany funkcji mbedtls_pkcs5_pbkdf2_hmac_ext na mbedtls_pkcs5_pbkdf2_hmac
i kilka innych zmian. Osobiście uważam że to pewnie ja robię coś źle lub brakuje mi w kodzie czegoś co jest potrzebne w wersji 25.08.01 i nie za bardzo chciałbym eksperymentować ze zmianami w bibliotece SD . W wersji 25.6 tego problemu nie ma. Wiem że doszło sporo zmian dot. zabezpieczeń i w poprzednich wersjach tego pliku crypto nawet nie ma.
Ktoś wie jak pomóc, może coś muszę dodać w kodzie programu? Ktoś przy tej wersji SD miał podobny problem?
Na jaki board kompilujesz? W Arduino czy pio?
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: Sat Oct 04, 2025 11:06 am Na jaki board kompilujesz? W Arduino czy pio?
PIO
[env:esp32-c3-devkitm-1]
platform = [email protected]
;platform = [email protected]
board = esp32-c3-devkitm-1
framework = arduino

Code: Select all

Processing esp32-c3-devkitm-1 (platform: [email protected]; board: esp32-c3-devkitm-1; framework: 
arduino)
---------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-c3-devkitm-1.html
PLATFORM: Espressif 32 (6.11.0) > Espressif ESP32-C3-DevKitM-1
HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-arduinoespressif32 @ 3.20017.241212+sha.dcc1105b
 - tool-esptoolpy @ 1.40501.0 (4.5.1)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 42 compatible libraries
Scanning dependencies...
Dependency Graph
|-- SuplaDevice @ 25.8.1+sha.a3360e1
|-- DallasTemperature @ 3.11.0
|-- OneWire @ 2.3.7
|-- RTClib @ 2.1.4
|-- ESP8266 and ESP32 OLED driver for SSD1306 displays @ 4.4.1+sha.53a688e
|-- ESP32 BLE Arduino @ 2.0.0
|-- SPI @ 2.0.0
Building in release mode
Compiling .pio\build\esp32-c3-devkitm-1\libf1c\SuplaDevice\supla\crypto.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\libf1c\SuplaDevice\supla\device\notifications.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\libf1c\SuplaDevice\supla\device\register_device.cpp.o
Compiling .pio\build\esp32-c3-devkitm-1\libf1c\SuplaDevice\supla\device\remote_device_config.cpp.o
.pio/libdeps/esp32-c3-devkitm-1/SuplaDevice/src/supla/crypto.cpp: In function 'bool Supla::Crypto::pbkdf2Sha256(const char*, const uint8_t*, size_t, uint32_t, uint8_t*, size_t)':
.pio/libdeps/esp32-c3-devkitm-1/SuplaDevice/src/supla/crypto.cpp:37:13: error: 'mbedtls_pkcs5_pbkdf2_hmac_ext' was not declared in this scope
   int ret = mbedtls_pkcs5_pbkdf2_hmac_ext(
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.pio/libdeps/esp32-c3-devkitm-1/SuplaDevice/src/supla/crypto.cpp:37:13: note: suggested alternative: 'mbedtls_pkcs5_pbkdf2_hmac'
   int ret = mbedtls_pkcs5_pbkdf2_hmac_ext(
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             mbedtls_pkcs5_pbkdf2_hmac
*** [.pio\build\esp32-c3-devkitm-1\libf1c\SuplaDevice\supla\crypto.cpp.o] Error 1
=================================== [FAILED] Took 25.75 seconds ===================================
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

zzrr wrote: Sat Oct 04, 2025 11:12 am
klew wrote: Sat Oct 04, 2025 11:06 am Na jaki board kompilujesz? W Arduino czy pio?
PIO
[env:esp32-c3-devkitm-1]
platform = [email protected]
;platform = [email protected]
board = esp32-c3-devkitm-1
framework = arduino
Jaka to jest wersja boardow lub esp-idf?
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: Sat Oct 04, 2025 11:41 am Jaka to jest wersja boardow lub esp-idf?
@klew sorki ale nie wiem jak odczytać wersję idf ani boardów w PIO. Nie mam wiedzy czy się w ogóle da.

na razie znalazłem tylko w dokumentacji że do [email protected] dodano obsługę ESP-IDF v5.5
Release Notes
6.12.0 released 3 months ago
Release Notes
Added new boards: Cezerio dev ESP32C6, Cezerio mini dev ESP32C6
Added support for ESP-IDF v5.5 (release notes)
Updated CMake packages to v3.30
Initial support for Secure Features (see instructions)

espressif32 mam w najnowszej wersji 6.12
edit:
wymusiłem w platformio.ini platform_packages = platformio/framework-espidf@^3.50500.0

Code: Select all

PACKAGES:
 - framework-arduinoespressif32 @ 3.20017.241212+sha.dcc1105b
 - framework-espidf @ 3.50500.0 (5.5.0)
 - tool-esptoolpy @ 2.40900.250804 (4.9.0)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
Dalej to samo. Przy kompilacji błąd w crypto.cpp
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

zzrr wrote: Sat Oct 04, 2025 12:01 pm
Aktualnie używam wersji 5.5.1, ale sprawdziłem w 5.5 i tam ta metoda jest.
Znajdź na dysku, gdzie PIO instaluje boardy i tam będzie gdzieś ten esp-idf. W środku wejdź do components/mbedtls/mbedtls/include/mbedtls
i tam będzie plik pkcs5.h - sprawdź czy w tym pliku jest ta metoda z _ext na końcu.

Ogólnie możesz też z pliku crypto.cpp w SD wyrzucić od linii 36 do 54 oraz 63. Wtedy zostanie pusta niezaimplenentowana metoda i tyle.
Ta metoda jest obecnie używana tylko do zapisywania "hasha" hasła do web interface (używane tylko na kompilacjach z esp-idf i w zasadzie tylko na komercyjnych urządzeniach).
Najlepsze suple dla Twojego domu :mrgreen:

Return to “supla-dev”