Reolink Doorbell - receiving Visitor events in Hubitat

This is what I did to receive events in Hubitat when someone pressed the doorbell button. If I have missed out any details, or if I have made any mistakes, please tell me.

Motivation: My other half doesn't always have her phone with her so would not always hear the notifications when someone pushed the doorbell button. She wanted some kind of noise or "ding dong" in the house.
I think that "phone notifications" require internet access - if true, I would prefer to have a solution which does not require this.
The door bell is situated about 80 metres from the house so the supplied Reolink chime will not activate.

Procedure: I used the Reolink app to set up the doorbell's ONVIF server.
I installed Scrypted via Docker on my Synology NAS.
Scrypted found the doorbell and I could see BinarySensor events whenever the button was pushed.
On Hubitat I installed a Virtual Button device, and a Maker API with the doorbell Virtual Button as a "Selected Device" so that it could receive HTTP messages.
I set up a Scrypted automation to run the Shell Script "curl http://(Hub address)/apps/api/7/devices/4/push/1?access_token=(your access token)" whenever "BinarySensor eventData===true"

And it seems to work. I set up a Rule to use the event to call the Chromecast app to make my Google Home Mini say "There is someone at the gate"

As I said, all comments are welcome.

4 Likes

Nice example :slight_smile:

Have you heard that Reolink is going to support webhooks?

I wonder if it helps ommit all the things you described and connect Reolink cameras/doorbells directly to Hubitat.

I will be happy when they do.
My excuse is that I want to have a working doorbell asap. And maybe because, once the thought "there must be a way of doing this" enters my head, I get a bit single-minded and don't like giving up.
Now if I could just get 2-way audio working.......

Just an update...
I now use the Reolink Camera plugin in Scrypted instead of the ONVIF plugin as it has been updated to support 2-way audio.
I have also added a 2nd automation in Scrypted (in addition to the button push one) which is activated whenever movement is detected. I have added a corresponding Virtual Motion Sensor in Hubitat which when activated via Maker API uses another rule to send a different audio message to the speaker.
Now I just need a free app which supports RTSP/RTMP streaming AND 2-way audio.
As before, I have tried to keep this description short, so feel free to ask for any clarifications.

Dummy here. Trying to get this to work but scrypted console is saying bad URL. I have replaced hub IP and maker token where appropriate but honestly I’m not super familiar with maker API. Any help is appreciated

In Scrypted I put an automation trigger of eventData===true for event Reolink Doorbell (BinarySensor) and an Action of Run Shell Script.
The single line of the script is... curl http://%Hubitat IP address%/apps/api/%Maker API app number%/devices/%Virtual button device number%/push/%Number of button to push%?access_token=%Maker API access token%
Replace all %% with your data (you will need a Maker API app and a Virtual Button device).

Another update... My Synology NAS now supports the Reolink doorbell directly (no need to use ONVIF) so I have stopped using Scrypted to send an http message to Hubitat and just use a Synology Action Rule to send the message whenever someone pushes the doorbell button.

I’ve never used synology so I’m curious, what’s it doing to “support” the doorbell? Like how does their integration work (if not with ONVIF)?

It has a list of cameras that it knows how to communicate with. Each entry in the list has a bunch of parameters telling the NAS how to handle the camera and what functions it provides. This has included ONVIF for a long time so in the past it could record the Reolink doorbell but not much else.
Recently it added "Reolink Doorbell" to its list. It talks to the doorbell with HTTPS via the doorbell's API so now it handles button pushes, 2-way audio, and person detection.

:thinking:

So if the doorbell does have an API accessible by HTTP(S), the hub should be able to take advantage of that directly too.

I think the problem is that, currently, the doorbell cannot be configured to send an HTTP message when an event (button pushed, etc) occurs. I think the NAS uses some other aspect of the API to receive events. I've looked at the API and it looks complicated. Maybe I'm wrong, but I think the manufacturers (e.g. Reolink) are responsible for providing Synology with info (maybe including drivers) for adding a device to their list of supported cameras.
Clearly the doorbell can sent event messages, but the mechanism does not appear to be publicly visible.

Download the Hubitat app