Wemos D1 Mini + CC1101 i odczyt z licznika Sensus Iperl

Witam. Mam taki licznik jak na zdjęciach:



Ktoś już zadał pytanie na tym forum o ten sam licznik sensus, niestety nie znalazłem w nim odpowiedzi.
Dodałem jego ID, a także type jako itron do konfiguracji yaml.
Niestety w logach nie ma żadnego odczytu (Wemos stoi 50cm od wodomierza).
Doszedłem do wniosku, że trzeba zainstalować i skonfigurować dodatek wmbusmeters, ale nie wiem co wpisać w device i shell, skoro mój Wemos nie jest podłączony kablem tylko po wifi. Łączy się do serwera Home Assistant poprzez ESPHOME.
Log wygląda tak:

INFO Reading configuration /config/esphome/wodkomierz.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing wodomierz (board: d1_mini; framework: arduino; platform: platformio/espressif8266 @ 3.2.0)
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
Dependency Graph
|-- ESP8266WiFi @ 1.0
|-- ESP8266mDNS @ 1.2
|-- noise-c @ 0.1.4
|   |-- libsodium @ 1.10018.1
|-- wMbus-lib @ 0.9.15+sha.25dfb37
|   |-- SPI @ 1.0
|   |-- SmartRC-CC1101-Driver-Lib @ 2.5.7
Compiling /data/wodomierz/.pioenvs/wodomierz/src/main.cpp.o
Linking /data/wodomierz/.pioenvs/wodomierz/firmware.elf
RAM:   [====      ]  44.1% (used 36104 bytes from 81920 bytes)
Flash: [=====     ]  47.3% (used 494015 bytes from 1044464 bytes)
Building /data/wodomierz/.pioenvs/wodomierz/firmware.bin
esp8266_copy_factory_bin(["/data/wodomierz/.pioenvs/wodomierz/firmware.bin"], ["/data/wodomierz/.pioenvs/wodomierz/firmware.elf"])
========================= [SUCCESS] Took 14.29 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 192.168.254.77
INFO Uploading /data/wodomierz/.pioenvs/wodomierz/firmware.bin (498160 bytes)
INFO Compressed to 349350 bytes
Uploading: [============================================================] 100% Done...

