Detect "unusual" radiator activity just using the thermostat


yesterday, the ecological nightmare happened to me. I opened the window in the early morning to ventilate my bedroom and got a business call at the same time… distracted by the work i forgot to close the window and didn’t turn down the temperature until the late evening … -3°C outside vs 18°C target temperature inside resulted in an 13 hours fight coldness vs radiator (openhab told me that the valve state was nearly 13 hours on 95% valve opening until i closed it in the late evening)

… ouch, that hurts really!

Another sad message: Looking at the heat cost allocator it consumes a fourth of the total heat consumption of the whole heating period :frowning:

This should never ever happen again …

Now I am searching for a way to avoid such a situation …

Yes, the easiest way is to apply a window contact and send a message if the contact stays open too long. This would also address the general problem of forgotten open window.

But at the moment, my budget does not allow to equip everything with a window contact and I wonder if it is possible to detect such a situation just using the radiator thermostats (?)

I am equipped with the Max EQ-3 radiator thermostat using homegear and there are various channels that could be used.

My hope was the channel “valve state”, which is a number between 0 and 100 (percentage) and represents how much open the valve currently is.

My assumption was, if no heating happens, the state should be 0. But its not. Most of the thermostats of my home are 0 but some are also 5 or even 20 and the heater is cold at all. Another one is 60% and its hot.

So i think this does not work (unless somebody tells me that there is a threshold value that must be exceed to count as “heating”)

Does anybody has another idea how to detect such a situation just using this thermostat values? Or should i wait until my contact sensors?


It would help if the valve state and temperature are charted. Eg grafana. Heat maps are a nice way to display valves. When you know the usual behavior and correlations you can write rules to look for abnormal excursions… outlier events

They are already charted. So i record the new valve state in InfluxDB when they changed if its that what you mean.
But i think it might be complex anyway to detect some unusual behaviour from this datapoints … seems more a task for AI …
I mean … looking as a human at the chart does not give me a clue if its unusual or not, since valve state changes from 0 to 5 to 40 to 30 to 60 … yes … 95 is really obvious but i dont know if the radiator is really heating at valve state 60, i think it has to do with calibration of the valve. Even then: the threshold might apply for this concrete one but maybe not for all.

It is a pity that there is not temperature for the water flowing through the valve :frowning:

So you know the outside temperature from weather binding you know the valve percentage and the target temperature. Do you also know the inside temp?

You can setup a bayesian probability that you have left the window open and at a set percentage you can send a notification or telegram to tell you of the issue.

Not sure if this solution is acceptable but I have added a few door sensors to detect if any of my doors are open more than 30s and if so, to disable the radiators indoor (I have electrical radiators) to prevent overheating.

@John_Galt i don’t know if it’s a misunderstanding, but my problem are the windows that leads to energy wasting when opened. The situation: Somebody opens the window from inside and left it open without turning down the heaters thermostat. This situation came across to me very often but in the past i luckily noticed my mistake after a short time …

But yes, the ideal solution seems to be sensors on every window/door which turn down the temp to zero automatically, send a message etc. while the window is open and can also perfectly used as a intruder alarm.
But unfortunately there are 15 possible windows and 2 doors that i have to equip at least. Looking at my budget, thats not possible at the moment. So i thought there is a cheap way to use the heaters thermostat for this, but to me the solutions seems to be to complex :wink:


Sorry, just read the whole message now and saw that this was not an option. I think the problem then lies in that you have to learn how the valves work, it is really hard to guess as you say that they have their own personal behaviour that seems random.

I assume that the state represents the flow into the radiator, i.e how much the valve is open and if they are all mounted correctly and the radiator isn’t old, rusty or full of air, then there should be a relation between set temperature and real temperature. Since the thermostat probably is unaware of the temperature on the radiator it will probably be that difference that sets how much the valve is open.

What happens if you take one radiator and, at a given indoor temperature, increase the wanted temperature in increments, can that give you a clue on the relationship betweem the two temperaturers and the valve status?

If you remove a themostat and bring it outdoors, I assume it will still work and try to increase the temp, what happens then?

In the end I think that experimenting changing one variable at a time is the only way to figure out how they work, but don’t look at all of them, start with one, figure out how it works, then take another one and see if it fits the profile.

Sorry but that is all I can think of right now. You could place temperature sensors in the rooms and see if you can detect a sudden dropn in temperature unless the radiators are powerful enough to keep the room heated…

I have been thinking through your problem ever since I read your first post.

One option, that is probably more complicated than needs to be but might work:
-create a sum group item and put every valve in it. Make sure the group item is persisted so you can analyze data
-Let it run a week or so to get some initial data on what is normal for certain times of day.
-You could then set a rule that notifies you if it exceeds a specific number, I.e. 1600. This would be an absolute maximum.
-Alternatively, you could dial it down by hour. Perhaps from 0700-1200, you see ranges of 900 to 1400. Then create a rule that fires every 10 minutes via a cron job. Set an if condition for 0700-1200 (or, even better, use @rlkoshak ‘s “time of day” design pattern” , and another of statement if the group sum exceeds 1500.

Sorry this isn’t formatted well as I’m on my mobile. Let me know if it would be helpful to go into more detail on anything specific if you choose to pursue this approach.

I’d say the answer is hidden in the following statement:

What if you create a simple rule that tracks how long a certain valve stays above a certain threshold. If this goes on for too long the rules sends you a notification. Obviously you would have to experiment a bit with the value of the “valve opening threshold” and the timeout value for the notification, but I think you should be able to come up with something that can catch abnormal situations.

1 Like

Evohome detect open windows and doors by tracking the temp drop. If drops by more than n-degrees in n-minutes it assumes a window or door is open. You could do the same with OH.

If detected, remain off until temp comes back up past original-temp - 10 (or similar)

Or if valve open and temp reducing for n-minutes, there be trouble.

Belt and braces would be this and suggestions above

Thanks for your answer,

the problem is, that my “fully open window while -3°C outside” was an really extreme situation where the valve has no other chance than beeing open to whole time to fight against temperature from outside. So, a pretty obvious situation to detect.
But i also experienced situations where the valve works in heating phases … like so: 5 minutes open (95%) valve … 3 minutes closed (20%), 7 minutes open (85%), 2 minutes closed (5%) … this applies when the window is just tilted and not fully opened. I think this has also to do with the learning curve of the thermostat which can change over time. Yes, the energy will not drop as fast as with the open window, but it will.

So, next step for openhab: integrate AI :smiley:

Yes. My eq-3 also have this open window detection and normally it should work. A window symbol is shown and the temp is set to a pre chosen temp.
Don’t ask me why, but in that certain situation, it does not work.
I know there is an internal temp sensor in the themostat that measures the current room temp. I think the open window function will use that temp also to decide “window open” or not. But it seems not to work anyway.
So maybe i can find the time series in influx to analyze it first.

However, i wont rely just on that function …


Hi Dome,

sorry for causing sleepless nights :smiley:
By all thinking in advance of edge cases that may cause, it might be really better to start with some experiments to get at least a better feeling. So, your advice sounds reasonable to me.
I will start on holidays next week :slightly_smiling_face:


Up until very recently I was working night shift, so you actually just gave me something to think about to keep my brain occupied when I needed to stay up anyways!

Good luck! Let us all know what you come up with, I for one would love to see the results.

Saw this thread on Reddit. It’s about an forgotten fridge door, but case seems similar.

The big “advantage” of the linked case is the option of additional data provided by a power consumption sensor. Unfortunately, thats not an option for a radiator powered by central heating in a rented apartment.

Another option for a radiator could be a simple temperature sensor right on top of the radiator itself. Since the heat is going upwards, the temperature sensor should clearly measure a high temp on heating phase.
However, this seems even more hackish and not really cheaper than applying a door/window contact to the window :smiley:

I observed the thermostat in the bathroom the last days. This seems to behave a lot different than the one in the bedroom. Its just moving between 0% and 25% valve opening to keep a constant temperature, even when i ventilate for 30m, the valve just opens 25% which seems to be enough to heat up the room. Also, in a normal situation the valve is open very long, but the temp does not increase sometimes. I found out whats the problem and the reason will maybe destroy my plan …

I got this info from my facility manager: Our central heating unit has its own heating phases. That means when, for example, many people in the rest of the house taking a shower (usually when they come back from work between 5-7pm), the central heating prioritizes the warm water preparation first.

In that time it could be, that for x minutes (up to 30 minutes is my experience) the heater can be cold.

I also noticed, that the radiator often will not get warm immediately, when i “boost” (open valve 100% for 5 minutes) … this has also to do with the “intelligence” of the central heating. I don’t know how this works in detail, but the facility manager gave me the advice to set up a constant temp for the whole day and don’t let the rooms cool down over the day, since i can not expect that the radiator immediately will give heat in the evening hours when i come back from work.

So i guess my thermostat on the radiator itself will open anyway and waits until the room temp has increased to the target temp. In that case, the valve will be open for an hour, but effective heat phase was only last 5 minutes of that hour (when the central heating starts to work)

With this preconditions it doesnt make any sense to use the valve state for an estimation of the current real heating situation.