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

To chyba dobrze, że w końcu jestem już na krawędzi migracji na mocniejszy sprzęt :stuck_out_tongue:

OFF TOPIC
haha no nie wszystko się daje kompilować

RAM:   [          ]   4.9% (used 63800 bytes from 1310720 bytes)
Error: The program size (2036852 bytes) is greater than maximum allowed (1835008 bytes)

💡 TIP: Your ESP32 with Arduino framework has run out of flash space.

To fix this, switch to the ESP-IDF framework which is more memory efficient:

1. In your YAML configuration, modify the framework section:

   esp32:
     framework:
       type: esp-idf

2. Clean build files and compile again

Note: ESP-IDF uses less flash space and provides better performance.
Some Arduino-specific libraries may need alternatives.

*** [checkprogsize] Explicit exit, status 1
Flash: [==========]  111.0% (used 2036852 bytes from 1835008 bytes)
========================= [FAILED] Took 21.99 seconds =========================

to się akurat udało, ale gdybym miał coś do czego się nie da dostać fizycznie to byłbym wkurzony (bo zmiana frameworka = konieczność przeflaszowania po kabelku), jakkolwiek wydaje się, że coś kiepsko ze zgodnością z arduino, skoro różnica w rozmiarze obrazu przekracza 30%

Creating esp32 image...
Successfully created esp32 image.
Linking .pioenvs/ttgo-mini-t7/firmware.elf
RAM:   [          ]   4.6% (used 60560 bytes from 1310720 bytes)
Flash: [========  ]  80.8% (used 1483160 bytes from 1835008 bytes)
Building .pioenvs/ttgo-mini-t7/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/ttgo-mini-t7/firmware.bin"], [".pioenvs/ttgo-mini-t7/firmware.elf"])
SHA digest in image updated
Wrote 0x17a300 bytes to file /data/build/ttgo-mini-t7/.pioenvs/ttgo-mini-t7/firmware.factory.bin, ready to flash to offset 0x0
esp32_copy_ota_bin([".pioenvs/ttgo-mini-t7/firmware.bin"], [".pioenvs/ttgo-mini-t7/firmware.elf"])
======================== [SUCCESS] Took 442.89 seconds ========================
INFO Successfully compiled program.

Ja próbowałem skompilować dla ESP32C3
i niestety się nie udaje.
Ustawienia w YAML

board: esp32dev
  framework:
    type: esp-idf

lub

 board: esp32-c3-devkitm-1
  framework:
    type: esp-idf
In file included from src/esphome/components/wmbus/rf_cc1101.h:9,
                 from src/esphome/components/wmbus/rf_cc1101.cpp:1:
src/esphome/components/wmbus/cc1101_rf_settings.h:3:10: fatal error: ELECHOUSE_CC1101_SRC_DRV.h: No such file or directory

****************************************************************************************
* Looking for ELECHOUSE_CC1101_SRC_DRV.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:ELECHOUSE_CC1101_SRC_DRV.h"
* Web  > https://registry.platformio.org/search?q=header:%1B%5Bm%1B%5BKELECHOUSE_CC1101_SRC_DRV.h
*
****************************************************************************************

    3 | #include <ELECHOUSE_CC1101_SRC_DRV.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pioenvs/esp32c3/src/esphome/components/wmbus/rf_cc1101.cpp.o] Error 1

Może powinienem wyżej dodać, że to był OFF TOPIC wskazujący tylko na fakt, że po obecnym update wsad bywa większy od flasha (akurat mam płytkę z jakąś niesamowicie dużą ilością RAMu i się zawsze zastanawiałem czy to nie jakiś błąd w jej definicji, no ale nie RAMu mi brakło), bo to sprzęt do innych zastosowań i nie korzysta z tego sterownika, ale z tego co kiedyś pisał @_Szczepan to kojarzę, że sterownik istnieje tylko na platformę arduino, więc na IDF nie zmienisz.

Ewentualnie możesz spróbować eksperymentu z rezygnacją z OTA (ale nie wiem czy z automatu wchodzi wtedy inna tablica partycji, czy trzeba sobie samodzielnie zmienić na większą partycję dla aplikacji użytkownika), ewentualnie usuń inne komponenty jeśli masz jakieś które nie są niezbędne do działania (np. web serwer czy BLE) to może się zmieści mimo OTA.


a tak z innej beczki, bo to temat bumerang

ESP32-C3 to NIE jest ESP32, niby przyrostek-pierdółka, ale C3 to totalnie inny MCU i na nim nie działa kod generowany dla zwykłego ESP32

Arduno jest do wersji 4 włącznie. Wersja 5 ma domyślnie IDF.

Podstawowa zasada - działa == nie dotykać :wink:

A tak na poważnie to ZAWSZE polecam zastanowic sie czy potrzebuje upgrade do nowszego ESPHome.
Przy ich filozofii (jak dla mnie OK) nie ma gwarancji ze zewnetrzne komponenty będą zawsze działać. Sam tez nie mam czasu sprawdzac co kazda nowa wersja ESPHome zmienia itp.

2 polubienia

ok, rozumiuem, ale czy będziesz wprowadzał kompatybilność z tym esphome? narazie mi to działa na 2.6.3 ale jak chce wprowadzić zmiany w kodzie (a na tej płytce mam nie tylko wmbus) to musze po kabelku :smiley: bo HA ma już 2.7 i muszę sobie to kompilować na boku i wgrywać na boku

Do v5 na pewno. Do v4 mało prawdopodobne, priorytetem jest dodanie CC1101 do v5.

Bardzo zachecam aby samemu pokminić i zrobić PR na v4.

jak dodasz cc1101 do v5 to po co robić kompatybilność z 4, jakbym wiedział jak to ogarnąć to bym poprawił, ale to ciut za skomplikowane

Nic nie musisz ani “na boku”, ani po kabelku, wersji ESPHome instalowanych jako Dodatki w HA możesz mieć od groma i trochę, przewiń paręnaście postów do góry.
Jedyne wymaganie to by zatrzymać jeden Dodatek z IDE/kompilerem/builderem ESPHome przed uruchomieniem innego IDE/kompilera/buildera ESPHome.

Ja już jestem od 1,5 roku na krawędzi :person_climbing:a sprzęt leży 🫵🏼:rofl:

1 polubienie

OFF TOPIC ciąg dalszy

Tak… myślałem, że zrobię to dzisiaj, ale znowu przyszły tydzień wita, jakkolwiek kilka kolejnych kroków w dobrą stronę wykonanych ;D


zrobiłem małe śledztwo, no i znalazłem błąd… (nieodkryty przez kilka lat) definicja płytki

esp32:
  board: ttgo-t7-v13-mini32

jest do bani - ta płytka w życiu nie ma takiej ilości RAM

raczej prawidłowy rozmiar jest w jej opisie technicznym producenta… (w 520kB jestem skłonny uwierzyć w 1.3MB nie bardzo)

U chińczyka nie takie rozmiary pamięci SSD USB wiedziałem :joy:

Hej, mozecie pomoc z licznikiem bmeters



9:20:05

[I]

[wmbus:106]

rfmtx1 [0x17100400] RSSI: -74dBm T: 4E44B4090004101713077A75184005646E13AF8FA2D70900AC9CB891753E93E7768E6224286E8C5A7DF1C21E034AC6C125786E374F04195924E1156CB715C6DF820337FF206B9B164D82E944EDEADF (79) T1 A

09:20:05

[D]

[meters.cpp:1989]

(meter) created ESPHome rfmtx1 17100400 encrypted

09:20:05

[D]

[meters.cpp:913]

(meter) ESPHome(0) rfmtx1 handling telegram from 17100400.M=BMT.V=13.T=07

09:20:06

[W]

[wmbus:156]

**Can't get requested field 'total_m3' with unit 'm³'**

yaml:

  • platform: wmbus
    meter_id: 0x17100400
    type: rfmtx1
    key: “00000000000000000000000000000000”
    sensors:
    • name: “Woda ogrodowa”
      field: “total_m3”
      unit_of_measurement: “m³”
      device_class: “water”
      state_class: “total_increasing”
      icon: “mdi:water”
      filters:
      offset: -124.00
  1. TO nie jest cały YAML, starasz się formatować, ale się nie udało = wyedytuj posta i popraw.
  2. Czemu się podpiąłeś w wątku dotyczącym komponentu w wersji 2? (ktoś tego dziś jeszcze dziś używa w tak starej wersji? a bez całego YAMLa nawet nie wiadomo czy to trzeba gdzieś przenieść)
  3. Jaki jest właściwie problem - działało i przestało czy coś innego?

Hej dzieki za odpowiedz, yaml ponizej.
Izar mi dziala ok, bmeters nie potrafi odczytac wartosci poboru dajac blad mimo, ze po rozkodowaniu telegramu na wmbus widac to pole i nazwa jest prawidlowa.
Co do wersji wybacz - nie rozrozniam ich, a w tym watku byly odniesienia do bmetersa. Probowalem z roznymi driverami 3 z nich czytaja telegram, ale nie parsuja do pola

dashboard_import:
  package_import_url: github://MariuszWoszczynski/wmbus-reader-eth-poe/wmbus-reader-eth-poe-v4.yaml@main
  import_full_config: true

substitutions:
  name: "wmbus-reader-eth-poe-v4"
  friendly_name: "WMBUS Reader ETH POE v4"

esphome:
  name: "${name}"
  friendly_name: "${friendly_name}"
  project:
    name: esphome.wmbus_reader_eth
    version: "1.0"

esp32:
  board: esp32-poe
  framework:
    type: arduino


#####  NOTE!!! In the external_components section there is a link to always the latest version of the repository.
#####  If there will be any changes to the software, user intervention may be required
#####  (e.g. changing the way sensors are configured, etc.).
#####  Therefore, it is advisable to follow the information on the site of the author of the software:
#####  https://github.com/SzczepanLeon/esphome-components
external_components:
  - source: github://SzczepanLeon/esphome-components@version_4
    components: [ wmbus ]
    refresh: 0d

time:
 - platform: sntp
   id: time_sntp

# Enable logging

# Enable Home Assistant API
api:
  encryption:
    key: "eDNPgLXatKFNoUix14VnAxQ4o+e8YnZVWADNU92wRvo="

ota:
  - platform: esphome

mdns:
  disabled: false

web_server:
  port: 80
  version: 3

ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk_mode: GPIO17_OUT
  phy_addr: 0
  power_pin: GPIO12

logger:
  id: component_logger
  level: DEBUG
  baud_rate: 115200

#Optional manual IP
#  manual_ip:
#    static_ip: 192.168.10.99
#    gateway: 192.168.10.1
#    subnet: 255.255.255.0

wmbus:
  mosi_pin: GPIO02
  clk_pin:  GPIO14
  miso_pin: GPIO15
  gdo2_pin: GPIO13
  gdo0_pin: GPIO16
  cs_pin:   GPIO05

  frequency: 868.950
  all_drivers: False
  sync_mode: True
  log_all: True


  mqtt:
    broker: 192.168.0.248
    username: ""
    password: ""

sensor:
###########################################################################################################################################################
###########################################################################################################################################################
# The following sensors are examples, for IZAR, APATOR and UNISMART meters. Leave only the configuration of such meters you have, delete the other sensors.
# If you have another meter, check its configuration on:  https://github.com/SzczepanLeon/esphome-components
###########################################################################################################################################################
###########################################################################################################################################################


# IZAR water meter
  - platform: wmbus
    meter_id: 0x214febd4   ######## enter your IZAR meter ID here ###########
    type: izar
    sensors:
      - name: "Stan licznika total"
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"
      - name: "Zużycie total ostatni miesiac"
        field: "last_month_total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"


  - platform: wmbus
    meter_id: 0x17100400
    type: hydrodigit
    key: "00000000000000000000000000000000"
    sensors:
    -  name: "Woda ogrodowa"
       field: "total_m3"
       #unit_of_measurement: "m³"
       device_class: "water"
       state_class: "total_increasing"
       icon: "mdi:water"
       filters:
         offset: -122.00




# UNISMART gas meter
  - platform: wmbus
    meter_id: 0x00000000        ######## enter your UNISMART meter ID here ###########
    type: unismart
    key: "00000000000000000000000000000000"
    sensors:
      - name: "RSSI UNISMART"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
      - name: "UNISMART gas meter state"
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "gas"
        state_class: "total_increasing"
        icon: "mdi:water"
        #filters:       #optional
        #  - offset: 991.10

@Jacek_Kac
Nie działa bo podajesz w YAMLu złą nazwę pola.

{
“_”:“telegram”,
“media”:“water”,
“meter”:“hydrodigit”,
“name”:“”,
“id”:“17100400”,
“meter_datetime”:“2025-07-23 12:39”,
“total_m3”:124.082,
“contents”:“unknown, please open issue with this telegram for driver improvement”,
“timestamp”:“2025-07-23T11:58:36Z”
}

To by znaczyło, że nie czytasz YAMLa, który używasz

przeniosłem posty we właściwe miejsce.


Odnośnie YAMLa to wcięcia też są raczej złe

a co do nazwy pola, to z tego co pamiętam należało odrzucić przyrostek z jednostką (tu chodzi o _m3)

czyli pole się powinno nazywać total

natomiast jednostki encji raczej nie powinieneś mieć zakomentowanej (może sterownik zawiera już jednostkę, ale można podać jawnie jeśli wiadomo o co chodzi)

        unit_of_measurement: "m³"

No i w ogóle widzę że masz zbędnego i nie zakomentowanego YAMLa dotyczącego unismarta, więc go albo zakomentuj albo wywal.

Jeśli kupowałeś gotowe urządzenie, to oczywiście warto zwrócić się do jego sprzedawcy o wsparcie (to zawsze najlepsze źródło).

Dzieki pomoglo! …:slight_smile: duga tresc posta

Witam jakich płytek używacie żeby móc używać aktualizacji esphome bo po aktualizacji jest brak połączenia z HA I ciągle się restartuje.Chyba że coś tutaj się zmieniło po aktualizacji a czegoś MMA za dużo

substitutions:
  name: "woda-szczepan"
  friendly_name: Woda

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  min_version: 2024.6.0
  name_add_mac_suffix: false
  project:
    name: esphome.web
    version: dev

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:
  level: VERBOSE

Ja mam UltimateReader’a i działa.

Niech każdy zada sobie pytanie: jakich feature’ów z najnowszego ESPHome potrzebuje że muszę mieć najnowsze FW?