Page 1 of 1
watermeter recognized as incremental
Posted: Friday 21 November 2025 19:32
by Gravityz
Hello,
i have a watermeter which sends out it's total value over MQTT
MQTT AD recognizes it as a counter incremental.
this creates a big problem because it sends out the complete value everytime so the counter increases rapidly with a faulty value
can i somehow change the device into a counter total?
if not what do i need to send out over mqtt so domoticz recognizes it as a total counter.
thanks
Re: watermeter recognized as incremental
Posted: Friday 21 November 2025 20:32
by waltervl
You cannot change the device.
From what MQTT interface (zigbee2mqtt, Zwave-JS-UI, esphome etc) is it sending?
If the wrong MQTT AD config is sent Domoticz will create the wrong device.
So what is the config topic including message and the state topic including message?
See the wiki for examples
https://wiki.domoticz.com/MQTT_AD_Report_Problems
Re: watermeter recognized as incremental
Posted: Friday 21 November 2025 21:39
by Gravityz
it is send from esphome
esp32-watermeter/sensor/watermeter_totaal/state
esp32-watermeter/sensor/watermeter_flow/state
i can not se the messages, only the values
how can i see this in mqtt explorer
Re: watermeter recognized as incremental
Posted: Friday 21 November 2025 22:24
by waltervl
See the wiki, there should be a config topic used to discover the device. Normally in the /homeassistant folder but that depends on your settings. See the wiki for examples.
Re: watermeter recognized as incremental
Posted: Friday 21 November 2025 23:20
by Gravityz
ok, when. i look in MQTT i see this posted
Code: Select all
{"dev_cla":"water","unit_of_meas":"Liter","stat_cla":"measurement","name":"Watermeter Totaal","ic":"mdi:pulse","stat_t":"esp32-watermeter/sensor/watermeter_totaal/state","avty_t":"esp32-watermeter/status","uniq_id":"ESPsensorwatermeter_totaal","dev":{"ids":"ecda3bc02bcc","name":"ESP32-Watermeter","sw":"2025.10.4 (Nov 21 2025, 18:24:16)","mdl":"esp32-c3-devkitm-1","mf":"Espressif","cns":[["mac","ecda3bc02bcc"]]}}
Code: Select all
{"unit_of_meas":"l/min","stat_cla":"measurement","name":"Watermeter Pulse","ic":"mdi:water-pump","stat_t":"esp32-watermeter/sensor/watermeter_pulse/state","avty_t":"esp32-watermeter/status","uniq_id":"ESPsensorwatermeter_pulse","dev":{"ids":"ecda3bc02bcc","name":"ESP32-Watermeter","sw":"2025.10.4 (Nov 21 2025, 17:32:58)","mdl":"esp32-c3-devkitm-1","mf":"Espressif","cns":[["mac","ecda3bc02bcc"]]}}
Re: watermeter recognized as incremental
Posted: Friday 21 November 2025 23:22
by Gravityz
{"dev_cla":"water","unit_of_meas":"Liter","stat_cla":"measurement","name":"Watermeter Totaal","ic":"mdi:pulse","stat_t":"esp32-watermeter/sensor/watermeter_totaal/state","avty_t":"esp32-watermeter/status","uniq_id":"ESPsensorwatermeter_totaal","dev":{"ids":"ecda3bc02bcc","name":"ESP32-Watermeter","sw":"2025.10.4 (Nov 21 2025, 18:24:16)","mdl":"esp32-c3-devkitm-1","mf":"Espressif","cns":[["mac","ecda3bc02bcc"]]}}
{"unit_of_meas":"l/min","stat_cla":"measurement","name":"Watermeter flow","ic":"mdi:water-pump","stat_t":"esp32-watermeter/sensor/watermeter_flow/state","avty_t":"esp32-watermeter/status","uniq_id":"ESPsensorwatermeter_flow","dev":{"ids":"ecda3bc02bcc","name":"ESP32-Watermeter","sw":"2025.10.4 (Nov 21 2025, 18:24:16)","mdl":"esp32-c3-devkitm-1","mf":"Espressif","cns":[["mac","ecda3bc02bcc"]]}}
Re: watermeter recognized as incremental
Posted: Saturday 22 November 2025 8:41
by Gravityz
sorry, had a blackout last night and did not know where to look
this is the watermeter from esphome
it is declared as total but still is recognized as total_increasing
Code: Select all
# ⬇ watermeter pulsen ⬇ #
- platform: pulse_meter
pin:
number: GPIO01
name: "Watermeter flow"
id: watermeter_pulse
internal_filter: 100ms
internal_filter_mode: PULSE
timeout: 16s
state_class: total
unit_of_measurement: "l/min"
accuracy_decimals: 1
icon: "mdi:water-pump"
filters:
lambda: return x ;
on_value:
then:
- output.turn_on: pulse_led
- delay: 200ms
- output.turn_off: pulse_led
# ⬇ Totaal watermeter ⬇ #
total:
id: sensor_pulse_meter_total
name: "Watermeter Totaal"
unit_of_measurement: "Liter"
state_class: total
device_class: water
accuracy_decimals: 0
filters:
lambda: |-
if (isnan(id(num_from_text).raw_state)) {
return x + id(domoticz_watermeter_value).state;
} else {
return x + id(num_from_text).state;
}
this what is send to MQTT
the pulse_meter in esphome consists of 2 devices, pulse and total
total
topic
Code: Select all
homeassistant/sensor/esp32-watermeter/watermeter_pulse/config
payload
Code: Select all
[quote][code]{"dev_cla":"water","unit_of_meas":"Liter","stat_cla":"total","name":"Watermeter Totaal","ic":"mdi:pulse","stat_t":"esp32-watermeter/sensor/watermeter_totaal/state","avty_t":"esp32-watermeter/status","uniq_id":"ESPsensorwatermeter_totaal","dev":{"ids":"ecda3bc02bcc","name":"ESP32-Watermeter","sw":"2025.10.4 (Nov 22 2025, 07:35:34)","mdl":"esp32-c3-devkitm-1","mf":"Espressif","cns":[["mac","ecda3bc02bcc"]]}}
[/quote][/code]
flow
topic
Code: Select all
homeassistant/sensor/esp32-watermeter/watermeter_pulse/config
payload
Code: Select all
{"unit_of_meas":"l/min","stat_cla":"total","name":"Watermeter flow","ic":"mdi:water-pump","stat_t":"esp32-watermeter/sensor/watermeter_flow/state","avty_t":"esp32-watermeter/status","uniq_id":"ESPsensorwatermeter_flow","dev":{"ids":"ecda3bc02bcc","name":"ESP32-Watermeter","sw":"2025.10.4 (Nov 22 2025, 07:35:34)","mdl":"esp32-c3-devkitm-1","mf":"Espressif","cns":[["mac","ecda3bc02bcc"]]}}
Re: watermeter recognized as incremental
Posted: Saturday 22 November 2025 9:40
by Gravityz

- Schermafbeelding 2025-11-22 om 09.39.10.png (236.43 KiB) Viewed 195 times
Re: watermeter recognized as incremental
Posted: Saturday 22 November 2025 11:00
by Gravityz
is there a reason i should create a report( eg should it be working but it is not) or is there something i can change?
sofar i played with state_class and device class, setting them to energy or measurement but everytime a counter incremental is created.
it looks like MQTT AD is ignoring the state_class because it clearly says total in the config payload
i also cleaned out mqtt totally so there were no old messages, rebooted mqtt server, did a discovery again with same result.
Re: watermeter recognized as incremental
Posted: Saturday 22 November 2025 12:26
by waltervl
Domoticz is creating the device based on the config message and indeed seems to ignore the "stat_cla":"total" value.
So best to create a GitHub issue according the instructions on the wiki so gizmocuz can take a look.
Re: watermeter recognized as incremental
Posted: Saturday 22 November 2025 14:13
by Gravityz
I reported the issue.
https://github.com/domoticz/domoticz/issues/6445
it seems that playing around with some variables(icons) it is now suddenly recognized as a rain sensor
bummer because esphome is really adjustable but if domoticz does not recognize it correctly it can not be used
Re: watermeter recognized as incremental
Posted: Saturday 22 November 2025 20:42
by Gravityz
if anybody has the json code to send to domoticz so it creates a total counter that would be nice.
i can then adjust it so it works with my code as well
Re: watermeter recognized as incremental
Posted: Saturday 22 November 2025 21:33
by waltervl
I looked at the code and it seems it is not possible. When m3 as unit of measure will create a incremental water meter or a gas meter. Perhaps you can define it as a gas meter for now or wait until the code changes and use a beta.
Re: watermeter recognized as incremental
Posted: Saturday 22 November 2025 21:59
by Gravityz
what code will create a normal counter?
i can can change the metrics( m3) to someting else but i need to know what will trigger the creation of a normal counter.
Re: watermeter recognized as incremental
Posted: Saturday 22 November 2025 22:52
by waltervl
Better wait till gizmocuz fixes the issue.
Re: watermeter recognized as incremental
Posted: Sunday 23 November 2025 19:18
by Gravityz
Hi Walter,
got things working.
today i got a brainwave and decided to look at the code myself.
This MQTT AD code is really strange, it works with a certain logic i do not understand.
it does not look at all at the state_class
it looks at units and icons
eg. when you specify an icon with the name water in it you get a rain sensor
if you specify anything which use pulse or pulses it figurs you need a counter incremental.
also if you specify l/min it does not understand l/hr however it seems to understand.(but it uses l/min)
this logic escapes me, why are things so illogical!!!!!!!!!!!!!!!!!
this is part of the MQTT AD code
else if (szUnit == "l/hr")
{
//our sensor is in Liters / minute
because the code is working with a lot of if/then statements you need to figur out what to use.
basically it defaults to counter incremental but if it can not find anything which matches the description it finally uses the RFXcounter i want.
here is part of the working code
because i had to state that i am using l/hr(which is not true) i also had to change the output with a factor 60(60 minutes in one hour)
this gives me a value inside the esphome which is 60 times to high but the value in the domoticz sensor is correct.
Code: Select all
sensor:
# ⬇ watermeter pulsen ⬇ #
- platform: pulse_meter
pin:
number: GPIO01
name: "Watermeter Pulse"
id: watermeter_pulse
internal_filter: 100ms
internal_filter_mode: PULSE
timeout: 16s
state_class: measurement
unit_of_measurement: "l/hr"
accuracy_decimals: 1
icon: "mdi:pump"
filters:
lambda: return x * 60;
on_value:
then:
- output.turn_on: pulse_led
- delay: 200ms
- output.turn_off: pulse_led
# ⬇ Totaal watermeter ⬇ #
total:
id: sensor_pulse_meter_total
name: "Watermeter Totaal"
unit_of_measurement: "m³"
state_class: total
device_class: energy
icon: "mdi:pump"
accuracy_decimals: 0
filters:
lambda: |-
if (isnan(id(num_from_text).raw_state)) {
return x + id(domoticz_watermeter_value).state;
} else {
return x + id(num_from_text).state;
}
Re: watermeter recognized as incremental
Posted: Sunday 23 November 2025 23:02
by waltervl
So it is still better to wait for Gizmocuz the fix this......
Re: watermeter recognized as incremental
Posted: Monday 24 November 2025 8:26
by Gravityz
agreed but it could well be that Gizmocuz will react with" Nothing wrong" because the things are detected in a strange way.
however i also filed a request on github regarding the waterflow.
it will not detect it correctly unless i specify l/hr
i asked for a second line of code which will also respond if the measurement unit is l/min.
Re: watermeter recognized as incremental
Posted: Tuesday 25 November 2025 9:59
by waltervl
Gravityz wrote: Monday 24 November 2025 8:26
agreed but it could well be that Gizmocuz will react with" Nothing wrong" because the things are detected in a strange way.
however i also filed a request on github regarding the waterflow.
it will not detect it correctly unless i specify l/hr
i asked for a second line of code which will also respond if the measurement unit is l/min.
Both issues fixed by GizMocuz in latest beta......
Re: watermeter recognized as incremental
Posted: Tuesday 25 November 2025 10:04
by Gravityz
Nice. will try it this week
i think this is the 2025.2 release.
i must say, inspecting the MQTTautodiscover.cpp gives you a lot of insight.
code is complex but it is easy to spot where things go wrong(in my case with the l/min)
i will wait for the new docker image which is behind the normal release