Rachio Smart Sprinkler Controller

I doubt it. Maybe if you host your own openHAB Cloud instance and change the code to allow it. Since it has to send an email to activate the account I doubt you can use anything but a valid email address to get an account set up.

@markus7017 and @rlkoshak I have successfully used the binding with MyOpenHAB.org and am able to see events coming in from Rachio via the MyOpenHAB.org proxy.

It took a bug fix on the Rachio end to handle ā€œ@ā€ in the usernames in webhook Uriā€™s and they fixed that already.

@markus7017 if you dont mind i would like to tidy up the binding and remove a bunch of the code to do with IP range checking etcā€¦ I think it would be far simpler to adjust the setup docs etcā€¦ to show people how to use MyOpenHAB.org for this. It is very simple to setup. I would also like to PR some more suggestions to bring the binding up to spec on the new conventions and discovery service system. Iā€™ll submit a PR in the next day or two when complete.

This is really exciting! no more proxy or port forwarding or NGINX needed :slight_smile:

@markus7017 could you please unarchive your git repo so that i can submit a PR?

For anyone interested in trying this new version out using MyOpenHab.org to proxy events from Rachio vs. opening ports etcā€¦ here is a jar:

org.openhab.binding.rachio-2.5.6-SNAPSHOT.jar

good news. Iā€˜ll look into that next week, pretty busy at the moment. There is cleanup and some re-factoring required to make it Review-ready. Maybe we could bring it in into 2.5.7/2.5.8

1 Like

Did you created the PR to my repo?

Ah. I forked markus7017/org.openhab.binding.rachio. Iā€™ll fork your openhab-addons repo and PR to there.

@markus7017 ok i forked the wrong repo and it looks like you have made quite a few changes since then, so i will have some work to do to merge my changes. ill work on that and get you a PR soon.

@markus7017 would you mind rebasing your repo on 2.5.X? There are changes to bring it up to 2.5.6 and i rebased my local branch in order to get those. My PR would be pretty big if it included all those.

ok, rebase to 2.5.6 is done and changes are pushed

@markus7017 thanks. PR submitted https://github.com/markus7017/openhab-addons/pull/11

Your PR has 7 conflicting files and 4.700 lines of code changed.
Did you rebased your fork before creating the PR?

@markus7017 yeah I rebased. not sure why its showing that much of a diff. I didnt change that much code. Iā€™ll take another look.

done. PR should be a bit better now :slight_smile:

Iā€™ve installed the 2.5.6 binding from post 303 into my test system. I enabled debug logging and then trace logging later on. My cloud bridge comes online with seemingly no issues. Based on the trace, itā€™s getting the JSON for all of the zones and the device. Unfortunately, nothing is showing up in the inbox to add for either. I was able to add it via text file and the things did come online.

For anyone reading this, because I couldnā€™t find it when searching through, the XXXXXXXX in the things file for device and zone is the mac address of the Rachio itself.

To note, I have my own reverse proxy already that Iā€™ll be using instead of myopenhab.org for this setup.

There seems to be an API issue with the running and stopping of zones. When I send ON to run the zone I get an HTTP 429 error. When I hit stop, I get the same error, but it resets the run item back to ON. To note, the zone never actually activates. Iā€™ll attempt to post logs when Iā€™m not on a phone.

you need to manually add an Account Thing and then run the discovery. This will create the controller and zone entries in the Inbox

I did. I added the bridge and it came online. When I clicked the scan button at the top on paperui, Rachio does not display as something to force a discovery. I could however see everything when I run trace level logging when I restarted OH.

Log messages Iā€™m getting:

2020-06-28 09:26:22.911 [INFO ] [ing.rachio.handler.RachioZoneHandler] - RachioZone: Starting zone 'Backyard North [6]' for 0 secs
2020-06-28 09:26:23.186 [WARN ] [ing.rachio.handler.RachioZoneHandler] - RachioZoneHandler: Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/zone/start, PUT https://api.rach.io/1/public/zone/start, http code=0
2020-06-28 09:26:38.015 [WARN ] [g.rachio.handler.RachioBridgeHandler] - RachioBridge: Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/person/REDACTED, GET https://api.rach.io/1/public/person/REDACTED, http code=0
2020-06-28 09:26:50.164 [INFO ] [ing.rachio.handler.RachioZoneHandler] - RachioZone: Stop watering for the device
2020-06-28 09:26:50.421 [WARN ] [ing.rachio.handler.RachioZoneHandler] - RachioZoneHandler: Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/device/stop_water, PUT https://api.rach.io/1/public/device/stop_water, http code=0
2020-06-28 09:26:55.388 [INFO ] [ing.rachio.handler.RachioZoneHandler] - RachioZone: Starting zone 'Backyard South [5]' for 0 secs
2020-06-28 09:26:55.649 [WARN ] [ing.rachio.handler.RachioZoneHandler] - RachioZoneHandler: Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/zone/start, PUT https://api.rach.io/1/public/zone/start, http code=0
2020-06-28 09:27:08.183 [INFO ] [ing.rachio.handler.RachioZoneHandler] - RachioZone: Stop watering for the device
2020-06-28 09:27:08.439 [WARN ] [ing.rachio.handler.RachioZoneHandler] - RachioZoneHandler: Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/device/stop_water, PUT https://api.rach.io/1/public/device/stop_water, http code=0
2020-06-28 09:27:17.801 [INFO ] [ing.rachio.handler.RachioZoneHandler] - RachioZone: Stop watering for the device
2020-06-28 09:27:18.063 [WARN ] [ing.rachio.handler.RachioZoneHandler] - RachioZoneHandler: Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/device/stop_water, PUT https://api.rach.io/1/public/device/stop_water, http code=0
2020-06-28 09:27:38.264 [WARN ] [g.rachio.handler.RachioBridgeHandler] - RachioBridge: Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/person/REDACTED, GET https://api.rach.io/1/public/person/REDACTED, http code=0
2020-06-28 09:27:50.175 [INFO ] [ing.rachio.handler.RachioZoneHandler] - RachioZone: Stop watering for the device
2020-06-28 09:27:50.417 [WARN ] [ing.rachio.handler.RachioZoneHandler] - RachioZoneHandler: Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/device/stop_water, PUT https://api.rach.io/1/public/device/stop_water, http code=0


