W drugim module podczytowym mam definicję
i też nie czytają się poprawnie liczniki
```
type: apatoreitn
mode: T1C1
```
Czekam na poprawkę, która będzie się próbowała czytać podzielniki ciepła z key w formie HEX
W drugim module podczytowym mam definicję
i też nie czytają się poprawnie liczniki
```
type: apatoreitn
mode: T1C1
```
Czekam na poprawkę, która będzie się próbowała czytać podzielniki ciepła z key w formie HEX
3 posty zostały scalone z istniejącym tematem: Komponent wM-Bus do ESPHome (SzczepanLeon) wersja 4.x - wątek ogólny
Cześć,
uruchomiłem ostatnio wmbus na esphome i napotkałem problem z którym nie potrafię sobie poradzić. Może ktoś jest w stanie pomóc.
Mam HydrocalM4 i brak dekodowania ‘total_heating_kwh’.
Moja konfiguracja esphome:
esphome:
name: esp-cc1101
friendly_name: ESP CC1101
esp8266:
board: esp12e
logger:
level: VERBOSE
#web_server:
# port: 80
# version: 2
api:
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
min_auth_mode: WPA2
time:
- platform: homeassistant
id: ha_time
external_components:
- source: github://SzczepanLeon/esphome-components@version_3
components: [wmbus]
wmbus:
mosi_pin: GPIO13
miso_pin: GPIO12
clk_pin: GPIO14
cs_pin: GPIO15
gdo0_pin: GPIO5
gdo2_pin: GPIO4
log_unknown: true
sensor:
- platform: wmbus
meter_id: 0x05151953
type: hydrocalm3
total_water_m3:
name: "Total water"
total_heating_kwh:
name: "Total heating"
w logu mam:
[09:07:24.914][V][mbus:052]: Frame: 8644B409531915051A0DB5658C00C27A8A000000046D1F294C330C0B8FAE476493310C13907060008C10086771101F36028C1013930500000F640100000000003F0A0F0B0D15263162542824662471522134BD4C53197111188408188408188408188408E953184898176181160B0934472068951865008F68186058186058184049184049184049C4E2184049184049184049184049187323 (153) [with CRC]
[09:07:24.933][V][mbus:095]: Validating CRC for Block1
[09:07:24.944][V][crc:031]: calculated: 0xB565, read: 0xB565
[09:07:24.944][V][mbus:115]: Validating CRC for Block2
[09:07:24.944][V][crc:031]: calculated: 0x8FAE, read: 0x8FAE
[09:07:24.957][V][mbus:115]: Validating CRC for Block3
[09:07:24.957][V][crc:031]: calculated: 0x1F36, read: 0x1F36
[09:07:24.972][V][mbus:115]: Validating CRC for Block4
[09:07:24.972][V][crc:031]: calculated: 0x3F0A, read: 0x3F0A
[09:07:24.972][V][mbus:115]: Validating CRC for Block5
[09:07:24.981][V][crc:031]: calculated: 0xBD4C, read: 0xBD4C
[09:07:24.982][V][mbus:115]: Validating CRC for Block6
[09:07:24.997][V][crc:031]: calculated: 0xE953, read: 0xE953
[09:07:24.997][V][mbus:115]: Validating CRC for Block7
[09:07:25.017][V][crc:031]: calculated: 0x008F, read: 0x008F
[09:07:25.017][V][mbus:115]: Validating CRC for Block8
[09:07:25.017][V][crc:031]: calculated: 0xC4E2, read: 0xC4E2
[09:07:25.017][V][mbus:115]: Validating CRC for Block9
[09:07:25.018][V][crc:031]: calculated: 0x7323, read: 0x7323
[09:07:25.024][V][mbus:062]: Frame: 8644B409531915051A0D8C00C27A8A000000046D1F294C330C0B476493310C13907060008C1008677110028C1013930500000F640100000000000F0B0D1526316254282466247152213453197111188408188408188408188408184898176181160B09344720689518656818605818605818404918404918404918404918404918404918404918 (135) [without CRC]
[09:07:25.049][D][wmbus:090]: Using driver 'hydrocalm3' for ID [0x05151953] RSSI: -60 dBm LQI: 132 Frame: T1 A T: 8644B409531915051A0D8C00C27A8A000000046D1F294C330C0B476493310C13907060008C1008677110028C1013930500000F640100000000000F0B0D1526316254282466247152213453197111188408188408188408188408184898176181160B09344720689518656818605818605818404918404918404918404918404918404918404918 (135)
[09:07:25.084][V][wmbus:121]: Publishing 'total_water_m3' = 607.0900
[09:07:25.111][V][sensor:083]: '0x5151953 Total water': Received new state 607.090027
[09:07:25.146][D][sensor:135]: '0x5151953 Total water': Sending state 607.09003 m³ with 3 decimals of accuracy
jak widać odczytywany jest tylko sensor ‘total_water_m3’, brak ‘total_heating_kwh’, wmbusmeters –analyze go dekoduje poprawnie:
{
"_":"telegram",
"media":"heat/cooling load",
"meter":"hydrocalm3",
"name":"",
"id":"05151953",
"device_datetime":"2026-03-12 09:31",
"total_heating_kwh":8871.235278,
"total_heating_m3":607.09,
"status":"OK",
"timestamp":"2026-03-12T08:08:34Z"
}
Ktoś miał podobne problemy?
Dzięki
EDIT:
Wygląda na to, że problem leży w driverze:
struct Hydrocalm3: Driver
{
Hydrocalm3(std::string key = "") : Driver(std::string("hydrocalm3"), key) {};
virtual esphome::optional<std::map<std::string, double>> get_values(std::vector<unsigned char> &telegram) override {
std::map<std::string, double> ret_val{};
add_to_map(ret_val, "total_heating_kwh", this->get_0C0E(telegram));
add_to_map(ret_val, "total_heating_kwh", this->get_0C03(telegram));
add_to_map(ret_val, "total_heating_kwh", this->get_0C0A(telegram));
add_to_map(ret_val, "total_heating_kwh", this->get_0C09(telegram)); /* Hydrocal M4 kWh metering map value */
add_to_map(ret_val, "total_water_m3", this->get_0C13(telegram));
if (ret_val.size() > 0) {
return ret_val;
}
else {
return {};
}
};
private:
};
brakowało:
add_to_map(ret_val, "total_heating_kwh", this->get_0C0B(telegram));
Problem rozwiązany
Od roku dobrze działał mi odczyt z liczników: GAMA 350 - energii i LIZAR - wody.
Mam odczyt na ESP32 + CC1101
Dziś wymienili mi licznik wody i zmienił się ID licznika.
Niestety po zmianie ID licznika w YAML, ESPHome nie chce się skompilować.
Praktycznie kod YAML jest niezmieniony.
Pewnie od poprzedniej kompilacji coś się zmieniło w zewnętrznych bibliotekach …
Proszę o sugestię co zrobić?
Using Python 3.12.10 environment at: /root/.platformio/penv/.espidf-5.5.4 Reading CMake configuration... Dependency Graph |-- noise-c @ 0.1.11 |-- SPI @ 3.3.8 |-- SmartRC-CC1101-Driver-Lib @ 2.5.7+sha.b8c6af4 |-- wM-Bus-drivers @ 0.0.0+20260421171655.sha.c856f7d Compiling .pioenvs/esp32-mbus/src/esphome/components/wmbus/wmbus.cpp.o Compiling .pioenvs/esp32-mbus/src/esphome/core/gpio.cpp.o Compiling .pioenvs/esp32-mbus/src/esphome/core/helpers.cpp.o Compiling .pioenvs/esp32-mbus/src/esphome/core/log.cpp.o In file included from src/esphome/components/wmbus/wmbus.cpp:1: src/esphome/components/wmbus/wmbus.h:17:10: fatal error: WiFiClient.h: No such file or directory \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \* Looking for WiFiClient.h dependency? Check our library registry! \* \* CLI > platformio lib search "header:WiFiClient.h" \* Web > https://registry.platformio.org/search?q=header:%1B%5Bm%1B%5BKWiFiClient.h \* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 17 | #include <WiFiClient.h> | ^\~\~\~\~\~\~\~\~\~\~\~\~\~ compilation terminated. \*\*\* \[.pioenvs/esp32-mbus/src/esphome/components/wmbus/wmbus.cpp.o\] Error 1 ========================= \[FAILED\] Took 19.24 seconds =========================
Zmieniło się środowisko - musisz skompilować na bardzo starej wersji ESP.
@Krzyszof_K - dzięki za podpowiedź kompilacji w starej wersji ESPHome.
Znalazłem proste rozwiązanie, które może przydać się innym z podobnym problemem.
W HA doinstalowałem starą wersję ESPHome, w której skutecznie kompilowałem ostatnio ten YAML.
Opis instalacji:
Wejdź w:
Ustawienia → Aplikacje → Zainstaluj aplikację → 3 kropki → Repozytoria
Dodaj:
https://github.com/khenderick/esphome-legacy-addons
Znajdziesz tam stare wersje ESPHome
Zainstaluj konkretną wersję ( w moim przypadku 2025.10)
Na liście aplikacji pojawi się nowa, np. “ESPHome 2025.10” - należy włączyć “Show in sidebar” i uruchomić.
W menu pojawi się nowy punkt, np. “ESPHome 2025.10”, który pozwala przekompilować “starą wersję” YAML i zaktualizować firmware z nowym ID licznika.
Na prośbę @super wrzucam mój szkic, który kompiluje się w ESPHome 2025.10
Pozostaje wpisać swoje “tajne” dane
# WMBUS odbiornik na CC1101
# biblioteka github://SzczepanLeon/esphome-components@version_3
esphome:
name: esp32-mbus
friendly_name: ESP32-MBus
esp32:
board: esp32dev
logger:
level: DEBUG
# Enable Home Assistant API
api:
encryption:
key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
ota:
- platform: esphome
password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp32-Mbus Fallback Hotspot"
password: "MBusCaptive"
captive_portal:
web_server:
port: 80
version: 3
time:
- platform: sntp
id: time_sntp
# Status LED for connection
#status_led:
# pin:
# Blue LED
# number: GPIO02
external_components:
- source: github://SzczepanLeon/esphome-components@version_3
refresh: 0d
components: [ wmbus ]
wmbus:
mosi_pin: GPIO23
miso_pin: GPIO19
clk_pin: GPIO18
cs_pin: GPIO15
gdo0_pin: GPIO4
gdo2_pin: GPIO27
frequency: 868.900
# powinno być 868.950 ale mój CC1101 ma uchyb ok -0.07..-0.1
sensor:
- platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
name: "WiFi Signal dB"
id: wifi_signal_db
update_interval: 60s
entity_category: "diagnostic"
# first sensor (water)
- platform: wmbus
meter_id: 0x21316BAC
type: izar
add_prefix: false
rssi:
name: "IZAR RSSI [dB]"
total_water_m3:
name: "IZAR water TOTAL"
last_month_total_water_m3:
name: "IZAR Last month"
transmit_period_s:
name: "IZAR Transmit period [s]"
remaining_battery_life_y:
name: "IZAR battery life [Y]"
current_alarms:
name: "IZAR Current alarms"
previous_alarms:
name: "IZAR Previous alarms"
# second sensor (electricity)
- platform: wmbus
meter_id: 0x30653123
type: amiplus
add_prefix: false
key: "320053065346824105435502000ABCDE"
mode: T1C1
rssi:
name: "GAMA350 RSSI"
total_energy_consumption_kwh:
name: "GAMA350 ENERGY IN TOTAL kWh"
icon: "mdi:power-plug"
current_power_consumption_kw:
name: "GAMA350 Power IN kW"
total_energy_production_kwh:
name: "GAMA350 ENERGY OUT TOTAL kWh"
current_power_production_kw:
name: "GAMA350 Power OUT kW"
voltage_at_phase_1_v:
name: "GAMA350 L1[V]"
voltage_at_phase_2_v:
name: "GAMA350 L2[V]"
voltage_at_phase_3_v:
name: "GAMA350 L3[V]"