INFO Waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.254.77 using esphome API
INFO Successfully connected to 192.168.254.77
[21:01:56][I][app:102]: ESPHome version 2023.4.2 compiled on May  3 2023, 21:01:01
[21:01:56][C][wifi:505]: WiFi:
[21:01:56][C][wifi:363]:   Local MAC: D8:F1:5B:12:E3:B7
[21:01:56][C][wifi:364]:   SSID: [redacted]
[21:01:56][C][wifi:365]:   IP Address: 192.168.254.77
[21:01:56][C][wifi:366]:   BSSID: [redacted]
[21:01:56][C][wifi:368]:   Hostname: 'wodomierz'
[21:01:56][C][wifi:370]:   Signal strength: -37 dB ▂▄▆█
[21:01:56][C][wifi:374]:   Channel: 9
[21:01:56][C][wifi:375]:   Subnet: 255.255.255.0
[21:01:56][C][wifi:376]:   Gateway: 192.168.254.254
[21:01:56][C][wifi:377]:   DNS1: 192.168.254.254
[21:01:56][C][wifi:378]:   DNS2: 8.8.8.8
[21:01:56][C][logger:294]: Logger:
[21:01:56][C][logger:295]:   Level: DEBUG
[21:01:56][C][logger:296]:   Log Baud Rate: 115200
[21:01:56][C][logger:297]:   Hardware UART: UART0
[21:01:56][C][wmbus_sensor:016]: wM-Bus Sensor 'Wodomierz'
[21:01:56][C][wmbus_sensor:016]:   Device Class: 'water'
[21:01:56][C][wmbus_sensor:016]:   State Class: 'total_increasing'
[21:01:56][C][wmbus_sensor:016]:   Unit of Measurement: 'm³'
[21:01:56][C][wmbus_sensor:016]:   Accuracy Decimals: 3
[21:01:56][C][wmbus_sensor:016]:   Icon: 'mdi:water'
[21:01:56][C][wmbus_sensor:022]:   Key: '00000000000000000000000000000000'
[21:01:56][C][wmbus_sensor:023]:   Type: itron
[21:01:56][C][wmbus_sensor:024]:   ID: 570983974 [0x22088626]
[21:01:56][C][version.text_sensor:021]: Version Text Sensor 'wemos-woda2 - Wersja EspHome'
[21:01:56][C][version.text_sensor:021]:   Icon: 'mdi:new-box'
[21:01:56][C][mdns:108]: mDNS:
[21:01:56][C][mdns:109]:   Hostname: wodomierz
[21:01:56][C][ota:093]: Over-The-Air Updates:
[21:01:56][C][ota:094]:   Address: 192.168.254.77:8266
[21:01:56][C][ota:097]:   Using Password.
[21:01:56][C][api:138]: API Server:
[21:01:56][C][api:139]:   Address: 192.168.254.77:6053
[21:01:56][C][api:141]:   Using noise encryption: YES
[21:01:56][C][sntp:053]: SNTP Time:
[21:01:56][C][sntp:054]:   Server 1: '0.pool.ntp.org'
[21:01:56][C][sntp:055]:   Server 2: '1.pool.ntp.org'
[21:01:56][C][sntp:056]:   Server 3: '2.pool.ntp.org'
[21:01:56][C][sntp:057]:   Timezone: 'CET-1CEST,M3.5.0,M10.5.0/3'
[21:01:56][C][wifi_info:009]: WifiInfo IPAddress 'wemos-woda2 - IP Address'
[21:01:56][C][wifi_info:009]:   Icon: 'mdi:wifi'
[21:01:56][C][wifi_info:011]: WifiInfo SSID 'wemos-woda2 - Podłączony do'
[21:01:56][C][wifi_info:011]:   Icon: 'mdi:wifi-strength-2'
[21:01:56][C][wmbus:312]: wM-Bus v1.5.1:
[21:01:56][C][wmbus:314]:   Clients:
[21:01:56][C][wmbus:316]:     wmbusmeters: 192.168.254.223:7022 TCP [rtl-wmbus]
[21:01:56][C][wmbus:329]:   CC1101 SPI bus:
[21:01:56][C][wmbus:330]:     MOSI Pin: GPIO13
[21:01:56][C][wmbus:331]:     MISO Pin: GPIO12
[21:01:56][C][wmbus:332]:     CLK Pin:  GPIO14
[21:01:56][C][wmbus:333]:     CS Pin:   GPIO15
[21:01:56][C][wmbus:334]:     GDO0 Pin: GPIO5
[21:01:56][C][wmbus:335]:     GDO2 Pin: GPIO4
[21:01:56][C][wmbus:342]:   Available drivers:  amiplus, apator08, apator162, apatoreitn, bmeters, elf, evo868, fhkvdataiii, hydrocalm3, itron, izar, mkradio3, mkradio4, qheat, qwater, ultrimis, unismart, vario451
[21:01:57][D][api:102]: Accepted 192.168.254.223
[21:01:57][D][api:102]: Accepted 192.168.254.223
[21:01:58][D][api.connection:961]: Home Assistant 2023.4.6 (192.168.254.223): Connected successfully
[21:01:59][D][api.connection:961]: Home Assistant 2023.4.6 (192.168.254.223): Connected successfully
[21:11:37][I][ota:113]: Boot seems successful, resetting boot loop counter.
[21:15:41][D][sntp:077]: Synchronized time: 2023-05-03 21:15:40
[21:15:41][D][main:196]: Synchronized sntp clock

Moja konfiguracja: # Urządzenie Wemos D1 mini ESP8266, które znajduje się przy oknie w pokoju gośći - Pastebin.com
Natomiast konfiguracja dodatku wmbusmeters:

W logu nie widać śladu po działaniu licznika.

Konfiguracja dla wmbusmeters jest w dokumentacji (nie wiem czy aktualna, “w razie Niemca” użyj komponentu dla ESPHome w wersji 1.5.1)

Dziękuję za odpowiedź.
Rozumiem, że ip mam zmienić na te z serwera Home Assistant?

Jeśli serwer wmbusmeters masz w postaci Dodatku to oczywiście tak.

Ok mam tak. Niestety dalej cisza i w logach Wemos i w logach wmbusmeters.
Dodatkowo w wmbusmeters mam w logach info, że “File /config/wmbusmeters/etc/mqtt_discovery/itron.json not found.”
Cały log:

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
[22:12:19] INFO: CONFIG_CONF ...
[22:12:19] INFO: {"loglevel":"normal","device":"device=rtlwmbus:CMD(/usr/bin/nc -lku 9011)","donotprobe":"/dev/ttyAMA0","logtelegrams":false,"format":"json","logfile":"/dev/stdout","shell":"/wmbusmeters/mosquitto_pub.sh \"wmbusmeters/$METER_NAME\" \"$METER_JSON\""}
[22:12:19] INFO: CONFIG_METERS ...
[22:12:19] INFO: [{"name":"wodomierz","driver":"itron","id":"22088626"}]
[22:12:19] INFO: Syncing wmbusmeters configuration ...
[22:12:19] INFO: Registering meters ...
[22:12:19] INFO: Adding meter-0001 ...
[22:12:19] INFO: Generating MQTT configuration ... 
[22:12:20] INFO: Broker 192.168.254.223 will be used.
MQTT Discovery ...
 Adding meter: wodomierz ...
  File /config/wmbusmeters/etc/mqtt_discovery/itron.json not found.
