Help with multi zone heating script?

For heating/cooling related questions in Domoticz

Moderator: leecollings

Post Reply
erikjanverweij
Posts: 17
Joined: Thursday 06 October 2016 12:36
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Woerden (NL)
Contact:

Help with multi zone heating script?

Post by erikjanverweij »

Is there someone who can help me write a lua multi zone heating script? I have a blocky script working with setdevicetemperature, but the script is not so reliable and sometimes the Heater keeps burning.

My setup is:
Aronlabs gen5 z-wave stick
2 danfoss z-wave radiator valves (Bathroom and studio)
2 temperature sensors (bathroom and studio)
I added a qubino relay switch to the CV heating so that I can overrule the on-of thermostat.

For now the livingroom is controled by the on-of thermostat and I want to write a script to seperately heat the studio and bathroom.

In the future I want to expand My setup and add also the livingroom to the script with extra valves and temperature sensors.

Hope there is someone who can help.
User avatar
Egregius
Posts: 2582
Joined: Thursday 09 April 2015 12:19
Target OS: Linux
Domoticz version: v2024.7
Location: Beitem, BE
Contact:

Re: Help with multi zone heating script?

Post by Egregius »

Seems pretty straight forward.
If bathroom is to cold or studio is to cold switch heater on.
But how will you prevent overheating of the living room?
If you want some advanced control you can look look at 'badkamer_temp' and 'verwarming' of my pass2php script: https://egregius.be/2016/lua-pass2php-v ... te-script/
erikjanverweij
Posts: 17
Joined: Thursday 06 October 2016 12:36
Target OS: Raspberry Pi / ODroid
Domoticz version: Beta
Location: Woerden (NL)
Contact:

Re: Help with multi zone heating script?

Post by erikjanverweij »

Beceause the old heater passed away, i installed a new one and I upgraded my configuration with an OTGW and 2 extra valves in the living room.

The configuration now looks like this:

Living room with thermostat connected to OTGW:
- actual temperature: woonkamer actueel
- desired temperature: woonkamer gewenst
- radiator valve 1: radiator woonkamer 1
- radiator valve 2: radiator woonkamer 2

Bathroom:
- actual temperature: badkamer actueel
- desired temperature: Badkamer gewenst
- radiator valve: radiator badkamer

Studio:
- actual temperature: werkkamer actueel
- desired temperature: Werkkamer gewenst
- radiator valve: radiator werkkamer

The question is how to control the rooms seperate and still be able to trigger the heating device to start/stop via the OTGW. As the thermostat controls the temperature in the living room but also triggers the OTGW to heat.
Is there another OTGW setpoint I can use so that the living room will not be influenced when i dont need to?

Could Anyone help me with writing a script?
dervogt
Posts: 26
Joined: Thursday 30 June 2016 9:00
Target OS: Raspberry Pi / ODroid
Domoticz version: BETA
Location: Amsterdam
Contact:

Re: Help with multi zone heating script?

Post by dervogt »

I have setup the additional relay as switch in my domotics (I am using a piface relay to switch the low voltage control line from my thermostat to the circulation pump) and using this code in one of my scripts to control the heating, note that I am first triggering the pump to switch on as there are minimum two valves below their setpoint temperature:

Code: Select all

 if ((otherdevices[HeatingSwitch] == 'On') and (otherdevices[PresenceSwitch] == 'On')) then -- It's time to heat the house
 
            if (otherdevices[BoilerSwitch] == 'Off') then --If a minimum of 'MinValves' valves are on by more that pre-set value BoilerOnPercent
 
                     if printDebug == true then
                     print ("Test On 1/3 passed - Boiler is OFF ")
                     end   
 
               if (PercentMax > BoilerOnPercent) then
 
                     if printDebug == true then
                     print ("Test On 2/3 passed - Radiators are open beyond the threshold ")
                     end               
 
                  if (ValveCount >= MinValves) or (PercentMax >= ValvePercentOveride) then
 
                     if printDebug == true then
                     print ("Test On 3/3 passed - Either multiple valves are open or override count is reached ")
                     end   
 
                  commandArray[BoilerSwitch]='On' -- turn on boiler
                  ValveCount = ValveCount + 1
                  table.insert(commandArray, {['OpenURL'] = 'http://127.0.0.1:8080/json.htm?type=command&param=updateuservariable&vname=valvecount&vtype=2&vvalue='..ValveCount})
                        if printData == true then
                        print ("Command sent - Turn ON Boiler ")
                        end
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest