niedziela, 11 października 2020

Home Assistant i czujnik smogu SDS011 wraz z ESPEasy po MQTT

Dobry wieczór.

Mam ja sobie czujnik smogu SDS011. Kiedyś był Ci on połączony z Domoticz i świetnie sobie działał http://cezarowy.blogspot.com/2017/12/czujnk-smogu-sds011-wemos-przeacznik.html. Z chwilą przejścia na Home Assistant z czystego lenistwa (a może bardziej obawy) nie chciało mi się zmieniać konfiguracji z ESPEasy na Tasmota czy ESPHome. Jak jest, to niech działa. Ale miałem mały zgryz - nie wiedziałem jak wysłać dane do HA. W końcu jeden z kolegów na grupie FB podał przepis - MQTT! Gdzieś tam mi się w głowie kołatało, że próbowałem to zrobić w ten sposób, ale na czymś poległem. Dzięki niemu wiem już dokładnie na czym, co opiszę poniżej.

Nie przedłużając: głównym problemem u mnie była stara wersje ESPEasy - R147, jeszcze jakby 1.0. W niej po prostu nie była dostępna komunikacja przez MQTT. Niestety ESPEasy nie jest dla mnie dość jasne, Wiki nie jest aktualizowana na bieżąco, w sumie ich github jedynie odzwierciedla stan projektu: https://github.com/letscontrolit/ESPEasy/releases. Po pobraniu wersji 2.0 Mega (o wiele mówiącej nazwie ESP_Easy_mega_20200929_normal_alt_wifi_ESP8266_4M1M) i próbie zmiany wersji przez OTA (Over The Air) mój Wemos przestał się odzywać :D Ale pierwsze koty za płoty, podłączyłem konwerter UART (jak w cytowanym poście sprzed dwóch lat) i tym razem wszystko poszło bez problemu.


It's alive! Wszystkie ustawienia i kod zostały zachowane po przejściu na nową wersję.


Kilka ważnych ustawień - zakładka Config i Append Unit Number to hostname.



Na zakładce Controllers dodajemy nowy Protocol - Home Assistant (openHAB) MQTT, podajemy IP brokera, port oraz dane do logowania (podane w konfiguracji Waszego MQTT). Do tego zaznaczamy Enabled.


Na zakładce Devices przy naszym czujniki musimy zaznaczyć wysyłanie danych do drugiego Controller'a - jak widać powyżej - aktualnie na raz do Domoticz oraz Home Assistant.


Tu już dane z zakładki Info.


Co do konfiguracji powyższego, to sensors.yaml wygląda tak:
  - platform: mqtt
    name: "Czujnik smogu PM25"
    state_topic: "CzujnikSmogu_1/CzujnikSmogu/PM25"
    unit_of_measurement: "ug/m3"

  - platform: mqtt
    name: "Czujnik smogu PM10"
    state_topic: "CzujnikSmogu_1/CzujnikSmogu/PM10"
    unit_of_measurement: "ug/m3"

Zwróćcie uwagę na CzujnikSmogu_1 - to jest efekt zaznaczenia Append Unit Number to hostname.

W ui-lovelace.yaml:
          - type: glance
            no_card: true
            title: "Powietrze na zewnątrz"
            show_name: false
            entities:
              - sensor.czujnik_smogu_pm25
              - sensor.czujnik_smogu_pm10

Po pełen kod mojego Home Assistant zapraszam na stronę: https://github.com/CaesarPL/Home-Assistant-Cezar.

Tylko tle i aż tyle :D Powodzenia!

P.S. Tak mi właśnie wpadło do głowy, że trzeba to oprogramować tak, aby pokazywał kiedy normy są przekroczone. Ciekawy temat.

1 komentarz: