Diehl Wasserzähler mit IZAR RC868 R4 Funksender auslesen

Hi, ich bin in der Zwischenzeit mit viel Trial and Error fast am Ziel angekommen. Hier meine YAML für den ESP32 mit CC1101

esphome:
  name: esp-32-test
  friendly_name: ESP-32 Test

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:
  id: appslogger
  level: debug


api:
  encryption:
    key: "*****************"

ota:
  - platform: esphome
    password: "*********"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

# Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "**************"
    password: "**************"

captive_portal:


web_server:
  port: 80

external_components:
- source: github://SzczepanLeon/esphome-components@main
  components: [wmbus]

wmbus:
  mosi_pin: GPIO23  # D23 auf ESP32
  miso_pin: GPIO19  # D19 auf ESP32
  clk_pin: GPIO18   # D18 auf ESP32
  cs_pin: GPIO5     # D5 auf ESP32
  gdo0_pin: GPIO16  # RX2 auf ESP32
  gdo2_pin: GPIO17  # TX2 auf ESP32
 # led_pin: GPIO2
  all_drivers: True
  log_all: True

sensor:
  - platform: wmbus
    meter_id: 0x57675018
    type: izar  # Specify the meter type
    key: ""  # Add encryption key if required
    sensors:
      - name: "Wasser"
        id: water
        field: "total"
        unit_of_measurement: "m³"
        state_class: "total_increasing"
        device_class: "water"
        accuracy_decimals: 3
        icon: "mdi:water"
        on_value:
          then:
            - text_sensor.template.publish:
                id: water_last_update
                state: !lambda 'return id(sntp_time).now().strftime("%Y-%m-%d %H:%M:%S");'

 
time:
  - platform: sntp
    id: sntp_time
    timezone: Europe/Sofia
    servers:
     - 0.pool.ntp.org
     - 1.pool.ntp.org
     - 2.pool.ntp.org

text_sensor:
  - platform: version
    name: "ESPHome Version"
  - platform: template
    name: "Wasserzähler Letztes Update"
    id: water_last_update




#status_led:
#  pin:
#    number: GPIO2
#    inverted: false

    

Entscheidend war diese Zeile, die in einem anderen Post mit anderem Ziel angegeben war

external_components:
- source: github://SzczepanLeon/esphome-components@main
  components: [wmbus]

Außerdem habe ich den Hinweis aus dem Github Beitrag GitHub - SzczepanLeon/esphome-components befolgt und folgende Zeilen im Code ergänzt

wmbus:
  all_drivers: True
  log_all: True

Ich habe dann zunächst den Sensor ganz weggelassen und neu compiliert. Ich konnte im Protokoll dann die fehlenden Informationen für den richtigen Treiber und die ID-Nr. herauskopieren und in den Code einfügen. Danach neu compilieren und jetzt bekomme ich folgende Infos:

[15:13:59][I][wmbus:104]: izar [0x57675018] RSSI: -81dBm T: 1944A511780718506757A2511F00134889FC7B4ED6B310A3429C (26) T1 A
[15:13:59][D][meters.cpp:1987]: (meter) created ESPHome izar 57675018 not-encrypted
[15:13:59][D][meters.cpp:911]: (meter) ESPHome(0) izar  handling telegram from 57675018.M=DME.V=78.T=07
[15:13:59][D][sensor:094]: 'Wasser': Sending state 743.84998 m³ with 3 decimals of accuracy
[15:13:59][D][text_sensor:064]: 'Wasserzähler Letztes Update': Sending state '2025-03-05 16:13:59'

Damit habe ich den wichtigsten Wert, nämlich den aktuellen Zählerstand und die dazu nötige Zeit für eine Karte in Home Assistant. Aus dem langen String an Hex-Werten wird sich sicherlich noch mehr herausarbeiten lassen, aber das mache ich mal am Wochenende.

Danke für jede Unterstützung, das Forum ist Klasse und ich kann wirklich nur staunen, wie schnell man Hilfe und Antworten bekommen. Weiter so!

Viele Grüße
Jürgen

Eins möchte ich noch ergänzen, letztendlich zum Ziel geführt hat mich der Umstand, dass ich die Fehlermeldungen direkt in https://www.perplexity.ai/
eingegeben habe und mir hier die nötigen Informationen zur Korrektur meiner YAML Zeilen gegeben wurden. Ich kann diese KI wirklich nur empfehlen.