Dzień dobry,
Jako, że pojawił się w supli termostat to chciałem sobie osuplować moją instalację grzewczą. Sterownik zrobiłem po LAN, ale softowo niestety utknąłem. Czy jest na forum jakaś mądra dusza która krok po kroku napisała by jakich funkcji używać aby prawidłowo zarejestrować i używać termostatu? Wysyłam ramkę rejestracyjną i pojawia mi się kanał termostatu ale supla domaga się jakiejś konfiguracji "Konfiguracja jeszcze nie jest dostępna. Poczekaj, aż urządzenie się podłączy.". Wysyłam konfigurację wg proto.h TChannelConfig_HVAC ale w zwrotce dostaję SUPLA_RESULTCODE_LOCATION_CONFLICT. Cały dzień się męczę i czuję, że bezcelowo tracę czas.
Nadmienię, że nie używam arduino i żadnych tego typu gotowców. Sterownik mam na STM32 i moduł ethernet dlatego chciałbym dokładnie zrozumieć jak to działa.
Pozdrawiam.
Rejestracja kanału termostatu
-
pzygmunt
- Posts: 20302
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
- Been thanked: 59 times
Jak się domyślam używasz własnej implementacji biblioteki klienckiej. Proces rejestracji termostatu jest bardziej złożony niż pozostałych kanałów. Zalecam użyć oficjalnej biblioteki supla-device. Własna implementacja będzie karkołomna.
SUPLA.... Nareszcie w domu.
-
Sheezo
- Posts: 40
- Joined: Thu Oct 21, 2021 1:28 pm
Nie używam żadnej biblioteki. Piszę kod wykorzystując proto.h i inne pliki i sklecam sobię protokół komunikacyjny. Poradziłem sobię z różnymi kanałami ale tutaj stanąłem. Potrzebuję tylko informacji w jakiej kolejności i jakie funkcje wywoływać. Z resztą sobię poradzę.
-
pzygmunt
- Posts: 20302
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
- Been thanked: 59 times
Poza rejestracją urządzenia musisz zgłosić odpowiednie kanały, a następnie musisz przejść cały flow dot. wymiany konfiguracji.
Jest na to częściowa dokumentacja ale, że nie jestem pewien czy aktualna to lepiej jak odczytasz logikę z kodu supla-device.
Uważam, że lepiej zrobisz jak przeportujesz sobie supla-device na STM-a zamiast pisać coś co niekoniecznie będzie w pełni kompatybilne z wersją bieżącą i poprzednimi.
Jest na to częściowa dokumentacja ale, że nie jestem pewien czy aktualna to lepiej jak odczytasz logikę z kodu supla-device.
Uważam, że lepiej zrobisz jak przeportujesz sobie supla-device na STM-a zamiast pisać coś co niekoniecznie będzie w pełni kompatybilne z wersją bieżącą i poprzednimi.
You do not have the required permissions to view the files attached to this post.
SUPLA.... Nareszcie w domu.
-
Sheezo
- Posts: 40
- Joined: Thu Oct 21, 2021 1:28 pm
Świetna grafika, bardzo pomocna. Wielkie dzięki.
Ale mam jedno pytanko. TDS_SuplaRegisterDevice_F: przeszukałem wiele i nie mogę znaleźć tej struktury.
W proto.h jest wzmianka: BIT map definition for TDS_SuplaRegisterDevice_F::ConfigFields (64 bit) i 7 definicji bitowych.
Ale to wszystko.
Korzystam z tego pliku: https://github.com/SUPLA/supla-core/blo ... on/proto.h
Czy jest aktualny?
Pozdrawiam.
Ale mam jedno pytanko. TDS_SuplaRegisterDevice_F: przeszukałem wiele i nie mogę znaleźć tej struktury.
W proto.h jest wzmianka: BIT map definition for TDS_SuplaRegisterDevice_F::ConfigFields (64 bit) i 7 definicji bitowych.
Ale to wszystko.
Korzystam z tego pliku: https://github.com/SUPLA/supla-core/blo ... on/proto.h
Czy jest aktualny?
Pozdrawiam.
-
Sheezo
- Posts: 40
- Joined: Thu Oct 21, 2021 1:28 pm
To gdzie znajdę tą strukturę TDS_SuplaRegisterDevice_F aby zobaczyć jak to poprawnie zarejstrować?
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Wersja _F była planowana, się ostatecznie została wersja E.
Ten DeviceConfig nie jest konieczny do uruchomienia termostatu.
Ogólnie kanał termostatu powinien mieć ustawioną flagę "runtime config". Wersja proto powinna być min 21.
Wtedy po rejestracji czeka na wiadomości konfiguracyjne dotyczące kanału i czeka na "channel config finished". Po tym może przesłać swoją konfigurację lub nie (zależnie od sytuacji).
Ogólnie idea jest taka, że jeśli serwer nie ma konfiguracji, albo lokalnie na urządzeniu była zrobiona zmiana, to urządzenie ignoruje config z serwera i przesyła własny. W pozostałych sytuacjach, urządzenie aplikuje config z serwera.
Ogólnie całą procedura jest dość zawiła.
Ten DeviceConfig nie jest konieczny do uruchomienia termostatu.
Ogólnie kanał termostatu powinien mieć ustawioną flagę "runtime config". Wersja proto powinna być min 21.
Wtedy po rejestracji czeka na wiadomości konfiguracyjne dotyczące kanału i czeka na "channel config finished". Po tym może przesłać swoją konfigurację lub nie (zależnie od sytuacji).
Ogólnie idea jest taka, że jeśli serwer nie ma konfiguracji, albo lokalnie na urządzeniu była zrobiona zmiana, to urządzenie ignoruje config z serwera i przesyła własny. W pozostałych sytuacjach, urządzenie aplikuje config z serwera.
Ogólnie całą procedura jest dość zawiła.
Najlepsze suple dla Twojego domu 
-
Sheezo
- Posts: 40
- Joined: Thu Oct 21, 2021 1:28 pm
Bardzo wam dziękuję za informację.
Będę walczył.
Pozdrawiam.
Będę walczył.
Pozdrawiam.
-
Fryga
- Posts: 136
- Joined: Tue Oct 13, 2020 5:57 pm
- Location: Mińsk Mazowiecki
Są darmowe narzędzia. Ja używam coś podobnego https://sequencediagram.org/ gdzie zapisuje się diagram w postaci txt - spójrz instrukcje https://sequencediagram.org/instructions.html
Ja używam to integracji modułów ze sobą np. CRM z jakąś aplikacją wg Telemanagement Forum. A tego typu narzędzia UML to świetna sprawa wśród architektów.
