Advise for new install

For heating/cooling related questions in Domoticz

Moderator: leecollings

Post Reply
n1c0l45
Posts: 37
Joined: Monday 25 April 2016 9:45
Target OS: Raspberry Pi / ODroid
Domoticz version: V3.4834
Location: France
Contact:

Advise for new install

Post by n1c0l45 »

Hi,

I have to change my heating thermostat and I would like to do something more efficient but I have to think also about the waf....
Today, I have a old gas boiler (no regulation, just on/off), 7 rooms with a radiator in each room. There are temp sensors connected to dmz also in each room.
I don't know if it's better to do multi zones (we use all rooms, maybe just the bathrooms which need heating just the morning?) or just to a full pid regulation for everything...
What do you recommend me? I just want to be able to change temp from my phone (even in domoticz?)
I saw elv max!, atag one, honeywell? Seems nice! But is it efficient? Also I don't have high programming skills so....

Thank you for the help
Last edited by n1c0l45 on Tuesday 02 August 2016 15:46, edited 1 time in total.
User avatar
Egregius
Posts: 2592
Joined: Thursday 09 April 2015 12:19
Target OS: Linux
Domoticz version: v2024.7
Location: Beitem, BE
Contact:

Re: Advise for new install

Post by Egregius »

I also have a old gas boiler with simple on/off.
I removed my room thermostat and replaced it with a zwave relay. That one turn's the boiler on/off.
On all radiator's I have Danfoss LC-13 thermostats.
In each room a thermometer is installed (Fibaro Smoke sensor) and for each room I have a dummy setpoint device.
Depending on all that numbers a script decides if the boiler needs to be on or not.
Works perfectly but requires some programming skills.
n1c0l45
Posts: 37
Joined: Monday 25 April 2016 9:45
Target OS: Raspberry Pi / ODroid
Domoticz version: V3.4834
Location: France
Contact:

Re: Advise for new install

Post by n1c0l45 »

Thanks for the quick answer!
This seems interesting! I have thought about something like that, but if can find an explanation or a how to, I don't think I, I'll be able to do it
User avatar
Egregius
Posts: 2592
Joined: Thursday 09 April 2015 12:19
Target OS: Linux
Domoticz version: v2024.7
Location: Beitem, BE
Contact:

Re: Advise for new install

Post by Egregius »

A part of my lua2php script:
http://www.domoticz.com/forum/viewtopic ... t=pass2php

Code: Select all

$Setkamer=8.0;$setpointkamer=cget('setpointkamer');
if($setpointkamer!=0&&strtotime($t['kamer_set'])<eenuur){cset('setpointkamer',0);$setpointkamer=0;}
if($setpointkamer!=2){
    if($buiten_temp<15&&$s['raamkamer']=='Closed'&&$s['heating']=='On'&&(strtotime($t['raamkamer'])<tweeuur||time>achtavond)){
        $Setkamer=12.0;
        if(time<zevenochtend||time>achtavond)$Setkamer=16.0;
    }
    if($s['kamer_set']!=$Setkamer){ud($i['kamer_set'],0,$Setkamer,'Rkamer_set');$s['kamer_set']=$Setkamer;}
}    
$Settobi=8.0;$setpointtobi=cget('setpointtobi');
if($setpointtobi!=0&&strtotime($t['tobi_set'])<eenuur){
    cset('setpointtobi',0);$setpointtobi=0;
}
if($setpointtobi!=2){
    if($buiten_temp<15&&$s['raamtobi']=='Closed'&&$s['heating']=='On'&&(strtotime($t['raamtobi'])<tweeuur||time>achtavond)){
        $Settobi=12.0;
        if(date('W')%2==1){
                 if(date('N')==3)if(time>achtavond)$Settobi=16.0;
            elseif(date('N')==4) if(time<zevenochtend||time>achtavond) $Settobi=16.0;
            elseif(date('N')==5) if(time<zevenochtend)$Settobi=16.0;
        }else{
                 if(date('N')==3) if(time>achtavond)$Settobi=16.0;
            elseif(in_array(date('N'),array(4,5,6)))if(time<zevenochtend||time>achtavond) $Settobi=16.0;
            elseif(date('N')==7) if(time<zevenochtend)$Settobi=16.0;
        }
    }
    if($s['tobi_set']!=$Settobi){ud($i['tobi_set'],0,$Settobi,'Rtobi_set');$s['tobi_set']=$Settobi;}
}
$Setalex=8.0;$setpointalex=cget('setpointalex');
if($setpointalex!=0&&strtotime($t['alex_set'])<achtuur){cset('setpointalex',0);$setpointalex=0;}
if($setpointalex!=2){
    if($buiten_temp<17&&$s['raamalex']=='Closed'&&$s['heating']=='On'&&(strtotime($t['raamalex'])<tweeuur||time>achtavond)){
        $Setalex=12.0;
        if(time<strtotime('8:00')||time>achtavond)$Setalex=18.5;
    }
    if($s['alex_set']!=$Setalex){ud($i['alex_set'],0,$Setalex,'Ralex_set');$s['alex_set']=$Setalex;}
}
$Setliving=14.0;$setpointliving=cget('setpointliving');
if($setpointliving!=0&&strtotime($t['living_set'])<drieuur){cset('setpointliving',0);$setpointliving=0;}
if($setpointliving!=2){
    if($buiten_temp<20&&$s['heating']=='On'&&$s['raamliving']=='Closed'){$Setliving=17.0;
             if(time>=strtotime('3:00')&&time<zevenochtend)$s['slapen']=='Off'?$Setliving=20.5:$Setliving=17.0;
        elseif(time>=zevenochtend&&time<strtotime('22:30'))$s['slapen']=='Off'?$Setliving=20.5:$Setliving=17.0;
    }
    if($s['living_set']!= $Setliving){ud($i['living_set'],0,$Setliving,'Rliving_set');$s['living_set']=$Setliving;}
}
if($s['deurbadkamer']=="Open") {
    if($s['badkamer_set']!=10&&(strtotime($t['deurbadkamer'])<eenmin||$s['lichtbadkamer']=='Off')){ud($i['badkamer_set'],0,10,'badkamer_set 10 deur open');$s['badkamer_set']=10;}
}elseif($s['deurbadkamer']=="Closed"){
    if($s['lichtbadkamer']=='On'&&$s['badkamer_set']!=22){ud($i['badkamer_set'],0,22,'badkamer_set 22 deur dicht en licht aan');$s['badkamer_set']=22;}
    elseif($s['lichtbadkamer']=='Off'&&$s['badkamer_set']!=15){ud($i['badkamer_set'],0,15,'badkamer_set 15 deur dicht en licht uit');$s['badkamer_set']=15;}
}
$kamers=array('living','badkamer','tobi','alex','kamer');
$kamersgas=array('living','alex');
$bigdif=100;$brander=$s['brander'];$Tbrander=strtotime($t['brander']);$Ibrander=$i['brander'];
foreach($kamers as $kamer){
    ${'dif'.$kamer}=number_format($s[$kamer.'_temp']-$s[$kamer.'_set'],1);
    if(in_array($kamer,$kamersgas))if(${'dif'.$kamer} < $bigdif) $bigdif=${'dif'.$kamer};
    ${'Set'.$kamer}=number_format($s[$kamer.'_set'],1);
}
foreach($kamers as $kamer){
    if(${'dif'.$kamer}<=number_format(($bigdif+ 0.2),1)&&${'dif'.$kamer}<1)${'RSet'.$kamer}=setradiator($kamer,${'dif'.$kamer},true,$s[$kamer.'_set']);
    else ${'RSet'.$kamer}=setradiator($kamer,${'dif'.$kamer},false,$s[$kamer.'_set']);
}
if($s['kamerZ']!=$RSetkamer)ud($i['kamerZ'],0,$RSetkamer,'RkamerZ');
if($s['tobiZ']!=$RSettobi)ud($i['tobiZ'],0,$RSettobi,'RtobiZ');
if($s['alexZ']!=$RSetalex)ud($i['alexZ'],0,$RSetalex,'RalexZ');
//if($s['badkamerZ']!=$RSetbadkamer)ud($i['badkamerZ'],0,$RSetbadkamer,'RbadkamerZ');
if($s['livingZ']!=$RSetliving)ud($i['livingZ'],0,$RSetliving,'RlivingZ');
if($s['livingZZ']!=$RSetliving)ud($i['livingZZ'],0,$RSetliving,'RlivingZZ');
if($s['livingZE']!=$RSetliving)ud($i['livingZE'],0,$RSetliving,'RlivingZE');
if($bigdif<=-0.3&&$brander=="Off"&& $Tbrander<time-60)sw($Ibrander,'On','brander dif = '.$bigdif);
elseif($bigdif<=-0.2&&$brander=="Off"&& $Tbrander<time-120)sw($Ibrander,'On','brander dif = '.$bigdif);
elseif($bigdif<=-0.1&&$brander=="Off"&& $Tbrander<time-180)sw($Ibrander,'On','brander dif = '.$bigdif);
elseif($bigdif<=0&&$brander=="Off"&& $Tbrander<time-240)sw($Ibrander,'On','brander dif = '.$bigdif);
elseif($bigdif>=0.1&&$brander=="On"&& $Tbrander<time)sw($Ibrander,'Off','brander dif = '.$bigdif);
elseif($bigdif>=0&&$brander=="On"&& $Tbrander<time-60)sw($Ibrander,'Off','brander dif = '.$bigdif);
elseif($bigdif>=-0.1&&$brander=="On"&& $Tbrander<time-120)sw($Ibrander,'Off','brander dif = '.$bigdif);
elseif($bigdif>=-0.2&&$brander=="On"&& $Tbrander<time-180)sw($Ibrander,'Off','brander dif = '.$bigdif);
elseif($bigdif>=-0.3&&$brander=="On"&& $Tbrander<time-240)sw($Ibrander,'Off','brander dif = '.$bigdif);
$badkvuur=$s['badkamervuur'];$Tbadkvuur=strtotime($t['badkamervuur']);$Ibadkvuur=$i['badkamervuur'];
if($difbadkamer<=-0.2&&$badkvuur=="Off"&&$Tbadkvuur<time-180)sw($Ibadkvuur,'On','badkamervuur dif = '.$difbadkamer);
elseif($difbadkamer<=-0.1&&$badkvuur=="Off"&&$Tbadkvuur<time-240)sw($Ibadkvuur,'On','badkamervuur dif = '.$difbadkamer);
elseif($difbadkamer<=0&&$badkvuur=="Off"&&$Tbadkvuur<time-360)sw($Ibadkvuur,'On','badkamervuur dif = '.$difbadkamer);
elseif($difbadkamer>=0.1&&$badkvuur=="On"&&$Tbadkvuur<time)sw($Ibadkvuur,'Off','badkamervuur dif = '.$difbadkamer);
elseif($difbadkamer>=0&&$badkvuur=="On"&&$Tbadkvuur<time-45)sw($Ibadkvuur,'Off','badkamervuur dif = '.$difbadkamer);
elseif($difbadkamer>=-0.1&&$badkvuur=="On"&&$Tbadkvuur<time-90)sw($Ibadkvuur,'Off','badkamervuur dif = '.$difbadkamer);
elseif($difbadkamer>=-0.3&&$badkvuur=="On"&&$Tbadkvuur<time-150)sw($Ibadkvuur,'Off','badkamervuur dif = '.$difbadkamer);
Lot's of code :P
Basically it schedules the desired temperature of all virtual and real setpoints (valves).
It calculates how much heating is needed and depending on that the boiler is switched. To avoid overheating I 'pulse' the boiler of the temperature is almost achieved.
The cget function in it grabs a tempory variable that allows a manual override (sometimes I just want it a bit warmer than the schedule), after 3 hours I return to the auto-schedule.
Also, full automatically setpoints are set depending on wether we're at home and/or a sleep.
n1c0l45
Posts: 37
Joined: Monday 25 April 2016 9:45
Target OS: Raspberry Pi / ODroid
Domoticz version: V3.4834
Location: France
Contact:

Re: Advise for new install

Post by n1c0l45 »

Thank you, I gonna read all this.
Do you know if the thermostatic head you have are hysteresis or pid regulation?
User avatar
Egregius
Posts: 2592
Joined: Thursday 09 April 2015 12:19
Target OS: Linux
Domoticz version: v2024.7
Location: Beitem, BE
Contact:

Re: Advise for new install

Post by Egregius »

Don't know. It's the Danfoss LC-13.
You set a temperature and they open/close as needed.
markk
Posts: 267
Joined: Tuesday 14 January 2014 14:50
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Advise for new install

Post by markk »

I went for Tado for heating and wouldn't have anything else now. I originally wanted to integrate my Heating with Domoticz for control but soon realised I didn't need to. Like you, we use all rooms so zoned heating wasn't necessary apart from ordinary TRD's just keeping temperatures equal. Tado is set for a comfortable temperature during the day and another for sleep time and I can honestly say I haven't touched it since then. It automatically turns the heating down as the last person leaves the house and knows when the first person is heading home so it's back up again when we arrive. Only thing is, I did get the gen 1 some time ago and I think it was cheaper then. prices may have gone up a bit now.
Running Domoticz on Pi3 with RFXtrx433e. LWRF power sockets and dimmer switches. Integrated my existing wirefree alarm PIRs and door contacts with domoticz. Geofencing with Pilot. Harmony Hub. Tado for Heating. Now playing with mysensors.
n1c0l45
Posts: 37
Joined: Monday 25 April 2016 9:45
Target OS: Raspberry Pi / ODroid
Domoticz version: V3.4834
Location: France
Contact:

Re: Advise for new install

Post by n1c0l45 »

Do you just have the Smart Thermostat Starter Kit or the full set with thermostatic valves?
markk
Posts: 267
Joined: Tuesday 14 January 2014 14:50
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Advise for new install

Post by markk »

Don't think the TRVs are out yet. I just have the main thermostat and the wireless sensor.
Running Domoticz on Pi3 with RFXtrx433e. LWRF power sockets and dimmer switches. Integrated my existing wirefree alarm PIRs and door contacts with domoticz. Geofencing with Pilot. Harmony Hub. Tado for Heating. Now playing with mysensors.
n1c0l45
Posts: 37
Joined: Monday 25 April 2016 9:45
Target OS: Raspberry Pi / ODroid
Domoticz version: V3.4834
Location: France
Contact:

Re: Advise for new install

Post by n1c0l45 »

Trv's are in the shop but really enjoyed expensive!
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest