Rachio Controller

I created a lovelace frontend with a node red flow that handles quick runs for the Rachio sprinkler controller. With this setup you can start or stop the sprinklers from within HA or the Rachio app and HA will stay in sync. You can even start running a zone in the Rachio app and stop it from within HA.

When a zone is started the buttons will be disabled for 10 seconds to prevent any interruptions to the node red flow.

You do not have to stop a zone to start another one as the node red flow will handle this.

Prereqs:
Button Card:

Fold Entity Row:

State Switch:

HUI Element:

Node Red Secrets Node:

Webhook setup using Rachio API:
Rachio Bearer Token
Rachio Person ID

After you know your Bearer token and person id you will need to create a webhook using Rachios api
The webhook ID you generate within the webhook node is the webhook ID you will add to Rachios API.

Custom integration between Node Red and HA will need to be installed:

Node red websocket:

After you have obtained your Bearer token and Person ID from Rachio you will need to place them in the two Secret nodes.
bearer

In the webhook node you will need to generate an ID which will create a webhook in HA for that node. This is the ID you will add to Rachios API.
webhook

Hope this helps someone with Rachio or at least gives you some ideas of how to set yours up.

3 Likes

Looks great! Thanks for posting. Only have the barebones integration setup right now and have been meaning to improve it so I’ll be sure to review your config in detail. Ultimately I want to get “last run time”, “next run time”, & “cumulative monthly minutes” …or something like that eventually showing in the UI.

Based on the research I have completed the Rachio api does not provide next runtime. I have also been trying to figure out a method to obtain the info. Others have also requested that Rachio add it to their api.

This is exactly what I want to set up! Thanks! Now I just have to learn how to actually set it up… like, I don’t know exactly what flow to create in node-red with those elements, nor how to integrate the code you provided…

All the code is in GitHub. Are you not familiar with creating node red flows? All you have to do is import my flow in and update the properties I noted that apply to your controller.

Github also contains the yaml to display on the frontend.

I don’t use NodeRED so maybe this is a dumb question…but why do you need to subscribe to a new webhook for this to work? Is it not possible to use the native Rachio integration in HA for that?

I attempted with the existing and noticed a few gotcha’s. Its been a while since I created this so its not fresh in my memory.

The built-in integration only allows for 2 service attributes. enity_id(your_zone) and duration.

I wanted more control from within HA. I can also see time remaining and extend on other properties down the road.

If you just want to start zones on a schedule from within HA or just start a zone for X number of minutes then the built in integration should work just fine.

Thanks for sharing your Rachio project. I’ve leaned a lot from reading your ‘codes’ , I like the way how you control Rachio controller inside node red, that give us more flexibility. I’ve gone through all your steps to setup my project, have to recreate some nodes to make it works, as the ‘msg.switch’ can’t be generated in node red…

some changes in the provided group yaml file, ‘switch’ need to be changed to ‘input_boolean’, ‘timer’ need to be changed to ‘input_text’.

BTW, how to you add all eventtypes whille adding webhook into Rachio API ? No too much info on the Rachio web. I see home assistant integration webhook has the following event types:

	"eventTypes": [
		{
			"name": "DEVICE_STATUS",
			"type": "WEBHOOK"
		},
		{
			"name": "RAIN_SENSOR_DETECTION",
			"type": "WEBHOOK"
		},
		{
			"name": "SCHEDULE_STATUS",
			"type": "WEBHOOK"
		},
		{
			"name": "RAIN_DELAY",
			"type": "WEBHOOK"
		},
		{
			"name": "ZONE_STATUS",
			"type": "WEBHOOK"

}