Webhook Documentation

Does the platform supports webhooks via https? I see the incoming request, which then fails due to a certificate problem.

Yes. Use https://webhook.site for testing.

:cheers:

Hi @franz, after a while I just tried to use https and it just works :slight_smile:
Are there new certificates installed on the Rachio side? Otherwise may be a problem with my test environment

The server is a micro-service behind a private subnet making simple HTTP POSTs, we are not hosting certificates.

:cheers:

@franz My openHAB binding is working very stable in between. I want to add support to retrieve the zone pictures from the Rachio cloud and make them available to a html widget. The corresponding url is returned as part of the configuration information (get person) - imageUrl.

In the past the imageUrl contained the base URI as well as a unique identifier.

During my last tests I always got only the base URL. I verified the JSON returned by the cloud
…“imageUrl”:"https://prod-media-photo.rach.io/"
which is missing the uniqie id compared to
…“imageUrl”:“https://prod-media-photo.rach.io/daf89bd1-0744-4603-a5b4-32218fceaae6” of early tests. Other testers are reporting the same issue, so it’s not specific to my installation.

I also noticed that some of the standard icons/pics are not located on https://prod-media-photo.rach.io/, but AWS like: https://s3-us-west-2.amazonaws.com/rachio-api-icons/nozzle/fixed_spray.png

Do you have any idea why the unique id for imageUrl is missing?

I see what happened. This issue should be resolved tomorrow.

:cheers:

I could confirm that the imageUrl is working again.

This brought to the following problem: If you try to embed those images to a simple html view it will fail. The browser downloads a file rather than displaying a image when you open this url.

From my understanding the mime type is not set. This should be fixed. I found a work around in rewriting the url and redirecting load requests to my binding, which loads the image from the cloud as binary and sends it as response with mime-type image/png. That works, but I think Rachio should fix the implementation.

Interesting, I’ll have the team look into it.

:cheers:

my work around

  • take the imageUrl provided by the cloud api, strip off the uuid
  • rewrite the image url to a local servlet/uuid
  • the servlets reads the url as binary stream and writes it to the client, but also sets the mime-type
    in this case the servlet acts like a proxy and the html client/browser is happy :slight_smile:

Hi @franz any update here? I would like to remove the work around if the cloud API works as expected (open the provided imageUrl in the browser and the image gets displayed rather than downloaded to a file). Putting my work around in changes provides exactly this change, but the cloud api should work http(s) compliant.

On the App I received a notification about skipping watering. However, I don’t received a webhook event like WEATHER_INTELLIGENCE_SKIP even I registered for those:
[{“id”:“xxxxxxxx-b8bc-47a1-xxxxxxxx”,
“url”:“https://mydomain.com/rachio/webhook”,
“eventTypes”:[
{“name”:“ZONE_STATUS”,“type”:“WEBHOOK”},
{“name”:“DELTA”,“type”:“WEBHOOK”},
{“name”:“SCHEDULE_STATUS”,“type”:“WEBHOOK”},
{“name”:“DEVICE_STATUS”,“type”:“WEBHOOK”},{“name”:“WEATHER_INTELLIGENCE”,“type”:“WEBHOOK”},
{“name”:“RAIN_DELAY”,“type”:“WEBHOOK”},
{“name”:“ZONE_DELTA”,“type”:“WEBHOOK”}
]]

How to catch those events (in fact all)?

New images have the correct mime-type. This week we will be updating existing images with the correct mime-type. Thanks for pointing this out. The new images now with directly from the URL.

I’ll have the team look into this.

:cheers:

@franz Do you have an update for me?

@franz I’m still very interested to integrate those events :slight_smile:

@franz I am looking into this for Markus’ binding for OpenHAB.

I would like to make a webhook that calls a Uri like this with basic auth in the Uri:

https://myemail%40live.com:somepassword@home.myopenhab.org/rachio/webhook

I have tested this with postman and it works at our end. However, when i register the webhook with Rachio and trigger an event we don’t receive the hook.

Do you support passing basic auth in the uri as above? If not is there a way when registering the webhook to also pass the auth header to use when firing the webhook?

Thanks.

Basic auth is supported, though issue is likely with email use as a username.

I guess you could try replacing dot with “%2E”, but you’ll likely need to use a plain username for native support.

@franz i found your docs on the basic auth support and that the user:pass will be base64 encoded and added to the authorization header. So that got me excited!

However, it looks like Rachio may not uri decode the username:password when the webhook is registered. And i suspect (because i cant see the actual hook you are firing) its base64 encoding the username:password with the Uri encoded chars in it.

e.g:
webhook: https://myemail%40live.com:somepassword@home.myopenhab.org/rachio/webhook

would result in a auth header like this:

(plain) myemail%40live.com:somepassword
(base64) bXllbWFpbCU0MGxpdmUuY29tOnNvbWVwYXNzd29yZA==

instead of this:

(plain) myemail@live.com:somepassword
(base64) bXllbWFpbEBsaXZlLmNvbTpzb21lcGFzc3dvcmQ=

could you confirm if this is the case?

Doh, Ill have the team fix and put this out today.

:cheers:

@franz wonderful! I can’t tell 100% if this is the problem … but it seems like a high probability!

Thanks for being so responsive! The OpenHAB binding almost complete and i’m testing it out and i cant wait to have Rachio all hooked up to my home automation solution.

I had the team test, definitely the problem.

w00t!

1 Like