MQTT Discovery cleanup...
[22:12:23] INFO: Running wmbusmeters ...
Started config device=rtlwmbus listening on none using CMD(/usr/bin/nc -lku 9011)

z tego co widzę to masz licznik iPerl i tak powinna wyglądać Twoja konfiguracja:
ID => na podstawie Twojego zdjęcia :slight_smile:

- name: licznik_wody
  driver: iperl
  id: "22088626" 
  key: E6C88800DEB868C0D6A84880CE982840
1 polubienie

Poprawione. Jak na razie brak jakichkolwiek odebranych danych.
Może być tak, że wodomierz przesyła dane tylko w momencie, gdy zmieni się ilość użytej wody?

próbowałeś wrzucić wszystko w LOG ? i patrzeć czy są jakiekolwiek odczyty?

Ja długo walczyłem z odczytem tego wodomierza => mój wątek <=
ale się udało, największym problemem był klucz który jeden z grupowiczów podesłał - więc musisz koniecznie używać tego klucza.
więc najważniejsze odpalić loglevel: debug i patrzeć co się pojawia w logach, poniżej moja konfiguracja tego licznika (tylko ja używam modułu rtl :slight_smile: i na niej wszystko działa.)

loglevel: normal
device: rtlwmbus:868.9M:t1
donotprobe: all
logtelegrams: true
format: json
logfile: /config/wmbusmeters/wmbusmeters.log
shell: /wmbusmeters/mosquitto_pub.sh wmbusmeters/$METER_NAME "$METER_JSON"
meterfiles: /config/wmbusmeters/logs/meter_readings/

sprawdzałeś nasłuch mqtt ? tutaj można łatwo odpalić co wchodzi (ale już po skonfigurowaniu wodomierza) - no i faktycznie trzeba czasami trochę odczekać.

Dzięki za odpowiedź.
On działa na 868mhz? Bo taką mam antenę.
Co do nasłuchu to sam mi się zatrzymuje po jakimś krótszym czasie i nic nie znajduje.
W meters masz podobnie jak ja czy inaczej?

- name: wodomierz
  driver: iperl
  id: "22088626"
  key: E6C88800DEB868C0D6A84880CE982840

Jeśli nie jesteś pewien id Swojego licznika w konfiguracji dodatku wmbusmeters ustaw tylko poniższe wpisy:

data_path: /config/wmbusmeters
enable_mqtt_discovery: false
conf:
  loglevel: debug
  device: rtlwmbus:t1
  logtelegrams: true
  format: json
  logfile: /dev/stdout
  shell: /wmbusmeters/mosquitto_pub.sh "wmbusmeters/$METER_NAME" "$METER_JSON"
meters: []
mqtt: {}

Przed podmianą konfiguracji zatrzymaj dodatek. Po jego uruchomieniu obserwuj co ci zeskanuje w zakładce “Logi” dodatku:

lub zamiast wpisu:

logfile: /dev/stdout

wpisz

logfile: /config/wmbusmeters/wmbusmeters.log

wtedy logi będziesz miał w powyższej lokalizacji.

Może mam wodomierz na 433mhz?
Długo czekałeś na telegram?
Jak zmieniłem klucz to w logach dodatku na końcu mam not a valid

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
[17:12:33] INFO: CONFIG_CONF ...
[17:12:33] INFO: {"loglevel":"normal","device":"device=rtlwmbus:CMD(/usr/bin/nc -lku 9011)","donotprobe":"all","logtelegrams":true,"format":"json","logfile":"/config/wmbusmeters/wmbusmeters.log","shell":"/wmbusmeters/mosquitto_pub.sh \"wmbusmeters/$METER_NAME\" \"$METER_JSON\""}
[17:12:33] INFO: CONFIG_METERS ...
[17:12:33] INFO: [{"name":"wodomierz","driver":"iperl","id":"22088626","key":"1E44AE4C6478842068077A67001005FF7C7E09C155DB73EF4690EBADFE0C18"}]
[17:12:33] INFO: Syncing wmbusmeters configuration ...
[17:12:33] INFO: Registering meters ...
[17:12:33] INFO: Adding meter-0001 ...
[17:12:34] INFO: Generating MQTT configuration ... 
[17:12:34] INFO: Broker 192.168.254.223 will be used.
MQTT Discovery ...
 Adding meter: wodomierz ...
  File /config/wmbusmeters/etc/mqtt_discovery/iperl.json not found.
MQTT Discovery cleanup...
[17:12:37] INFO: Running wmbusmeters ...
Not a valid meter key "1E44AE4C6478842068077A67001005FF7C7E09C155DB73EF4690EBADFE0C18"

Nie miałeś zmienić klucza tylko cała konfigurację, na czas szukania Twojego licznika.

Pisałem to niemal “przed chwilą w innym podobnym wątku”:
Sugeruję skorzystać z loggera za pomocą portu szeregowego, o ile twój moduł to umożliwia - większość tych ESP8266, które mają mostek UART-USB ma taką możliwość po USB (łącząc z dowolnym terminalem, pod windows choćby putty), bo to co oferuje GUI ESPHome to może być za mało dla długiego nasłuchu.

Ok zmieniłem.
Te device też? Bo nie mam wpiętego w usb tylko działa mi po wifi

Więc wepnij do jakiegoś komputera (na którym odpalisz sobie terminal, by logować po porcie szeregowym z wykorzystaniem wbudowanego w płytkę prototypową mostka USB-UART), całość zwykłej transmisji oczywiście będzie nadal po WiFi, ale będziesz miał logi przez nieskończenie długi okres czasu (bo to tylko GUI ESPHome ma timeout), tj. do momentu, gdy wyłączysz komputer lub dopuścisz do jego uśpienia (ale w każdym desktopowym systemie można wyłączyć uśpienie na czas potrzebnych testów, nawet w Androidzie, skoro go znasz dogłębnie sądząc po nicku, tylko kabelek OTG jest wtedy potrzebny).

Masz samoróbkę bazującą na ESP + CC1101 ona daje możliwość logowania tego co słychać z odbiornika, więc skorzystaj z logowania w ESP (w ten sposób unikniesz możliwych błędów w konfiguracji w wielu innych miejscach).
Wywal tymczasowo konfigurację sensorów licznika z YAMLa w ESPHome i sprawdź czy w ogóle odbiornik słyszy cokolwiek.
Skorzystaj z logowania po porcie szeregowym, bo w krytycznych sytuacjach (gdzie coś nie działa/nie słyszy; tak swoją drogą przy liczniku może być za wysoki sygnał RF do poprawnego zdekodowania telegramów - kilka osób miało tego typu problemy z CC1101) trzeba nasłuchiwać wiele godzin.

Jak już potwierdzisz, że CC1101 słyszy jakiekolwiek liczniki, to będziesz też miała jakieś ich telegramy.
Takie przechwycone telegramy (wygrzebane z logów ESPHome za pomocą połączenia portem szeregowym) możesz ręcznie zdekodować tam (dekoder online nie działa w firefoxie, ale np. w vivaldi bez problemu)
https://wmbusmeters.org
tam też sprawdzisz czy dany sterownik (dekoder) pasuje do licznika i czy wspomniany wyżej fabryczny klucz Sensusa pasuje do twojego licznika.

Moja propozycja ustawień dotyczy przypadku gdybyś chciał żyć wraz z dodatkiem wmbusmeters użyć tunera/odbiornika SDR DVB-T RTL2832U R820T2 RTL-SDR.
Układ który posiadasz nie ruszy z dodatkiem o którym piszemy poniżej:

w Twoim przypadku zainteresuj się poniższym tematem:

Ruszy, @_Szczepan zadbał o aktualizację w wmbusmeters.

Do dekodowania we wspomnianym dodatku można wysyłać takie telegramy, dla których jego komponent dla ESPHome nie posiada odpowiedniego sterownika (konwertera).

Tylko autor wątku chyba zaczął zagadnienie od końca, najpierw trzeba cokolwiek odebrać żeby można to było później dekodować, a w jego ostatnich wątkach nie widziałem ani jednego poprawnie odebranego telegramu.

Piszesz o Wmbusmeters (W-MBus to MQTT)?
Ostatnie stabilne wydanie tego dodatku to 1.12.0 z 2023-03-12 i nie ma informacji o obsłudze omawianego układu.

PR jest z grudnia 2022, więc faktycznie trzeba mieć Dodatek w aktualnej wersji

Autor tego wątku próbuje uruchomić układ Wemos D1 Mini + CC1101 z dodatkiem o którym pisałem powyżej, stąd moje stwierdzenie, że to nie ruszy.