WMBusmeters odczyt licznika wody IZAR RC 868 I R4 PL Diehl (AI-Speaker - Home Assistant)

(wmbus) WARNING! no key to decrypt payload! Permanently ignoring telegrams from id: 03979647 mfct: (APA) Apator, Poland (0x601) type: Water meter (0x07) ver: 0x05
(meter) newly created meter (BathCold 03979647 apator162) did not handle telegram!
(wmbus) WARNING! no key to decrypt payload! Permanently ignoring telegrams from id: 03990112 mfct: (APA) Apator, Poland (0x601) type: Water meter (0x07) ver: 0x05
(meter) newly created meter (BathWarm 03990112 apator162) did not handle telegram!
(wmbus) WARNING! no key to decrypt payload! Permanently ignoring telegrams from id: 03978776 mfct: (APA) Apator, Poland (0x601) type: Water meter (0x07) ver: 0x05
(meter) newly created meter (WCCold 03978776 apator162) did not handle telegram!
(wmbus) WARNING! no key to decrypt payload! Permanently ignoring telegrams from id: 03990407 mfct: (APA) Apator, Poland (0x601) type: Water meter (0x07) ver: 0x05
(meter) newly created meter (WCWarm 03990407 apator162) did not handle telegram!`Tekst sformatowany`

no to chyba faktycznie zakodowane…
rozumiem, że z tym też próbowałeś:

name=Licznik_wody
type=apator162
id=03990112
key=00000000000000000000000000000000

W celu zapewnienia poufności danych pomiarowych, transmitowane radiowo informacje o zużyciu, zabezpieczone są algorytmem szyfrującym AES-128 z CBC (gwarancja zmienności
wysyłanych danych w przypadku braku zmian objętości). Do
odszyfrowania tak zabezpieczonych danych wymagana jest
znajomość użytego klucza szyfrującego. Klucz ma postać 16
liczb (0 – 255). Klucz wymagany jest również do odczytu i zapisu danych konfiguracyjnych. Znając aktualny klucz nakładki,
możliwe jest ustawienie nowego klucza.

To pozostaje albo zdobyć key od dostawcy wody - tak na logikę nie powinno być z tym problemu, każdy liczniki powinien mieć swój indywidualny key a dane idą tylko od licznika więc nic nie można do niego wysłać. A drugi sposób to metoda brutal force do złamania klucza :slight_smile:

1 polubienie

Tez stosuje taki klucz i powiesz szczerze, nie spotkalem sie z nakładką typu Apator z innym kluczem niz ten.

1 polubienie

Nie wiem, u mnie po wpisaniu samych 0 nie dostaje w ciagu dnia żadnych danych.
Byłem w administracji pytać o klucz i albo koleś nie wie o co chodzi albo wszyscy maja ten sam klucz bo zasłaniał się RODO.

A z samym 0 wpisałem i w ciągu dnia mam tak…i bez zmian.

chyba że coś w configu mam źle:

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=BathWarm
    driver=apator162
    id=03990112
    key=00000000000000000000000000000000
  - |-
    name=BathCold
    driver=apator162
    id=03979647
    key=00000000000000000000000000000000
  - |-
    name=WCWarm
    driver=apator162
    id=03990407
    key=00000000000000000000000000000000
  - |-
    name=WCCold
    driver=apator162
    id=03978776
    key=00000000000000000000000000000000
mqtt: {}

Zamień na:

conf: |-
  loglevel=debug
  device=rtlwmbus:868.9M:t1

co spowoduje debug w logach i wymuszenie częstotliwości, na której działają nakładki Apator.
UWAGA: po godz. 16. nakładki bardzo rzadko raportują zmiany.

Ostatnia linijka oznacza że już “słuchasz” swoje liczniki.
Jak zmienisz tak jak pisze @macek na debug to w logach będzie widać dane z licznika.
Jak wpiszesz do configu dane swojego brokera MQTT to i tam się pojawią dane licznika.

Po zmianach logevele i device zasugerowanych przez @macek mam taką zwrotkę:

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 ...
Adding meter-0002 ...
Adding meter-0003 ...
Adding meter-0004 ...
Generating MQTT configuration ... 
Broker core-mosquitto will be used.
MQTT Discovery cleanup...
Running wmbusmeters ...
(config) "device" "rtlwmbus:868.9M:t1"
(wmbusmeters) version: 1.9.0-74-g3691bbd
(config) using device: rtlwmbus:868.9M:t1 
(config) number of meters: 4
(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) 168 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) 169 exited
(main) rtl_wmbus found in path
(main) rtlsdr device 00000001 not currently used.
(main) found specified device (rtlwmbus:868.9M:t1) that matches detected device (:rtlwmbus[00000001]:0/0)
(main) opening rtlwmbus:868.9M:t1
Started config rtlwmbus[00000001] listening on t1 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 00000001
(serial) EVENT thread interrupted
(bgshell) exec background "/bin/sh"
(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 174 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

Jakaś sugestia jak się za to zabrać drugą metodą?

masz na myśli adon Home Assistanta?

Jeżeli tak, to musisz mieć zainstalowany Home Assistant jako OS lub Supervised:


co daje możliwość instalacji dodatków Add-ons i jednym z addonów jest
Potem jest już prosto, instalujesz dodatek i zarządzasz nim z poziomu Home Assistanta.
Tu masz opisane:
Wmbusmeters (W-MBus to MQTT) jako addon Supervisora - Home Assistant / Integracje - ArturHome

A drugi sposób to metoda brutal force do złamania klucza

Czyli mam stworzyć tysiace tych samych urządzeń każdy z innym kluczem czy jeszcze inaczej się za to zabrać?

@piasek nie ma szans złamać tego w taki sposób, do tego są specjalne programy ale to nie takie proste, trochę w tym temacie jest opisane w tym wątku:
Are here users from Germany who got the AES-Key for Diehl Hydrus watermeter? Please post the company name · Issue #281 · weetmuts/wmbusmeters · GitHub
ale z tego ostatniego loga co wrzuciłeś wychodzi że key z 0 jest OK i nie masz kodowanego licznika
porównaj z moimi logiem:

<<<
(serial) EVENT thread interrupted
(shell) return code 1
(shell) 12 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) 13 exited
(main) rtl_wmbus found in path
(main) rtlsdr device 00000001 not currently used.
(main) found specified device (rtlwmbus[00000001]:t1) that matches detected device (:rtlwmbus[00000001]:0/0)
(main) opening rtlwmbus[00000001]:t1
Started config rtlwmbus[00000001] listening on t1
(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 00000001
(bgshell) exec background "/bin/sh"
(serial) EVENT thread interrupted
(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"
(serialcmd) opened /bin/sh pid 18 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

wg mnie to samo.

Pamiętaj że w zależności od licznika dane będą szły:
-po odkręceniu wody,
-po jakimś interwale czasu, może ktoś ustawił że idą kilka raz w miesiącu, choć w to wątpię
-np. po 16 mogą nie iść w cale
-jak będzie słaby zasięg (daleko od licznika) to też może być problem
Skonfiguruj MQTT i zobacz w programie MQTT Explorer czy wysyłka jakieś dane, najlepiej włącz MQTT Explorer i poczekaj do jutra (nie wyłączaj komputer i programu Mqtt Explorer) aż coś się pojawi. Zobacz u mnie, uruchomiłem program i teraz licznik nic nie wysyła:

image

odkręcam wodę i pojawi się wpis wmbustmeters:
image

tylko pamiętaj o prawidłowym skonfigurowaniu mqtt, u mnie w dockerze jest tak:

loglevel=debug
device=auto
logtelegrams=false
ignoreduplicates=false
format=json
meterfiles=/wmbusmeters_data/logs/meter_readings
meterfilesaction=overwrite
logfile=/wmbusmeters_data/logs/wmbusmeters.log
shell=/usr/bin/mosquitto_pub -h IP_SERWERA -t wmbusmeters/$METER_ID -m "$METER_JSON"

ostatnia linijka to konfiguracja MQTT,
wstaw swoje IP serwera w miejsce IP_SERWERA a jak masz hasło do MQTT to ostatnia linijka tak:

shell=/usr/bin/mosquitto_pub -h IP_SERWERA -u USER_MQTT -P HASŁO_MQTT -t wmbusmeters/$METER_ID -m "$METER_JSON" 

i wstaw swoje IP serwera w miejsce IP_SERWERA
wstaw swoje nazwę użytkownika dla MQTT w miejsce USER_MQTT
wstaw swoje hasło do MQTT w miejsce HASŁO_MQTT

2 polubienia

Rzeczywiście mam kodowanie “zerami” coś miałem nie tak z configuracją po kilku róznych zmianach widzę w końcu wyniki. Dzięki wszystkim za pomoc!!!


Teraz tylko sensory i można terroryzować rodzinę że za długo uszy myją :smiley: :smiley: :smiley:

2 polubienia

Ok po godzinach walk udało mi się zrobić boarda:

1 polubienie

Od wydania Nikodem tj. Home Asisstanta 2022.11 licznik wody mozna dodać na panelu ENERGIA..
W moim przypadku encje:
image
trzeba było odpowiednio skonfigurować w customize.yaml tj.:

sensor.licznik_wody_total:
  state_class: total_increasing
  device_class: water
  unit_of_measurement: m³

Efekt:

2 polubienia

Jeszcze przydało by się tak z ekogroszkiem zrobić. :smiley:

Proponuję poprawić to w defincji sensora w pliku mqtt.yaml:

sensor:
- name: Licznik Wody Total
  state_topic: 'wmbusmeters/xxxxxxxx'
  json_attributes_topic: 'wmbusmeters/xxxxxxxx'
  unit_of_measurement: 'm³'
  state_class: total_increasing
  device_class: water
  value_template: "{{ value_json.total_m3 }}"
  icon: "mdi:hand-water"
1 polubienie

Odczyt wodomierzy po kilku dniach działania wydaje się ok, mam tylko problem gdy tracę prąd i server mi siada. Wtedy musze wmbustera restartować i dodawać na nowo mierniki w konfiguracji. Czy ktoś się spotkał może z czymś podobnym u siebie i ma pomysł jak sobie z tym poradzić?
Pozdrawiam