2020-06-28 09:26:22.905 [ome.event.ItemCommandEvent] - Item 'RachioZone6_Run' received command ON
2020-06-28 09:26:22.911 [nt.ItemStatePredictedEvent] - RachioZone6_Run predicted to become ON
2020-06-28 09:26:22.916 [vent.ItemStateChangedEvent] - RachioZone6_Run changed from OFF to ON
2020-06-28 09:26:23.186 [hingStatusInfoChangedEvent] - 'rachio:zone:1:REDACTED-6' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/zone/start, PUT https://api.rach.io/1/public/zone/start, http code=0
2020-06-28 09:26:50.163 [ome.event.ItemCommandEvent] - Item 'RachioZone6_Run' received command OFF
2020-06-28 09:26:50.164 [nt.ItemStatePredictedEvent] - RachioZone6_Run predicted to become ON
2020-06-28 09:26:50.421 [hingStatusInfoChangedEvent] - 'rachio:zone:1:REDACTED-6' changed from OFFLINE (COMMUNICATION_ERROR): Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/zone/start, PUT https://api.rach.io/1/public/zone/start, http code=0 to OFFLINE (COMMUNICATION_ERROR): Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/device/stop_water, PUT https://api.rach.io/1/public/device/stop_water, http code=0
2020-06-28 09:26:55.378 [ome.event.ItemCommandEvent] - Item 'RachioZone5_Run' received command ON
2020-06-28 09:26:55.388 [nt.ItemStatePredictedEvent] - RachioZone5_Run predicted to become ON
2020-06-28 09:26:55.398 [vent.ItemStateChangedEvent] - RachioZone5_Run changed from OFF to ON
2020-06-28 09:26:55.650 [hingStatusInfoChangedEvent] - 'rachio:zone:1:REDACTED-5' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/zone/start, PUT https://api.rach.io/1/public/zone/start, http code=0
2020-06-28 09:27:08.182 [ome.event.ItemCommandEvent] - Item 'RachioZone5_Run' received command OFF
2020-06-28 09:27:08.182 [nt.ItemStatePredictedEvent] - RachioZone5_Run predicted to become ON
2020-06-28 09:27:08.439 [hingStatusInfoChangedEvent] - 'rachio:zone:1:REDACTED-5' changed from OFFLINE (COMMUNICATION_ERROR): Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/zone/start, PUT https://api.rach.io/1/public/zone/start, http code=0 to OFFLINE (COMMUNICATION_ERROR): Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/device/stop_water, PUT https://api.rach.io/1/public/device/stop_water, http code=0
2020-06-28 09:27:17.800 [ome.event.ItemCommandEvent] - Item 'RachioZone5_Run' received command OFF
2020-06-28 09:27:17.800 [nt.ItemStatePredictedEvent] - RachioZone5_Run predicted to become ON
2020-06-28 09:27:50.174 [ome.event.ItemCommandEvent] - Item 'RachioZone5_Run' received command OFF
2020-06-28 09:27:50.174 [nt.ItemStatePredictedEvent] - RachioZone5_Run predicted to become ON
2020-06-28 09:32:32.175 [ome.event.ItemCommandEvent] - Item 'RachioZone5_Run' received command OFF
2020-06-28 09:32:32.175 [nt.ItemStatePredictedEvent] - RachioZone5_Run predicted to become ON
2020-06-28 09:32:51.245 [ome.event.ItemCommandEvent] - Item 'RachioZone4_Run' received command ON
2020-06-28 09:32:51.265 [nt.ItemStatePredictedEvent] - RachioZone4_Run predicted to become ON
2020-06-28 09:32:51.266 [vent.ItemStateChangedEvent] - RachioZone4_Run changed from OFF to ON
2020-06-28 09:32:51.509 [hingStatusInfoChangedEvent] - 'rachio:zone:1:REDACTED-4' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/zone/start, PUT https://api.rach.io/1/public/zone/start, http code=0

Iā€™m not sure what has changed but my cloud connector bridge is refusing to come online for the past day or so. Iā€™ve restarted OH a few times and it doesnā€™t seem to fix anything.

2020-07-03 16:54:38.959 [DEBUG] [g.rachio.handler.RachioBridgeHandler] - RachioBridge: Connecting to Rachio cloud
2020-07-03 16:54:38.959 [TRACE] [nding.rachio.internal.api.RachioHttp] - RachioHttp[Call #1]: Call Rachio cloud service: GET 'https://api.rach.io/1/public/person/info')
2020-07-03 16:54:39.225 [WARN ] [g.rachio.handler.RachioBridgeHandler] - RachioBridge: Exception: {0} (Server returned HTTP response code: 429 for URL: https://api.rach.io/1/public/person/info, GET https://api.rach.io/1/public/person/info, http code=0