Integrations
Sprigg integrates with popular smart irrigation controllers, weather stations, and soil-moisture sensors to monitor and control your lawn's watering automatically. This page covers how to set up and troubleshoot each integration.
Rachio
Rachio is a Wi-Fi-enabled smart sprinkler controller. Sprigg connects to Rachio via its REST API to read zone data, start/stop watering, and pull run history.
Setup
- Open the Rachio app on your phone or visit app.rach.io
- Go to Account Settings
- Find API Key (you may need to request one if you haven't before)
- Copy the API key
- In Sprigg, go to Settings → Integrations → Rachio
- Paste your API key and click Save
- Click Sync to import your device and zones
What Gets Synced
When you sync your Rachio device, Sprigg imports:
- Device info — Name, model, status
- Zones — All enabled zones with their configuration
- Zone details — Soil type, nozzle type, precipitation rate, shade, slope, root depth
- Coordinates — Device location (auto-fills your property coordinates if not set)
Zone data is cached in the database for 6 hours and API responses are cached in-memory for 5 minutes to avoid excessive API calls. If the Rachio API is rate-limited (429 response), Sprigg falls back to cached data gracefully.
Capabilities
- Start individual zones or multiple zones in sequence
- Stop all zones on a device
- Set rain delays (in days)
- Query device events and run history
- Check current running schedule
Orbit B-Hyve
Orbit B-Hyve is a Wi-Fi sprinkler timer that Sprigg connects to via REST API for data and WebSocket for real-time zone control.
Setup
- In Sprigg, go to Settings → Integrations → Orbit B-Hyve
- Enter your B-Hyve account email and password (the same credentials you use in the B-Hyve app)
- Click Save
- Use the device picker to choose which B-Hyve timer Sprigg should manage (if you have more than one)
- Click Sync to import your device and zones
What Gets Synced
- Device info — Name, model, status
- Zones — All configured zones
- Zone details — Landscape type, sprinkler type (mapped to precipitation rates and nozzle types)
- Watering events — Historical run data
Capabilities
- Automatic watering — Sprigg starts and stops zones for you in Active mode
- Set rain delays (in hours or days)
- Live watering status — see which zone is running and for how long
- Query watering event history (run history)
- Automatic re-authentication on token expiration
How Zone Control Works
Unlike Rachio (which uses simple REST API calls), B-Hyve zone control uses a WebSocket connection. When Sprigg needs to start or stop a zone:
- Opens a WebSocket connection to the B-Hyve API
- Authenticates with your stored credentials
- Sends the zone command
- Waits for confirmation (with timeout handling)
- Closes the connection
WeatherFlow Tempest
The WeatherFlow Tempest is a personal weather station that provides hyper-local weather data. If you have one installed at your property, connecting it gives Sprigg more accurate data than regional weather forecasts.
Setup
- Log in to your WeatherFlow Tempest account
- Find your Station ID and generate an API key
- In Sprigg, go to Settings → Integrations → WeatherFlow Tempest
- Enter your Station ID and API key
- Click Save
What It Provides
- Temperature — Ground-truth readings from your property
- Humidity — Local humidity data
- Wind — Speed and direction
- Rainfall — Precise precipitation measurements (used as primary rainfall source when available)
- Pressure — Barometric pressure
When a Tempest station is connected, Sprigg prioritizes its data over regional weather APIs for current conditions and recent rainfall. This is especially valuable for rainfall tracking, where localized measurements are far more accurate than weather service estimates.
A connected Tempest also powers forecast accuracy learning: Sprigg compares each day's forecast against what your gauge actually measured and learns how forecasts miss at your address — correcting, for example, for a forecast that habitually overpredicts rain. See the Irrigation page for details.
Ecowitt Soil Sensors
Ecowitt makes affordable wireless soil-moisture sensors (such as the WH51) that report through a Wi-Fi gateway. When mapped to your zones, their live root-zone readings override Sprigg's modeled soil-moisture estimate — watering decisions for those zones are driven by a real probe in the ground instead of a model.
Setup
- Log in at ecowitt.net (or the Ecowitt app) and go to Profile → API
- Create and copy your Application Key and API Key
- In Sprigg, go to Settings → Integrations → Ecowitt Soil Sensors and paste both keys
- Click Save, then Sync — your gateway's MAC address is auto-detected and filled in (if you have multiple gateways, you can enter a specific MAC first)
- Map sensor channels to zones with the Zone ↔ Channel Map field
Zone-Channel Mapping
Each soil sensor reports on a numbered channel (soil_ch1, soil_ch2, ...). The map is a small JSON object of channel number → Sprigg zone ID, for example:
{"1": "zone-id-front", "2": "zone-id-back"}Zone IDs are shown in Settings → Zones. Channels you leave unmapped are simply ignored, and unmapped zones continue to use the modeled soil-moisture estimate.
What Sprigg Does With Readings
- Ground-truth soil moisture — Live volumetric readings per mapped zone
- Model override — Sensor readings replace the modeled root-zone estimate in the daily analysis, so the advisor's preferred hydration signal comes from real measurements
- Smarter watering — Zones water when the probe says the soil is actually dry, not when the model guesses it might be
Security
All integration credentials (API keys, passwords) are encrypted at restin the database using AES encryption. Credentials are decrypted only when needed to make API calls and are never exposed in the UI after initial entry — once saved, sensitive fields display "Saved — enter a new value to replace" instead of the stored value. To update a credential, simply type a new value and save; to remove it, clear the field. You can update or remove credentials at any time from the Integrations settings page.
Troubleshooting
Sync fails or shows no zones
- Verify your API key or credentials are correct
- Ensure your controller is online and connected to Wi-Fi
- Check that you have at least one enabled zone on your controller
- Try syncing again after a few minutes — the controller API may be temporarily unavailable
Zone commands not executing
- Confirm your irrigation mode is set to Active
- Check that the zone is not currently in a rain delay on the controller
- Verify the controller is powered on and online
- Check the decision history for any error messages
Stale data or cached results
Zone data is cached for 6 hours (Rachio) to reduce API calls. If you've made changes to your controller configuration, click Sync to force a refresh.