Rachio


The rachio platform allows you to control your Rachio irrigation system.

There is currently support for the following device types within Home Assistant:

They will be automatically added if the Rachio integration is loaded.

Getting your Rachio API Key

  1. Log in at https://app.rach.io/.
  2. Go to Settings.
  3. Click Get API Key.
  4. Copy the API key from the dialog that opens.

In order for Rachio switches and sensors to update, your Home Assistant instance must be accessible from the internet, either via Home Assistant Cloud or another method. See the Remote Access documentation for more information.

Configuration

To add the Rachio integration to your Home Assistant instance, use this My button:

Rachio can be auto-discovered by Home Assistant. If an instance was found, it will be shown as Discovered. You can then set it up right away.

Water-saving suggestion:
After setting up the integration, change the options to set the duration in minutes to run when activating a zone switch to a maximum failsafe value when using scripts to control zones. If something goes wrong with your script, Home Assistant, or you hit the Rachio API rate limit of 1700 calls per day, the controller will still turn off the zone after this amount of time.

iFrame

If you would like to see and control more detailed zone information, create an iFrame that renders the Rachio web app.

panel_iframe:
  rachio:
    title: Rachio
    url: "https://app.rach.io"
    icon: mdi:sprinkler-variant

Switch

The rachio switch platform allows you to toggle zones and schedules connected to your Rachio irrigation system on and off.

Once configured, a switch will be added for every zone that is enabled on every controller in the account provided and a switch to start or stop every schedule on a controller. There will also be a switch to toggle each controller’s standby mode, as well as to activate a 24 hour rain delay on the device.

Services

Service rachio.start_multiple_zone_schedule

Allows a list of zones to be passed with a corresponding list of durations to create a custom schedule directly from Home Assistant.

It is not currently possible to have zones from multiple controllers in the same custom schedule.
Service data attribute Optional Description
entity_id no List of zones to run. Will be run in the order listed.
duration no Duration in minutes to run the zones. If a list of durations is provided, each duration will apply to the corresponding zone listed above. Alternatively, one duration can be provided and will be used for all zones.

Examples

#Example sctipt to start multiple zones with individual duration for each zone.
script:
  run_grass_zones:
    sequence: 
      - service: rachio.start_multiple_zone_schedule
        target:
          entity_id:
            - switch.front_yard_west
            - switch.front_yard_east
            - switch.side_yard_west
        data:
          duration: 20, 15, 10
#Example sctipt to start multiple zones with one duration for all zones.
script:
  run_grass_zones:
    sequence: 
      - service: rachio.start_multiple_zone_schedule
        target:
          entity_id:
            - switch.front_yard_west
            - switch.front_yard_east
            - switch.side_yard_west
        data:
          duration: 20

Service rachio.set_zone_moisture_percent

Set the zone moisture percentage for a zone or group of zones.

Rachio allows for setting the moisture percentage of a zone or group of zones. As Rachio only uses moisture levels for zones in a Flex Daily schedule, this service is only available when at least one zone is part of a Flex Daily schedule.

Service data attribute Optional Description
entity_id yes String, list or group of zones to set moisture percentage.
percent no Integer of the desired moisture percentage. Accepts 0-100.

Service rachio.pause_watering

Pause a currently running schedule.

This service will not be available if only a Generation 1 controller is on the account, as these controllers do not support pause or resume.

Service data attribute Optional Description
devices yes Name of the controller(s) to pause. If not given, will pause all running controllers on the account.
duration yes Duration in minutes to pause. Accepts 1-60. Defaults to 60 minutes if not specified.

Service rachio.resume_watering

Resume a currently paused schedule.

This service will not be available if only a Generation 1 controller is on the account, as these controllers do not support pause or resume.

Service data attribute Optional Description
devices yes Name of the controller(s) to resume. If not given, will resume all paused controllers on the account.

Service rachio.stop_watering

Stops all currently running schedules.

Service data attribute Optional Description
devices yes Name of the controller(s) to stop. If not given, will stop all running controllers on the account.

Examples

In this section, you find some real-life examples of how to use this switch.

groups.yaml example

irrigation:
  name: Irrigation
  icon: mdi:water-pump
  view: true
  entities:
  - group.zones_front
  - group.zones_back
  - switch.side_yard
  - switch.every_day_6am

zones_front:
  name: Front Yard
  view: false
  entities:
  - switch.front_bushes
  - switch.front_yard

zones_back:
  name: Back Yard
  view: false
  entities:
  - switch.back_garden
  - switch.back_porch