To są całkiem słuszne założenia producenta, tylko nie realizowane masowo w praktyce (byłoby to choćby ekologiczne, bo z ekonomią to bywa różnie - podejrzewam, że wymiana liczników z pozostawieniem nakładek by była nieopłacalna ze względu na zwiększone koszty wymiany = konieczność zatrudnienia techników, którzy to ogarniają zamiast zwykłych hydraulików, którzy zwykle nie mają pojęcia co montują itd. - wszyscy dostawcy komunalni o jakich słyszałem wymieniają liczniki razem z nakładkami).
Natomiast kwestia o której wspominałem dotyczy dopuszczalnej zajętości pasma przez pojedynczą nakładkę, która jest uregulowana prawnie, lokalne przepisy muszą być zgodne (i w PL są) z tym (oraz nowszymi wydaniami)
mam na myśli w szczególności paragrafy 7.2.3 i 7.10.3
Liczniki wody (tzn. ich nakładki) raczej nie mają co nadawać, by się zbliżyć do tych ograniczeń (0.1% zajętości kanału w czasie trwania każdej godziny) chociaż zastanawiające jest ile razy większy jest telegram długi od krótkiego, ale przykładowo jeśli chodzi o liczniki energii elektrycznej to tam właśnie ograniczenia wynikają wprost z przepisów dotyczących wykorzystania eteru (w zależności od ilości przesyłanych danych jest ograniczona częstość nadawania telegramów = interwał między nimi jest ograniczony od dołu, tym bardziej im większe telegramy).
Zakładając OMS to na jednym polu zaoszczędzisz 2-3 bajty. Sumarycznie strzelał bym że krótki telegram to 33-50% długiego. Wszystko i tak zależy od danej ramki T1
Obok tego masz jeszcze ramki C1, które z definicji zajmują mniej miejsca na radiu - tu już łatwiej oszacować zysk.
edit 06.2025
Dla odważnych firmware SUPLA
można kompilowac albo gotową binarkę wgrać np Tasmota flasherem
Szczepan mam radio od Ciebie ultimatereader jak dodać do niego wczytanie wszystkich driverów ? Nie mogę dokopać się do tego.
W starym opartym na CC miałem kofig do licznika impulsów w nowym przenoszę z tym samym driverem w teorii. Gdy wyłączę w starym wszystkie drivery i zostawię tylko watertecha to nie widać odczytów.
Ale jak włącze wszystkie to wtedy łapie ramkę i liczy.
watertech [0x00002266] RSSI: -57dBm T: 2944791A6622000003037ACA0000202F2F041332050000844013000000002F2020202020202020202020 (42) T1 A
Cholerka. Rekompiluję na very_verbose i dam znać jak ta ramka wygląda w sensie log
Ciekawie bo esp32_d1_mini zmieściłem wszystkie - wywaliłem web-a i wlazło
4:26:57.489][D][wmbus:114]: Have data from radio (72 bytes)
[14:26:57.508][I][wmbus:053]: Have data (42 bytes) [RSSI: -40, mode: T1 A]
[14:26:57.508][W][main:078]: Meter ID: 0x00002266
[14:26:57.508][W][main:081]: Frame: https://wmbusmeters.org/analyze/2944791a6622000003037aed0000202f2f041332050000844013000000002f2020202020202020202020
[14:26:57.509][I][wmbus:059]: Telegram handled by 0 handlers
[14:26:57.510][V][wmbus:103][radio_recv]: Queue items: 1
[14:26:57.513][V][wmbus:104][radio_recv]: Queue send success
[14:26:57.516][V][wmbus:082][radio_recv]: Failed to read preamble
Konfig
- id: gas
meter_id: 0x00002266
type: watertech
- platform: wmbus_meter
id: gas_lastmth
parent_id: gas
field: "total"
name: gas
accuracy_decimals: 2
unit_of_measurement: "m³"
device_class: "gas"
state_class: "total_increasing"
icon: "mdi:gas"
To już sam nie wiem co jest grane. na ESP32 CC1101 ładnie czyta licznik ale jak zmigruję na ultimate reader to niestety nie czyta. kombinowałem z driverami watertech-a, ultraheat, z fieldami total i total_m3 i dupa ramkę odbiera ale nie parsuje jej. Ciekawie że izary latają pięknie z eleganckim zasięgiem.
Log_ultima.zip (394,0 KB)
Tu taj log - izar działa ok męczę się z gazem próbowałem różnych driverów.
#substitutions:
# name: "ultimatereader-5a0eb0"
# friendly_name: "Ultimate Reader"
esphome:
name: ultimatereader-5a0eb0
friendly_name: Ultimate Reader 5a0eb0
name_add_mac_suffix: false
comment: Ultimate Reader
project:
name: wmbus.UltimateReader
version: ${wmbus_gateway_version}
packages:
hal: github://wM-Bus/UltimateReader/packages/lilygo_t3_s3_hal.yaml@IoTLabs
wmbus_gateway: github://wM-Bus/UltimateReader/packages/wmbus_gateway.yaml@IoTLabs
wifi:
ssid: "jakies wifi"
password: "jakies_haslo"
reboot_timeout: 1min
fast_connect: True
manual_ip:
static_ip: 192.168.10.66
gateway: 192.168.10.1
subnet: 255.255.255.0
dns1: 8.8.8.8
# ap:
# ssid: IoTLabs wM-Bus Gateway
#improv_serial:
#esp32_improv:
# authorizer: none
logger:
level: VERY_VERBOSE
logs:
status_led: INFO
binary_sensor: INFO
light: INFO
baud_rate: 115200
ota:
- platform: esphome
api:
#dashboard_import:
# package_import_url: github://wM-Bus/UltimateReader/blueprints/UltimateReader.yaml@IoTLabs
# import_full_config: true
wmbus_radio:
on_frame:
- then:
- logger.log:
level: WARN
format: "Meter ID: 0x%s"
args: ["frame->meter_id().c_str()"]
- logger.log:
level: WARN
format: "Frame: https://wmbusmeters.org/analyze/%s"
args: ["frame->as_hex().c_str()"]
wmbus_common:
drivers: all
wmbus_meter:
- id: gas
meter_id: 0x00002266
type: ultraheat
- id: przod
meter_id: 61220D7A
type: izar
- id: my_meter
meter_id: 2132BA02
type: izar
sensor:
- platform: wmbus_meter
id: water_meter_rssi
field: rssi_dbm
parent_id: my_meter
name: RSSI
device_class: signal_strength
state_class: measurement
- platform: wmbus_meter
parent_id: my_meter
field: "total_m3"
name: Tył Woda narastająco
accuracy_decimals: 2
unit_of_measurement: "m³"
device_class: "water"
state_class: "total_increasing"
icon: "mdi:water"
filters:
- offset: -287.204
- platform: wmbus_meter
id: water_meter_lastmth
parent_id: my_meter
field: "last_month_total_m3"
name: Tył Poprzedni miesiac
accuracy_decimals: 2
unit_of_measurement: "m³"
device_class: "water"
state_class: "total_increasing"
icon: "mdi:water"
filters:
- offset: -287.204
############################################################## Przód ###############################
# key: 00112233445566778899aabbccddeeff # Optional, if your meter is encrypted. May be specified as ASCII or HEX string.
# mode: C1 # or T1 if you want to filter specific modes. When not specified, all modes are accepted.
# on_telegram:
# Sending telegram to MQTT topic as JSON. MQTT component must be configured in your config.
# - then:
# - wmbus_meter.send_telegram_with_mqtt:
# topic: some_topic
# Sending telegram to HTTP endpoint as JSON.
# - then:
# - http_request.post:
# url: http://example.com/api
# headers:
# Content-Type: application/json
# body: !lambda |-
# return meter.as_json();
- platform: wmbus_meter
id: Przod_water_meter_rssi
field: rssi_dbm
parent_id: przod
name: Przod_RSSI
device_class: signal_strength
state_class: measurement
- platform: wmbus_meter
parent_id: przod
field: "total_m3"
name: Przód Woda narastająco
accuracy_decimals: 2
unit_of_measurement: "m³"
device_class: "water"
state_class: "total_increasing"
icon: "mdi:water"
filters:
- offset: -310.5
- platform: wmbus_meter
id: Przod_water_meter_lastmth
parent_id: przod
field: "last_month_total_m3"
name: Przod_Poprzedni miesiac
accuracy_decimals: 2
unit_of_measurement: "m³"
device_class: "water"
state_class: "total_increasing"
icon: "mdi:water"
filters:
- offset: -400
#========================================== Gaz =============
- platform: wmbus_meter
id: gas_lastmth
parent_id: gas
field: "total_m3"
name: gas
accuracy_decimals: 2
unit_of_measurement: "m³"
device_class: "gas"
state_class: "total_increasing"
icon: "mdi:gas"
#wmbus_gateway:
# If you want to set specific pages on the display, you may use the following config.
# By default, all defined sensor are displayed.
# pages:
# - total_water_sensor
# - water_meter_rssi
Spróbowane fieldy total_m3 i total, testowany volume_m3 i volume. Testowane dwa drivery ultraheat i watertech
Wyłączyłem kilka paczek żeby oszczędzić miejsce i dać możliwość wszystkich driverów.