Jump to content

ISY Control of Whole House fan, polling Zwave Thermostat with safety checks and Manual / Auto switching


mink

Recommended Posts

In case anyone interested this mostly works. Perhaps this post should be elsewhere. I apologize if this should have been split up and if this has been beaten to death in prior posts (tried looking, however). This is a continuation of an earlier post.detailing integrating a Honeywell Thermostat/Alarm system into the ISY.

Our coastal climate has fairly cool nights, even on very hot days, allowing for night cooling for the last 2 decades. Up until recently we would just run the fan most off the night, wasting electricity and actually over chilling the house. On days we slept in, the fan might start blowing hotter morning air in. We live in a canyon and solar panels shade the hotter portions of the roof (really helped, actually) so with double paned windows, a cold house coasts most of the day, even on when it is fairly hot. Normally by the time it begins to get uncomfortable, the cool coastal air has made it over the mountains.

Once the Honeywell Zwave system got learned into the ISY994i , the Honeywell Thermostat became available see the earlier post, and a better way is now possible. 

I used variables for this, but am not very good at ISY programming, so this likely could have been done better with using the programs as the variables, but it was a long time since I've touched anything in ISY land.<G> I'm also fighting the ISY994i IR/Pro as it won't let me delete or rename any of the existing devices. Open ticket on that with ISY. Hope that upgrading the Z-wave board to 500 (on the way), and firmware from 5.1.0 RC2 to 5.2 will help.

Notes

  • The whole house fan is a fairly powerful two speed, pull chain type, in the central hallway of a 2,500 sq ft house that is in the attic space access hatch, on a counter weighted piano hinge.
  • A 8-KPL secondary ON button is part of a standard 3-way for manual control.
  • It is not a good idea to run this fan without a window open, especially if ever the furnace got turned on, or during cooking, so an open window check gets run. (Eventualy) Closing the monitored window will shutoff the fan in both FAN auto and ON modes. 
  • Need a wireless window sensor. For testing, an old IOLinc dry contact is sitting on my desk.
  • Variables have INIT values so on power fail recovery the fan is shutdown. This might be a case for sticking with variables, but likely possible with program as variable approach too. I just felt more comfortable with variables, but one should move to the best practices. Eventually, once the above issues sorted might try to setup graceful power fail recovery.
  • Need an outdoor temperature sensor to monitor night temp. Right now the we make the choice to run with a KPL button that indicates FAN auto status.
  • With outdoor temperature, the program could calculate the HouseTempGoal.
  • Eventually I will likely either buy a Polysis or run Polyglot on one of the RPi4s 4G currently running. (Might even get a third RPI4 to segregate function and have more redundancy, especially with native boot from SSD now. They already run off USB/SSD with the SDcards just being boot loaders.) With eventually getting weather data, may also factor in predicted low and high, which is part of the manual setting of the night target temp now. Having outdoor air temp local CURRENT, temperature, though is better.
  • Hotter places will need to adjust the iThStat.HouseTemp.Fire value. It is a good idea to have an upper limit for auto house fans, no 'fanning the flames'. The CZU fire isn't all that far away right now, and I'm considering a temporary furnace filter in on of the windows, but so far, our nights have seen the smoke reduce enough. In the morning, after closing all the windows, air filters clean up the air well. In 20+ years we've not needed AC. Solar panels helped by shading the sun facing roof/attic, as did an attic ventilator fan (used to be controlled by the ISY for season on/off, may add back)!

--> Any recommendations for indoor window sensor and outdoor thermometer (under porch is actually quite protected), probably Z-wave? Aotec, Zooz and inovelli seem popular but some scary reviews are out there so hard to know.
 

---  Core control program, events like closing a window, time change trigger evaluation:

NightCoolFanOn-Control - [ID 000E][Parent 0014]

If
        (
             $sWindow.Open is 1
         And $sThStat.HouseTemp > $sHouseTemp.Goal
         And $sThStat.HouseTemp < $iThStat.HouseTemp.FIRE
         And $sNightCoolTime.Yes is 1
         And $sFAN.House.Mode.Auto >= 1
        )
 
Then
        Set 'Scenes.Button / EntryKpd / EntryKpdLtOn.H.FanRelay.Contr' Fast On
        Wait  4 seconds
        Set 'LTinside.Scenes / House.FanRelay.Contr' Fast On
        Wait  4 seconds
        Set 'LTinside.Scenes / House.FanRelay.Contr' Fast On
 
Else
        Set 'Scenes.Button / EntryKpd / EntryKpdLtOn.H.FanRelay.Contr' Fast Off
        Wait  4 seconds
        Set 'LTinside.Scenes / House.FanRelay.Contr' Fast Off
        Wait  4 seconds
        Set 'LTinside.Scenes / House.FanRelay.Contr' Fast Off

--- Polling the Honeywell YTH8320 ZW1007/U Z-Wave Thermostat. I tried 15 minutes but for some nights, 10 was better. If 10 min is too often, 15 min is ok.
 
GetThStatData - [ID 000C][Parent 0014]

If
        From    12:00:00AM
        For      24 hours 
 
Then
        Repeat Every  10 minutes 
           $iThStat.HouseTemp.Prior  = $sThStat.HouseTemp
           Set 'ZW 002 Thermostat' Query
           Wait  2 minutes 
           $sThStat.HouseTemp  = 'ZW 002 Thermostat' Temperature °F
           $sThStat.HeatSetPt  = 'ZW 002 Thermostat' Heat Setpoint °F
           $sThStat.Mode  = 'ZW 002 Thermostat' Mode 
           $sThStat.FanMode  = 'ZW 002 Thermostat' Fan Mode 
           $sThStat.FanModeOveride  = 'ZW 002 Thermostat' Fan Mode Override 
           $sThStat.FanState  = 'ZW 002 Thermostat' Fan State 
           $sThStat.HeatCoolState  = 'ZW 002 Thermostat' Heat/Cool State 
           $sThStat.Responding  = 'ZW 002 Thermostat' Responding 
 
Else
   - No Actions - (To add one, press 'Action')

---
NightCoolSetFanMode - [ID 0012][Parent 0014][Run At Startup]

If
        'EntryKpd.G' is switched On
     Or 'EntryKpd.G' is switched Fast On
 
Then
        $sFAN.House.Mode.Auto  = 1
        Run Program 'NightCoolFanOn-Control' (Then Path)
 
Else
        $sFAN.House.Mode.Auto  = 0
        Run Program 'NightCoolFanOn-Control' (Else Path)

--- This could get the outdoor temperature initially, ie only cool if outdoor temp lower than indoor temp by a certain delta. With a fanlinc, https://www.amazon.com/Insteon-2475F-FanLinc-Dual-Band-Controller/dp/B00715SU4A
increasing the speed for a smaller delta might be good. I've thought of putting a fanlinc in a J-box, wired to the Hot wire and leaving the House fan in HIGH. Not sure if that migh burn out the motor though. Frankly. On hot days, cycling on/off on high was fine, and on less hot days, there would be shorter cycles.

We actually turn Auto off in the morning, and turn on at night when it gets cool as we open the windows for now. This routine then really just stops the fan in the morning. Another way, until outside temp data is available would be to track rising house temperature, The there is a prior house temp variable for this, that stores that previous value from the thermostat. In the morning, we don't want the fan blowing hot air into the house, but we usually don't have that type of climate being close to the coast.

NightCoolTimeSet - [ID 0003][Parent 0014][Run At Startup]

If
        From    Sunrise + 10 minutes
        To      Sunset  + 20 minutes (same day)
 
Then
        $sNightCoolTime.Yes  = 0
 
Else
        $sNightCoolTime.Yes  = 1
 
Sets State variables to indicate call for night cooling

---
WindowIsOpen - [ID 000B][Parent 0014][Run At Startup]

If
        'House.Devices / 17.77.11-Sensor' is not switched Off
    And 'House.Devices / 17.77.11-Sensor' is switched On
 
Then
        $sWindow.Open  = 1
 
Else
        $sWindow.Open  = 0
        Wait  5 seconds
        Set 'LTinside.Scenes / HouseFan.Relay.On' Fast Off
 


--- I don't think being used for this version, but might be useful in future. I think the button 'IF' is incorrect, need to look at it more.

NightCoolFanManual-Trigger - [ID 0002][Parent 0014]

If
        'EntryKpd.H' is switched Off
    And $sFAN.House.Mode.Auto >= 1
 
Then
        $sFAN.House.Mode.ManualOn  = 1
 
Else
        $sFAN.House.Mode.ManualOn  = 0


 
--- Yes, well, no kidding, shutdown everything, we might be on fire. Hmm, the are variables set last to avoid trigger the fan control program, likely best to just stop it first? 

NightCoolFanFire-Action - [ID 0009][Parent 0014][Run At Startup]

If
        $sThStat.HouseTemp > $iThStat.HouseTemp.FIRE
 
Then
        Set 'House.Devices / YardLightTransformerRelay' Fast Off
        Wait  3 seconds
        Set 'Scenes.Button / EntryKpd / EntryKpdLtOn.H.FanRelay.Contr' Fast Off
        Wait  3 seconds
        Set 'House.Devices / YardLightTransformerRelay' Fast Off
        $sFAN.House.Mode.ManualOn  = 0
        $sFAN.House.Mode.Auto  = 0
        $sNightCoolTime.Yes  = 0
 
Else
   - No Actions - (To add one, press 'Action')


 
Here is the Scene for the House.Fan.Realy [sorry, I can't rename the device right now, it used to control a mag transformer for the yard lights. Also the GrowLtHtrPadRelay is for testing at night when wife is sleeping - no seedling starts needed right now]
FanRelayTree.JPG.ed749004148f78cda7becf3228852415.JPG

Here is the Scene definitions for the Entry area 8KPL with
 [Button G] FAN for Auto
[Button H] ON for Manual control
EntryKPD-H.JPG.460fb3f3ae8e003942c4a1becb741d33.JPG

Finally the standard 3 way Scene: I wonder if this is really needed, but things seem to be working so well.

SceneHouseFaneRelayOne3wayJPG.JPG.28c25ecad9b74cd8fc86f9a670fcea42.JPG

Here is the State.variable table.

STATEvariables.JPG.e48d5b14b37f019983670244e9734d0a.JPG

I'm sure there is room for much improvement, but this is a starting point.

cheers and stay safe.

Link to comment

Great post!

I have something like this also.  I look at window status via a DSC alarm and will turn off the AC if a window is open. I also won't turn on the fan if all windows are closed.  I use a personal weather station to get the outside temperature and look at the diff between the inside and outside temp.  When the outside is a few degrees below the inside it triggers a program that can turn the fan on if a window is open.  It will also turn the fan off if the outside is close to or above the inside.

When this was all working, I could open a window when the outside temperature was about equal to the inside and as soon as it cooled down outside enough, the fan would automatically come on.  When it started warming up in the morning such that the outside temp started to reach the inside temp, it would shut the fan off. 

There have been times that it got so cold inside that the heat would come on when the windows were closed so I like your idea of shutting off the fan if it gets too cool inside.

I just created a Purple Air node server that monitors air quality so I'd like to incorporate that too so that we don't run the fan if it's smokey outside.  We've woken up at night to find the house smelling like smoke inside.

Link to comment

@bpwwer Thank you kindly.

52 minutes ago, bpwwer said:

I just created a Purple Air node server that monitors air quality so I'd like to incorporate that too so that we don't run the fan if it's smokey outside.  We've woken up at night to find the house smelling like smoke inside.

Yes, been thinking of this also, once the Admin Console bugs get sorted out, and I'm up to 5.2 firmware. Stopped the fan and shut the windows last night due to smoke. I wish I could access zone status of the Ademco/Honeywell TUXWIFI. Even though it is the primary Zwave controller (ISY is secondary), it did not get anything out of it. Do you know if there is a Polyglot node for it, or how would I check to see, not having that yet installed. Likely things will change with the 500Z-wave board and 5.2. <G> Marking time until then mainly now.

I've been looking into rigging a 4 or 5 inch wide Merv 10+ furnace filter outside one of the windows, in a plenum to use during bad nights. our furnace uses the 20 x 25 x 6" size anyway. In fact, our under porch, dining room window would take two of these stacked vertically. But, WAF would not be there<G>. Another window is available for that, on the side out of view, but that one is roof rat time.:(

---> Which weather station are you using? I've thought of that route too for the temp data, and just why not. Used to have one but the anemometer cups and van are busted, and it isn't connectable.

---> Temp sensor recommendations?

cheers

Link to comment

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...