Python plugin: ELV/EQ-3 MAX!

For heating/cooling related questions in Domoticz

Moderator: leecollings

mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by mvzut »

DarkG wrote:here is mine
I think that's your actual temperature, not your setpoint, correct? We were discussing about the setpoint graph here.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
Umberto
Posts: 15
Joined: Saturday 03 March 2018 10:16
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by Umberto »

Hi mvzut,

I reinstalled domoticz (the complete pi actually) and had to reinstall eQ3 MAX also. As you already thought, the issue was somewhere deep in the config of the MAXCube. Thx for your hint.

Regarding the discussion of the shape of the setpoint: I couldn't make a snapshot so quickly, but mine are also smoothened by domoticz (I run latest stable: 4.9700).

Thx.

Best regards.
michass
Posts: 21
Joined: Tuesday 27 March 2018 14:39
Target OS: NAS (Synology & others)
Domoticz version: 4.10064
Location: Gdynia
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by michass »

Hi,
I have new instance of domoticz with new pull of MAX! plugin.
I have problem with halves,
when I try to set e.g. 22.5 or 20.5 thermostats get wierd settings or do nothing.
Please help.
Synology NAS
Heating: eq-3 MAX!
Vent: by Sonoff POW R2 & Espeasy
Cam: Foscam C1
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by mvzut »

michass wrote:Hi,
I have new instance of domoticz with new pull of MAX! plugin.
I have problem with halves,
when I try to set e.g. 22.5 or 20.5 thermostats get wierd settings or do nothing.
Please help.
I did not change anything related to setpoints in the last version, this has been pretty much the same since the first version. I have never experienced issues with this myself, or heard others mention this.
Can you post what the log says when you set such a setpoint? How do you set the setpoint, using the web UI, with a script, via the JSON API?
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
michass
Posts: 21
Joined: Tuesday 27 March 2018 14:39
Target OS: NAS (Synology & others)
Domoticz version: 4.10064
Location: Gdynia
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by michass »

I have also new instance of max cube configuration.
I have same structure, but maybe names are not 100% simillar.
How do you identify devices? Serial number, rf adress, or maybe other data?
when i want to change some room, then other room switch too. Structure rooms and units is correct(same as previous).
Maybe this is problem with my halves of deg.
Best Regards
Michał
Synology NAS
Heating: eq-3 MAX!
Vent: by Sonoff POW R2 & Espeasy
Cam: Foscam C1
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

Python plugin: ELV/EQ-3 MAX!

Post by mvzut »

michass wrote:I have also new instance of max cube configuration.
I have same structure, but maybe names are not 100% simillar.
How do you identify devices? Serial number, rf adress, or maybe other data?
when i want to change some room, then other room switch too. Structure rooms and units is correct(same as previous).
Maybe this is problem with my halves of deg.
Best Regards
Michał
The plugin uses the rf addresses. So if you set up the Cube again without removing the plugin, it doesn't create new devices since it notices they already have been created. Doesn't matter if the names are not the same.

Also in your case, I suspect that something is wrong with the Cube configuration. You might think: But I just reinstalled it. But in my experience, this is exactly where things can go wrong, I had this myself two times. I suspect the rooms are sometimes set up incorrectly in the Cube during installation. Best thing you can probably do is do a hard reset of the Cube and set up everything again.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
Umberto
Posts: 15
Joined: Saturday 03 March 2018 10:16
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by Umberto »

Hi all,

As mvzut mentions: this is probably a MaxCube issue. I also had this and can confirm that rebuilding the Cube may help (took me quite some tries). What I noticed (at least helped me): creating a new room, and moving devices to that new room helped in solving. You will be stuck with an empty room, but the issue is over.

Good luck.
janvangent2
Posts: 40
Joined: Thursday 18 October 2018 9:50
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by janvangent2 »

Today I did my second domoticz+Max!+this pythong plugin install (this time at my parents in law's house).
Runs great!

Now, both my parents in law as myself have a rather old heater. In the next year we would both like to invest in a new gas heating system.
Currently I'm using a ESP8266 + relay to turn on/off the heater based on the heat demand switch.
However, newer heaters can be controlled in a more efficient way (modulating) instead of on/off. Opentherm protocol, using the opentherm gateway can be used for this communication.

So I was wondering how this could be implemented for the python plugin?
If I'm correct, modulating heaters use data on exterior temperature, actual temperature of the room and setpoint of the room to calculate how hot the water should be made for the most efficient heating.
How could this be implemented in this case?
So combine eq-3 max! software, with OpenThermGateway and controlling modulating heaters, using smart thermostat software?

Any ideas on this? Would be a great addition to the plugin, to make it future-proof.

I was thinking of the folowing:
If 1 valve requires heat (>25%), increase temperature setpoint boiler to for example 45°C. In case cold outside (<5°C, make this 50°C).
If 1 valve requires a lot of heat (>75%), or if a valve has been requiring heat (>25°C) for more than 30 minutes, increase boiler setpoint to 55°C
If multiple valves require a lot of heat (>75%), set boiler temperature to 70°C
If possible, it might be nice to add some extra levels/steps in between to make control more fluent/steady.

(a condesation gas boiler has maximum efficiency at low outlet temperatures, for example 50 °C, so modern installations prefer to have the heater running for a large portion of the time, but at a low output temperature, instead of switching it on/off at temperatures of 70°C as old systems do)
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

Python plugin: ELV/EQ-3 MAX!

Post by mvzut »

What you are suggesting would indeed be very nice! However, there are a couple of things that we need to solve before we could start implementing such functionality:

First of all, how are we going to control the heater? I have an OTGW with a Remeha Calenta, but as far as I know I cannot force it to turn on with a certain heating water temperature. I can only make it go on if I set the thermostat to something high (I use 21 degrees), or by using an external trigger (wire) like you do. I can tell my boiler what the MAXIMUM temperature is that it is allowed to use. But the internal logic determines the actual water temperature setpoint, based on current outside and inside temperatures and probably also the thermal behavior of my house. I have no idea if I can somehow overrule this, but I haven't found a control within OTGW for this yet.

Secondly, even if we were able to overrule the boiler's own algorithm for determining the ideal heating water temperature, based on the heat demand in the various rooms, how would the formula look like? Of course we can experiment. But I believe companies building modulating boilers have put lots of effort in optimizing this formula, and I'm afraid we are going to make it worse instead of better...

Please correct me if I interpret your idea wrong, but how I understood it, it's going to be a difficult job. By playing with the maximum temperature we might be able to force it to go to a low temperature when this seems possible, but it will require quite some experimenting. If you or others have concrete ideas on how it could be done, please share!
Last edited by mvzut on Sunday 20 January 2019 23:40, edited 5 times in total.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

Python plugin: ELV/EQ-3 MAX!

Post by mvzut »

Ok, to start off, I have one idea:
You can already start experimenting without any change to the plugin. If you write a script that calculates the average opening percentage of the valves, you could use this value, together with some outside & inside temperatures, to determine the "ideal" maximum CH water temperature. You can then set this value in the corresponding OTGW device (I believe it's called "Max_CH Water Setpoint" by the OTGW plugin by default).

If it makes it easier for you, I could let the MAX plugin create a device with the average opening percentage of all valves. But the rest of the devices you need for the calculation of the optimal temperature are outside the scope of the MAX plugin. This means that they are difficult to use from the plugin (has to do with the Python plugin architecture), and much easier to be read/updated by (Lua/Dzvents/Blockly) scripts.

By the way, thinking about it a bit longer, I believe we should probably not even try to add such complicated functions to the plugin. The architecture of Domoticz is such that plugins are purely intended to connect to hardware (that's why they're under the Settings > Hardware menu), and scripts are intended to determine the logic about what should switch how and when.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
DarkG
Posts: 89
Joined: Friday 15 September 2017 18:54
Target OS: Raspberry Pi / ODroid
Domoticz version: 4.10076
Location: Germany
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by DarkG »

I think the boiler will modulate himself. No need to do this extern.

My boiler is build in 1989 and it can be modulated. But in other forums some people do research and they said there is no need to do this.
RPi4 Shelly1 Shelly2.5 ESPEasy Tuya Domoticz Beta Dashticz 3.6
DarkG
Posts: 89
Joined: Friday 15 September 2017 18:54
Target OS: Raspberry Pi / ODroid
Domoticz version: 4.10076
Location: Germany
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by DarkG »

Giving the valves priority numbers would be better. When the Guestroom is the only one who needs heats i would not turn on boiler. Only when a high priority valves needs heat too.
RPi4 Shelly1 Shelly2.5 ESPEasy Tuya Domoticz Beta Dashticz 3.6
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by mvzut »

DarkG wrote: Monday 21 January 2019 13:24 Giving the valves priority numbers would be better. When the Guestroom is the only one who needs heats i would not turn on boiler. Only when a high priority valves needs heat too.
Probably a good idea (although the guest room should have a higher priority if you have guests I guess ;-))
But again, I believe that this kind of functionality is so specific and personal, that plugins are not the right place to implement it. This is exactly what the events (scripting) system was intended for, in my humble opinion.

If people are strugling getting something like this programmed in a time- or device-based script, I wouldn't mind writing a Lua sketch that can be customized to your own needs.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

Python plugin: ELV/EQ-3 MAX!

Post by mvzut »

DarkG wrote:I think the boiler will modulate himself. No need to do this extern.

My boiler is build in 1989 and it can be modulated. But in other forums some people do research and they said there is no need to do this.
This is probably the reason why you cannot force a boiler to switch on with a given temperature using OTGW. Only the maximum temperature can be controlled, the boiler decides for itself which temperature it will use at any given point in time (and is probably better at that compared to our own experimental approaches). Even if it doesn't know the heat demand (i.e. the opening percentage of the valves), I believe it will estimate this by looking at the difference between the supply and return temperature.

On the other hand, it doesn't hurt to do a small experiment. In my setup, I turn the boiler on (by setting the thermostat to 21 degrees, which is above my normal room temperature) when one of the MAX valves requires heat. If my living room (where the main thermostat is located) is warm enough (let's say 19.5 degrees), a script will turn off that whole group by closing an electromagnetic valve (I have floor heating there). When just one MAX valve needs heat, the boiler needs time to find that out just by looking at the differential temperature. It eventually works, but there is some nervous switching in the beginning I noticed. It might just be a good idea if I set the maximum temperature a bit lower in such cases. I think I'm going to experiment with this a bit in the coming days.
Last edited by mvzut on Monday 21 January 2019 22:07, edited 2 times in total.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
janvangent2
Posts: 40
Joined: Thursday 18 October 2018 9:50
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by janvangent2 »

So instead of using the Max! hardware, this python plugin and a relay switch to turn on/off the heat demand, the alternative would be:

Using the max! hardware and python plugin to determine if there is heat requested in one (or more) room(s). If so, it sets the setpoint of a thermostat to a value higher than the temperature in the room where the thermostat is located.
OK that could work :) How do you control that thermostat, and which thermostat do you advise?
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by mvzut »

janvangent2 wrote: Monday 21 January 2019 19:53 So instead of using the Max! hardware, this python plugin and a relay switch to turn on/off the heat demand, the alternative would be:

Using the max! hardware and python plugin to determine if there is heat requested in one (or more) room(s). If so, it sets the setpoint of a thermostat to a value higher than the temperature in the room where the thermostat is located.
OK that could work :) How do you control that thermostat, and which thermostat do you advise?
Yes that works :)
I control the thermostat (a Remeha iSense) with an OpenTherm Gateway (OTGW), see http://otgw.tclcode.com. There is a list of thermostats that are known to work, although I don't know how well this is maintained, could be that more thermostats will work. At the moment, it seems that the only place where you can buy the OTGW is here. There might be (OpenTherm) thermostats with direct support in Domoticz, but I haven't investigated this myself yet.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
DarkG
Posts: 89
Joined: Friday 15 September 2017 18:54
Target OS: Raspberry Pi / ODroid
Domoticz version: 4.10076
Location: Germany
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by DarkG »

janvangent2 wrote: Monday 21 January 2019 19:53 So instead of using the Max! hardware, this python plugin and a relay switch to turn on/off the heat demand, the alternative would be:

Using the max! hardware and python plugin to determine if there is heat requested in one (or more) room(s). If so, it sets the setpoint of a thermostat to a value higher than the temperature in the room where the thermostat is located.
OK that could work :) How do you control that thermostat, and which thermostat do you advise?
The Problem is if the thermostal closes before reaching the setpoint in software, the software thermostat would work endless against the mechanical thermostat.

Thats why you have to dismount the thermostat in the room which the boiler have his temp sensor/control.

That was my problem with my old boiler. I had only one regulator in living room. If the settemp was reached the boiler gone off. So other rooms were cold.
RPi4 Shelly1 Shelly2.5 ESPEasy Tuya Domoticz Beta Dashticz 3.6
DarkG
Posts: 89
Joined: Friday 15 September 2017 18:54
Target OS: Raspberry Pi / ODroid
Domoticz version: 4.10076
Location: Germany
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by DarkG »

mvzut wrote: Monday 21 January 2019 16:35
DarkG wrote: Monday 21 January 2019 13:24 Giving the valves priority numbers would be better. When the Guestroom is the only one who needs heats i would not turn on boiler. Only when a high priority valves needs heat too.
Probably a good idea (although the guest room should have a higher priority if you have guests I guess ;-))
But again, I believe that this kind of functionality is so specific and personal, that plugins are not the right place to implement it. This is exactly what the events (scripting) system was intended for, in my humble opinion.

If people are strugling getting something like this programmed in a time- or device-based script, I wouldn't mind writing a Lua sketch that can be customized to your own needs.
I think like this:

Givin for each valve a prio number. Like Low Prio 1 and High Prio 2
prio = (valve1+valve2+valve3+valve4)
1 1 2 2

if prio =<2 then heat

When high prio needs heat directly heat demand
With low prio only when 2 valves need heat


The Question is, will it be overkill for a plugin? The good thing at your plugin is, it is simple and easy. It could be to complicated for other users when you add more features or you must edit the plugin manually.
RPi4 Shelly1 Shelly2.5 ESPEasy Tuya Domoticz Beta Dashticz 3.6
mvzut
Posts: 443
Joined: Thursday 12 November 2015 10:55
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: The Netherlands
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by mvzut »

DarkG wrote:That was my problem with my old boiler. I had only one regulator in living room. If the settemp was reached the boiler gone off. So other rooms were cold.
The solution for this is to set the setpoint higher than the temperature you want the living room to actually reach. And then also put (MAX) valves on the radiators in the living room, to avoid it will ever reach that temperature.
In my case it was not possible to add MAX valves since I have floor heating, that is why I installed a Honeywell electromagnetic valve (which is a bit more complicated to do yourself obviously). But the principle is the same.
Raspberry Pi 4 - RFXtrx433 - CC2531 Zigbee - Opentherm Gateway - P1 smart meter - Netatmo - Philips Hue - ELV Max! - ESP8266 DIY water meter - 6 x Sonos - 4 x IP cameras - Wall mounted tablet + Dashticz - Google Home integration - MANY switches/sensors
janvangent2
Posts: 40
Joined: Thursday 18 October 2018 9:50
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Python plugin: ELV/EQ-3 MAX!

Post by janvangent2 »

mvzut wrote: Tuesday 22 January 2019 6:57
DarkG wrote:That was my problem with my old boiler. I had only one regulator in living room. If the settemp was reached the boiler gone off. So other rooms were cold.
The solution for this is to set the setpoint higher than the temperature you want the living room to actually reach. And then also put (MAX) valves on the radiators in the living room, to avoid it will ever reach that temperature.
In my case it was not possible to add MAX valves since I have floor heating, that is why I installed a Honeywell electromagnetic valve (which is a bit more complicated to do yourself obviously). But the principle is the same.
OK, so in fact I need to buy a thermostat+boiler, with either direct compatibility in domoticz, or with openthermgateway.
I guess I should be looking for a "dumb" thermostat, since I'll be "fooling" the thermostat anyway by altering the setpoint through domoticz. I won't need any of the "smart" functions of a NEST or similar thermostats (self-learning, geofencing,...).
Anyone has any ideas on which thermostat would work with modulating boilers, but is cheap and dumb? :D
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest