Hey everyone, I wanted to share my experience with using openHAB to monitor water meters using MQTT. It’s been a fascinating journey, and I’ve learned a lot along the way. I’m using ESP8266 devices flashed with Tasmota to report counter values every minute. At first, everything was working perfectly, but after about two weeks, four of the seven meters stopped showing data in openHAB. The logs indicated that MQTT messages were being dropped, and I noticed that the memory usage of openHAB had increased to 21.4%. After restarting openHAB, the issue was resolved temporarily, but I’m concerned it might happen again as the memory usage slowly increases.
I’ve set up some rules to calculate water flow and trigger alarms if the flow exceeds a certain threshold. Here’s a snippet of the rules I’m using for two water meters:
plaintext
rule “Watermeter1 debiet en alarm”
when Item Watermeter1_Pulsecounter received update
then
var Number diff = ((Watermeter1_Pulsecounter.state as Number) - oldCounter1)/(interval*10)
if (diff < 0) diff = 0
delta1.sendCommand(diff)
if (((delta1.averageSince(now.minusMinutes(timeBack)) as Number) > avgThreshold) && (oldCounter1 != 0) && (warned1 == 0)) {
warned1 = 1
logWarn(“watermeter”, “De kraan van watermeter 1 staat open!”)
commandSMS.sendCommand(ON)
} else if (((delta1.averageSince(now.minusMinutes(timeBack)) as Number) < avgThreshold) && (warned1 == 1)) {
warned1 = 0
}
oldCounter1 = (Watermeter1_Pulsecounter.state as Number)
end
rule “Watermeter2 debiet”
when Item Watermeter2_Pulsecounter received update
then
var Number diff = ((Watermeter2_Pulsecounter.state as Number) - oldCounter2)/(interval*10)
if (diff < 0) diff = 0
delta2.sendCommand(diff)
oldCounter2 = (Watermeter2_Pulsecounter.state as Number)
end
The delta items are persisted using rr4dj with a strategy of everyUpdate, everyMinute, and restoreOnStartup. I’m wondering if the increasing memory usage in openHAB is related to this setup. Has anyone experienced similar issues or have suggestions on how to optimize this? I’d really appreciate any insights or advice you might have. Thanks in advance!