hackerspace-silesia / Smogomierz

Smogly(formerly: Smogomierz) - simple and cheap PM 2.5 and PM10 sensor based on NodeMCU (ESP8266) or ESP32
Apache License 2.0
123 stars 38 forks source link

Ustalenie nazwy klienta MQTT na podstawie nazwy urządzenia #111

Closed NorbertDudek closed 3 years ago

NorbertDudek commented 3 years ago

Do tej pory w kodzie nazwą klienta było: ESP8266Client. Do serwera MQTT nie mogą być połączeni dwaj klienci o tym samym ID. Gdy ktoś w sieci ma urządzenie, którego oprogramowanie było tworzone na podstawie przykładów, jest duża szansa, że podłącza się ono do serwera MQTT z podanym wyżej identyfikatorem. Serwer MQTT nie pozwoli przekazywać tematów drugiemu urządzeniu z zduplikowaną nazwą. Jednak PubSubClient podczas połączenia nie zgłasza błedu. Wygląda, że wszystko się udało.

Moja poprawka uzależnia nazwę serwera MQTT od nazwy urządzenia smogomierza.

bfaliszek commented 3 years ago

Nie byłoby prościej dać tutaj https://github.com/hackerspace-silesia/Smogomierz/pull/111/files#diff-857a42ed259fb689cd7b80c5ed4a20f22a3dd366b590a7e1a5c8e52c7ff06c23L451 if (mqttclient.connect(device_name, MQTT_USER, MQTT_PASSWORD)) { - z device_name zamiast ESP8266Client. Nie ma wtedy konieczności tworzenia nowego chara mqqt_id, który ma taką samą wartość.

bfaliszek commented 3 years ago

Przetestuję to jeszcze i jeśli będzie działać, to dodam w kodzie.

bfaliszek commented 3 years ago

https://github.com/hackerspace-silesia/Smogomierz/commit/6aab4a6bfb56178dda5fcbb4e73ea183edc9a73d