Danfoss thermostat with external thermometer?

For heating/cooling related questions in Domoticz

Moderator: leecollings

Post Reply
johansson
Posts: 75
Joined: Sunday 27 September 2015 15:52
Target OS: Raspberry Pi / ODroid
Domoticz version:
Location: Finland
Contact:

Danfoss thermostat with external thermometer?

Post by johansson »

Been browsing the topics back and forth, but couldn't locate an answer; probably the solution is simpler than I expected, but anyhow:
I have Danfoss Connect Z-Wave thermostats hooked up into my Domoticz (detected and work as expected). In addition there are few external thermometers (normal 433 MHz stuff) in different rooms, no problem there either.

So, how do I use the external thermometers together with the Danfoss thermostats? I'm not very convinced abt the accuracy of Danfoss's own thermometer, so I'd prefer setting the temperature based on another thermometer located eg on the other side of the room.
User avatar
Egregius
Posts: 2592
Joined: Thursday 09 April 2015 12:19
Target OS: Linux
Domoticz version: v2024.7
Location: Beitem, BE
Contact:

Re: Danfoss thermostat with external thermometer?

Post by Egregius »

All thermostatic valves I tested suck in regulating precise.
Therefore I set them higher/lower depending on the difference in temperature mesured by an external thermometer (Fibaro smoke sensor).

Part of my pass2php heating script:

Code: Select all

$kamers=array('living','tobi','alex','kamer');
$bigdif=100;
foreach($kamers as $kamer){
    ${'dif'.$kamer}=number_format(${$kamer.'_temp'}-${$kamer.'_set'},1);
    if(${'dif'.$kamer}>9.9)${'dif'.$kamer}=9.9;
    if(${'dif'.$kamer}<$bigdif)$bigdif=${'dif'.$kamer};
    ${'Set'.$kamer}=${$kamer.'_set'};
}
foreach($kamers as $kamer){
    if(${'dif'.$kamer}<=number_format(($bigdif+ 0.2),1)&&${'dif'.$kamer}<2)${'RSet'.$kamer}=setradiator($kamer,${'dif'.$kamer},true,${$kamer.'_set'});
    else ${'RSet'.$kamer}=setradiator($kamer,${'dif'.$kamer},false,${$kamer.'_set'});
}
function setradiator($name,$dif,$koudst=false,$set){
    $setpoint=$set-ceil($dif*4);
    if($koudst==true)$setpoint=28.0;
    if($setpoint>28)$setpoint=28.0;elseif($setpoint<4)$setpoint=4.0;
    return round($setpoint,0).".0";
}
For each room ($kamer) I have a _temp for thermometer and a _set for the setpoint.
I first loop through all rooms to see wich one is the coldest (need the most heating).
For that room the valve will be set to 28° to be sure it's completely open.
The other rooms receive a setting calculated by $setpoint=$set-ceil($dif*4);
For example: room temperature = 19.8°, setpoint= 20°, valve will be set at 21°. If the room temperature was 19.7° the valve would be set at 22°.

The calculation of the coldest room is there to avoid issues with the wakeup time. Default wake up time is 300 seconds, so it could take 5 minutes before the valve reacts. Because I already set them at 28° before the room temp is lower than the setpoint I don't have problems with that.

I must add to this that the schedule of the rooms is so that it's either the living room, or the bedrooms that are set to heat. Almost never all of them.
johansson
Posts: 75
Joined: Sunday 27 September 2015 15:52
Target OS: Raspberry Pi / ODroid
Domoticz version:
Location: Finland
Contact:

Re: Danfoss thermostat with external thermometer?

Post by johansson »

Wow, that was one fast reply - thanks for the tips. As my knowledge in php is non-existing, this might take a bit of more effort to get done. Let my dive into, most likely I'll come back with a bunch of questions :D Do you have just one thermometer controlling all rooms, or one in each room?
User avatar
Egregius
Posts: 2592
Joined: Thursday 09 April 2015 12:19
Target OS: Linux
Domoticz version: v2024.7
Location: Beitem, BE
Contact:

Re: Danfoss thermostat with external thermometer?

Post by Egregius »

One in each room.
Search for pass2php or click on my signature. Already quite some info available.
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest