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 integration is loaded.

Getting your Rachio API Key

  1. Log in at https://app.rach.io/.
  2. Click the “Account Settings” menu item at the bottom of the left sidebar
  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 Rachio go to Configuration >> Integrations in the UI, click the button with + sign and from the list of integrations select Rachio.

Alternatively, add the following to your configuration.yaml file:

# Example configuration.yaml entry
rachio:
  api_key: YOUR_API_KEY

Configuration Variables

api_key string Required

The API key for the Rachio account.

manual_run_mins integer (Optional, default: 10)

For how long, in minutes, to turn on a station when the switch is enabled.

Water-saving suggestion:
Set manual_run_mins to a high 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:water-pump

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
        data:
          entity_id:
            - switch.front_yard_west
            - switch.front_yard_east
            - switch.side_yard_west
          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
        data:
          entity_id:
            - switch.front_yard_west
            - switch.front_yard_east
            - switch.side_yard_west
          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.

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