Opis protokołu Supla

User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

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.
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

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
SUPLA.... Nareszcie w domu.
User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

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.
misiekg
Posts: 1
Joined: Mon Mar 06, 2017 9:51 pm

Post

Witajcie, jakieś nowości w temacie opisu protokołu? Też byłbym zainteresowany.
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Nadal tylko źródła
SUPLA.... Nareszcie w domu.
jacekl
Posts: 12
Joined: Wed Apr 28, 2021 2:05 pm

Post

Już coś w kwestii dokumentacji protokołu wiadomo?
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

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.
Najlepsze suple dla Twojego domu :mrgreen:
jacekl
Posts: 12
Joined: Wed Apr 28, 2021 2:05 pm

Post

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.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

jacekl wrote: Wed May 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.
Najlepsze suple dla Twojego domu :mrgreen:
jacekl
Posts: 12
Joined: Wed Apr 28, 2021 2:05 pm

Post

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ół.

Return to “Ogólna dyskusja”