Does the platform supports webhooks via https? I see the incoming request, which then fails due to a certificate problem.
Hi @franz, after a while I just tried to use https and it just works
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.
@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.
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.
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
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.
@franz Do you have an update for me?
@franz I’m still very interested to integrate those events
@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.
@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!