nowe repozytorium supla-device

Awatar użytkownika
klew
Posty: 8179
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Pojawiło się nowe repo na githubie - supla-device

Chciałbym więc uprzedzić ewentualne pytania i napiszę co to i po co ;)

Gdzieś już było wspominane, że chcemy się z "espressifem" przenieść na nowe "RTOS SDK". Wspominaliśmy też, że chcemy mieć jeden projekt na wszystkie urządznia i że chcemy mieć możliwość wsparcia dla większej ilości sprzętu.
Także w skrócie: to repo to jest to co ma zrealizować te cele.

Aktualny plan jest aby supla-device działała na:
  • ESP8266 RTOS SDK
  • ESP32 ESP-IDF SDK
  • Arduino IDE (z targetami na ESP82xx, ESP32, Arduino Mega, z potencjałem dodania kolejnych boardów)
  • FreeRTOS z targetem na Linuxa (jako platforma testowa, oraz podstawa do wsparcia innych boardów, które wspierają FreeRTOS, a także jako soft na Linuxa)
  • Linux (na raspberry i inne Linuxy, jako urządzenie Supli, bramka, oraz jako platforma testowa)
Bazujemy na projekcie supla-arduino, ale dla fanów ANSI C postaram się udostępnić interfejs C (jeszcze muszę ten temat przeanalizować).
Z założenia te zmiany mają nie zepsuć niczego z aktualnych programów opartych na supla-arduino - czy się to uda to wyjdzie w praniu.
Widzimy się na Supla Offline Party vol. 2 :!:
krycha88
Posty: 5175
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

A będą przykłady? :lol:
https://gui-generic-builder.supla.io/
Awatar użytkownika
klew
Posty: 8179
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

krycha88 pisze: wt gru 28, 2021 11:20 am A będą przykłady? :lol:
Na przykład jakie? :D
Widzimy się na Supla Offline Party vol. 2 :!:
krycha88
Posty: 5175
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

klew pisze: wt gru 28, 2021 11:24 am Na przykład jakie? :D
Tych których brakuje w espressif :D

Ale tak serio, to dobry kierunek, zwłaszcza, że powstanie na czymś sprawdzonym czyli SuplaDevice :P
https://gui-generic-builder.supla.io/
QBA-dev
Posty: 11
Rejestracja: sob mar 03, 2018 5:48 pm

Cześć
Bardzo mnie cieszy że pojawiło się wsparcie dla ESP8266 RTOS SDK. Starałem się dzis uruchomić przykład: empty_esp8266_rtos_sdk_project
Na ESP8266_RTOS_SDK release/v3.4 i budując z użyciem Makefile

Sam przykład zawieszał się na inicjalizacji do czasu aż zostawiłem tylko kanały:

Kod: Zaznacz cały

  auto r1 = new Supla::Control::VirtualRelay();
  auto r2 = new Supla::Control::VirtualRelay();
Po tym zabiegu moja płytka NodeMCU inicjalizuje się i łączy z siecią WiFi. A następnie skarży się na certyfikat:

Kod: Zaznacz cały

D (3597) SUPLA: Connected to AP
I (6053) tcpip_adapter: sta ip: 192.168.100.13, msupla_org_cert.pemask: 255.255.255.0, gw: 192.168.100.1
I (6058) SUPLA: got ip 192.168.100.13
I (6061) SUPLA: Establishing connection with: svr7.supla.org (port: 2016)
E (6247) esp-tls-mbedtls: mbedtls_ssl_handshake returned -0x2700
I (6250) esp-tls-mbedtls: Failed to verify peer certificate!
I (6253) esp-tls-mbedtls: verification info:   ! The certificate is not correctly signed by the trusted CA
Nie znam się na szyfrowaniu i nie umiem tego naprawić. Wiem że chodzi o plik supla_org_cert.pem który jest dodawany do kodu programu.
@klew jesteś w stanie jakoś pomóc?
QBA-dev
Posty: 11
Rejestracja: sob mar 03, 2018 5:48 pm

Dodam jeszcze od siebie po analizie kodu biblioteki że chyba trzeba będzie sporych przeróbek aby była ona tą jedną "one and only".
Chodzi mi o izolację od sprzętu. Sam rdzeń biblioteki nie może zawierać klas związanych z konkretnym sprzętem.

Na przykład taki DHT22 nie powinien się w bibliotece znaleźć. Jedynie klasa ThermHygroMeter.
A samo użycie DHT to już w jakimś przykładzie użycia.
Super byłoby mieć ten rdzeń  napisany w C i kompilowany na Linuksie do pliku .so jak każda popularna biblioteka.

Tak czy inaczej wielki szacun za wiedzę i wykonaną pracę
Awatar użytkownika
klew
Posty: 8179
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Tam jest włączona weryfikacja certyfikatu. Testowo jest zrobiony podpis dla beta-cloud i svr23 (serwery na których pracuję). Svr7 jeszcze nie ma tego zrobionego.

Fajnie że ktoś spróbował to odpalić :).

Dam dziś jeszcze znać co zmienić aby to poszło bez certyfikatu.

Co do DHT itp, to z takimi tematami będzie jeszcze trochę pracy.

Do C nie wracamy ;). Wiele rzeczy robi się dużo łatwiej w c++
Widzimy się na Supla Offline Party vol. 2 :!:
QBA-dev
Posty: 11
Rejestracja: sob mar 03, 2018 5:48 pm

klew pisze: wt maja 10, 2022 6:57 pm Do C nie wracamy ;). Wiele rzeczy robi się dużo łatwiej w c++
Może i tak, są różne szkoły - lwia część bibliotek jakie znam jest pisana w C i później wrapowana na C++ albo robione bindingi dla innych języków. Jeśli mowa o przerabianiu biblioteki supla-arduino na C to rozumiem że nie ma sensu. Jeśli by pisać rdzeń(rejestracja, obsługa kanałów) od początku, to myślę że mimo wszystko w C i owrapować to w obiekty w C++.

W marzeniach chciałbym żeby biblioteka kompilowała się do obiektu współdzielonego np. libsupla.so i była też dostarczana jako paczka dla Linuksowych managerów:

Kod: Zaznacz cały

sudo apt-get inslall libsupla-dev
I później odpalamy jakieś IDE i piszemy:

Kod: Zaznacz cały

#include <supla.h> 
#include <supla/sensor/pressure.h>

itd... 
Awatar użytkownika
klew
Posty: 8179
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Tutaj słowo "biblioteka" jest trochę mylące.
To raczej coś w stylu SDK.
Zresztą mamy zależności do Arduino ide albo do SDK espressif, więc takie proste opakowanie nie wchodzi w grę.
Widzimy się na Supla Offline Party vol. 2 :!:
ODPOWIEDZ

Wróć do „supla-dev”