Cześć,
przejrzałem tak wiele jak mi się udało i nie znalazłem odpowiedzi na moje pytania - toteż stworzyłem nowy temat.
Najpierw opiszę wyzwanie: mam spora ilość urządzeń i pomiędzy nimi zaimplementowaną logikę działania (np. wyłączanie lampy UV w przypadku gdy nie płynie woda). Opiera się to głównie na directlinkach. Ponieważ (ze względu na ilość urządzeń) dobiłem do limitu wywołań API (co rozumiem i szanuję - w końcu to otwarte rozwiązanie) i idąc śladem propozycji nie do odrzucenia, postanowiłem przejść na integracje po MQTT. I tu pojawiają się właściwe pytania:
1. Jak rozumiem Supla wysyła zdarzenia o wszystkich zarejestrowanych urządzeniach do mqtt Supli i można stamtąd podejrzeć stan, ew. dla niektórych zmieniać (jak - to wynika z analizy autodiscovery HA). Czy tak jest?
2. Jakie zatem znaczenie ma właczenie/wyłaczenie obsługi mqtt na urządzeniu w menu konfiguracyjnym? (Pojawia się taka sekcja, gdy dodajemy obiekt klasy Supla::Html::ProtocolParameters) Czy służy to jedynie do tego by sobie można było pobrać parametry połączenia jak ktoś poda? Chyba, że można podać lokalny broker mqtt do publikacji zdarzeń? (to wydaje mi się sprawdziłem i nie działa)
3. Czy jest jakieś wsparcie przez klasy Supla (Supla::Protocol::Mqtt) by subskrybować topici jakie chce się monitorować? (Klasa ta ma metody pure-virtual i jak rozumiem trzeba je zaimplementować w klasie pochodnej by działało?)
4. Czy może jednak nie ma wsparcia (a wspomniana wyżej klasa ma inne zadania - aczkolwiek nie widziałem odwołania do niej nigdzie z SuplaDevice) i trzeba oprogramować to samodzielnie korzystając z bibliotek typu PubSubClient? Czy "nie gryzie" się to z SuplaDevice? Na co należy zwracać uwagę?
Obsługa MQTT na urządzeniach DIY
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Te klasy służą do publikowania do mqtt i do bycia sterowanym przez mqtt.
Mnie ma implementacji klienta mqtt na Arduino. Jest tylko na esp-idf przygotowane, bo to jest używane w gotowych urządzeniach.
Mnie ma implementacji klienta mqtt na Arduino. Jest tylko na esp-idf przygotowane, bo to jest używane w gotowych urządzeniach.
Najlepsze suple dla Twojego domu 
-
KaDet
- Posts: 52
- Joined: Fri Nov 27, 2020 5:06 pm
- Location: Dąbrowa Górnicza
Czyli zasadniczo trzeba oprogramować samemu i jak rozumiem "Protocol" można wywalić z konfiguracji?
A doświadczenia (bo odpowiadałeś (@klew) zapewne na zbliżone pytania) z używanymi bibliotekami i konflikty z SuplaDevica - głównie ESP8266 i ESP32? Czy są jakieś sprawdzone i nie blokujące się wzajemnie?
A doświadczenia (bo odpowiadałeś (@klew) zapewne na zbliżone pytania) z używanymi bibliotekami i konflikty z SuplaDevica - głównie ESP8266 i ESP32? Czy są jakieś sprawdzone i nie blokujące się wzajemnie?
-
[email protected]
- Posts: 1585
- Joined: Mon Feb 06, 2023 8:56 am
- Has thanked: 18 times
- Been thanked: 26 times
-
KaDet
- Posts: 52
- Joined: Fri Nov 27, 2020 5:06 pm
- Location: Dąbrowa Górnicza
Dzięki, ciekawe, ale mnie nie o to chodzi. Ty zrobiłeś nasłuch na mqtt ale nie na urządzeniu Supla tylko "obok". Tu nie wystąpi choćby problem dzielenia tego samego połączenia wifi w dwu różnych bibliotekach działających na callbackach. Dlatego moje pytanie dotyczyło urządzenia, opartego na SuplaDevice, które nasłuchuje na mqtt i robi różne rzeczy w zależności od stanu. Przykładowo zawór nawadniania zamknie się jeśli czujnik deszczu wykryje deszcz (a nie są na tym samym urządzeniu - bo to jest proste).[email protected] wrote: Sun Oct 19, 2025 4:00 pm https://github.com/rkalwak/SuplaLvgl
To sobie popatrz jak zrobiłem nasłuch na Mqtt
-
[email protected]
- Posts: 1585
- Joined: Mon Feb 06, 2023 8:56 am
- Has thanked: 18 times
- Been thanked: 26 times
na tyle na ile się nad tym zastanawiałem to zarówno biblioteka PubSubClient jak i SuplaDevice używaja tego samego WifiClientSecure, więc ja bym spróbował po prostu dodać klienta mqtt, próba wsadzenia klienta w bebechy Supli raczej niczego nie zmieni, bo i tak potrzebujesz biblioteki do MqttKaDet wrote: Sun Oct 19, 2025 5:17 pmDzięki, ciekawe, ale mnie nie o to chodzi. Ty zrobiłeś nasłuch na mqtt ale nie na urządzeniu Supla tylko "obok". Tu nie wystąpi choćby problem dzielenia tego samego połączenia wifi w dwu różnych bibliotekach działających na callbackach. Dlatego moje pytanie dotyczyło urządzenia, opartego na SuplaDevice, które nasłuchuje na mqtt i robi różne rzeczy w zależności od stanu. Przykładowo zawór nawadniania zamknie się jeśli czujnik deszczu wykryje deszcz (a nie są na tym samym urządzeniu - bo to jest proste).[email protected] wrote: Sun Oct 19, 2025 4:00 pm https://github.com/rkalwak/SuplaLvgl
To sobie popatrz jak zrobiłem nasłuch na Mqtt
-
SOYER
- Posts: 1623
- Joined: Wed Aug 10, 2022 12:29 pm
- Location: Kryry
- Been thanked: 2 times
Hej, możesz też podejrzeć na moim githubie przykład esp32 lcd4”, czy jakoś tak się nazywa.
Urządzenie nasłuchuje mqtt i wysyła polecenia przez mqtt do kilku różnych esp32 z suplą device na pokładzie.
https://youtube.com/shorts/h2a9Vrdr-C4? ... ROX5Yj-IeX
Urządzenie nasłuchuje mqtt i wysyła polecenia przez mqtt do kilku różnych esp32 z suplą device na pokładzie.
https://youtube.com/shorts/h2a9Vrdr-C4? ... ROX5Yj-IeX
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
-
KaDet
- Posts: 52
- Joined: Fri Nov 27, 2020 5:06 pm
- Location: Dąbrowa Górnicza
Cześć. Przejrzałem Twój kod, ale to także nie to czego szukam. Po analizie wychodzi mi, że Twój kod nasłuchuje na mqtt i wyświetla stan lub publikuje zdarzenie do mqtt w celu zmiany stanu, natomiast na panelu sama Supla nie działa. Dzięki w każdym razie za przykład - pomysł wykorzystam być może (choć wydaje się, że można użyć do tego HA)SOYER wrote: Mon Oct 20, 2025 7:44 am Hej, możesz też podejrzeć na moim githubie przykład esp32 lcd4”, czy jakoś tak się nazywa.
Urządzenie nasłuchuje mqtt i wysyła polecenia przez mqtt do kilku różnych esp32 z suplą device na pokładzie.
https://youtube.com/shorts/h2a9Vrdr-C4? ... ROX5Yj-IeX
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Nie programowałem nigdy MQTT z Arduino, więc nie mam z tym żadnego doświadczenia. Ale to są dość proste biblioteki i mają przykłady.
W zasadzie do programu na SD możesz sobie dołożyć co chcesz, tylko pamiętaj o tym, aby:
1. Zarządzanie Wi-Fi zostawić SD
2. W iterate wstawiać metody nieblokujące - czyli odczytujesz czy coś przyszło z MQTT, ale nie czekasz na to.
W zasadzie do programu na SD możesz sobie dołożyć co chcesz, tylko pamiętaj o tym, aby:
1. Zarządzanie Wi-Fi zostawić SD
2. W iterate wstawiać metody nieblokujące - czyli odczytujesz czy coś przyszło z MQTT, ale nie czekasz na to.
Najlepsze suple dla Twojego domu 
-
brodaa
- Posts: 21
- Joined: Mon Nov 22, 2021 11:46 am
Witam. Potrzebuję podpowiedzi w temacie sterowania termostatem przez MQTT. Mam taki topic:
supla/9ac0bbb2fad85a29d18d/devices/8445/channels/15970/set/mode
na który wysyłam payload w postaci string "auto" lub "heat" chcą uzyskać przełączanie termostatu z trybu "Program" na "Ręczny" i odwrotnie ale niestety nie uzyskuję oczekiwanego efektu.
Czy jestem w ogóle w stanie sterować tym parametrem przez MQTT? Jeśli tak to co robię nie tak?
supla/9ac0bbb2fad85a29d18d/devices/8445/channels/15970/set/mode
na który wysyłam payload w postaci string "auto" lub "heat" chcą uzyskać przełączanie termostatu z trybu "Program" na "Ręczny" i odwrotnie ale niestety nie uzyskuję oczekiwanego efektu.
Czy jestem w ogóle w stanie sterować tym parametrem przez MQTT? Jeśli tak to co robię nie tak?
You do not have the required permissions to view the files attached to this post.
