Rachio Local Plugin for Home Assistant is a lightweight integration that enables seamless control and monitoring of Rachio irrigation systems through the Rachio API. By leveraging secure, outgoing API calls, the plugin allows Home Assistant users to retrieve real-time device status, manage watering schedules, control irrigation zones, and receive updates about their Rachio sprinkler system. Unlike traditional integrations that require complex webhook setups, this plugin simplifies connectivity by making direct, authenticated API requests, ensuring a straightforward and secure method of interfacing with Rachio's cloud services without exposing your home network to inbound connections.
If you find this plugin useful, please consider donating. Your support is greatly appreciated!
Rachio Local removes the need to open your home assistant to public network for incoming traffic. Rachio allows 1700 calls a day to API and I have done my best to prevent exhausting them Let me break down the API calls under different scenarios:
Normal Operations (No Active Watering)
Base polling rate: Every 5 minutes
Daily calls = (24 hours × 60 minutes) ÷ 5 minutes = 288 base calls
During Active Watering
Polling increases to every 30 seconds while any zone or schedule is running
Example: For a 2-hour watering schedule
Additional calls = (2 hours × 60 minutes × 2 calls per minute) = 240 calls during that period
Typical Day Example
Base calls: 288
If you run 4 schedules per day:
Each schedule might run for ~2 hours
(4 schedules × 2 hours × 120 calls/hour) = ~960 calls during active watering
The rest of the day uses the 5-minute interval
Estimated Total
Normal day with 4 schedule runs: ~800-1000 API calls
Days with additional manual zone control: Add ~120 calls per hour of manual watering
This is significantly less than your current 1700 calls per day. The reduction comes from:
Using 5-minute intervals during inactive periods
Only using 30-second polling during active watering
Efficient state management with pending operations
Smart handling of schedule and zone transitions
The exact number will vary based on:
How many schedules run each day
Duration of each schedule
How often you manually control zones
Whether schedules overlap
- Zone Watering Control: Ability to start and stop individual irrigation zones through switches in Home Assistant.
- Device and Zone Status Sensors: Sensors that provide real-time status of the Rachio device and individual zones, including current watering state.
- Schedule Management: Switches to control and monitor irrigation schedules, allowing start and stop of predefined watering schedules.
- Last Watered Timestamp: Sensors that track and display the last time each zone was watered.
- Periodic Data Polling: Automatic data updates every 5 minutes to keep Home Assistant synchronized with the Rachio device status.
My Home Assistant runs in Docker on a server. I don't use the supervised version, nor do I want to expose Home Assistant servers publicly. This is my personal choice, despite it requiring more manual management.
I don’t know how it works with HAOS.
-
I prioritize securing my network by blocking phone home calls from IoT devices, ensuring data privacy, or allowing thrid party webhooks.
-
My Home Assistant setup includes an array of devices, with plans to expand further. Here’s a snapshot of what I manage:
- 💡 Hue
- 🏠 Tuya
- 📊 Grafana for monitoring
- 🎞 Emby for media
- 🚪 Door locks
- 🔒 Cameras
- 💻 Local AI (on server)
- 🚦 Pi Hole for ad-blocking
- 🖥 Full network & server monitoring, including GPU & storage
- 🌀 Fans
- And much more to come!
- Ensure HACS is installed in your Home Assistant.
- Open the HACS panel, click the three dots in the top-right corner, and select "Custom Repositories."
- Add the following URL as a Custom Repository:
https://github.com/biofects/rachio_local
and select "Integration" as the category. - Click "Add," then navigate to the "Integration" tab, click "+ Explore & Download Repositories" and search for "Rachio"
- Install the plugin and restart Home Assistant.
- Go to settings Device and Integrations in Home Assistant and add plugin Rachio Local.
- You will need to get your API Key from https://app.rach.io/
- Enter you API Key
-
Create plugin Folder
# Create rachio_local Folder mkdir -p /config/custom_components/rachio_local
-
Copy the files for plugin into your Home Assistant plugin folder
cp config_flow.py const.py __init__.py manifest.json sensor.py switch.py /config/custom_components/rachio_local
-
Restart Home Assistant
If you encounter bugs or have feature requests, feel free to open an issue on the GitHub repository.
This project is licensed under the MIT License.