Wmbusmeters (W-MBus to MQTT) jako addon Supervisora

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 ...
Adding meter-0001 ...
Generating MQTT configuration ... 
Broker core-mosquitto will be used.
MQTT Discovery cleanup...
Running wmbusmeters ...
(config) "device" "rtlwmbus:CMD(rtl_sdr -f 868.9M -s 1600000 - 2>/dev/null | rtl_wmbus -p s -a)"
(wmbusmeters) version: 1.9.0-76-gb9f3446
(config) using device: rtlwmbus:CMD(rtl_sdr -f 868.9M -s 1600000 - 2>/dev/null | rtl_wmbus -p s -a) 
(config) number of meters: 0
(serial) expecting devices to work
(serial) expecting devices to work
(lookup) with cmd "rtlwmbus:CMD(rtl_sdr -f 868.9M -s 1600000 - 2>/dev/null | rtl_wmbus -p s -a)"
(main) opening rtlwmbus:CMD(rtl_sdr -f 868.9M -s 1600000 - 2>/dev/null | rtl_wmbus -p s -a)
Started config rtlwmbus listening on none using CMD(rtl_sdr -f 868.9M -s 1600000 - 2>/dev/null | rtl_wmbus -p s -a)
(rtlwmbus) using command: rtl_sdr -f 868.9M -s 1600000 - 2>/dev/null | rtl_wmbus -p s -a
(rtlwmbus) opening cmd_0
(bgshell) exec background "/bin/sh"
(bgshell) arg "-c"
(bgshell) arg "rtl_sdr -f 868.9M -s 1600000 - 2>/dev/null | rtl_wmbus -p s -a"
(serial) EVENT thread interrupted
(serialcmd) opened /bin/sh pid 156 fd 4 (rtlwmbus)
(main) regular reset of rtlwmbus  using CMD(rtl_sdr -f 868.9M -s 1600000 - 2>/dev/null | rtl_wmbus -p s -a) will happen every 82800 seconds
(wmbus) no alarm (expected activity) for rtlwmbus
(serial) registered regular callback HOT_PLUG_DETECTOR(0) every 2 seconds
No meters configured. Printing id:s of all telegrams heard!
(serial) waiting for stop

tak, zdekodowalem telegram który otrzymalem na innym raspberry. i to jes apator08 i nie ma klucza bo bez klucza dało sie zdekodować odczyt

Zmienione.
Oto logi:

(shell) return code 1
(serial) EVENT thread interrupted
(shell) 172 exited
(main) rtl_srd found in path
(shell) exec (capture output) "/bin/sh"
(shell) arg "-c"
(shell) arg "rtl_wmbus < /dev/null"
(shell) output: >>><<<
(shell) return code 0
(shell) 173 exited
(serial) EVENT thread interrupted
(main) rtl_wmbus found in path
(main) rtlsdr device 00000991 not currently used.
(main) found specified device (rtlwmbus:868.9M) that matches detected device (:rtlwmbus[00000991]:0/0)
(main) opening rtlwmbus:868.9M
Started config rtlwmbus[00000991] listening on none using fq 868.9M
(rtlwmbus) using command: /usr/bin/rtl_sdr  -d 0 -f 868.9M -s 1.6e6 - 2>/dev/null | /usr/bin/rtl_wmbus
(rtlwmbus) opening 00000991
(bgshell) exec background "/bin/sh"
(serial) EVENT thread interrupted
(bgshell) arg "-c"
(bgshell) arg "/usr/bin/rtl_sdr  -d 0 -f 868.9M -s 1.6e6 - 2>/dev/null | /usr/bin/rtl_wmbus"
(serialcmd) opened /bin/sh pid 178 fd 5 (rtlwmbus)
(main) regular reset of rtlwmbus  will happen every 82800 seconds
(wmbus) no alarm (expected activity) for rtlwmbus
(serial) registered regular callback HOT_PLUG_DETECTOR(0) every 2 seconds
(serial) waiting for stop

nadal nic sie nie dzieje. Moze mam zle ustawione mqtt?

zaczęło sie coś pojawiać ale są blędy. Spróbuje zrobić antene na 1/4 fali oraz lepszy kabel. Dziwna sprawa bo od odbiornika do licznika jest 2 metry

telegram received but incomplete or with errors, since rtl_wmbus reports that CRC checks failed.
(rtlwmbus) error in received message.

Tak jakby ucinało telegram i nie był cały, tak mi sie wydaje

na razie mam zero :slight_smile: Poczekam na okres kąpielowy i jutro będe wiedział czy coś się zmieniło

Sukces, pojawiły się odczuty po zrobieniu anteny. Z obserwacji wynika, że w moim liczniku odczyty rozpoczynają się od 8:30 do około 17:00 z częstością około 1odczyt na dwie minuty. W godzinach wieczornych jest to 4 odczyty na godzine a po 22 brak odczytów. Jest jeszcze jeden problem z brakiem wykrywania licznika w zakładce energia. Encja wodomierza skonfigurowany jak poniżej:

mqtt:
    sensor:
        - name: "wodomierz_apator"
          state_topic: "wmbusmeters/wodomierz"
          unit_of_measurement: "m3"
          json_attributes_topic: "wmbusmeters/wodomierz"
          value_template: "{{ value_json.total_m3 }}"
          device_class: "water"
          state_class: "total_increasing"

Podmieniłem ale nadal nie widzi

Pojawiło się po parunastu minutach

Zajrzyj do Narzędzia deweloperskie → Statystyki
i zrób naprawy encji po tej poprzedniej wadliwej konfiguracji

Cześć,
udało Ci się zczytać z tej nakładki (Apator08) poprawne dane?

Wczoraj uruchomiłem addon, zaczytałam w nasłuchu mi 2 liczniki Diehl z Izar, niestety 7 liczników Apator08 i 1 szt BMetersa nie, ale może już nie raportowały (w nocy)

Czesc,

jestem nowym uzytkownikiem HA.
jesli zmieniam cokolwiek w pliku:
/config/wmbusmeters/etc/wmbusmeters.conf

to po restarcie Addona Wmbusmeters (W-MBus to MQTT) on wraca do tych samych ustawien :frowning:

Nie rozumiem w których plikach mam zmienić konfigurację? Czy może mi ktoś proszę wytłumaczyć?

data_path: /config/wmbusmeters
enable_mqtt_discovery: false
conf: |-
  loglevel=debug
  device=rtlwmbus:868.9M:t1,c1,s1
  logtelegrams=false
  format=json
  logfile=/dev/stdout
  shell=/wmbusmeters/mosquitto_pub.sh wmbusmeters/$METER_NAME "$METER_JSON"
meters:
  - |-
    name=wodomierz
    driver=apator08
    id=000xxxxx
    key=
mqtt:
  host: xxx
  port: 1883
  user: marcin
  password: xxx

takie logi mam z Addona:

No meters configured. Printing id:s of all telegrams heard!
Received telegram from: 01469444
          manufacturer: (APA) Apator, Poland (0x601)
                  type: Water meter (0x07) encrypted
                   ver: 0x05
                device: rtlwmbus[00000001]
                  rssi: 27 dBm
                driver: apator162
Received telegram from: 01668308
          manufacturer: (APA) Apator, Poland (0x601)
                  type: Water meter (0x07) encrypted
                   ver: 0x05
                device: rtlwmbus[00000001]
                  rssi: 131 dBm
                driver: apator162

dzieki wielkie. Nie wiem jak moglem nie zauwazyc tej konfiguracji yaml :slight_smile:

W jaki sposob odnalezc haslo mqtt? Czy ja tu sam ustalam? Mam addon w integracjach Mosquitto broker

MQTT i uzywam go laczenia sie z czujnikami temperatury ale nie pamietam zebym tam ustawial haslo

Zgadza się ale mimo wszystko nie powinno się łaczyć do brokera MQTT z jednym i tym samym userem/hasłem. Lepiej jest, szczególnie w debugowaniu problemów, używać innych poswiadczeń, definiuje się to w konfiguracji brokera MQTT:

Cześć

Wrzuciłem pull request na wmbusmeters’a, a konkretnie na jego dodatek do HA. Miejmy nadzieję że niedługo pojawi się ta zmiana w oficjalnej wersji. Narazie można ręcznie ją zaciągnąć:

Z tą zmianą, oraz z dodatkiem/komponentem do ESPHome wmbusgw:

Pojawia się możliwość eliminacji rtlwmbus (albo przeniesienia go z dala od HA). Konfiguracja sprowadza się do poprawnego wypełnienia yaml’a dla ESPHome, ustawienia device jako rtlwmbus:CMD(/usr/bin/nc -lku 9011) oraz przekierowaniu porta w wmbusmeters HA addon:

Można wybrać czy komunikacja ma się odbywać po UDP czy po TCP.

2 polubienia

Cześć.
Jestem nowy na forum, ale z home assistantem działam już od dłuższego czasu.
Ostatnio kupiłem adapter DVB-t na czipie realteka RTL2832U (cabletech urz0184).
Chiałem przy jego pomocy odczytać licznik z nakładką Bmeters. W specyfikacji licznika wyczytałem, że działa on na częstotliwości 868 Mhz.
Dlatego też - w addonie wpisałem na początek tak:

data_path: /config/wmbusmeters
enable_mqtt_discovery: false
conf: |-
  loglevel=debug
  device=rtlwmbus:868M:t1
  donotprobe=/dev/ttyAMA0
  logtelegrams=false
  format=json
  logfile=/config/wmbusmeters/wmbusmeters.log
  meterfiles=/config/wmbusmeters/logs/meter_readings/
  shell=/wmbusmeters/mosquitto_pub.sh "wmbusmeters/$METER_NAME" "$METER_JSON"
meters: []
mqtt: {}

niestety po dłuższym czasie (kilka dni), nie zostałuy wylryte żadne liczniki.
Zmieniałem device=rtlwmbus:868M:t1 na

  1. device=rtlwmbus:868.9M:t1
  2. device=auto:t1
    Co nie zmieniało efekty wyjściowego - brak wykrywanych liczników.

w logach nic niepokojącego:

(wmbusmeters) version: 1.11.0-23-gfce935e
(config) store meter files in: "/config/wmbusmeters/logs/meter_readings/"
(config) using device: rtlwmbus:868M:t1 
(config) number of meters: 0
(shell) exec (capture output) "/bin/sh"
(shell) arg "-c"
(shell) arg "rtl_sdr < /dev/null"
(shell) output: >>>rtl_sdr, an I/Q recorder for RTL2832 based DVB-T receivers

Usage:	 -f frequency_to_tune_to [Hz]
	[-s samplerate (default: 2048000 Hz)]
	[-d device_index (default: 0)]
	[-g gain (default: 0 for auto)]
	[-p ppm_error (default: 0)]
	[-b output_block_size (default: 16 * 16384)]
	[-n number of samples to read (default: 0, infinite)]
	[-S force sync output (default: async)]
	filename (a '-' dumps samples to stdout)

<<<
(shell) return code 1
(shell) 161 exited
(main) rtl_srd found in path
(shell) exec (capture output) "/bin/sh"
(shell) arg "-c"
(shell) arg "rtl_wmbus < /dev/null"
(serial) EVENT thread interrupted
(shell) output: >>><<<
(serial) EVENT thread interrupted
(shell) return code 0
(shell) 162 exited
(main) rtl_wmbus found in path
(main) rtlsdr device 00000991 not currently used.
(main) found specified device (rtlwmbus:868M:t1) that matches detected device (:rtlwmbus[00000991]:0/0)
(main) opening rtlwmbus:868M:t1
Started config rtlwmbus[00000991] listening on t1 using fq 868M
(rtlwmbus) using command: /usr/bin/rtl_sdr  -d 0 -f 868M -s 1.6e6 - 2>/dev/null | /usr/bin/rtl_wmbus
(rtlwmbus) opening 00000991
(bgshell) exec background "/bin/sh"
(serial) EVENT thread interrupted
(bgshell) arg "-c"
(bgshell) arg "/usr/bin/rtl_sdr  -d 0 -f 868M -s 1.6e6 - 2>/dev/null | /usr/bin/rtl_wmbus"
(serialcmd) opened /bin/sh pid 167 fd 5 (rtlwmbus)
(main) regular reset of rtlwmbus  will happen every 82800 seconds
(wmbus) no alarm (expected activity) for rtlwmbus
(serial) registered regular callback HOT_PLUG_DETECTOR(0) every 2 seconds
No meters configured. Printing id:s of all telegrams heard!

w logs/meter_readings mam pusto, bo nie są wykryte żadne liczniki…
Licznik znajduje się dwa piętra pod anteną dongla USB, czy to możliwe, że sygnał nie dociera (jedna posadzka betonowa + 2 płyty GK)?
Co jeszcze mi zostało pomijając przesunięcie anteny bliżej (przedłuzyć i pociagnąć kabel w okolice liczników), lub odpalić inną VM’kę i zobaczyć czy na innym systemie będzie wykrywane ?
z góry dziękuję za wszelkie komentarze.
Dzięki
brat

Cześć.
co do portu - musiało zostać z default config. usunąć ? Jaka jest komenda do sprawdzenia portu ?
Co do licznika - mam oznaczenia Bmeters, OMS V13 RFM-TX1.1
Znalazlem w necie kartę katalogową z taką informacą:

obraz

cześć.
Znalazlem mój dongle:

/dev/bus/usb/001/002
BUSNUM: '001'
DEVNAME: /dev/bus/usb/001/002
DEVNUM: '002'
DEVPATH: /devices/pci0000:00/0000:00:07.7/usb1/1-1
DEVTYPE: usb_device
DRIVER: usb
ID_BUS: usb
ID_FOR_SEAT: usb-pci-0000_00_07_7-usb-0_1
ID_MODEL: DVB-T_Dongle
ID_MODEL_ENC: DVB-T\x20Dongle
ID_MODEL_ID: '1101'
ID_PATH: pci-0000:00:07.7-usb-0:1
ID_PATH_TAG: pci-0000_00_07_7-usb-0_1
ID_REVISION: '0100'
ID_SERIAL: Realtek_DVB-T_Dongle_00000991
ID_SERIAL_SHORT: '00000991'
ID_USB_INTERFACES: ':ffffff:'
ID_VENDOR: Realtek
ID_VENDOR_ENC: Realtek
ID_VENDOR_ID: 1d19
MAJOR: '189'
MINOR: '1'
PRODUCT: 1d19/1101/100
SUBSYSTEM: usb
TAGS: ':seat:'
TYPE: 0/0/0
USEC_INITIALIZED: '2188216'

Bmeters widzę Partialy, więc częściowo obsługiwany.
Myślisz, ze cokolwiek uda się wyciągnąć z niego ?

Cześć.
Po usunięciu wymuszenia częstotliwości i czego ma nasłuchiwać (T1) - takie coś pojawiło mi się w logach:

(wmbusmeters) version: 1.11.0-23-gfce935e
(config) store meter files in: "/config/wmbusmeters/logs/meter_readings/"
(config) using device: rtlwmbus 
(config) number of meters: 0
(shell) exec (capture output) "/bin/sh"
(shell) arg "-c"
(shell) arg "rtl_sdr < /dev/null"
(serial) EVENT thread interrupted
(shell) output: >>>rtl_sdr, an I/Q recorder for RTL2832 based DVB-T receivers

Usage:	 -f frequency_to_tune_to [Hz]
	[-s samplerate (default: 2048000 Hz)]
	[-d device_index (default: 0)]
	[-g gain (default: 0 for auto)]
	[-p ppm_error (default: 0)]
	[-b output_block_size (default: 16 * 16384)]
	[-n number of samples to read (default: 0, infinite)]
	[-S force sync output (default: async)]
	filename (a '-' dumps samples to stdout)

<<<
(shell) return code 1
(shell) 161 exited
(main) rtl_srd found in path
(shell) exec (capture output) "/bin/sh"
(shell) arg "-c"
(shell) arg "rtl_wmbus < /dev/null"
(shell) output: >>><<<
(serial) EVENT thread interrupted
(shell) return code 0
(shell) 162 exited
(main) rtl_wmbus found in path
(main) rtlsdr device 00000991 not currently used.
(main) found specified device (rtlwmbus) that matches detected device (:rtlwmbus[00000991]:0/0)
(main) opening rtlwmbus
Started config rtlwmbus[00000991] listening on none
(rtlwmbus) using command: /usr/bin/rtl_sdr  -d 0 -f 868.625M -s 1.6e6 - 2>/dev/null | /usr/bin/rtl_wmbus -s
(rtlwmbus) opening 00000991
(bgshell) exec background "/bin/sh"
(bgshell) arg "-c"
(bgshell) arg "/usr/bin/rtl_sdr  -d 0 -f 868.625M -s 1.6e6 - 2>/dev/null | /usr/bin/rtl_wmbus -s"
(serial) EVENT thread interrupted
(serialcmd) opened /bin/sh pid 167 fd 6 (rtlwmbus)
(main) regular reset of rtlwmbus  will happen every 82800 seconds
(wmbus) no alarm (expected activity) for rtlwmbus
(serial) registered regular callback HOT_PLUG_DETECTOR(0) every 2 seconds
No meters configured. Printing id:s of all telegrams heard!
(serial) waiting for stop
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
[11:26:40] INFO: Syncing wmbusmeters configuration ...
[11:26:40] INFO: Registering meters ...
[11:26:40] INFO: Generating MQTT configuration ... 
[11:26:40] INFO: Broker core-mosquitto will be used.
MQTT Discovery cleanup...
[11:26:42] INFO: Running wmbusmeters ...
(config) "device" "rtlwmbus"

im bardziej szukam jakichś błędów, ,tym bardziej ich nie znajduję :wink:
może to faktycznie brak zasiegu… ale wątpie że w osiedlu domków jednorodzinnych nie dochodzi ŻADEN sygnał z wodomierzy.