-
Notifications
You must be signed in to change notification settings - Fork 2
Home
This is a plugin for the Indigo smart home server that will integrate Rachio Sprinkler controllers as standard Indigo sprinkler devices.
Any Rachio device that is supported by v1 of their API is supported.
- Download latest release here.
- Follow standard plugin installation process.
To configure the plugin, you need to enter your API access token into
the plugin's config dialog (Plugins->Rachio Sprinklers->Configure...
).
You can find your API key in your Rachio web account. You probably don't need to adjust the API timeout, but if you have frequent timeout errors then increasing by a couple of seconds may help.
Note the Polling interval
field: Rachio rate limits API calls to
1700 per day (as of 2/27/2018), so keeping the polling interval at a
minimum of once every 3 minutes is required to make sure commands to control
your sprinkler don't fail because you exceed the threshold.
If you have multiple controllers, you might need to increase that number
because the rate limit is per Rachio Account, not per controller. Also,
there is a custom Event (listed below) that will allow you to fire
Indigo triggers if you cross the threshold.
Once you have the plugin configured, you can use the standard
Indigo device creation process.
Select Rachio Sprinklers
as the type and Rachio Sprinkler Controller
as the model. When you do that, you'll get the Configure Rachio Sprinkler Controller
dialog:
Select a Rachio device from the first popup and select US (imperial) or Metric for units of measure when retrieving weather data. Save the dialog.
This will create a standard Indigo sprinkler device, which works like any other sprinkler device. There are some differences though: the Rachio device will have a bunch of extra states that show information about the device, including current weather conditions and a two week forecast. See below for details on the extra states.
NOTE - when Indigo is running Indigo schedules, the Rachio apps and website may not correctly display the status of the sprinkler. This has been reported to Rachio, but there is currently no way around it. If you are using standard Indigo sprinkler schedules, then you'll want to always check the status via Indigo (or Indigo Touch) as you may not see correct information in the Rachio apps. Indigo will always show correct status regardless of whether it's running an Indigo schedule or one stored in the Rachio.
The plugin supports a couple of custom events that you can use in Triggers:
- Sprinkler Operational Errors - Allows you to define triggers when various errors occur when Indigo tries to control the sprinkler.
- API Communication Errors - Given that controlling the Rachio requires communication with their cloud servers, it's important to know when that communication fails. You can use this event type to define triggers to catch these types of errors for notification purposes.
- Plugin Update Available - This event will fire whenever there is an update to the plugin available. If you create an Indigo variable named "Rachio_Sprinklers_Available_Version", it will be updated whenever a new plugin version is available with the version string (i.e. '1.2.3').
The plugin supports a couple of custom actions:
- Run Rachio Schedule - Allows you to immediately run a schedule defined in the Rachio interface. Note that onlysome Rachio schedules can be run on demand.
- Set Seasonal Adjustment - Allow's the user to set a seasonal adjustment for the specified schedule. The value is a percentage from -100% to 100% of the standard/specified runtime.
- Set Standby Mode - Allows the user to set the controller's standby mode. If the controller is in standby mode, it is not automatically running any of it's built-in schedules or performing any other logic. Indigo would be the only thing controlling any watering done by the controller. Standby mode is off by default. Note - Indigo schedules will run correctly even if the controller is not in standby mode.
Rachio Indigo devices have a lot of custom states. Some describe attributes of the controller device itself, most of which are dedicated to current weather conditions and forecast data. We'll define the device information states first, then the forecast data states.
State | Type | Description |
---|---|---|
activeSchedule | String | Name of the currently active schedule. "MANUAL" if it's running an Indigo schedule, otherwise the name of the Rachio schedule running. |
address | String | MAC address of the controller. |
elevation | Float | Elevation of the controller above sea level (units based on device configuration). |
id | String | The UUID of the device as provided by Rachio. |
inStandbyMode | Boolean | False if the controller is automatically running it's own schedules and performing it's own logic, True otherwise. Indigo schedules will run regardless of this state value. |
latitude & longitude | Float | The latitude and longitude of the device. |
model | String | The Rachio model number of the controller. |
name | String | The name of the controller as defined by the user in the Rachio interface. Separate from the Indigo device name. |
paused | Boolean | True if a controller schedule is paused, False otherwise. Currently, the controller can't pause one of it's internal schedules so this value should always be False. |
scheduleModeType | String | MANUAL if the last schedule that was run was a manual schedule, AUTOMATIC otherwise. |
serialNumber | String | The serial number of the controller. |
status | String | ONLINE if the controller is communicating with the Rachio servers, OFFLINE if not. The controller may still be operating if not in standby mode, but it hasn't communicated with the Rachio servers for some period of time. |
timeZone | String | Name of the time zone that the controller is in. |
utcOffset | Integer | Offset between the time zone and GMT. |
These states represent the current weather conditions. Any totals are for the day. Measurements are in units specified in the device config (see above).
State | Type | Description |
---|---|---|
current_calculatedPrecip | Float | Total precipitation |
current_cloudCover | Integer | Percentage of cloud cover |
current_currentTemperature | Float | Temperature |
current_dewPoint | Float | Dew Point |
current_humidity | Integer | Humidity percentage |
current_iconUrl | String | URL to a Rachio-provided icon that represents the weather conditions (see current_weatherType below) |
current_precipIntensity | Float | Intensity of precipitation |
current_precipProbability | Integer | Percentage chance of precipitation |
current_weatherSummary | String | Brief string summarizing the current conditions |
current_weatherType | String | An enumeration describing the overall conditions (see Weather Type Enumeration below for details) |
current_windSpeed | Float | Wind speed |
Forecast data is available for 14 days including the current day. In the list below, substitute the value of the # in the state names for the day. 0=Today, 1=Tomorrow, all the way to 13, which is today + 13 days on the calendar.
State | Type | Description |
---|---|---|
t#forecast_calculatedPrecip | Float | Total precipitation |
t#forecast_cloudCover | Integer | Percentage of cloud cover |
t#forecast_dewPoint | Float | Dew Point |
t#forecast_humidity | Integer | Humidity percentage |
t#forecast_iconUrl | String | URL to a Rachio-provided icon that represents the weather conditions (see current_weatherType below) |
t#forecast_precipIntensity | Float | Intensity of precipitation |
t#forecast_precipProbability | Integer | Percentage chance of precipitation |
t#forecast_temperatureMax | Float | High temperature |
t#forecast_temperatureMin | Float | Low temperature |
t#forecast_weatherSummary | String | Brief string summarizing the current conditions |
t#forecast_weatherType | String | An enumeration describing the overall conditions (see Weather Type Enumeration below for details) |
t#forecast_windSpeed | Float | Wind speed |
Value | Meaning |
---|---|
sun | Sunny |
clear-day | Clear during the day |
clear-night | Clear at night |
cloudy | Cloudy |
partly-cloudy-day | Partly cloudy during the day |
partly-cloudy-night | Partly cloudy at night |
wind | Windy |
fog | Foggy |
rain | Raining |
sleet | Sleeting |
snow | Snowing |
Probably the best use of these enumerated values is for custom state images on control pages. If you come up with some nice images, share them in the Contribution Library.
Debugging information is written to the plugin's log file, located here:
/Library/Application Support/Perceptive Automation/Indigo 7/Logs/opensource.rachio/plugin.log
Feel free to dig through there to see if there's anything helpful. Post questions on the Rachio plugin topic on our forums.