Komponent wM-Bus do ESPHome (SzczepanLeon) wersja 4.x - wątek ogólny

Jak chcesz v4 to polecam coś z ESP32S3.
A jak chcesz najlepiej to UltimateReader :wink:

Co to i gdzie to się kupuje?

Skąd wziąć klucz od mojego licznika amiplus tauron? Pisaliście że gdzieś na stronie, ale nie mogę znaleść

Od Taurona - poczytaj na ich stronie.

Usługa HAN została uruchomiona, ale nie dostałem maila z kluczem. Rozumiem że powiniennem go dostać mailem tak?

Powinien być widoczny na stronie, tam gdzie robiłeś aktywację.

Cześć. Po wielu nieudanych próbach udało mi się pomyślnie przejść na wersję 4.x (przyczyną błędów okazała się wadliwa płytka CC1101). To moja konfiguracja dla ESP 32-WROM-32. Działa im odczytuje licznik GAMA 350 typ G35.
Jako, że moja wiedza i umiejętności słabe proszę o podpowiedzi co można poprawić?

captive_portal:


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

wmbus:
  frequency: 868.950
  all_drivers: True
  log_all: True
  mosi_pin: GPIO13
  miso_pin: GPIO12
  clk_pin: GPIO14
  cs_pin: GPIO15
  gdo0_pin: GPIO22
  gdo2_pin: GPIO21
  led_pin: GPIO0
  led_blink_time: 1s
  

sensor:
  - platform: wmbus
    meter_id: 0x30635740
    type: amiplus
    key: "67603392955683394912159766651166"
    sensors:
      - name: "gamma 350 RSSI"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
      - name: "energia pobrana"
        field: "total_energy_consumption"
        accuracy_decimals: 3
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        icon: "mdi:flash"
      - name: "energia sprzedana"
        field: "total_energy_production"
        accuracy_decimals: 3
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        icon: "mdi:transmission-tower-export"
      - name: "sprzedaż aktualna"
        field: "current_power_production"
        accuracy_decimals: 3
        unit_of_measurement: "kW"
        device_class: "power"
        state_class: "measurement"
        icon: "mdi:lightning-bolt"
      - name: "pobór aktualny"
        field: "current_power_consumption"
        accuracy_decimals: 3
        unit_of_measurement: "kW"
        device_class: "power"
        state_class: "measurement"
        icon: "mdi:flash"
      - name: "v1"
        field: "voltage_at_phase_1"
        accuracy_decimals: 1
        unit_of_measurement: "V"
        device_class: "voltage"
        state_class: "measurement"
        icon: "mdi:flash"
      - name: "v2"
        field: "voltage_at_phase_2"
        accuracy_decimals: 1
        unit_of_measurement: "V"
        device_class: "voltage"
        state_class: "measurement"
        icon: "mdi:flash"
      - name: "v3"
        field: "voltage_at_phase_3"
        accuracy_decimals: 1
        unit_of_measurement: "V"
        device_class: "voltage"
        state_class: "measurement"
        icon: "mdi:flash"
  - platform: uptime
    name: Uptime Sensor

  - platform: wifi_signal
    name: "WiFi signal"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

  - platform: copy
    source_id: wifi_signal_db
    name: "WiFi signal %"
    filters:
      - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
    unit_of_measurement: "%"
    entity_category: "diagnostic"

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "IP"
    ssid:
      name: "SSID"
    mac_address:
      name: "MAC"

time:
  - platform: sntp
    id: time_sntp 
web_server:
  port: 80

Nie wiem co mam źle ustawione:

[19:36:00][I][wmbus:094]: Using selected driver amiplus (detected driver was amiplus)
[19:36:00][I][wmbus:106]: amiplus [0x86044330] RSSI: -88dBm T: 8E4401063043048602027A000080055528149B33AC4EB340F09E07CFA8C8A53E99A4601E681608E9901DAE1C3904360D7C1CD1E0263D50A9AE0E3C96BCA4298832AF1986532785E5DA4F681E6AAA3C1913EAA0BAF9121F15AC18DE4ECAB37B02E230CA2D0466D7D4B5059FA3F40087BE67EFBC0EBAF7C3076F57CB1F306F5C41FB2A4D6A00EEB5657BD7B7F78DA3C9 (143) T1 A
[19:36:01][D][meters.cpp:1989]: (meter) created ESPHome amiplus 86044330 encrypted
[19:36:01][D][meters.cpp:913]: (meter) ESPHome(0) amiplus  handling telegram from 86044330.M=APA.V=02.T=02
[19:36:01][W][Telegram.cpp:1832]: (wmbus) WARNING!! decrypted content failed check, did you use the correct decryption key? Permanently ignoring telegrams from id: 86044330 mfct: (APA) Apator, Poland (0x601) type: Electricity meter (0x02) ver: 0x02
[19:36:02][W][wmbus:156]: Can't get requested field 'current_power_consumption' with unit 'kw'
[19:36:02][W][wmbus:156]: Can't get requested field 'current_power_production' with unit 'kw'
[19:36:02][D][sensor:094]: 'TauronLicznik': Sending state -88.00000 dBm with 0 decimals of accuracy
[19:36:02][W][wmbus:156]: Can't get requested field 'total_energy_consumption' with unit 'kwh'
[19:36:02][W][wmbus:156]: Can't get requested field 'total_energy_production' with unit 'kwh'
[19:36:02][W][component:237]: Component wmbus took a long time for an operation (147 ms).
[19:36:02][W][component:238]: Components should block for at most 30 ms.

Klucz skopiowałem z elicznika

 - platform: wmbus
    meter_id: 0x86044330
    type: amiplus
    key: "374F4343694675766770645034643142"
    sensors:
      - name: "TauronLicznik"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
      - name: "current power consumption kw"
        field: "current_power_consumption"
        accuracy_decimals: 1
        unit_of_measurement: "kw"
        device_class: "power"
        state_class: "measurement"
        icon: "mdi:transmission-tower-import"
      - name: "current power production kw"
        field: "current_power_production"
        accuracy_decimals: 1
        unit_of_measurement: "kw"
        device_class: "power"
        state_class: "measurement"
        icon: "mdi:transmission-tower-import"        
      - name: "total energy production kwh"
        field: "total_energy_production"
        accuracy_decimals: 3
        unit_of_measurement: "kwh"
        device_class: "energy"
        state_class: "total_increasing"
        icon: "mdi:transmission-tower-import"
      - name: "total energy consumption kwh"
        field: "total_energy_consumption"
        accuracy_decimals: 3
        unit_of_measurement: "kwh"
        device_class: "energy"
        state_class: "total_increasing"
        icon: "mdi:transmission-tower-import"

Jak byk w logu stoi:

[19:36:01][W][Telegram.cpp:1832]: (wmbus) WARNING!! decrypted content failed check, did you use the correct decryption key? Permanently ignoring telegrams from id: 86044330 mfct: (APA) Apator, Poland (0x601) type: Electricity meter (0x02) ver: 0x02

Hehe tak. To widziałem. Raczej zastanawiałem się dlaczego tak jest skoro skopiowałem klucz ze strony, ale doczytałem już że czasem podają błędny kod. Poprosiłem Tauron o nowy klucz.

EDIT: dostałem nowy klucz, niestety też nie działa. Do trzech razy sztuka?

Niestety próbowałem kilka razy dezaktywować i aktywować ponownie HAN, za każdym razem dostawałem nowy klucz i za każdym razem nie działał. Macie jakiś pomysł? Pisałem do dystrybucji prośbę o sprawdzenie, ale mają miesiąc na odpowiedź.

Auto driver    : amiplus
Similar driver : unknown 00/00
Using driver   : amiplus 00/00
000   : 8e length (142 bytes)
001   : 44 dll-c (from meter SND_NR)
002   : 0106 dll-mfct (APA)
004   : 30430486 dll-id (86044330)
008   : 02 dll-version
009   : 02 dll-type (Electricity meter)
010   : 7a tpl-ci-field (EN 13757-3 Application Layer (short tplh))
011   : 00 tpl-acc-field
012   : 00 tpl-sts-field (OK)
013   : 8005 tpl-cfg 0580 (AES_CBC_IV nb=8 cntn=0 ra=0 hc=0 )
015   : fe8b decrypt check bytes (ERROR should be 2f2f)
017 CE: 1E96578ADADFDF8BD83A8BA9C906BEDD323208A86D1E5F9DC42A8EB410E2AFCBECC90216CFAF5314F3CDF1DAC4664E5CA05179E61F3AF3461A8E7B2CF92329D2F6B44A96BA71AB793B2D96D0009103964D0192C2D57E60A3D4DB2039F31872A2CE658EEA8B043832D707404F23B556488DF080A4884F2B528AB271300F11
**failed decryption. Wrong key?**

