Dzień dobry
Próbujemy już dłuższą chwilę odczytać po MQTT poszczególne wątki z ZAMEL LEW-02 / ZAMEL MEW-01.
Przez MQTT Explorer - widzę wszystko.
Łącząc się przy pomocy ESP32 Wroom (WIFI+BT) sytuacja następująca:
- kiedy MQTT broker jest adresowany mqtt101.supla.org (zgodnie z definicją z integracji supla.org):
WiFi: Connecting to Internet_XXXXX ... (0.657000s)
[ 1414][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 4 - STA_CONNECTED
[ 1865][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 7 - STA_GOT_IP
[ 1865][D][WiFiGeneric.cpp:1098] _eventCallback(): STA IP: 192.168.0.3, MASK: 255.255.255.0, GW: 192.168.0.1
WiFi: Connected (1.871000s), ip : 192.168.0.3
WEB: Updater ready, open http://akukukuku.local in your browser and login with username 'dc8d9b9c4XXXXXXXXXXXf3045597a' and password 'UU5jm0xXXXXXXXXXXXXXXXX@RQPB)XdEe'.
[ 1916][ArduinoOTA.cpp:141] begin(): OTA server at: akukukuku.local:3232
MQTT: Connecting to broker "mqtt101.supla.org" with client name "akukukuku" and username "dc8d9b9c4XXXXXXXXXXXf3045597a" ... (2.416000s)unable to connect (17.582000s),
reason: MQTT_CONNECTION_TIMEOUT
MQTT: Retrying to connect in 15 seconds.
MQTT!: Failed MQTT connection count: 1
- kiedy MQTT broker jest adresowany po adresie IP 116.203.235.162
WiFi: Connecting to Internet_XXXXXXXXXXXXX... (0.681000s)
[ 1419][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 4 - STA_CONNECTED
[ 1493][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 7 - STA_GOT_IP
[ 1493][D][WiFiGeneric.cpp:1098] _eventCallback(): STA IP: 192.168.0.3, MASK: 255.255.255.0, GW: 192.168.0.1
WiFi: Connected (1.498000s), ip : 192.168.0.3
WEB: Updater ready, open http://akukukuku.local in your browser and login with username 'dc8d9b9c4XXXXXXXXXXXXXf3045597a' and password 'UU5jm0xjSutlfkmMQK0DN-@RQPB)XdEe'.
[ 1543][ArduinoOTA.cpp:141] begin(): OTA server at: akukukuku.local:3232
MQTT: Connecting to broker "116.203.235.162" with client name "akukukuku" and username "dc8d9b9c4XXXXXXXXXXXXXf3045597a" ... (2.043000s)unable to connect (19.948000s),
reason: MQTT_CONNECTION_TIMEOUT
MQTT: Retrying to connect in 15 seconds.
MQTT!: Failed MQTT connection count: 1
Na kontcie aktywowane MQTT broker, znany user i hasło wygenerowane przez Supla.
Korzystamy z:
https://github.com/plapointe6/EspMQTTCl ... Client.ino
konfiguracja:
EspMQTTClient client(
"Internet_XXXXXXXXXXXXX",
"XXXXXXXXXXXXX", // WIFI password
"116.203.235.162", // MQTT Broker server ip
"dc8d9b9c4XXXXXXXXXXXXXXf3045597a", // MQTT username Can be omitted if not needed
"UU5jm0xjSXXXXXXXXXXXXXXRQPB)XdEe", // MQTT password Can be omitted if not needed
"akukukuku", // Client name that uniquely identify your device
8883 // The MQTT port, default to 1883. this line can be omitted
);
Przykładowy wątek jaki chcemy odczytać (napięcie z monitora energii):
"supla/dc8d9b9c4XXXXXXXXXXXXXXXXXf3045597a/devices/1615/channels/4841/state/phases/1/power_active"
alternatywnie z drugiego urządzenia:
"supla/dc8d9b9c4XXXXXXXXXXXXXXXXXf3045597a/devices/3471/channels/10842/state/phases/1/power_active"
MQTT Explorer działa, czyta dokładnie bez problemu.
Pozdrawiam
Przemek
ESP32 + MQTT SUPLA + MONITOR ENERGII ZAMEL
-
- Posts: 9713
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
Hej, nie znam tych bibliotek, ale na pierwszy rzut oka nie widzę tam nigdzie ustawień odnośnie szyfrowania połączenia z serwerem.
Broker MQTT na serwerze Supli akceptuje tylko połączenia szyfrowane na porcie 8883. Samo ustawienie portu w kliencie, bez włączenia szyfrowania, nic tutaj nie da.
Kiedy będzie Supla Offline Party / SOP#2025 ?
-
- Posts: 3
- Joined: Tue Jan 30, 2024 10:16 am
Pierwszy trop, istotna informacja.
Może masz jakieś biblioteki jakie są sprawdzone i możesz coś polecić?
Może masz jakieś biblioteki jakie są sprawdzone i możesz coś polecić?
-
- Posts: 1
- Joined: Tue Jan 30, 2024 3:18 pm
Jeśli mogę się połączyć za pomocą programu MQTT Explorer, podając mu dane mqtt brokera, czyli host, protokół, port, nazwę użytkownika i hasło, to nie musze mu dodatkowo podawać żadnych certyfikatów. Czy w przypadku tego programu, te certyfikaty są w jakiś sposób tworzone podczas uzyskiwania połączenia? Bo korzystając z podstawowego kodu na esp32 i podając mu dokładnie takie same dane, nie mogę uzyskać połączenia MQTT. Czy do esp32, muszę dostarczyć jakieś certyfikaty? Jeśli tak, to w jaki sposób je wygenerować lub skąd je wziąć?
-
- Posts: 9713
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
Certyfikaty nie są konieczne. Powinno dać się wyłączyć ich sprawdzanie.
Certyfikaty służą do potwierdzenia, że połączyliśmy się z serwerem z których chcieliśmy, a nie z jakimś podszywającym się.
Jeśli ktoś chce to sprawdzać, to może pzygmunt by podał skąd wziąć klucz publiczny CA dla brokerów MQTT.
Ja osobiście używałem tylko klienta MQTT z esp-idf. Także z niczego typowo pod Arduino ide nie korzystałem
Certyfikaty służą do potwierdzenia, że połączyliśmy się z serwerem z których chcieliśmy, a nie z jakimś podszywającym się.
Jeśli ktoś chce to sprawdzać, to może pzygmunt by podał skąd wziąć klucz publiczny CA dla brokerów MQTT.
Ja osobiście używałem tylko klienta MQTT z esp-idf. Także z niczego typowo pod Arduino ide nie korzystałem
Kiedy będzie Supla Offline Party / SOP#2025 ?
-
- Posts: 3
- Joined: Tue Jan 30, 2024 10:16 am
Sprawdzałem MQQT Explorer i jeżeli wyłączam certyfikat to się łączy bez problemu, nie pozwala bez szyfrowania (TLS) się połączyć.
Czyli trzeba wysłać jakiś komunikat / komendę żeby nie żądał MQTT broker certyfikatu?
Czyli trzeba wysłać jakiś komunikat / komendę żeby nie żądał MQTT broker certyfikatu?
-
- Posts: 9713
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
To powinno się ustawiać w kliencie.przemo_des wrote: Tue Jan 30, 2024 4:47 pm Sprawdzałem MQQT Explorer i jeżeli wyłączam certyfikat to się łączy bez problemu, nie pozwala bez szyfrowania (TLS) się połączyć.
Czyli trzeba wysłać jakiś komunikat / komendę żeby nie żądał MQTT broker certyfikatu?
Musisz wybrać jakąś bibliotekę i przeczytać jej dokumentację. Takie ustawienia powinny być opisane (choć w tej bibliotece z pierwszego postu nie ma o tym ani słowa)
Kiedy będzie Supla Offline Party / SOP#2025 ?
-
- Posts: 179
- Joined: Sun Nov 08, 2020 2:54 pm
Spróbuj biblioteki PubSubClient i przykładu z strony https://forum.arduino.cc/t/problem-with ... /1151546/2 Tylko zamiast wstawiania certyfikatu zrób tak:
Próbowałem z ustawianiem czasu ale wygląda na to że jest to niepotrzebne aby się połączyć z suplą. Terminal zwraca connected ale nie wiem jeszcze czy działa subskrybowanie topików i co tam się jeszcze z tym robi bo za cholerę nie rozumie tego całego mqtt...jeszcze.
Code: Select all
//wifiClient.setTrustAnchors(new BearSSL::X509List(rootCACertificate));
wifiClient.setInsecure();
You do not have the required permissions to view the files attached to this post.