Po raz kolejny sprawdziłem czy działa i działa ( plus małe poprawki kosmetyczne ).
Przetestowałem na zwykłym donglu - tym niebieskim z fabryczną anteną która działa od 410 Mhz do bodajże 910 Mhz - software to OS DietPI na VM ( ten OS jest najbardziej zbliżony do RPI i nie miałem na nim problemów ) oraz DietPi działający na PROXMOXIE. Nie będę opisywał samej konfiguracji DietPI - chyba że ktoś tego użyje to wtedy proszę o info.
Proszę zastosować ten Tutorial jeżeli zwykła metoda zawiedzie i nie tylko tyczy tylko czytania liczników Taurona ale w ogóle urządzeń opartych na W-MBUS.
Dla wygody i aby uniknąć literówek jeżeli ktoś nie ma zainstalowanego niżej podanego oprogramowania to proszę je zainstalować bo bardzo to przyspiesza i usprawnia robotę.
Zaczynamy
Nie wkładacie dongla do USB !!!
Proszę na stronie Tauronu uaktywnić usługę HAN do swojego licznika , sama aktywacja trwa chwilkę niż czekać potem zanim zmieni się status usługi.
Następnie proszę uruchomić Notepad++ i otworzyć 4 puste pliki ( to nie mus - można kopiować stąd ).
Do pierwszej pustej zakładki proszę wkleić poniższy kod:
apt install rtl-sdr
apt-get install rtl-433
apt-get install libtool libusb-1.0-0-dev librtlsdr-dev build-essential cmake pkg-config git
apt-get install mosquitto-clients
apt install libncurses-dev
reboot
cd /home
git clone https://github.com/xaelsouth/rtl-wmbus.git
cd rtl-wmbus
make
cp build/rtl_wmbus /usr/bin/rtl_wmbus
cd /home
git clone https://github.com/weetmuts/wmbusmeters.git
cd wmbusmeters
./configure; make; sudo make install
**##### !!!! Tu się zatrzymaj !!!! #######**
##### Usługa
udevadm trigger
systemctl daemon-reload
udevadm control --reload-rules
udevadm trigger
systemctl start wmbusmeters
systemctl status wmbusmeters
systemctl enable wmbusmeters
Do drugiej pustej zakładki proszę wkleić poniższy kod ( adres IP jest przykładowy , dajecie swój ):
### nano /etc/wmbusmeters.conf
loglevel=normal
device=rtl433:868.95M:t1
logtelegrams=false
format=json
meterfiles=/var/log/wmbusmeters/meter_readings
meterfilesaction=overwrite
logfile=/var/log/wmbusmeters/wmbusmeters.log
shell=/usr/bin/mosquitto_pub -h 192.168.100.6 -u userMQTT -P passwordMQTT -t wmbusmeters/$METER_ID -m "$METER_JSON"
#shell=/usr/local/bin/wmbus-mqtt
Do trzeciej pustej zakładki proszę wkleić kod a w miejsce id i key wstawić swoje dane ze strony Tauronu:
### nano /etc/wmbusmeters.d/amiplus
name=dom
type=amiplus
id=nr id licznika ze strony Tauronu
key=klucz deszyfrujący
Do czwartej pustej zakładki wklejamy poniższy kod ( adres IP jest przykładowy - dajecie swój) :
#### nano /usr/local/bin/wmbus-mqtt
/usr/bin/mosquitto_pub -h 192.168.100.6 -u userMQTT -P passwordMQTT -t wmbusmeters/$METER_ID -m "$METER_JSON"
#### chmod 755 /usr/local/bin/wmbus-mqtt
Logujecie się poprzez PUTTY na docelową maszynę - to właśnie pozwoli na kopiowanie pomiędzy okienkami.
Ja robiłem to na koncie roota ( nie pochwalam tego) ale mam dość bawienia sie z sudo.
Po zalogowaniu wpisujecie
cd /home
i PO KOLEI zaznaczacie jeden wiersz , kopiuj i następnie wklej do Putty i ENTER i znowu następny wiersz aż do linijki ##### !!! Tu się zatrzymaj !!! #######
W zakładce drugiej u góry jest po znaku ### polecenie do skopiowania i wklejenia do Putty
W Putty otworzy się edytor Nano a Wy analogicznie przekopiujecie całą treść z tej zakładki ( poza tą pierwszą linijką ) do Putty a następnie CTRL-X , Y, Enter
Trzecia zakładka analogicznie.
Czwarta zakładka to opcja - opisane było to na stronie z H w nazwie.
Uwzględniłem to w trzeciej zakładce czyli w pliku wmbusmeters.conf
Macie dwa razy shell z czego jedno jest zakomentowane.
i teraz można włożyć dongla i sprawdzić czy działa:
root@DietPi:~# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0bda:2832 Realtek Semiconductor Corp. RTL2832U DVB-T
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Polecenie rtl_test przerywamy po chwili CTRL-C
root@DietPi:~# rtl_test
Found 1 device(s):
0: Generic, RTL2832U, SN: 77771111153705700
Using device 0: Generic RTL2832U
Detached kernel driver
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
Info: This tool will continuously read from the device, and report if
samples get lost. If you observe no further output, everything is fine.
Reading samples in async mode...
Allocating 15 zero-copy buffers
lost at least 208 bytes
^CSignal caught, exiting!
User cancel, exiting...
Samples per million lost (minimum): 0
Reattached kernel driver
Tak samo przerywamy poniższe polecenie ( dane sa przykładowe jak coś znajdzie - trzeba poczekać około 5 do 10 minut)
root@DietPi:~# rtl_433
rtl_433 version unknown inputs file rtl_tcp RTL-SDR SoapySDR
Use -h for usage help and see https://triq.org/ for documentation.
Trying conf file at "rtl_433.conf"...
Trying conf file at "/root/.config/rtl_433/rtl_433.conf"...
Trying conf file at "/usr/local/etc/rtl_433/rtl_433.conf"...
Trying conf file at "/etc/rtl_433/rtl_433.conf"...
Registered 145 out of 175 device decoding protocols [ 1-4 8 11-12 15-17 19-21 23 25-26 29-36 38-60 63 67-71 73-100 102-105 108-116 119 121 124-128 130-149 151-161 163-168 170-175 ]
Detached kernel driver
Found Rafael Micro R820T tuner
Exact sample rate is: 250000.000414 Hz
[R82XX] PLL not locked!
Sample rate set to 250000 S/s.
Tuner gain set to Auto.
Tuned to 433.920MHz.
Allocating 15 zero-copy buffers
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2021-09-14 14:47:35
model : GT-WT03 ID Code : 138
Channel : 1 Battery : 1 Temperature: 23.7 C Humidity : 55 % Button : 0 Integrity : CRC
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2021-09-14 14:48:32
model : GT-WT03 ID Code : 138
Channel : 1 Battery : 1 Temperature: 23.7 C Humidity : 55 % Button : 0 Integrity : CRC
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2021-09-14 14:49:29
model : GT-WT03 ID Code : 138
Channel : 1 Battery : 1 Temperature: 23.8 C Humidity : 55 % Button : 0 Integrity : CRC
^CSignal caught, exiting!
Reattached kernel driver
root@DietPi:~#
i finalnie czyli to czego szukamy ( też przerywamy CTRL-C ):
@DietPi:~# wmbusmeters rtl433:t1
Started config rtl433[77771111153705700] listening on t1
No meters configured. Printing id:s of all telegrams heard!
(rtl433) dll_len adjusted to 53 from 49. Fix rtl_433? This warning will not be printed again.
Received telegram from: 90830781
manufacturer: (TCH) Techem Service (0x5068)
type: Heat meter (0x04)
ver: 0x27
device: rtl433[77771111153705700]
rssi: 999 dBm
driver: vario451
Received telegram from: 90830781
manufacturer: (TCH) Techem Service (0x5068)
type: Heat meter (0xc3)
ver: 0x27
device: rtl433[77771111153705700]
rssi: 999 dBm
driver: vario451
Received telegram from: 85067090
manufacturer: (APA) Apator, Poland (0x601)
type: Electricity meter (0x02)
ver: 0x02
device: rtl433[77771111153705700]
rssi: 999 dBm
driver: amiplus
Tu widać mój licznik i jego ID
Jak do tej pory jest OK to:
W HA do pliku configurations.yaml ( lub jak macie to gdzie indziej ) dopisujecie i cyfrę 85067090 zamieniacie na swój id licznika.
sensor:
- platform: mqtt
name: "Energia pobrana"
state_topic: "wmbusmeters/85067090"
unit_of_measurement: 'kWh'
value_template: "{{ value_json.total_energy_consumption_kwh }}"
json_attributes_topic: "wmbusmeters"
- platform: mqtt
name: "Moc pobierana"
state_topic: "wmbusmeters/85067090"
unit_of_measurement: 'kW'
value_template: "{{ value_json.current_power_consumption_kw }}"
json_attributes_topic: "wmbusmeters"
- platform: mqtt
name: "Calkowia moc oddana do sieci"
state_topic: "wmbusmeters/85067090"
unit_of_measurement: 'kWh'
value_template: "{{ value_json.total_energy_production_kwh }}"
json_attributes_topic: "wmbusmeters"
- platform: mqtt
name: "Moc oddawana"
state_topic: "wmbusmeters/85067090"
unit_of_measurement: 'kW'
value_template: "{{ value_json.current_power_production_kw }}"
json_attributes_topic: "wmbusmeters"
- platform: mqtt
name: "Ostatni odczyt"
state_topic: "wmbusmeters/85067090"
value_template: "{{ value_json.device_date_time }}"
json_attributes_topic: "wmbusmeters"
Restart HA i jak się uruchomi to tworzycie przykładowe testowe zegary:
a następnie wykonujecie w Putty polecenia spod tekstu ##### !!! Tu się zatrzymaj !!! #######
czyli
udevadm trigger
systemctl daemon-reload
udevadm control --reload-rules
udevadm trigger
systemctl start wmbusmeters
systemctl status wmbusmeters
systemctl enable wmbusmeters
Lookacie na utworzone zegary w HA i jak nic nie skopaliście to mniej więcej po 10 , 15 s będzie efekt:
Uffff - Koniec
Uprzedzam że dongiel bardzo się nagrzewa jak pracuje 24/h.