Reolink POE IP Camera Setup

New updated pushed today with NVR fixes!

I wasn’t able to fix it. Are you saying an update to the NVR itself or an update to the integration fixed it?

Edit: Just updated the integration and got it working again! Thanks for the heads up.

I gave up on the reolink_dev integration since the binary sensors for motion/person detection never worked for me. I have a total of 4 Reolink (E1 Zoom, RLC-510) in use and all of them are WLAN connected. For a few month now I’ve been using Frigate and loving it. It provides with binary sensors for object detection and works well for me.

https://github.com/blakeblackshear/frigate

1 Like

yes, I can imagine that with a dedicated server for image processing you can achieve person detection… but since I have 6 camera with their own local recognition, I’d like to use it.
Once these information about binary sensor are in the packets… there should be a technical solution for it

I use my reolink streams with Doods to create human presence binary sensors on my rpi 8gb ram. No issues other than when Reolink drops out or this recent hiccup with the NVR not speaking to the integration.

I don’t use any specific integration, just the Reolink URL API and REST templates. Person motion detection works like a charm. I have a binary sensor displayed at the bottom of every camera feed.

1 Like

Care to share your sanitized templates?

binary_sensor:
  - platform: rest
    resource: http://[NVR_IP]/api.cgi?cmd=GetMdState&channel=[CAMERA_CHANNEL; STARTS FROM 0 TO TOTAL NUMBER OF CAMERAS -1]&user=admin&password=[PASSWORD]
    name: Motion Detection Main Entrance
    scan_interval: 5
    value_template: '{{ value_json[0].value.state }}'
    device_class: motion

Just change the info between brackets to fit your environment. The “resource” parameter can be included in secrets.yaml. Once you have set everything and restarted HASS, you’ll have a new binary sensor entity that can be placed anywhere. Hope it helps!

5 Likes

Would you happen to have the REST URL also to send to the camera itself?
I believe there is something difficult with a token. But I never succeeded in getting that working.

My cameras are connected to the NVR, so I cannot reach them directly. Try to use the following URL instead for the resource field and tell me if it works:

http://[IPC_IP]/api.cgi?cmd=GetMdState&user=admin&password=[PASSWORD]

Thanks!
I’m getting the following result:
[ { "cmd" : "GetMdState", "code" : 0, "value" : { "state" : 0 } } ]
I guess succesfull!

That’s correct. The REST value_template field should return 1 or 0 according to motion detection state, so the binary sensor will update accordingly. Glad it worked!

I’m using a Reolink RLC-820A and although the majority of the integration works, if I choose to see the live view (by clicking the Picture Glance Card), I just get the spinning wheel. Any suggestions please?

If I use VLC for example, I can view the sub view without an issue. How would I set to view the sub stream please?

Screenshot 2021-10-14 163947

Does anyone have a way to be able to cast these Reolink Cameras to a google nest hub display reliably and without any significant lag?


use this layout, but replace camera with your one of course, make sure you select the same items

If you buffer the feed through HA there will always be the lag. It comes from the way things work under the hood. I don’t know how to explain it I’m details.

Use HA to ask Google to stream it directly from the camera. Add the camera to Google as well.

Streaming from Google Home directly is the worst. up to 15 second delay from live feed is atrocious. 1 - 2 seconds is acceptable. Has anyone had any luck using WebRTC?

Web rtc is the way to go for minimal lag

Have you got it working with Reolink cameras and a google nest display?

I finally succeeded in having binary sensors working for people and vehicle detection, with my AI cameras.
My configuration is 6 RLC-810A without NVR; each of those has some binary sensors associated (people and car detection) and they are all used by a custom integration named “alarmo”, so they can be used to trigger an alarm when it is armed. This means that you can get notifications only when the alarm is armed (so normally when you are away). [One of the most tedious thing about the reolink app is that you can’t really use notifications for outdoor cameras of you house, unless you enable/disable notification of all the camera every time you leave the house - if you keep them enabled all the time, you start receiving tons of notification when you are at home]

I haven’t been lucky with the [reolink_dev] integration, so after test I ended up with this working configuration (I share it in order to recap for the others):

binary_sensor:
  - platform: rest
    name: CAM1 - generic motion detection
    resource: http://192.168.1.51/cgi-bin/api.cgi?cmd=GetMdState&rs=&user=admin&password=mySuperPassword
    method: GET
    value_template: '{{ value_json[0].value.state }}'
    scan_interval: 2
    device_class: motion

  - platform: rest
    name: CAM1 - person detection
    resource: http://192.168.1.51/cgi-bin/api.cgi?cmd=GetAiState&rs=&user=admin&password=mySuperPassword
    method: GET
    value_template: "{{ value_json[0].value.people.alarm_state }}"
    scan_interval: 2
    device_class: motion

  - platform: rest
    name: CAM1 - car detection
    resource: http://192.168.1.51/cgi-bin/api.cgi?cmd=GetAiState&rs=&user=admin&password=mySuperPassword
    method: GET
    value_template: "{{ value_json[0].value.vehicle.alarm_state }}"
    scan_interval: 2
    device_class: motion


The 3 binary sensors are:

  • generic motion detect (I don’t use it)
  • people detect
  • car detect

You have to duplicate this entries for each of the camera you have, changing the IP properly.
NOTE: the fields in the JSON response has been renamed at some point by reolink engineers; be sure to be on the latest camera firmware (in my case: v3.0.0.494).

Now for the live view I’ll test Web RTC.

4 Likes