Can someone help me with a flow to control temperature in a server room using 2 thermostats


my brain is not working at al apparently.....
can some one do a flow to control a fan for cooling based on temperature changes of 2 thermostat?

i have a larger fan in a server room, when the temperature hits 22c or above inside and the outside is max 22c or cooler then the inside temp, the fan should start, when the temperature hits 20c or lower inside it should stop. if the temperature outside ricing above the inside temperature it should also stop until the outside temp is the same or lower the the inside temperature the the fan should start again as long as the temperature inside is 22c or above

this is on home assistant using node-red, the devices is z-wave (if it matter)
can some one please help me to do this?


I had a similar issue but my logic for managing temperature in the server room is different

  1. if TEMP is over XX degree than I switch on my fan (otherwise off)
  2. the fan will operate for a given time period (YY) .. usually 1h avoid ON/OFF due to fluctuation in measurement
  3. after (XX/2) I measure the temperature again and start with 1) again

I dont care the outside temperature as it is always better to get the hot air out and to maintain airflow to the servers

I have a question , are the thermostats redundant or do you average their sensors?

Thanks for the reply, sadly that wont work for my place, the serverrum is very well isolated (energihouse) så if i start pumping in air from the outside and its warmer then the temperature inside, the temperature increases way to much, i have tested that before by keeping the intake on 24/7. If i keep it to only runn when the tempratur is lower outside i dont gett that problem. Then it normaly maxes out at the temp utside.

When i had it running 24/7 it past 50c inside during the hot days. So it needs to turn of when it verry hot outside)

Sorry, I do not use outside air for cooling (I'm in Australia ..always warm outside and outside air brings too much dust and particles inside).. I'm using inside environmental air and pushing it from INSIDE to OUTSIDE.

This usually works even if I have 40+ degrees celcius outside

I cxan not see why you would run the fan if the air outside is the same temp as inside, so i adjusted the fan to turn off if the same or higher. this should work, untested

[{"id":"09a9b65c6cc6c858","type":"inject","z":"b9860b4b9de8c8da","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"inside","payload":"20","payloadType":"num","x":120,"y":1940,"wires":[["6a8d519a6e551d56"]]},{"id":"6a8d519a6e551d56","type":"join","z":"b9860b4b9de8c8da","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":270,"y":2040,"wires":[["851c940d85a6e86b","2ea4a8ffc7ad74ad"]]},{"id":"aa0b8ce19e7b3f01","type":"inject","z":"b9860b4b9de8c8da","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"inside","payload":"22","payloadType":"num","x":120,"y":2000,"wires":[["6a8d519a6e551d56"]]},{"id":"c381a7d5073c1195","type":"inject","z":"b9860b4b9de8c8da","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"outside","payload":"20","payloadType":"num","x":120,"y":2080,"wires":[["6a8d519a6e551d56"]]},{"id":"b4edebbd6f5442af","type":"inject","z":"b9860b4b9de8c8da","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"outside","payload":"22","payloadType":"num","x":120,"y":2140,"wires":[["6a8d519a6e551d56"]]},{"id":"851c940d85a6e86b","type":"switch","z":"b9860b4b9de8c8da","name":"","property":"payload.outside","propertyType":"msg","rules":[{"t":"gte","v":"payload.inside","vt":"msg"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":2040,"wires":[["f4847decde0f8f0e"],["c3c8777c126f158c"]]},{"id":"2ea4a8ffc7ad74ad","type":"debug","z":"b9860b4b9de8c8da","name":"debug 292","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":730,"y":1920,"wires":[]},{"id":"f4847decde0f8f0e","type":"change","z":"b9860b4b9de8c8da","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":720,"y":2080,"wires":[["b4445566cf98afe6"]]},{"id":"c3c8777c126f158c","type":"switch","z":"b9860b4b9de8c8da","name":"","property":"payload.inside","propertyType":"msg","rules":[{"t":"gte","v":"22","vt":"str"},{"t":"lte","v":"20","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":530,"y":2040,"wires":[["9e4fb0593f4cc003"],["f4847decde0f8f0e"]]},{"id":"b4445566cf98afe6","type":"rbe","z":"b9860b4b9de8c8da","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":890,"y":2040,"wires":[["2ea4a8ffc7ad74ad"]]},{"id":"9e4fb0593f4cc003","type":"change","z":"b9860b4b9de8c8da","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":720,"y":2040,"wires":[["b4445566cf98afe6"]]}]

Thank you! il test this tonight.
the ide i had is that the air gets a little cooled down when its drags in by the fan, and the intake is much lower mounted in a cooler aria then the thermostat outside.

stupid question but where should the entity's be added in this flow?


I have no idea what a entity outputs, so can not really say.
All i can say is the two temps need to be fed in where the inject nodes are, and each temp also needs to have a topic set as in the inject nodes.

ok, dame i feel stupid, didn't realise this was so hard, i normally only do easy things like turn on lights and output statements when someone comes home.

so i added 4 polling nods polling info from the tempsensor, one for every injector so 2 for the inside temp and 2 for the outside temp. im guessing they output the current temp as they do in homeassistant?
so i added the numbers 20,22 and so on for every state

the switch give 3 value as it seams to, on/off and % (dimmer funktion)
but should i use a trigger node and where should it be included in this flow, im guessing after filter?


You wont find many HA users here, including me.
From what i have gleamed over the years though you don't want to be polling the readings. I seem to recall HA has state change nodes, and i think they output when ever a HA entity changes state ( best ask on HA forum for this info).
The 4 injects are for testing and would normally be two input type nodes, i.e mqtt in httpin or any other input. so all you need to do is work out which HA node to use.
You may be lucky and another forum member may be able to point you in right hA direction.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.