doczytaj do końca, piszę zawsze na raty, bo nigdy nie wiem kiedy będę miał czas dokończyć…
przepraszam nie widzialem tego po kodzie przerobilem na ten Twoj schemat zobaczymy
no i wszystko pięknie działało a przed chwilą ni z gruszki ni z pietruszki:
W przeszłości generowaliśmy statystyki dla ‘ESPHome Piwnica CC1101 wodomierz domowy’ (sensor.esp32_er_cc1101_wodomierz_domowy), ale w związku z tym, że nie ma już klasy stanu nie możemy śledzić długoterminowych statystyk tej encji.
Statystyki nie mogą być generowane, dopóki ta encja nie ma obsługiwanej klasy stanu.
- Jeśli klasa stanu była wcześniej dostarczona przez integrację, może to być błąd. Proszę zgłosić problem.
- Jeśli wcześniej sam ustawiłeś klasę stanu, popraw to proszę. Różne klasy stanu i informacje, kiedy ich używać, można znaleźć w dokumentacji dla deweloperów.
- Jeśli klasa stanu została trwale usunięta, możesz usunąć z bazy danych związane z nią długoterminowe statystyki.
Czy chcesz trwale usunąć długoterminowe statystyki sensor.esp32_er_cc1101_wodomierz_domowy z Twojej bazy danych?
"
co z tym moge zrobić?
doszedłem do tego, przy typie combinacje wszystko jest przenoszone z encji pierwszej, prócz typu stanu bo mo ze być różny, dlatego ustawiłego go ręcznie i jest ok
Pokaż YAML, poczekaj na autora…
@Jabol Nie wiem, u mnie działa.
Proszę o Wasze wsparcie, bo nie wiem co może być nie tak. Niby prosta sprawa - licznik wody Bmeter. Telegram odczytuje, parsuje, ale wywala błąd jak poniżej w logu.
{
“_”:“telegram”,
“media”:“warm water”,
“meter”:“iwmtx5”,
“name”:“”,
“id”:“23391061”,
“total_m3”:40.682,
“meter_datetime”:“2025-05-05 17:18:01”,
“status”:“OK”,
“timestamp”:“2025-05-05T16:16:15Z”
}
# licznik ciepła woda
- platform: wmbus
meter_id: 0x23391061
type: iwmtx5
key: "00000000000000000000000000000000"
sensors:
- name: "Woda ciepła siła sygnału"
field: "rssi"
accuracy_decimals: 0
unit_of_measurement: "dBm"
device_class: "signal_strength"
state_class: "measurement"
entity_category: "diagnostic"
- name: "Woda ciepła zużycie"
field: "total"
accuracy_decimals: 3
unit_of_measurement: "m³"
device_class: "water"
state_class: "total_increasing"
icon: "mdi:water"
A bez klucza próbowałeś?
właśnie spróbowałem i zadziałało dzięki @_Szczepan
Wszystko w logu było
niby tak, ale jeszcze nie wiem jak to interpretować A w jaki sposób odczytać field “meter_datetime” ewentualnie “timestamp”? W sensorze trzeba użyć odpowiedniej device_class/state_class? Bo też kombinuję jak dodać to jako encję.
Cześć, Mam problem z odczytem licznika wody z nakładką flowisplus, Wyglada na to ze kompilacja przechodzi bez problemu, mam informacje o odczycie ramki , ( zajecie) ale nie ma zawartości telegramu. Czy ktoś bardziej doświadczony mógłby zerknąć na konfigurację ?. z góry dziękuję za pomoc.
esphome:
name: water
friendly_name: water
esp32:
board: esp32dev
framework:
type: arduino
external_components:
- source: github://SzczepanLeon/esphome-components@main
components: [ wmbus ]
# Enable logging
logger:
level: DEBUG
# Enable Home Assistant API
api:
encryption:
key: "vil0jQ/2OuCEPSgPSXKa5ZgIUXhQ3ejZO5dMP36GXR8="
ota:
- platform: esphome
password: "c87805c760761ab23e6bf3c086616f2b"
wifi:
ssid: said
password: pass
manual_ip:
static_ip: 192.168.100.77
gateway: 192.168.100.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Wather Fallback Hotspot"
password: "qFNlIdHDjerQ"
captive_portal:
web_server:
port: 80
time:
- platform: sntp
id: my_time
wmbus:
# mosi_pin: GPIO23
# miso_pin: GPIO19
# clk_pin: GPIO18
# cs_pin: GPIO5
# gdo0_pin: GPIO4
# gdo2_pin: GPIO2
mosi_pin: GPIO13
miso_pin: GPIO5
clk_pin: GPIO2
cs_pin: GPIO14
gdo0_pin: GPIO15
gdo2_pin: GPIO16
all_drivers: true
log_all: true
sync_mode: True
mqtt:
broker: 10.0.0.88
username: mqttUser
password: mqttPass
clients:
- name: "wmbusmeters"
ip_address: "10.0.0.22"
port: 7227
sensor:
# add driver to compile list (will be available for autodetect), don't create sensor
- platform: wmbus
type: flowisplus
- platform: wmbus
meter_id: 0x00000000
type: flowisplus # Zastąp odpowiednim typem, jeśli znany
key: "00000000000000000000000000000000" # Jeśli wodomierz jest zaszyfrowany
sensors:
- name: "Flowis+ Water Consumption"
field: "volume"
unit_of_measurement: "m³"
device_class: "water"
state_class: "total_increasing"
- name: "Flowis+ RSSI"
field: "rssi"
unit_of_measurement: "dBm"
device_class: "signal_strength"
state_class: "measurement"
- platform: wmbus
meter_id: 0x01234567
type: apator162
key: "00000000000000000000000000000000"
sensors:
- name: "my hot water RSSi"
field: "rssi"
accuracy_decimals: 0
unit_of_measurement: "dBm"
device_class: "signal_strength"
state_class: "measurement"
entity_category: "diagnostic"
- name: "my hot water"
field: "total"
accuracy_decimals: 3
unit_of_measurement: "m³"
device_class: "water"
state_class: "total_increasing"
icon: "mdi:water"
A czytałeś ten YAML?
Przecież to jest żywcem jakiś przykład, a nie faktyczna konfiguracja.
Jeśli nie korzystasz z tych sekcji to je wywal
mqtt:
broker: 10.0.0.88
username: mqttUser
password: mqttPass
clients:
- name: "wmbusmeters"
ip_address: "10.0.0.22"
port: 7227
wywal też to (przywrócisz tylko potrzebny fragment jak już będziesz znał ID swojego licznika)
to jest szczególnie ważne bo w logach musisz złapać ID swojego licznika
- platform: wmbus
meter_id: 0x00000000
type: flowisplus # Zastąp odpowiednim typem, jeśli znany
key: "00000000000000000000000000000000" # Jeśli wodomierz jest zaszyfrowany
sensors:
- name: "Flowis+ Water Consumption"
field: "volume"
unit_of_measurement: "m³"
device_class: "water"
state_class: "total_increasing"
- name: "Flowis+ RSSI"
field: "rssi"
unit_of_measurement: "dBm"
device_class: "signal_strength"
state_class: "measurement"
- platform: wmbus
meter_id: 0x01234567
type: apator162
key: "00000000000000000000000000000000"
sensors:
- name: "my hot water RSSi"
field: "rssi"
accuracy_decimals: 0
unit_of_measurement: "dBm"
device_class: "signal_strength"
state_class: "measurement"
entity_category: "diagnostic"
- name: "my hot water"
field: "total"
accuracy_decimals: 3
unit_of_measurement: "m³"
device_class: "water"
state_class: "total_increasing"
icon: "mdi:water"
zastanawiam się też czy istotnie potrzebujesz używać statycznego IP (wtedy autodiscovery nie działa, ale to jakby kwestia poboczna, bo to zależy czy wiesz co robisz czy nie, ale chyba nie wiesz i wtedy zazwyczaj optymalniejszy jest adres przydzielany z DHCP)
manual_ip:
static_ip: 192.168.100.77
gateway: 192.168.100.1
subnet: 255.255.255.0
Dzięki @szopen za pomoc, udało się uzyskać ramkę ale nawet gdy się umie czytać to trudno ją zinterpretować
[17:59:24][VV][api.service:037]: send_ping_request: PingRequest {}
[17:59:24][VV][api.service:706]: on_ping_response: PingResponse {}
[17:59:39][V][rxLoop:167]: Have 326 bytes from CC1101 Rx, RSSI: -96 dBm LQI: 255
[17:59:39][V][rxLoop:172]: Synchronus mode enabled.
[17:59:39][D][mbus:035]: Received T1 A frame
[17:59:39][V][mbus:041]: Frame: 8F22F441B3F0D52A071000006E874029C19044E84D04F004403205E83902E018B181843A841C00602E08071E0140C70310470042BD816521DFFF7FECFBFFFFFFFBBD9DF421AF1FA209350310F5BA4DB98F27BFF0F1A60AEBA4DF8177D3F69F5B7409EF4A5BFFFFF7FFFF77FFFF5FDD8B1C96151FE7CFF4F0FDBE7CCAC5B374D4CF19FF73E7D04BE82A7F1FA1A48BF76B9BFD89396EE758E9F2C7BF3FFFFBBF08D99BA75DE8924DBB6BDBB35A37EBFED5E50CF7EBB7F1F7C8FFFEF9EDBF9DBCD7EEBC5E87EDFBE7D1 [RAW]
[17:59:39][V][mbus:043]: 0B274896B64CD68706E3EEBEF1FEDDF6C6F2FF6FFABF5ECD9A3FF39E77F07F3CEFDB7EF4AD7BF5B05C3C8B8B6B7BB5D3164CD3B6A91CEBFE332F1ED7FFFDED7D7B76F0FFD6FEBBECEFFFDDB554B73DEF62EC77D16FFC39E776FE35DF3CCBEF9E983B44CD9360E452D09F7DFDE5EDFF7BBC1AE6DFFD473EFE56F7DBED6FFA (326) [RAW]
[17:59:39][V][3of6:083]: Decode 3 out of 6 failed…
[17:59:39][W][component:239]: Component wmbus took a long time for an operation (114 ms).
[17:59:39][W][component:240]: Components should block for at most 30 ms.
[18:00:04][VV][api.service:697]: on_ping_request: PingRequest {}
[18:00:04][VV][api.service:043]: send_ping_response: PingResponse {}
Niestety https://wmbusmeters.org/ nie umie tego zinterpretować, czy koś może zna desctription key bo może to jest zakodowane? a może to coś jeszcze innego?
doradźcie gdzie szukać, dzięki
Złap jakąś inną ramkę, bo ta jest błędna
[18:10:17][D][mbus:035]: Received T1 A frame
[18:10:17][V][mbus:046]: Frame: 68D959C790307058656DC23A41BEBC89E9A86AAE5F0169C6220001B442036005083001304610704301C031C0900CE0802F306D7AF6040003B7FBF6FFEDFBDFFFED6F53DF4336798AFE1AD4E976BD77FCD62019EA939FEFCFFBEF26F46AF9F47CB64FBFF3BF92D97FFFFBFEFFFEFFF6FD1DAC7FEFD2114326BDB869CFFFE2B9DBF5D6F5D6F4DD3A5B738F1BDFDFEDDF7DF3CFD930A63EBEFEB4FB7F70FC7CDB0F1DFFFD3E77F27DBD (168) [RAW]
[19:25:51][D][mbus:035]: Received T1 A frame
[19:25:51][V][mbus:041]: Frame: B1A96654F42861C4600282E85600B3020237C0900630A70E722809600601804027174127061E1CA38678083F309815404800C00371D612C7DFBF7FCFFF7EFFBFDEFA088A4CB5EA45FF50BCFF6CE519088519529A24CE0EFF7AE1C9E007C14A8F7B168E2CCB16FAAB5FFFFEFFFFFFD7FEFE1B90E5F45ECFF24FC2952EBF37E91C3E7ABCC24954FD012F4A36EEAB897FB665E6EBE9515DDF7BAB2FFFBFF7FDFB67DFFDA7ECC68AEE17BFD3B3CBE4766ABB6D63713F886F53909CFB5E8FC5EBAFF895EF543292EF8D4F [RAW]
[19:25:51][V][mbus:043]: D7A7BDE77FBC97FFFD39746BA2D3C97331D23E9F58A92DAFDEBAF5FE7FFF (230) [RAW]
Co tak oszczędnie, złap jakąś, która daje się dekodować na https://wmbusmeters.org/
jeśli sobie ustawisz
logger:
level: VERY_VERBOSE
to po poprawnym telegramie będziesz miał
Decode 3 out of 6 OK..
i tylko taki jest warty publikacji
ale nawet nie musisz mieć takiego wysokiego poziomu logowania, bo przy poziomie DEBUG
nie będziesz oglądał tego całego śmietnika
Problem w tym, że wszystkie są takie same żadnej nie moge zdekodować, zrobiłem co radziłeś w poprzednim poscie ale nie mam ramki z której mogę cokolwiek odczytać
Nie wiem gdzie mieszkasz, ale u mnie na przeciętnym blokowisku niepoprawnych telegramów mam zdecydowaną większość i to jest sytuacja normalna przy tłoku w eterze, ale tych poprawnych i tak jest wystarczająco dużo by czytać własne liczniki.
Nie wiem jak wygląda sytuacja jeśli chodzi o Flowis+ (bo nikt się nie chwalił nigdzie, że czyta takie właśnie nakładki/liczniki), jak kiedyś sugerowałem zbudowanie bazy liczników wraz z metodami ich odczytu, to zostało to zignorowane przez zdecydowaną większość użytkowników forum.
Telegramy T1 RAW nawet nie wklejaj nigdzie dalej. Dopiero te co przejdą 3z6 i CRC sa warte uwagi. Dla C1 nie masz 3z6 wiec tylko CRC Ciebie obchodzi.
po aktualizacji ESPHOME 2025.5.0 wysypały się liczniki i zgłaszany jest błąd. (HA 2025.5.2)
[INFO ESPHome 2025.5.0
INFO Reading configuration /config/esphome/water-meter.yaml...
ERROR Unable to import component wmbus:
Traceback (most recent call last):
File "/esphome/esphome/loader.py", line 185, in _lookup_module
module = importlib.import_module(f"esphome.components.{domain}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 999, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/data/external_components/4ac8ef87/components/wmbus/__init__.py", line 4, in <module>
from esphome.log import Fore, color
ImportError: cannot import name 'Fore' from 'esphome.log' (/esphome/esphome/log.py). Did you mean: 'core'?
Failed config
wmbus: [source /config/esphome/water-meter.yaml:51]
Component not found: wmbus.
mosi_pin: GPIO23
miso_pin: GPIO19
clk_pin: GPIO18
cs_pin: GPIO15
gdo0_pin: GPIO4
gdo2_pin: GPIO27
led_blink_time: 1s
frequency: 868.95
all_drivers: False
sync_mode: True
log_all: True
plik water-meter.yaml
external_components:
- source: github://SzczepanLeon/esphome-components@4.1.4
components: [ wmbus ]
wmbus:
mosi_pin: GPIO23
miso_pin: GPIO19
clk_pin: GPIO18
cs_pin: GPIO15
gdo0_pin: GPIO4
gdo2_pin: GPIO27
led_blink_time: "1s"
frequency: 868.950
all_drivers: false
sync_mode: True
log_all: True
sensor:
- platform: wmbus
meter_id: 0x215f29ab
type: izar
sensors:
- name: "my water RSSi"
field: "rssi"
accuracy_decimals: 0
unit_of_measurement: "dBm"
device_class: "signal_strength"
state_class: "measurement"
entity_category: "diagnostic"
- name: "my water"
field: "total"
accuracy_decimals: 3
unit_of_measurement: "m³"
device_class: "water"
state_class: "total_increasing"
icon: "mdi:water"