Home assistant, grafana, influxdb - integracja z elektronicznymi wodomierzami w celu automatycznego odczytu
hejto.plUWAGA!
Wszelkie podane poniżej wskazówki zostały napisane tylko i wyłącznie w celach edukacyjnych, ja to robiłem na swoim prywatnym wodomierzu z nakładką apator, z ustawionym fabrycznie hasłem. Przypominam wszystkim chętnym że zgodnie z kodeksem karnym:
Art. 267. §1. Kto bez uprawnienia uzyskuje dostęp do informacji dla niego nieprzeznaczonej, otwierając zamknięte
pismo, podłączając się do sieci telekomunikacyjnej lub przełamując albo omijając elektroniczne, magnetyczne, informatyczne lub inne szczególne jej zabezpieczenie, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 2.Inna sprawa czy np. złapanie transmisji z danymi ze swojego wodomierza, "zabezpieczonych" ogólnodostępnym, niezmienionym fabrycznym kluczem podchodzi pod ten paragraf, to sprawa dla prawników, ja nim nie jestem, dlatego oczywiście zamówiłem sobie taki wodomierz w sklepie z wodomierzami i testowałem na nim właśnie( ͡° ͜ʖ ͡°)
HARDWARE:
-Raspberry PI 4, około 300zł - na OrangePi Lite np. średnio działa home assistant, domoticz jakoś ledwo dawał radę.
LUB:
-Terminal, około 200-250zł, tutaj sprawa dowolna co kupicie, wedle waszego uznania, ja mam Fujitsu Futuro S620 4 rdzeniowy i jestem zadowolony
-Dongiel RTL2832u, około 100zł - popularny "pendrive" do odtwarzania telewizji, przydaje się do różnych rzeczy, można nim łapać np. transmisje z ISS, zdjęcia satelitarne od NASA, transmisje samolotowe(flightradar w twoim domu).
I to w sumie tyle.
SOFTWARE
Robicie wszystko zgodnie z instrukcjami dostępnymi na stronie home assistanta, nie będe się tu rozwodził
-System pod Serwer, Home Assistant w dockerze - problemy są z aktualizacjami, ja będę doinstalowywał Watchtower do dockera aby sprawdzał czy nie ma aktualizacji, a gdy jest to aktualizował i resetował supervisora, inaczej przy nowej wersji wyjawi się monit o niezdrowym systemie i nie zainstalujecie dodatków. Ja mam Ubuntu Server i w dockerze zainstalowanego Home Assistanta Supervised.
UWAGA, od czasu pisania tamtego poradnika(2021r jakoś), zmieniłem pod koniec 2022r. ułożenie terminala - teraz mam proxmoxa a w nim VM home assistanta - wszystko hula pięknie, w dodatku ustawiłem cloudflareda i mam podpiętego HA pod zewnętrzną domene.
LUB:
-Home Assistant OS - nie wiem czy tu robić poradnik, jak zrobicie zgodnie ze strona to będzie działać. Z tego co wiem najlepiej jest zainstalować od podstaw link na x86 , w przypadku malinki tu macie link na raspberrypi
Jak już zainstalowaliście, macie home assistant to wchodzicie w ustawienia -> dodatki i ściągacie:
- Studio Code Server - do edycji plików tekstowych
- Wmbusmeters (W-MBus to MQTT) - odczytuje protokół WMbus i przekazuje dane dalej do MQTT
- Mosquitto broker - klient protokołu MQTT, przeznaczonego do komunikacji pomiędzy urządzeniami smarthome
- InfluxDB - baza danych, opcjonalnie można zainstalować MariaDB, nie wnikałem ale podobno podmienia podstawową bazę danych Home Assistant
- Grafana - wykresy robią brrrr
Konfiguracja
1. Wchodzicie w Wmbusmeters -> Konfiguracja
Powinniście mieć jak na obrazku poniżej , w polu conf* wklejacie to:
loglevel=normaldevice=auto:c1,t1logtelegrams=trueformat=jsonlogfile=/config/wmbusmeters/wmbusmeters.logmeterfiles=/config/wmbusmeters/logs/meterreadings/meterfilesaction=overwriteshell=/wmbusmeters/mosquittopub.sh wmbusmeters/$METERNAME "$METERJSON"<br /> ```<br /> W razie problemów czy pytań o poszczególne pola konfiguracji github zawsze pomocny, można też przez SSH sobie ściągnąć wmbusmeters i testować czy cokolwiek wam dongiel łapie, instrukcje macie na github: [https://github.com/weetmuts/wmbusmeters](https://github.com/weetmuts/wmbusmeters)<br /> poniżej macie pole meters, tam wpisujecie po szablonie, zreszta wszystko jest podane na tacy w dodatku, protip w przypadku apatora trzeba dac "0" przed nr nakladki czasem<br /> ```<br /> name=twojanazwa driver=auto id=numernakladki key=kluczszyfrujacy<br /> ```<br /> Otiweracie MQTT-> Konfiguracja<br /> W polach Logins takie samo jak ustawiliscie w wmbusmeters, np.:<br /> username: xyz<br /> password:123456<br /> Otwieracie Studio Code Server, jak wszystko zrobiliscie dobrze to powinien wam sie pokazac folder "wmbusmeters", mozecie sobie kliknac i popatrzec po logach czy dongiel zbiera jakiekolwiek telegramy, a moze nie spieprzyliscie i wasz prywatny czujnik juz sobie smiga i sle dane jak szalony.<br /> Po sprawdzeniu przechodzicie do pliku configuration.yaml tam wklejacie dla czujnika:<br /> NAZWA\_WODOMIERZA = Nazwa czujnika jaka dales w wmbusmeters konfiguracja\_<br /> ```<br /> \- platform: mqtt<br /> statetopic: "wmbusmeters/NAZWAWODOMIERZA"<br /> jsonattributestopic: "wmbusmeters/NAZWAWODOMIERZA"<br /> unitofmeasurement: "m3"<br /> valuetemplate: "{{ valuejson.totalm3 | round(3) }}"<br /> name: przyjaznanazwajabedzieszwidzial<br /> icon: "mdi:gauge"<br /> ```<br /> _Mozecie tez poprobowac i unit\_of\_measurement: "m3" - zmienic na litry_<br /> \_value\_template: "{{ value\_json.total\_m3 | round(3) }}" - a tu zmienic o tak: value\_template: "{{ value\_json.total\_m3 | float \* 1000 | round(2) }}" i bedziecie mieli w litrach<br /> z protipów jest jeszcze [Utility Meter](https://www.home-assistant.io/integrations/utility_meter/) ale mi sie srednio udało z nim podziałać, można tam niby cykle miesieczne ustawiac zeby pokazywało itp. Ja sobie to postanowiłem zrobić za pomocą bazy danych<br /> Konfiguracja bazy danych:<br /> Jeszcze w tym configuration.yaml dajecie:<br /> ```<br /> influxdb:<br /> database: homeassistant<br /> username: homeassistant<br /> password: wylosujsehaslo<br /> max\_retries: 3<br /> default\\measurement: state<br /> ```<br /> i bedzie wam zapisywalo do bazy danych "homeassistant" dla uzytkownika "homeassistant" z haslem "wylosujsehaslo"<br /> ![](https://cdn.hejto.pl/uploads/posts/images/1200x900/60e06d31dc932dd6a1f2a94da76972c1.png)<br /> 1.O twieracie influxdb->2. influxdb admin(korona) macie taki niebieski przycisk "create datanbase" - tworzycie baze danych homeassistant<br /> 3\. Przechodzicie w zakladke Users i klikacie przycisk 4. create user, tam dajecie te nazwe uzytkownika np. homeassistant i haslo co se wylosowaliscie z tego configuration.yaml influxdb:<br /> Grafana:<br /> Wchodzicie w grafane, klikacie po lewej stronie na zebatke, tam add data source, wybieracie influxdb, musicie uzupelnic url z adresemip:8086 waszego serwerka, na samym dole wpisac pola uzytkownikow, baze danych jak ustawialiscie w influxdb, HTTP Metod zmieniacie na GET, zapisujecie i to wszystko<br /> Resetujecie teraz home assistant os(ustawienia->sprzet->uruchom ponownie), jak sie uruchomi to mozecie sobie w grafanie dodawac wykresiki.<br /> Protip: jak chcecie przelozyc wykres z grafany na pulpit homeassistant(strona web po prostu)to w embed to dodajcie &kiosk=1&refresh=10s na przykład i szukajcie tam from= to=, pozmieniajcie to wedle uznania zgodnie z [ta strona](https://grafana.com/docs/grafana/latest/dashboards/time-range-controls/) inaczej wasz wykres stanie w miejscu xd