ISY-99i/ISY-26 INSTEON:Auto Irrigation Program v2

From Universal Devices, Inc. Wiki
Irrigation Vars
Irrigation Vars
Irrigation Folders
Irrigation Folders
Irrigation Devices
Irrigation Devices

Functionality Highlights

  • Automatically runs 7 days a week with scaling back based on the weather ie. rain and temperature (WeatherBug).
    • Rain above zero inches pushes out the schedule
    • Temperature below a set-point prevents running that day
    • Temperature high above a set-point promotes daily runs
  • Manual control is integrated with the Automatic mode ie. auto mode is user interruptable from an INSTEON device.
  • Manual control to run irrigation and advance forward stations from an INSTEON device.
  • Each "Station Timer" program also acts as a time-stamp for each station.
  • Sends a start and finish notification for user tracking purposes.

Variables

  • Irrigation_Station - tracks which station is currently running, is used for tracking next valve to run.
  • Manual_Currently_Running - tracks if the irrigation is being run manually, used to prevent an auto run from interrupting a manual run.
  • Weather_Rained_Last_36_Hours - has rained in the lat 36 hours, used to hold off runs if it has rained.
  • Weather_Temp_Below_40_Degrees - checks if its below 40 degrees at set start time (11pm), holds off runs if its too cold.
  • Weather_Temp_High_Above_70_Degrees - checks if the high temp for the day is above 70 degrees, for adding 7 day a week runs if its hot weather.

Evapotranspiration

With the upcoming ISY firmware which will include the new evapotranspiration feature I am thinking about how it will fit into this design. Some ideas are it would be used to control the length of the irrigation station run time. Or it might be used to handle the amount of days the irrigation runs each week instead of using the high temp as the current design does. Or maybe it will replace all the weather part of this code and just make the whole thing much more simpler than it currently is which is always good.

ISY Programs File

  • AutoIrrig.zip - this file needs unzipping first then loaded from the programs tab. See the Wiki section on the programs tree view for more info on importing programs.


Folder: Auto

Auto Scheduled Timer -M-W-F-

If
        On Mon, Wed, Fri
        Time is 11:00:00PM
    And $Manual_Currently_Running is 0
    And $Weather_Rained_Last_36_Hours is 0
    And $Weather_Temp_Below_40_Degrees is 0
    And $Weather_Temp_High_Above_70_Degrees is 1
 
Then
        Run Program 'Station1 Timer' (Then Path)

Auto Scheduled Timer S-T-T-S

If
        On Sat, Sun, Tue, Thu
        Time is 11:00:00PM
    And $Manual_Currently_Running is 0
    And $Weather_Rained_Last_36_Hours is 0
    And $Weather_Temp_Below_40_Degrees is 0
 
Then
        Run Program 'Station1 Timer' (Then Path)

Weather Rain Delay 36 Hours

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        $Weather_Rained_Last_36_Hours  = 1
        Wait  36 hours 
        $Weather_Rained_Last_36_Hours  = 0
 
Keep the rain status for 36 hours then reset it.

Weather Rain Today Check

If
        Module 'Climate' Rain Today is not 0 "
 
Then
        Stop program 'Weather Rain Delay 36 Hours'
        Run Program 'Weather Rain Delay 36 Hours' (Then Path)

Weather Temp Below 40 Degrees

If
        Module 'Climate' Temperature < 40 °F
 
Then
        $Weather_Temp_Below_40_Degrees  = 1
 
Else
        $Weather_Temp_Below_40_Degrees  = 0
 
This is in a separate program to avoid having the temperature event trigger a false start of the irrigation system.

Weather Temp High Above 70 Degrees

If
        Module 'Climate' Temperature High > 70 °F
 
Then
        $Weather_Temp_High_Above_70_Degrees  = 1
 
Else
        $Weather_Temp_High_Above_70_Degrees  = 0
 
This is in a separate program to avoid having the temperature event trigger a false start of the irrigation system.


Folder: Manual

Any "Irrigation All" Stations On

If
        Status  'Irrigation / Irrigation1 Front Plants' is not Off
     Or Status  'Irrigation / Irrigation2 Empty' is not Off
     Or Status  'Irrigation / Irrigation3 Back Daylilies' is not Off
     Or Status  'Irrigation / Irrigation4 Back Fruit Trees' is not Off
     Or Status  'Irrigation / Irrigation5 Back Maple Trees' is not Off
     Or Status  'Irrigation / Irrigation6 Back Lawn1' is not Off
     Or Status  'Irrigation / Irrigation7 Back Lawn2' is not Off
     Or Status  'Irrigation / Irrigation8 Back Lawn3' is not Off

Manual Currently Running Reset

If
        Program 'Any "Irrigation All" Stations On' is False
 
Then
        $Manual_Currently_Running  = 0
 
This is a safety to make sure manual mode does not get left on.

Manual Trigger Fast Off

If
        Control 'Inside / Inside RL4 Irrigation On' is switched Fast Off
 
Then
        Run Program 'Stations All Off' (Then Path)
 
Listens for manual remote control to turn the irrigation system off.

Manual Trigger Station1

If
        Control 'Inside / Inside RL4 Irrigation On' is switched Fast On
    And $Irrigation_Station is 0
 
Then
        $Manual_Currently_Running  = 1
        Run Program 'Station1 Timer' (Then Path)

Manual Trigger Station2

If
        Control 'Inside / Inside RL4 Irrigation On' is switched Fast On
    And $Irrigation_Station is 1
 
Then
        $Manual_Currently_Running  = 1
        Run Program 'Station2 Timer' (Then Path)

Manual Trigger Station3

If
        Control 'Inside / Inside RL4 Irrigation On' is switched Fast On
    And $Irrigation_Station is 2
 
Then
        $Manual_Currently_Running  = 1
        Run Program 'Station3 Timer' (Then Path)

Manual Trigger Station4

If
        Control 'Inside / Inside RL4 Irrigation On' is switched Fast On
    And $Irrigation_Station is 3
 
Then
        $Manual_Currently_Running  = 1
        Run Program 'Station4 Timer' (Then Path)

Manual Trigger Station5

If
        Control 'Inside / Inside RL4 Irrigation On' is switched Fast On
    And $Irrigation_Station is 4
 
Then
        $Manual_Currently_Running  = 1
        Run Program 'Station5 Timer' (Then Path)

Manual Trigger Station6

If
        Control 'Inside / Inside RL4 Irrigation On' is switched Fast On
    And $Irrigation_Station is 5
 
Then
        $Manual_Currently_Running  = 1
        Run Program 'Station6 Timer' (Then Path)

Manual Trigger Station7

If
        Control 'Inside / Inside RL4 Irrigation On' is switched Fast On
    And $Irrigation_Station is 6
 
Then
        $Manual_Currently_Running  = 1
        Run Program 'Station7 Timer' (Then Path)

Manual Trigger Station8

If
        Control 'Inside / Inside RL4 Irrigation On' is switched Fast On
    And $Irrigation_Station is 7
 
Then
        $Manual_Currently_Running  = 1
        Run Program 'Station8 Timer' (Then Path)

Manual Trigger Station9 All Off

If
        Control 'Inside / Inside RL4 Irrigation On' is switched Fast On
    And $Irrigation_Station is 8
 
Then
        Run Program 'Stations All Off' (Then Path)


Folder: Station Engine

Irrigation Finished

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        Send Notification to 'Mark's Email'

Irrigation Started

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        Send Notification to 'Mark's Email'

Station1 Timer

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        Run Program 'Irrigation Started' (Then Path)
        Set 'Irrigation / Irrigation1 Front Plants' On
        $Irrigation_Station  = 1
        Wait  90 minutes 
        Run Program 'Station2 Timer' (Then Path)

Station2 Timer

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        Set 'Irrigation / Irrigation2 Empty' On
        $Irrigation_Station  = 2
        Wait  5 seconds
        Run Program 'Station3 Timer' (Then Path)

Station3 Timer

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        Set 'Irrigation / Irrigation3 Back Daylilies' On
        $Irrigation_Station  = 3
        Wait  90 minutes 
        Run Program 'Station4 Timer' (Then Path)

Station4 Timer

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        Set 'Irrigation / Irrigation4 Back Fruit Trees' On
        $Irrigation_Station  = 4
        Wait  90 minutes 
        Run Program 'Station5 Timer' (Then Path)

Station5 Timer

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        Set 'Irrigation / Irrigation5 Back Maple Trees' On
        $Irrigation_Station  = 5
        Wait  90 minutes 
        Run Program 'Station6 Timer' (Then Path)

Station6 Timer

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        Set 'Irrigation / Irrigation6 Back Lawn1' On
        $Irrigation_Station  = 6
        Wait  10 minutes 
        Run Program 'Station7 Timer' (Then Path)

Station7 Timer

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        Set 'Irrigation / Irrigation7 Back Lawn2' On
        $Irrigation_Station  = 7
        Wait  10 minutes 
        Run Program 'Station8 Timer' (Then Path)

Station8 Timer

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        Set 'Irrigation / Irrigation8 Back Lawn3' On
        $Irrigation_Station  = 8
        Wait  10 minutes 
        Run Program 'Stations All Off' (Then Path)

Stations All Off

If
   - No Conditions - (To add one, press 'Schedule' or 'Condition')
 
Then
        $Manual_Currently_Running  = 0
        Stop program 'Station1 Timer'
        Stop program 'Station2 Timer'
        Stop program 'Station3 Timer'
        Stop program 'Station4 Timer'
        Stop program 'Station5 Timer'
        Stop program 'Station6 Timer'
        Stop program 'Station7 Timer'
        Stop program 'Station8 Timer'
        Set 'Irrigation / Irrigation1 Front Plants' Off
        Set 'Irrigation / Irrigation2 Empty' Off
        Set 'Irrigation / Irrigation3 Back Daylilies' Off
        Set 'Irrigation / Irrigation4 Back Fruit Trees' Off
        Set 'Irrigation / Irrigation5 Back Maple Trees' Off
        Set 'Irrigation / Irrigation6 Back Lawn1' Off
        Set 'Irrigation / Irrigation7 Back Lawn2' Off
        Set 'Irrigation / Irrigation8 Back Lawn3' Off
        $Irrigation_Station  = 0
        Run Program 'Irrigation Finished' (Then Path)
 
Let's cover everything just to make sure its reliable.




ISY-26 INSTEON / ISY-99i Series INSTEON : How-To Guide