{
    "_":"telegram",
    "media":"electricity",
    "meter":"amiplus",
    "name":"",
    "id":"86044330",
    "timestamp":"1970-01-01T00:00:00Z"
}


Using: wmbusmeters: 1.18.0-31-g6d3b3e5
6d3b3e5f233cbfc8cfd9bac99d3f845496330e5f

Hi thanks for your Feedback, back in January. Finally I found the time for setup,

Sofar so good. wmbus is running and I´m able t receive Telegrams. WMBusmeters Analyze Telegram
is also work with microlima.

However, Telegrams are not send to MQTT with values.

I do receive

[18:43:09][W][wmbus:126]: Link mode C1 not supported in driver microclima

and was wondering if I have missed a step during sensor setup. as it seems mode is not available anymore.

thanks for any suggestions

Share YAML and full log.

@_Szczepan Thanks for your feedback.

please find below.

Edit: actallay its a itronheat meter

esphome:
  name: "esp-wmbus-xx10"

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:
  level: DEBUG
# Enable Home Assistant API
api:
  #password: "xxx"
  encryption:
    key: !secret api_encryption_key
mqtt:
  broker: 192.168.12.20
  port: 1883
  username: !secret mqtt_username
  password: !secret mqtt_password
  client_id: emshome-wmbus-xx10
  topic_prefix: emshome-wmbus-xx10

web_server:
  port: 80
  version: 3
  auth:
    username: !secret web_username
    password: !secret web_password

ota:
  - platform: esphome
    password: !secret ota_passowrd

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp-Wmbus-Fallback"
    password: "xxxxx"

time:
  - platform: sntp
    id: time_sntp

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

wmbus:
  #mosi_pin: GPIO13
  #miso_pin: GPIO5
  #clk_pin:  GPIO2
  #cs_pin:   GPIO14
  #gdo0_pin: GPIO15
  #gdo2_pin: GPIO16

  mosi_pin: GPIO13  # blue - 6
  clk_pin:  GPIO14  # purple - 5
  miso_pin: GPIO12  # green - 7
  gdo2_pin: GPIO22  # gray -
  gdo0_pin: GPIO21  # yellow - 3
  cs_pin:   GPIO15  # orange - 4
#  gnd: GND  # black - 1
#  vcc: 3V3  # red - 2

  led_pin: GPIO0
  led_blink_time: "1s"

  frequency: 868.950
  all_drivers: false
  sync_mode: false
  log_all: true


#  mqtt:
#    broker: 192.168.12.20
#    port: 1883
#    username: !secret mqtt_username
#    password: !secret mqtt_password
#    client_id: emshome-wmbus-xx10
#    topic_prefix: emshome-wmbus-xx10

sensor:
# add driver to compile list (will be available for autodetect), don't create sensor
  - platform: wmbus
    type: itron

# add sensor with defined type (driver will be also added to compile list)
  - platform: wmbus
    meter_id: 0x12345678
    type: microclima
    key: "00000000000000000000000000000000"
#    mode: C1
    sensors:
#      - name: "WMZ-Fltg - Signal"
#        field: "rssi"
#        accuracy_decimals: 0
#        unit_of_measurement: "dBm"
#        device_class: "signal_strength"
#        state_class: "measurement"
#        entity_category: "diagnostic"
      - name: "WMZ-Fltg - Status"
        field: "status"
        accuracy_decimals: 0
        unit_of_measurement: ""
        device_class: ""
        state_class: ""
        icon: ""
      - name: "WMZ-Fltg - Total Engery"
        field: "total_energy_consumption"
        accuracy_decimals: 0
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        icon: "mdi:heating-coil"
      - name: "WMZ-Fltg - Total Volume"
        field: "total_volume_m3"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"
      - name: "WMZ-Fltg - Total Engery at Set Date"
        field: "consumption_at_set_date_{storage_counter}"
        accuracy_decimals: 0
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "measurement"
        icon: "mdi:heating-coil"
      - name: "WMZ-Fltg - Engery Set Date"
        field: "set_date_{storage_counter}"
        accuracy_decimals: 0
        unit_of_measurement: ""
        device_class: "date"
        state_class: "measurement"
        icon: ""
[19:33:17][I][app:100]: ESPHome version 2025.3.3 compiled on Apr  8 2025, 18:18:57
[19:33:17][C][wifi:600]: WiFi:
[19:33:17][C][wifi:428]:   Local MAC: D4:8C:49:6A:45:00
[19:33:17][C][wifi:433]:   SSID: [redacted]
[19:33:17][C][wifi:436]:   IP Address: 192.168.12.24
[19:33:17][C][wifi:440]:   BSSID: [redacted]
[19:33:17][C][wifi:441]:   Hostname: 'esp-wmbus-xx10'
[19:33:17][C][wifi:443]:   Signal strength: -8 dB ▂▄▆█
[19:33:17][C][wifi:447]:   Channel: 6
[19:33:17][C][wifi:448]:   Subnet: 255.255.255.0
[19:33:17][C][wifi:449]:   Gateway: 192.168.12.10
[19:33:17][C][wifi:450]:   DNS1: 192.168.12.10
[19:33:17][C][wifi:451]:   DNS2: 0.0.0.0
[19:33:17][C][logger:177]: Logger:
[19:33:17][C][logger:178]:   Max Level: DEBUG
[19:33:17][C][logger:179]:   Initial Level: DEBUG
[19:33:17][C][logger:181]:   Log Baud Rate: 115200
[19:33:17][C][logger:182]:   Hardware UART: UART0
[19:33:17][C][web_server:285]: Web Server:
[19:33:17][C][web_server:286]:   Address: esp-wmbus-xx10.local:80
[19:33:17][C][sntp:042]: SNTP Time:
[19:33:17][C][sntp:045]:   Server 0: '0.pool.ntp.org'
[19:33:17][C][sntp:045]:   Server 1: '1.pool.ntp.org'
[19:33:17][C][sntp:045]:   Server 2: '2.pool.ntp.org'
[19:33:17][C][mdns:116]: mDNS:
[19:33:17][C][mdns:117]:   Hostname: esp-wmbus-xx10
[19:33:17][C][esphome.ota:073]: Over-The-Air updates:
[19:33:17][C][esphome.ota:074]:   Address: esp-wmbus-xx10.local:3232
[19:33:17][C][esphome.ota:075]:   Version: 2
[19:33:17][C][esphome.ota:078]:   Password configured
[19:33:17][C][safe_mode:018]: Safe Mode:
[19:33:17][C][safe_mode:020]:   Boot considered successful after 60 seconds
[19:33:17][C][safe_mode:021]:   Invoke after 10 boot attempts
[19:33:17][C][safe_mode:023]:   Remain in safe mode for 300 seconds
[19:33:17][C][wmbus:428]:     Duration: 1000 ms
[19:33:17][C][wmbus:431]:   Chip ID: 00456A498CD4
[19:33:17][C][wmbus:433]:   CC1101 frequency: 868.950 MHz
[19:33:17][C][wmbus:434]:   CC1101 SPI bus:
[19:33:17][C][wmbus:438]:     MOSI Pin: GPIO13
[19:33:17][C][wmbus:439]:     MISO Pin: GPIO12
[19:33:17][C][wmbus:440]:     CLK Pin:  GPIO14
[19:33:17][C][wmbus:441]:     CS Pin:   GPIO15
[19:33:17][C][wmbus:442]:     GDO0 Pin: GPIO21
[19:33:17][C][wmbus:443]:     GDO2 Pin: GPIO22
[19:33:17][C][wmbus:449]:   Available drivers: unknown, microclima, itron
[19:33:17][C][wmbus:463]:   Meter:
[19:33:17][C][wmbus:464]:     ID: 608436769 [0x24440221]
[19:33:17][C][wmbus:465]:     Type: microclima
[19:33:17][C][wmbus:466]:     Key: '00020108010201660368056502670469'
[19:33:18][C][wmbus:468]:     Field: 'consumption_at_set_date_{storage_counter}'
[19:33:18][C][wmbus:468]:     Field: 'set_date_{storage_counter}'
[19:33:18][C][wmbus:469]:      Name: 'WMZ-Fltg - Engery Set Date'
[19:33:18][C][wmbus:469]:        Device Class: 'date'
[19:33:18][C][wmbus:469]:        State Class: 'measurement'
[19:33:18][C][wmbus:469]:        Unit of Measurement: ''
[19:33:18][C][wmbus:469]:        Accuracy Decimals: 0
[19:33:18][C][wmbus:468]:     Field: 'status'
[19:33:18][C][wmbus:469]:      Name: 'WMZ-Fltg - Status'
[19:33:18][C][wmbus:469]:        State Class: ''
[19:33:18][C][wmbus:469]:        Unit of Measurement: ''
[19:33:18][C][wmbus:469]:        Accuracy Decimals: 0
[19:33:18][C][wmbus:468]:     Field: 'total_energy_consumption'
[19:33:18][C][wmbus:469]:      Name: 'WMZ-Fltg - Total Engery'
[19:33:18][C][wmbus:469]:        Device Class: 'energy'
[19:33:18][C][wmbus:469]:        State Class: 'total_increasing'
[19:33:18][C][wmbus:469]:        Unit of Measurement: 'kWh'
[19:33:18][C][wmbus:469]:        Unit of Measurement: 'm³'
[19:33:18][C][wmbus:469]:        Accuracy Decimals: 3
[19:33:18][C][wmbus:469]:        Icon: 'mdi:water'
[19:33:20][D][mbus:035]: Received T1 A frame
[19:33:20][I][wmbus:106]: Unknown! [0x75808605] RSSI: -78dBm T: 5344A5110586807576078C007A900F002C25CEC8260049CE0FB3244248107ACC00310710C395242CB3E4B171570BA72E0B7543384F99C0586D964F7123D342092CA683560A807E39571FCE6DB7BB2A94DA5D895E (84) T1 A
[19:33:38][D][mbus:035]: Received T1 A frame
[19:33:38][I][wmbus:106]: Unknown! [0x75808605] RSSI: -77dBm T: 5344A5110586807576078C007A900F002C25CFC8260089B4CFE22620DBAD7ACC0031071004509BAAC5874D9CAE060D757B605C0B4F12252527992B26A498A6878A2A88F6338A5004F7DC87B6066A7DD7C9A82C26 (84) T1 A
[19:34:21][D][mbus:035]: Received T1 A frame
[19:34:21][I][wmbus:106]: Unknown! [0x75808605] RSSI: -77dBm T: 5344A5110586807576078C007A900F002C25D1C826007FD68CD9664184B17ACD003107100644DD7B577F1DFFC89E2C625F2FA9F1485B660E27443EF08589E23A45C5D74EBA889011256D617BB1D9058BC4A11F28 (84) T1 A
[19:35:00][D][mbus:035]: Received T1 A frame
[19:35:00][I][wmbus:106]: Unknown! [0x75808605] RSSI: -78dBm T: 5344A5110586807576078C007A900F002C25D3C82600E726F04221E56D1F7ACE00310710BB4B4D15F0B021A98FBE88F52FFFF38C1A0C5FA5BF35D2EE4FFB14A53C5D9887D17DB9B2A3E5F38F7321D9855DEFFD04 (84) T1 A
[19:35:19][D][mbus:035]: Received T1 A frame
[19:35:19][I][wmbus:106]: Unknown! [0x75808605] RSSI: -78dBm T: 5344A5110586807576078C007A900F002C25D4C826007244474D46DCFA777ACE00310710C0251BAA0246B2A2C495200E8254E50AF0AD8A7AC9FAF2926122CA2FBBDAC3D812EEF482CF8A6983699286D59C7F0A40 (84) T1 A
[19:35:41][D][mbus:035]: Received T1 A frame
[19:35:41][I][wmbus:106]: Unknown! [0x75808605] RSSI: -78dBm T: 5344A5110586807576078C007A900F002C25D5C826005B118C5F1FE270F97ACE003107103E6A31F83ED58BFAACC2A44FF98EB8AF2D6DE92FA56393AACCC60093053F65B6D4A220A2D0580606E534C15C4E471CB3 (84) T1 A
[19:36:38][D][mbus:035]: Received T1 A frame
[19:36:38][I][wmbus:106]: Unknown! [0x75808605] RSSI: -78dBm T: 5344A5110586807576078C007A900F002C25D8C826006D462AF269B38D3E7ACF0031071029863A8EE241095456286363241747272AEA0BD3A508925133B99FA79F8504A0006700F434E6A5ED7798E962502F0832 (84) T1 A
[19:37:01][D][mbus:035]: Received T1 A frame
[19:37:01][I][wmbus:106]: Unknown! [0x75808605] RSSI: -78dBm T: 5344A5110586807576078C007A900F002C25D9C8260073B1C02A536A634D7AD0003107107EDB4EF986741B73519C5921DB69CB1F6A23D4119F38E6A0671D191BBC6C5752AB3B74389071AD941BCEEF58A828BF62 (84) T1 A
[19:38:09][D][mbus:024]: Received C1 B frame
[19:38:09][I][wmbus:094]: Using selected driver microclima (detected driver was )
[19:38:09][I][wmbus:106]: microclima [0x24440221] RSSI: -60dBm T: 444497262102442400047A2D0030A5422E6CEAF447779539160CA50600F7010D2DB539E0B2B9BA8D5BB6BAD2B7D86E76BE93F52042F97E6995667E7FC077FD0C7989884024 (69) C1 B
[19:38:09][W][wmbus:126]: Link mode C1 not supported in driver microclima
[19:38:21][D][mbus:035]: Received T1 A frame

Edit:

wmbusmetrs analyse:
microclima:

telegram=|444497262102442400047A2D0030A52F2F_0406A95100000C1453220900066D1F311228340044060D1E0000426C1F3C0D7FEB0E00000006040C96C500372F2F0C7989884024|

Auto driver    : itronheat
Similar driver : microclima 20/38
Using driver   : microclima 00/00
000   : 44 length (68 bytes)
001   : 44 dll-c (from meter SND_NR)
002   : 9726 dll-mfct (ITW)
004   : 21024424 dll-id (24440221)
008   : 00 dll-version
009   : 04 dll-type (Heat meter)
010   : 7a tpl-ci-field (EN 13757-3 Application Layer (short tplh))
011   : 2d tpl-acc-field
012   : 00 tpl-sts-field (OK)(OK)
013   : 30a5 tpl-cfg a530 (bidirectional synchronous AES_CBC_IV nb=3 cntn=0 ra=0 hc=0 )
015   : 2f2f decrypt check bytes (OK)
017   : 04 dif (32 Bit Integer/Binary Instantaneous value)
018   : 06 vif (Energy kWh)
019 C!: A9510000 ("total_energy_consumption_kwh":20905)
023   : 0C dif (8 digit BCD Instantaneous value)
024   : 14 vif (Volume 10⁻² m³)
025 C!: 53220900 ("total_volume_m3":922.53)
029   : 06 dif (48 Bit Integer/Binary Instantaneous value)
030   : 6D vif (Date and time type)
031 C!: 1F3112283400 ("meter_datetime":"2025-04-08 18:49:31")
037   : 44 dif (32 Bit Integer/Binary Instantaneous value storagenr=1)
038   : 06 vif (Energy kWh)
039 C!: 0D1E0000 ("consumption_at_set_date_1_kwh":7693)
043   : 42 dif (16 Bit Integer/Binary Instantaneous value storagenr=1)
044   : 6C vif (Date type G)
045 C!: 1F3C ("set_date":"2024-12-31")
047   : 0D dif (variable length Instantaneous value)
048   : 7F vif (Manufacturer specific)
049   : EB varlen=235
050 C?: 0E00000006040C96C500372F2F0C79898840
068   : 24 dif (32 Bit Integer/Binary Minimum value)

{
    "_":"telegram",
    "media":"heat",
    "meter":"microclima",
    "name":"",
    "id":"24440221",
    "consumption_at_set_date_1_kwh":7693,
    "set_date_1_date":"2024-12-31",
    "total_energy_consumption_kwh":20905,
    "total_volume_m3":922.53,
    "meter_datetime":"2025-04-08 18:49:31",
    "status":"OK",
    "timestamp":"2025-04-08T17:44:34Z"
}


Using: wmbusmeters: 1.18.0-31-g6d3b3e5
6d3b3e5f233cbfc8cfd9bac99d3f845496330e5f

Auto driver: itronheat

telegram=|444497262102442400047A2D0030A52F2F_0406A95100000C1453220900066D1F311228340044060D1E0000426C1F3C0D7FEB0E00000006040C96C500372F2F0C7989884024|

Auto driver    : itronheat
Similar driver : microclima 20/38
Using driver   : itronheat 00/00
000   : 44 length (68 bytes)
001   : 44 dll-c (from meter SND_NR)
002   : 9726 dll-mfct (ITW)
004   : 21024424 dll-id (24440221)
008   : 00 dll-version
009   : 04 dll-type (Heat meter)
010   : 7a tpl-ci-field (EN 13757-3 Application Layer (short tplh))
011   : 2d tpl-acc-field
012   : 00 tpl-sts-field (OK)(OK)
013   : 30a5 tpl-cfg a530 (bidirectional synchronous AES_CBC_IV nb=3 cntn=0 ra=0 hc=0 )
015   : 2f2f decrypt check bytes (OK)
017   : 04 dif (32 Bit Integer/Binary Instantaneous value)
018   : 06 vif (Energy kWh)
019 C!: A9510000 ("total_kwh":20905)
023   : 0C dif (8 digit BCD Instantaneous value)
024   : 14 vif (Volume 10⁻² m³)
025 C!: 53220900 ("total_m3":922.53)
029   : 06 dif (48 Bit Integer/Binary Instantaneous value)
030   : 6D vif (Date and time type)
031 C!: 1F3112283400 ("meter_datetime":"2025-04-08 18:49:31")
037   : 44 dif (32 Bit Integer/Binary Instantaneous value storagenr=1)
038   : 06 vif (Energy kWh)
039 C!: 0D1E0000 ("last_year_kwh":7693)
043   : 42 dif (16 Bit Integer/Binary Instantaneous value storagenr=1)
044   : 6C vif (Date type G)
045 C!: 1F3C ("last_year_date":"2024-12-31")
047   : 0D dif (variable length Instantaneous value)
048   : 7F vif (Manufacturer specific)
049   : EB varlen=235
050 C?: 0E00000006040C96C500372F2F0C79898840
068   : 24 dif (32 Bit Integer/Binary Minimum value)

{
    "_":"telegram",
    "media":"heat",
    "meter":"itronheat",
    "name":"",
    "id":"24440221",
    "last_year_kwh":7693,
    "last_year_date":"2024-12-31",
    "total_kwh":20905,
    "total_m3":922.53,
    "meter_datetime":"2025-04-08 18:49:31",
    "status":"OK",
    "timestamp":"2025-04-08T17:47:13Z"
}


Using: wmbusmeters: 1.18.0-31-g6d3b3e5
6d3b3e5f233cbfc8cfd9bac99d3f845496330e5f

@_Szczepan Thanks for your feedback.

I have shared my yaml and log in my last feedback.

However, in the meantime, I have created driver_itronheat.cpp based on xmq-file from wmbusmeters here

The driver_itronheat.cpp is currently in my fork here

Sofar I´m able to retrieve most of the relevant fields.
such as
sensor:

  • total_kwh
  • total_m3
  • last_year_kwh
  • rssi
    text_sensor
  • status
  • meter_datetime

The only field I´m not able to read is last_year_date as text_sensor. with following warning.

[23:18:12][W][wmbus:170]: Can't get requested field 'last_year_date'

I have already tried multiple variation of field name like last_year which should translate to last_year_date as well as last_year_date in yaml wmbus definition.

esphome:
  name: "esp-wmbus-xx10"

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:
  level: DEBUG
# Enable Home Assistant API
api:
  encryption:
    key: !secret api_encryption_key

mqtt:
  broker: 192.168.12.20
  port: 1883
  username: !secret mqtt_username
  password: !secret mqtt_password
  client_id: emshome-wmbus-xx10
  topic_prefix: emshome-wmbus-xx10

web_server:
  port: 80
  version: 3
  auth:
    username: !secret web_username
    password: !secret web_password

ota:
  - platform: esphome
    password: !secret ota_passowrd

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp-Wmbus-Fallback"
    password: "LYNKKmW7P1no"

time:
  - platform: sntp
    id: time_sntp

external_components:
  #- source: github://SzczepanLeon/esphome-components@main
  - source: github://Madse/esphome-components@feature/driver_itronheat
    refresh: 0d
#    refresh: never
    components: [ wmbus ]

wmbus:
  #mosi_pin: GPIO13
  #miso_pin: GPIO5
  #clk_pin:  GPIO2
  #cs_pin:   GPIO14
  #gdo0_pin: GPIO15
  #gdo2_pin: GPIO16

  mosi_pin: GPIO13  # x blue - 6
  clk_pin:  GPIO14  # x purple - 5
  miso_pin: GPIO12  # x green - 7
  gdo2_pin: GPIO04  # gray - 8    --> GPIO04
  gdo0_pin: GPIO05  # yellow - 3  --> GPIO05
  cs_pin:   GPIO02  # orange - 4  --> GPIO02
#  gnd: GND  # black - 1  --> right
#  vcc: 3V3  # red - 2 --> left

  led_pin: GPIO0
  led_blink_time: "1s"

  frequency: 868.950
  all_drivers: false
  sync_mode: true
  log_all: false


#  mqtt:
#    broker: 192.168.12.20
#    port: 1883
#    username: !secret mqtt_username
#    password: !secret mqtt_password
#    client_id: emshome-wmbus-xx10
#    topic_prefix: emshome-wmbus-xx10

sensor:
# add sensor with defined type (driver will be also added to compile list)
  - platform: wmbus
    meter_id: 0x24440221
    type: itronheat 
    key: !secret meter_key_xx10
    sensors:
      - name: "WMZ-xx10 - Signal"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
        icon: "mdi:wifi"
      - name: "WMZ-xx10 - Total Engery"
        field: "total"
        accuracy_decimals: 0
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        icon: "mdi:heating-coil"
      - name: "WMZ-xx10 - Total Volume"
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"
      - name: "WMZ-xx10 - Engery previous year period."
        field: "last_year"
        accuracy_decimals: 0
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "measurement"
        icon: "mdi:heating-coil"

text_sensor:
  - platform: wmbus
    meter_id: 0x24440221
    type: itronheat
    sensors:
      - name: "WMZ-xx10 - Status"
        field: "status"
      - name: "WMZ-xx10 - Meter date"
        field: "meter_datetime"
        device_class: "timestamp"
        icon: "mdi:calender"
      - name: "WMZ-xx10 - Engery previous billing year"
        field: "last_year"
        device_class: "date"
        icon: "mdi:calender"

Do you have any advice for the missing filed last_year_date?

Witam. Czy w przypadku korekty zużycia wody przez licznik iperl, która powoduje że wartość kolejnego odczytu jest mniejsza niż poprzedzającego może skutkować brakiem odczytu. W Ha w historii i na wykresach w zakładce energia mam dziury w odczytach … kilka wciągu dnia. Z tego co pamiętam wcześniejsze wersje 3 odczytywały wartości “ujemne” i na wykresach słupkowych było to widać. Teraz testuję zmianę ustawienia sensora z total_increase na total. ale niwe wiem czy to pomoże czy problem jest w samej obsłudze ramki z licznika.?

Jeśli masz błędne odczyty to filtruj dane, to jest tylko obejście, ale ono działa .

potrzebuje tu pmocy, mam dwa liczniki jeden główny i za nim drugi ogrodowy, woda domowa to główny - ogrodowy, korzystam z tego

kod
 - platform: wmbus
    meter_id: 0x00B8B1AF
    type: izar
    sensors:
      - name: "RSSI glowny"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
      - name: ${friendly_name3} wodomierz glowny
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"
        id: glowny

  - platform: wmbus
    meter_id: 0x41317A2D
    type: izar
    sensors:
      - name: "RSSI ogrodowy"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
      - name: ${friendly_name3} wodomierz ogrodowy
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"
        id: ogrodowy

  - platform: template
    name: ${friendly_name3} wodomierz domowy
    lambda: |-
      if (id(glowny).has_state() && id(ogrodowy).has_state()) {
      return (id(glowny).state - id(ogrodowy).state);
      } else {
      return {};
      }
    unit_of_measurement: "m³"
    accuracy_decimals: 3
    device_class: "water"
    state_class: "total_increasing"
    icon: "mdi:water"
    update_interval: 10s

ale kurka wodna coś źle zlicza mi zużycie domowe jak w tym samym czasie jest pobór ogrodowy, dolicza do domowego zużycie z ogrodowego, jak to poprawnie napisać?

nalicza dobrze, skoro ogród stanowi cześć poboru głównego licznika, jeśli chcesz mieć dom netto, to musisz sobie odejmować jedną wartość od drugiej (utworzyć encję która będzie różnicą, edit - tu była wzmianka o template, ale jednak sam używałem innej konstrukcji)

ja używałem kiedyś takiej konstrukcji

  - platform: combination
    type: linear
    name: "różnica"
    sources:
      - source: copy_wieksza
        coeffecient: 1.0
      - source: copy_mniejsza
        coeffecient: -1.0

użyte były kopie źródłowych encji (z heartbeat 5sekund, ale nie pamiętam po co i dlaczego), aha przypomniałem sobie dlaczego nie template - bo chyba jinja nie renderuje poprawnie kolejności działań, czy coś-tam innego, ale z odejmowaniem są cyrki (oczywiście możesz sobie stworzyć encję o wartości przeciwnej i dodawać w template, ale skoro istnieją inne rozwiązania i umożliwiają ogarnięcie całego zagadnienia od ręki…)

no ale mam taką emncje:

  - platform: template
    name: ${friendly_name3} wodomierz domowy
    lambda: |-
      if (id(glowny).has_state() && id(ogrodowy).has_state()) {
      return (id(glowny).state - id(ogrodowy).state);
      } else {
      return {};
      }
    unit_of_measurement: "m³"
    accuracy_decimals: 3
    device_class: "water"
    state_class: "total_increasing"
    icon: "mdi:water"
    update_interval: 10s