Opis protokołu Supla

Awatar użytkownika
Duch__
Posty: 1779
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

Czy jest dostępny gdzieś opis protokołu łączności Arduino / ESP8266 z serwerem Supla? Dostępne źródła powodują u mnie ból głowy przy próbie ich analizy :( Przyjemniej by się przeczytało obszerny opis słowny. Pytam gdyż podobno ma być to otwarty protokół, a opisu zero.
Obrazek
Awatar użytkownika
pzygmunt
Posty: 18279
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

Dokumentacji protokołu jeszcze nie ma. Za jakiś czas pewnie powstanie.

Dla zainteresowanych to tutaj są opisane struktury:

https://github.com/SUPLA/supla-core/blo ... on/proto.h

A tutaj funkcje wykorzystywane do komunikacji (srpc_dcs_async_*):

https://github.com/SUPLA/supla-core/blo ... mon/srpc.h
Awatar użytkownika
Duch__
Posty: 1779
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

Za jakiś czas to znaczy za ile? Chcecie by projekt się rozwijał to dajcie ludziom protokół, bo na razie to cały system opiera się na 2-3 istniejących płytkach i tylko garstce ludzi którzy wiedzą jak on działa.
Obrazek
misiekg
Posty: 1
Rejestracja: pn mar 06, 2017 9:51 pm

Witajcie, jakieś nowości w temacie opisu protokołu? Też byłbym zainteresowany.
Awatar użytkownika
pzygmunt
Posty: 18279
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

Nadal tylko źródła
jacekl
Posty: 12
Rejestracja: śr kwie 28, 2021 2:05 pm

Już coś w kwestii dokumentacji protokołu wiadomo?
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Jest jeden "stary" opis:
https://github.com/SUPLA/supla-core/blo ... l-works.md

Da to ogólny pogląd na to co się dzieje.
W SuplaDevice są też domyślnie włączone logi zawierające całą komunikację (jako ciąg bajtów reprezentowanych przez hexy).
Na podstawie tych danych można próbować ogarnąć protokół.
Opis wszystkich typów wiadomości oraz przesyłanych struktur jest w proto.h, do którego wcześniej pzygmunt dał link.
Widzimy się na Supla Offline Party vol. 2 :!:
jacekl
Posty: 12
Rejestracja: śr kwie 28, 2021 2:05 pm

To "how protocol works" znalazłem prędzej, ale trzeba mieć sporo poczucia humoru, żeby to nazwać dokumentacją.
No ale lepsze to niż nic.
W SuplaDevice są też domyślnie
Co masz na myśli pisząc SuplaDevice? Jestem w tym świecie nowy, dostałem zlecenie zobaczyć czy się da protokół supli ogarnąć i szukam wszelkich informacji.
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

jacekl pisze: śr maja 05, 2021 9:29 am Co masz na myśli pisząc SuplaDevice? Jestem w tym świecie nowy, dostałem zlecenie zobaczyć czy się da protokół supli ogarnąć i szukam wszelkich informacji.
SuplaDevice to biblioteka dla urządzeń wykonawczych w Arduino IDE. Możesz ją zainstalować bezpośrednio z managera bibliotek w Arduino IDE. Jest tam klika przykładów aplikacji na Arduino Mega, ESP82xx, ESP32 (większość przykładów działa na każdej z tych platform).
Jak wgrasz i odpalisz przykład, to w logach na serialu będzie widać wszystkie wymieniane wiadomości.

Z grubsza jest to:
1. Rejestracja urządzenia na serwerze + potwierdzenie rejestracji przez serwer
2. Ustawienie "activity timeout" + odpowiedź
3. Następnie urządzenie wysyła aktualizację stanu kanałów (cyklicznie lub po ich zmianie)
4. W tym samym czasie urządzenie może dostawać wiadomości z serwera modyfikujące np. stan przekaźnika
5. Poza tym co ~30 s lecą wewnętrzne pingi.
Widzimy się na Supla Offline Party vol. 2 :!:
jacekl
Posty: 12
Rejestracja: śr kwie 28, 2021 2:05 pm

Mów mi jeszcze :-)
Nie mam bladego pojęcia o Arduino, nigdy nie widziałem ich IDE, nie jestem elektronikiem ani embedded developerem...

Jestem programistą od strony serwera, chciałbym umieć przyjąć połączenie TCP/IP od urządzenia działającego z firmwarem supli i z nim pogadać.
Czyli bardziej interesuje mnie strona serwera a nie klienta, choć protokół obejmuje obie strony, dlatego pytam o protokół.
ODPOWIEDZ

Wróć do „Ogólna dyskusja”