WMBusmeters, natywny HA OS, znikło urządzenie

Witam.
Męczę się od soboty i jest coraz gorzej, ale od początku.
Mam HA OS postawiony na HPT620. W sobotę aktualizowałem. Do odczytu Apatora zakupiłem niebieskiego dongla, z którego dostałem dwa - trzy odczyty w sobotę wieczorem. Od Niedzieli rana - cisza. Konfiguracja w yaml następująca:

data_path: /config/wmbusmeters
enable_mqtt_discovery: false
conf: |-
  loglevel=normal
  device=auto:t1
  donotprobe=/dev/ttyAMA0
  logtelegrams=false
  format=json
  logfile=/dev/stdout
  shell=/wmbusmeters/mosquitto_pub.sh wmbusmeters/$METER_NAME "$METER_JSON"
meters: []
mqtt: {}

a Log w WMBusmeters jest taki:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
Syncing wmbusmeters configuration ...
Registering meters ...
Generating MQTT configuration ... 
Broker core-mosquitto will be used.
MQTT Discovery cleanup...
Running wmbusmeters ...
No wmbus device detected, waiting for a device to be plugged in.
No meters configured. Printing id:s of all telegrams heard!

WMBusmeters mam zainstalowane ze sklepu, jednak przed jego odkryciem coś grzebałem przez konsolę. Wydaje mi się, że moje grzebanie skończyło się mniej więcej takimi wpisami w konsoli:

➜  rtl-wmbus git:(master) make
zsh: command not found: make
➜  rtl-wmbus git:(master) sudo apk add make
fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/community/x86_64/APKINDEX.tar.gz
(1/1) Installing make (4.3-r0)
Executing busybox-1.35.0-r17.trigger
OK: 386 MiB in 199 packages
➜  rtl-wmbus git:(master) make
Building d2be82c-7-g388e7ad
gcc -DNDEBUG -O3                  -Iinclude -std=gnu99 -Wall -W -Waggregate-return -Wbad-function-cast -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wno-float-equal -Winline -Wmain -Wmissing-noreturn -Wno-missing-prototypes -Wparentheses -Wpointer-arith -Wredundant-decls -Wreturn-type -Wshadow -Wsign-compare -Wstrict-prototypes -Wswitch -Wunreachable-code -Wno-unused -Wuninitialized -o "build/rtl_wmbus" rtl_wmbus.c -lm
rtl_wmbus.c:26:10: fatal error: getopt.h: No such file or directory
   26 | #include <getopt.h>
      |          ^~~~~~~~~~
compilation terminated.
make: *** [Makefile:53: release] Error 1
➜  rtl-wmbus git:(master) ✗ sudo apk add make
➜  rtl-wmbus git:(master) ✗

Po czym udało się odpalić nasłuch z dodatku.

LED w Donglu ładnie świeci na biało, natomiast zużycie procka to 0.0 - 0.1%. Tak nie było w sobotę. Wówczas było w okolicach 20%. Nie chce mi się wierzyć, żeby dongiel się zjarał.

Macie pomysły gdzie i jak szukać przyczyny niewykrywania go?

Dzisiaj próbowałem wielu sposobów z tego obszernego wątku tu na forum (np. zmiana device na:

device=rtlwmbus:868.9M:t1

ale oczywiście nie pomogło.

Ki czort? Ma ktoś cierpliwość?

Usuń z konfiguracji linijkę:

donotprobe=/dev/ttyAMA0

podmień linijkę:

logfile=/dev/stdout

na

logfile=/config/wmbusmeters/wmbusmeters.log

Następnie wklej co pojawia się w lokalizacji:

/config/wmbusmeters/wmbusmeters.log

Pojawia się:

No wmbus device detected, waiting for a device to be plugged in.
No meters configured. Printing id:s of all telegrams heard!

Proponuję dwie komendy w webowym terminalu
najpierw ustalić czy masz jakiegoś realteka podpiętego i gdzie był

~ $ dmesg | grep "RTL"
[    0.652321] r8169 0000:03:00.0 eth0: RTL8168h/8111h, f4:4d:30:6b:12:e5, XID 541, IRQ 124
[    1.282344] usb 1-2: Product: RTL2838UHIDIR

a następnie sprawdzić czy od ostatniego rebootu on tam jeszcze jest, a ponieważ u mnie to urządzenie USB 1-2
więc jeśli jeszcze jest to wygląda to tak

~ $ dmesg | grep "1-2"
[    1.141429] usb 1-2: new high-speed USB device number 3 using xhci_hcd
[    1.282321] usb 1-2: New USB device found, idVendor=1f4d, idProduct=c803, bcdDevice= 1.00
[    1.282339] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    1.282344] usb 1-2: Product: RTL2838UHIDIR
[    1.282348] usb 1-2: Manufacturer: Realtek
[    1.282352] usb 1-2: SerialNumber: 00000001

