Skip to main content
Irrigation Management / Smart Controller IntegrationPlanning

Rachio Soil Moisture API Integration

SS-RR-2026-003takeoff toolirrigationdraft
Created 2026-03-21
Brief

Rachio Soil Moisture API Integration

Status: Draft | ID: SS-RR-2026-003

Overview

Integrate with Rachio's public API to set zone-level soil moisture values from SimplyScapes' design-computed irrigation intelligence. When SimplyScapes calculates that a zone's moisture has dropped below its allowed depletion threshold (via ETo, plant factors, and soil properties), it writes that moisture value directly to the Rachio controller — letting Flex Daily schedules respond with real, design-informed data instead of Rachio's generic weather-only estimates.

This is specifically scoped to Rachio controllers. Other controller integrations (Hydrawise, Hunter, etc.) are separate efforts.

Problem

Rachio's Flex Daily algorithm estimates soil moisture using weather data and generic soil/plant assumptions. It has no awareness of the actual design geometry (head placement, DU, precipitation rate) or the species-specific plant factors that SimplyScapes already computes. Professionals who install Rachio controllers after designing in SimplyScapes lose the precision of their design once the controller takes over scheduling.

There is no way to read current moisture from Rachio's public API — only to write it. This means SimplyScapes must maintain its own moisture model and push overrides, rather than reading and adjusting Rachio's internal state.

Strategic Fit

Closes the loop between SimplyScapes' irrigation design engine and real-world controller execution. This is the "last mile" of the Automated Turf Irrigation Scheduling idea (SS-RR-2026-002) — the mechanism by which design-computed schedules actually reach the controller hardware.

Rachio is the natural first target: it's already integrated in the SimplyScapes Schedule tab, has a well-documented public API, and its Flex Daily system is specifically designed to respond to external moisture data. The API was explicitly built to support external soil moisture sensors — SimplyScapes would act as a "virtual sensor" powered by design intelligence rather than physical hardware.

Key API Constraints (from research)

| Constraint | Detail | |-----------|--------| | Write-only moisture | PUT /zone/setMoisturePercent (0.0-1.0) and PUT /zone/setMoistureLevel (mm) — no GET for current moisture | | Flex Daily only | Moisture writes only affect zones on Flex Daily schedules | | No immediate trigger | Setting moisture low does not trigger an immediate run — Flex Daily evaluates at its next scheduled time | | Rate limit | 1,700 API calls/day, resets at midnight UTC | | Moisture scale | 0% = permanent wilting point, 100% = field capacity (not raw volumetric) |

Open Questions

  1. How frequently should SimplyScapes push moisture updates to Rachio? Daily? After each ETo recalculation? Event-driven?
  2. Should we expose a user-facing toggle ("let SimplyScapes manage moisture") or make it automatic when a Rachio controller is linked?
  3. How do we handle the mapping between SimplyScapes zones and Rachio zones — is the existing Schedule tab mapping sufficient?
  4. What happens when a user manually waters via the Rachio app — how do we reconcile our moisture model with an untracked watering event?
  5. Should we support setMoistureLevel (mm) in addition to setMoisturePercent, or standardize on percent?

TODO: Product Manager to expand with user stories and acceptance criteria.