I have a whole bunch of stuff done on this topic I could help you with if I had my laptop up. I'm using many esp and motorized vents to regulate temperature like zoning in every room. I use openhab as well
The vent can be open closed or set for heat/cool. In heat or cool it opens or closes as temperature goes up or down depending on how you want it. Then, the use ac and use furnace switches affect a variable. If enough rooms want ac or heat there's another esp that'll turn on the hvav separate of the nest
Also, the readings of the Dallas are awesome, they vary very little. I used to use analog sensors and averaged them over 3 minutes using readings every 10 seconds. With the Dallas I have it send a reading every 3 minutes using a separate esp that's in deep sleep and battery powered away from the vent. The Dallas sensors are rock solid
Ds18b20 temp and relay control via openhab
Moderators: grovkillen, Stuntteam, TD-er
Re: Ds18b20 temp and relay control via openhab
HEre are the relevant portions if you want. Any questions, just ask.
nursery items
nursery rules (the use furnace / use ac stuff isn't done yet. that's why at least one section is missing. )
sitemap
The reason i have a Vent and Vents item is one is virtual and i only want it to send a command to the actual ESP when the virtual *changes*
I don't want actuating the motor for no reason
nursery items
Code: Select all
Number Nursery_Temperature "Nursery Temp [%.1f °F]" <temperature> {mqtt="<[oh2:/NurserySensor/Nursery_Temp/NUR_TEMP:state:default]" }
Number Nursery_Volts "Nursery Volts [%.2f V]" <electric> {mqtt="<[oh2:/NurserySensor/Nursery_Volt/NUR_VOLT:state:default]" }
Number VT_Vent_Setpoint_Nursery "Nursery Setpoint [%.1f °F]" <degreesf>
Number VT_Vent_Mode_Nursery "Nursery Vent Control" <heating>
Switch FF_Nursery_Vent "Nursery Vents" <fire> {http=">[OFF:POST:http://192.168.1.151/control?cmd=event,closevent] >[ON:POST:http://192.168.1.151/control?cmd=event,openvent]"}
Number AVG_Nursery "Nursery Average Temp [%.1f °F]" <degreesf>
Switch FF_Nursery_Vents "Nursery Vents" <fan>
Number VT_Nursery_Keepwarm "Nursery Call Heat" <fire>
Number VT_Nursery_Keepcool "Nursery call cool" <fan>
Number NurseryNeedHeat "Nursery Heat Request" <fire>
nursery rules (the use furnace / use ac stuff isn't done yet. that's why at least one section is missing. )
Code: Select all
rule "Nursery OnOff"
when
Item VT_Vent_Mode_Nursery changed
then
// 0="Off", 1="On", 2="Auto"
if (VT_Vent_Mode_Nursery.state == 0) {
// heater off
FF_Nursery_Vents.sendCommand(OFF)
} else if (VT_Vent_Mode_Nursery.state == 1) {
// heater on
FF_Nursery_Vents.sendCommand(ON)
}
else{
FF_Nursery_Vents.sendCommand(ON)
}
end
rule "Nursery Vents Status"
when
Item VT_Vent_Mode_Nursery changed or
Item VT_Vent_Setpoint_Nursery changed or
Item Nursery_Temperature changed
then
if (VT_Vent_Mode_Nursery.state == 2) {
var Number setpointN = VT_Vent_Setpoint_Nursery.state as DecimalType
var Number turnOnTempN = setpointN - 0.5
var Number turnOffTempN = setpointN + 0.5
var Number tempN = Nursery_Temperature.state as DecimalType
if (tempN <= turnOnTempN) {
FF_Nursery_Vents.sendCommand(ON)
} else if (tempN >= turnOffTempN) {
FF_Nursery_Vents.sendCommand(OFF)
}
}
if (VT_Vent_Mode_Nursery.state == 3) {
var Number setpointN = VT_Vent_Setpoint_Nursery.state as DecimalType
var Number turnOnTempN = setpointN + 0.5
var Number turnOffTempN = setpointN - 1.5
var Number tempN = Nursery_Temperature.state as DecimalType
if (tempN >= turnOnTempN) {
FF_Nursery_Vents.sendCommand(ON)
} else if (tempN <= turnOffTempN) {
FF_Nursery_Vents.sendCommand(OFF)
}
}
end
rule "Nursery Vent Control"
when
Item FF_Nursery_Vents changed
then
if (FF_Nursery_Vents.state == ON){
FF_Nursery_Vent.sendCommand(ON)
} else if (FF_Nursery_Vents.state == OFF) {
FF_Nursery_Vent.sendCommand(OFF)
}
end
rule "Nursery Use Furnace"
when
Item VT_Nursery_Keepwarm changed or
Item Nursery_Temperature changed or
Item VT_Vent_Mode_Nursery changed or
Item VT_Vent_Setpoint_Nursery changed
then
if (VT_Nursery_Keepwarm.state == 1 && VT_Vent_Mode_Nursery.state == 2) {
var Number setpointN = VT_Vent_Setpoint_Nursery.state as DecimalType
var Number turnOnTempN = setpointN - 0.5
var Number turnOffTempN = setpointN + 0.5
var Number tempN = Nursery_Temperature.state as DecimalType
if (tempN <= turnOnTempN) {
postUpdate(NurseryNeedHeat,1)
} else if (tempN >= turnOffTempN) {
postUpdate(NurseryNeedHeat,0)
}
}
if (VT_Vent_Mode_Nursery.state == 0 || VT_Vent_Mode_Nursery.state == 1 || VT_Vent_Mode_Nursery.state == 3) {
postUpdate(NurseryNeedHeat,0)
}
end
Code: Select all
Text label="Nursery" icon="baby_1"{
Frame {
Switch item=VT_Vent_Mode_Nursery label="Vent Control" mappings=[0="Off", 1="On", 2="Heat", 3="Cool"]
Setpoint item=VT_Vent_Setpoint_Nursery label="Target Temperature [%.1f °F]" minValue=65 maxValue=80 step=0.5 visibility=[VT_Vent_Mode_Nursery==2, VT_Vent_Mode_Nursery==3] icon="heating-60"
Text item=FF_Nursery_Vent
Text item=Nursery_Temperature
Switch item=VT_Nursery_Keepwarm label="Use Furnace?" mappings=[0="Off", 1="On"]
Switch item=VT_Nursery_Keepcool label="User AC?" mappings=[0="Off", 1="On"]
Text item=Nursery_Volts icon="battery-90"
Chart item=Nursery_Temperature period=4h refresh=300
Chart item=Nursery_Volts period=D refresh=300
}
}
The reason i have a Vent and Vents item is one is virtual and i only want it to send a command to the actual ESP when the virtual *changes*
I don't want actuating the motor for no reason
Who is online
Users browsing this forum: No registered users and 50 guests