a jeśli już nie ma to gdzieś się dodatkowo pojawi linijka w tym guście

[35682.679085] usb 1-2: USB disconnect, device number 3

po wywołaniu pierwszego polecenia taki komunikat:


➜  ~ dmesg  | grep "RTL"
[    0.811087] r8169 0000:01:00.0 eth0: RTL8168g/8111g, 7c:d3:0a:21:d1:e4, XID 4  c0, IRQ 28
[    1.321636] usb 5-2: Product: RTL2838UHIDIR
[ 2930.812285] usb 5-2: Product: RTL2838UHIDIR
[ 3786.853045] usb 5-2: Product: RTL2838UHIDIR

Po wywołaniu drugiego taki:


➜  ~ dmesg | grep "5-2"
[    0.342751] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giome  tti <giometti@linux.it>
[    1.164669] usb 5-2: new high-speed USB device number 2 using xhci_hcd
[    1.314515] usb 5-2: New USB device found, idVendor=0bda, idProduct=2838, bcd  Device= 1.00
[    1.316906] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    1.321636] usb 5-2: Product: RTL2838UHIDIR
[    1.321643] usb 5-2: Manufacturer: Realtek
[    1.328764] usb 5-2: SerialNumber: 00000001
[ 2917.140061] usb 5-2: USB disconnect, device number 2
[ 2930.669971] usb 5-2: new high-speed USB device number 3 using xhci_hcd
[ 2930.812259] usb 5-2: New USB device found, idVendor=0bda, idProduct=2838, bcd  Device= 1.00
[ 2930.812279] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2930.812285] usb 5-2: Product: RTL2838UHIDIR
[ 2930.812290] usb 5-2: Manufacturer: Realtek
[ 2930.812295] usb 5-2: SerialNumber: 00000001
[ 3774.381444] usb 5-2: USB disconnect, device number 3
[ 3786.710724] usb 5-2: new high-speed USB device number 4 using xhci_hcd
[ 3786.853015] usb 5-2: New USB device found, idVendor=0bda, idProduct=2838, bcd  Device= 1.00
[ 3786.853036] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3786.853045] usb 5-2: Product: RTL2838UHIDIR
[ 3786.853051] usb 5-2: Manufacturer: Realtek
[ 3786.853058] usb 5-2: SerialNumber: 00000001
[ 7302.229846] usb 5-2: USB disconnect, device number 4
[ 7302.481012] usb 5-2: new full-speed USB device number 5 using xhci_hcd
[ 7304.532066] usb 5-2: device descriptor read/64, error -71
[ 7305.139995] usb 5-2: new high-speed USB device number 6 using xhci_hcd
[ 7305.256080] usb 5-2: device descriptor read/64, error -71
[ 7305.475038] usb 5-2: device descriptor read/64, error -71
[ 7306.171972] usb 5-2: new full-speed USB device number 7 using xhci_hcd
[ 7306.172322] usb 5-2: Device not responding to setup address.
[ 7306.376338] usb 5-2: Device not responding to setup address.
[ 7306.583973] usb 5-2: device not accepting address 7, error -71
[ 7306.698008] usb 5-2: new full-speed USB device number 8 using xhci_hcd
[ 7306.698429] usb 5-2: Device not responding to setup address.
[ 7306.904282] usb 5-2: Device not responding to setup address.
[ 7307.111993] usb 5-2: device not accepting address 8, error -71

To nie wygląda za zdrowo, dongle się rozłącza (a nawet od pewnego czasu wygląda na martwy).
Tymczasowo odłącz go od maszyny i podłącz ponownie i znowu sprawdź.

Sprawdziłem. Przepiąłem do innego USB i dalej to samo. Śmietnik?

Nie wiem, jest gorący?
(przestał działać kilka dni temu, więc to nam jeszcze nie da wiele informacji)

Wkładałeś zawsze do tego samego portu?
(możesz sprawdzić w innym najlepiej w innym hubie - poznasz po numeracji - miałeś 5-2, inny hub chyba powinien mieć inną cyfrę niż 5 z przodu)

Inne urządzenia są rozpoznawane w tym porcie?
Jeśli nie, to zamknij system i pozostaw wyłączony na jakieś 10 minut przed kolejnym włączeniem i podpinaniem czegokolwiek.

Obudowa dongla jest otwieralna?
Inspekcja wizualna może coś powie - czasem widać skutki działania wysokiej temperatury.

Ponadto ja bym przetestował go na jakimkolwiek innym komputerze/tablecie/telefonie (te ostatnie o ile mają porty OTG i masz taki kabelek, jeśli będzie rozpoznawany poprawnie to również z doinstalowaną obsługą SDR).

Gorący - raczej ciepły.
Otwieralna - chyba tylko siłowo.
Coś zacząłem szukać jak to odpalić na Windzie, ale nic konkretnego nie znalazłem.

Musisz mieć

  1. sterowniki, jeśli nie dostałeś w komplecie można spróbować np. tamte
    https://zadig.akeo.ie/
  2. jakiś program, którym obsłużysz choćby odbiór radia (te akurat DAB/DAB+ antena może być konieczna!)
    https://www.welle.io/ ← ten szczerze polecam (wersja dla windy na githubie)

albo dowolne inne
https://www.rtl-sdr.com/big-list-rtl-sdr-supported-software/

np. z powyższej listy SDR++ (win11) -nastroiłem na lokalny nadajnik radia FM (98,8MHz dla lepszego odbioru nieco odstroiłem na bok)

Jeśli nie masz anteny, to zdecydowanie najłatwiej odebrać radio FM na kawałku drutu (można go dotknąć palcem dla wzmocnienia).

W każdym razie jeśli windows rozpozna jakieś nieznane urządzenia to już jest dobrze, jeśli zadig dodatkowo zainstaluje im stery to kolejny dobry objaw, a jeśli będzie odbiór to dongle jest sprawny.

Tak często dopisujesz coś, że nie nadążam reagować :wink:

Kłopot w tym, że windows nic nie czuje. Wkładam, wyciągam dongla i cisza.
Zadig niby się zainstalował.

W SDR++

i cisza.

Wpływu temperatury nie widać. Dioda świeci. Dongiel zimny.

W menadżerze urządzeń byłeś? Bo generalnie, to się spektakularne zdarzenia nie dzieją, po prostu powinno zostać odnalezione nieznane urządzenie USB (lub nawet klika). Bez tego pozostałe kroki nie mają sensu, bo prawdopodobnie dongiel to z jakiegoś powodu trup.

Jeśli chodzi o windowsa i USB to polecam to

ten dongiel, który mam objawia się tak:

Nie bawiłem się SDR na windowsie od lat, więc działanie w win11 to dla mnie też nowość (ale skoro działa, to i na win10 poleci).

to nie cisza to martwota, powinien odbierać chociaż wszechobecny szum

W menadżerze urządzeń byłeś?

Byłeś. Nic się nie pojawiło. Pisząc cisza miałem na myśli, że windows nie wydaje charakterystycznego dźwięku podłączenia.

Jeśli chodzi o windowsa i USB to polecam to

Również nic nie znalazł.

Próubuję go reklamować u chińczyka i kupuję nowego dongla.

Mam nowego dongla.
Telegramy otrzymuję. Nasłuch w MQTT zgłasza poprawne odczyty z Apatora.
W pliku /configuration.yaml dodalem taki wpis:

sensor:
  - platform: mqtt
    state_topic: "wmbusmeters/MainWater"
    json_attributes_topic: "wmbusmeters/MainWater"
    unit_of_measurement: "m3"
    value_template: "{{ value_json.total_m3 }}"
    name: "Licznik woda"
    icon: "mdi:gauge"

Poniżej konfiguracja wmbusmeters:

data_path: /config/wmbusmeters
enable_mqtt_discovery: false
conf: |-
  loglevel=normal
  device=auto:t1
  donotprobe=/dev/ttyAMA0
  logtelegrams=false
  format=json
  logfile=/dev/stdout
  shell=/wmbusmeters/mosquitto_pub.sh wmbusmeters/$METER_NAME "$METER_JSON"
meters:
  - |-
    name=MainWater
    driver=apator162
    id=00473662
    key=00000000000000000000000000000000
mqtt:
  host: 192.168.1.164
  port: 1883
  user: homeassistant
  password: ...

Jak dodać ten sensor na dashboard? W /Settings/Entities nie pojawił mi się ten sensor. Co robię źle?

Musisz dostosować definicję mqtt do nowego formatu:

Dzięki za dobre chęci. Niestety jestem raczej zielony w HA. Ten licznik to jeden z pierwszych urządzeń wpiętych do HA. Zgodnie ze wskazówką zacząłem szukać co pozmieniać w “definicji”. Tak wygląda teraz wpis, ale dalej nic się nie pojawiło.

  sensor:
  - platform: mqtt
    state_topic: "wmbusmeters/MainWater"
    json_attributes_topic: "wmbusmeters/MainWater"
    unit_of_measurement: "m3"
    value_template: '{{ value_json["total_m3"] }}'
    name: "Licznik woda"
    icon: "mdi:gauge"

Czy ja w ogóle dobrze szukam tego sensora w /config/entities ?

Zakładam, że nie definiowałeś osobnych ścieżek do poszczególnych integracji, więc w pliku configuration.yaml umieszczasz:

mqtt:
  sensor:
    - name: "Licznik woda"
      state_topic: "wmbusmeters/MainWater"
      value_template: '{{ value_json["total_m3"] }}'
      unit_of_measurement: "m³"
      icon: "mdi:gauge"

Oczywiście usuwasz ten wpis:

Jeśli chcesz aby licznik wody pojawił się w zakładce energia to sensor powinien wyglądać tak:

mqtt:
  sensor:
    - name: "Licznik woda"
      state_topic: "wmbusmeters/MainWater"
      value_template: '{{ value_json["total_m3"] }}'
      unit_of_measurement: "m³"
      device_class: "water"
      state_class: "total_increasing"
      icon: "mdi:gauge"

Oczywiście dalej nic.

Postanowiłem przeładować konfigurację MQTT i takie coś teraz mam:

No ACK from MQTT server in 10 seconds (mid: 18)
2:12:45 PM – (WARNING) MQTT
[140109303824640] Error handling message: Error talking to MQTT: The connection was lost. (unknown_error) from fe80::6f3c:e90c:5959:fbc4 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 OPR/93.0.0.0)
2:12:39 PM – (ERROR) Home Assistant WebSocket API
Disconnected from MQTT server core-mosquitto:1883 (7)
2:12:39 PM – (WARNING) MQTT
failed to receive on socket: [Errno 32] Broken pipe
2:12:39 PM – (ERROR) components/mqtt/client.py
Error setting up entry Mosquitto broker for mqtt
2:08:13 PM – (ERROR) components/mqtt/__init__.py

Nasłuchujesz przez mqtt w HA?

czy przez MQTT-Explorer?

Przez HA: