Overview
Ive been looking around, and I havent seen any decent irrigation controllers out there that support zwave. Im not sure what kind of market there is, but I thought I would present it here as a suggestion for a future device.
This device should be fully configurable from the unit itself (able to set schedules and manually control zones). A user should be able to set it up and use it even if they do not have a hub.
It should also expose each zone as a binary switch endpoint to allow basic functionality for any hub that does not support the irrigation command class
Hardware Features:
- Powered by 24v AC
- Most sprinkler valves already use 24v AC, so a single power supply may be able to power both the controller and the valves
- 24v AC should be easier to convert to needed internal voltage (don’t need to convert from 110 AC) and is likely easier to get certified since it is not mains-powered
- External power supplies are readily available, and would cut costs
- Since it is designed for low voltage/amperage, smaller/cheaper relays can be used
- Designed to be used indoor (or in outdoor rated enclosure)
- 16x2 LCD display
- Uses i2c, which significantly cuts down on wiring
- Makes it easier to see the status of device, and easier to set schedules or control device using hardware buttons
- Relatively common component, and is cheap (you don’t really need a custom LCD or fancy graphics, since the device will rarely be interacted with once set up)
- 5 onboard relays, and 1 binary sensor
- 1 master valve, 4 normal valves, and a rain sensor can be connected
- z-wave chip as a “daughterboard”, with most communication done over i2c
- zwave chip would do all the processing, but main board would contain the relays/display
- Allows you to keep majority of hardware identical for use with z-wave/zigbee chips (or technically, even something like an arduino or esp8266)
- Pins on daughterboard:
- DC+
- GND
- I2c Clock
- I2c Data
- Sensor+/-
- Up Button +/-
- Down Button +/-
- Enter Button +/-
- Back/Exit button +/-
- Batt + (RTC)
- Batt - (RTC)
- Expansion port on side of device to attach an expansion module
- Allows a single controller to control up to 4/8/12 additional zones
- A user can expand the number of zones with an optional hardware add-on instead of replacing the entire unit or installing multiple units
- Expansion modules connect to the i2c bus
- Pins:
- 24v AC Line
- 24v AC Neutral
- DC + (5v or 3.3v?)
- GND
- I2c Clock
- I2c Data
- Allows a single controller to control up to 4/8/12 additional zones
- 4 hardware buttons for manual configuration, inclusion/exclusion
- Up, Down, Enter Back/Exit
- Battery for RTC, so that date/time is retained after power outage (optional. Device should request date/time from the hub when power is restored, but this would allow everything to work without a hub)
Software Features:
- Uses Irrigation Command Class
- Irrigation valve tables can be set/get via zwave
- Allow user interface (hardware buttons) to be used to set tables
- Data is stored in Irrigation valve tables as part of Irrigation Command Class
- Uses Schedule Command Class for scheduling
- Allow schedule to be set via zwave or from interface
- Allow multiple schedules (at least 4, preferably more)
- Rain delay feature
- Configurable delay between master valve opening and normal valve opening
- When 1 normal valve is turned on, turn off other valves (only 1 active zone at a time)
- Each valve/zone (including the master valve) is also implemented as a Multi Channel device (binary switch)
- This allows control of individual valves even if the hub does not support the Irrigation Command Class
- Rain sensor should also be exposed as a sensor endpopint
Config parameters:
- Master valve (enabled/disabled)
- Determines if the master valve needs to be turned on before any other valves can be operated
- Master valve delay
- Delay in seconds between turning on master valve and turning on any zone valve. This is normally set using the Irrigation System Config Set Command, but hopefully can be implemented as a config parameter too for hubs that do not support that command class
- Number of valves
- Set the number of valves used. Not sure if it is better to have a config option for this (how would that work with interviewing the node and setting the number of endpoints?) or if you should just set it up to use whatever the maximum is
- Maximum zone duration
- Automatically turn off zone if it has been left on for more than X time (useful for when zone is turned on manually)