Wpis z mikrobloga

#homeassistant #domoticz #rtlsdr #elektronika
Wielu was się pytało o poradnik z tego wpisu więc postanowiłem przysiąść po pracy i coś nasmarować

UWAGA!
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 ( ͡° ͜ʖ ͡°)

HARDWARE:
-Raspberry PI 4, około 300zł - na OrangePi Lite np. średnio działa home assistant, domoticz jakoś ledwo dawał radę, więc postanowiłem że przyszłościowo pod różne zabawy zakupię sobie:

-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, 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.
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, 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"


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

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

name=twojanazwa driver=auto id=numernakladki key=kluczszyfrujacy


Otiweracie MQTT-> Konfiguracja
W polach Logins takie samo jak ustawiliscie w wmbusmeters, np.:
username: xyz
password:123456

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.

Po sprawdzeniu przechodzicie do pliku configuration.yaml tam wklejacie dla czujnika:

NAZWAWODOMIERZA = Nazwa czujnika jaka dales w wmbusmeters konfiguracja

- platform: mqtt

state
topic: "wmbusmeters/NAZWAWODOMIERZA"
json
attributestopic: "wmbusmeters/NAZWAWODOMIERZA"
unitofmeasurement: "m3"
valuetemplate: "{{ valuejson.totalm3 | round(3) }}"
name: przyjazna
nazwajabedzieszwidzial
icon: "mdi:gauge"

Mozecie tez poprobowac i unit
ofmeasurement: "m3" - zmienic na litry
value
template: "{{ valuejson.totalm3 | round(3) }}" - a tu zmienic o tak: valuetemplate: "{{ valuejson.total_m3 | float * 1000 | round(2) }}" i bedziecie mieli w litrach

z protipów jest jeszcze 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

Konfiguracja bazy danych:

Jeszcze w tym configuration.yaml dajecie:

influxdb:
database: homeassistant
username: homeassistant
password: wylosujsehaslo
maxretries: 3
default
measurement: state

i bedzie wam zapisywalo do bazy danych "homeassistant" dla uzytkownika "homeassistant" z haslem "wylosujsehaslo"

Zdjecie

1.O twieracie influxdb->2. influxdb admin(korona) macie taki niebieski przycisk "create datanbase" - tworzycie baze danych homeassistant

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:

Grafana:
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

Resetujecie teraz home assistant os(ustawienia->sprzet->uruchom ponownie), jak sie uruchomi to mozecie sobie w grafanie dodawac wykresiki.

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 inaczej wasz wykres stanie w miejscu xd
  • 12