Reolink interval for motion detection

Hello. I have just used the ReoLink integration to set up notification for motion detection for my individual cameras. I’m generally happy and this works fairly well with minimal complications, but I do have one question/complaint.

Is there any way to increase the frequency that the Person or Vehicle detection is checked to fire HA Triggers? The first thing that I do when a person is detected is create a snapshot for the camera that detected it. I have noticed that there is sometimes enough of a delay that the snapshot is not particularly valuable (the person has moved out of the frame by the time the snapshot is created).

I ran my triggers in parallel with the native ReoLink email notification system. There is definitely a difference between the time of the snapshot for email and the time of the snapshot created by my trigger. It’s not always consistent, but one this morning was a full 9 seconds later from the trigger.

Is there anything that can be done to increase the monitor frequency of the trigger that is looking for the detection?

A few updates on this.

I actually read the documentation, and it does mention that there is an entity called “CAMERANAME sub” that was implemented partially to reduce latency. I changed my logic to stop getting a snapshot directly from the Camera device and start using the entity of the sub to the camera.

I did see one other thing in the documentation, namely

These sensors receive events using 3 methods in order: ONVIF push, ONVIF long polling or fast polling (every 5 seconds). The latency for receiving the events is the best for ONVIF push and the worst for fast polling, the fastest available method that is detected to work will be used, and slower methods will not be used.

I guess my question now is: Is there any way to determine which method of trigger firing is being used? I looked at varoius devices and entities, I don’t think I see anything of this nature.

@starkillerOG Sorry to bother you, but you are probably the only person that knows the answer above…

@BrianGGG The delay between the camera detecting motion/AI and the status update of the binary sensors in HomeAssistant schould be well below 1 second if it is working properly.

Are you by any change using the Reolink doorbell which is giving this delay or is it another camera?
There is a known bug in the Reolink doorbell firmware which causes a delay of around 10 seconds if the internet connection of the doorbell is blocked. There is a beta firmware which resolves this issue which can be requested from Reolink support: Submit a Request - Get More Support from Reolink
If it is a diffrent model, which model is having the issue?

In this PR Add Reolink sensor platform by starkillerOG · Pull Request #28173 · home-assistant/home-assistant.io · GitHub I actually created a sensor which would show the user which method was currently beeing used, unfortunately I was forced to remove the sensor since it is against the HA guidelines. The sensor is not reporting anything from the device but some internal artificial state of the code which is not allowed.

You can still figure out which method is beeing used by enabeling debug mode and looking at the log.
If you enable debugging, restart the reolink integration wait for 5 minutes, turn of debug logging and post the resulting .txt log file, I can tell you which method is beeing used.

If you appreciate the reolink integration and want to support its development, please consider sponsering the upstream library or purchase Reolink products through this affiliate link.

Thanks so much @starkillerOG for responding with a detailed message.

Here are some updates/responses:

  1. As above, I stopped getting my snapshots from the device itself and started using the Snapshot Sub entity.

  2. I also updated the firmware on all of my (D500) cameras. Although auto-update said that they were up-to-date they were not. I had to do a USB update from the NVR itself.

After these two changes, performance has been MUCH better. I will occasionally be 1-2 seconds slower than the native Reolink notification, but for the most part I am generally happy with the snapshots I am getting as part of an automation in HA. This has also allowed me to do much more customization within HA (e.g. notification through Telegram, different snapshot intervals in different situations, etc.)

Note also that I do not have a Reolink doorbell as you asked above.

I have sent you my debug log. I was reluctant to post it publicly as it seems to have email addresses, URLs, etc.

Indeed updating firmware can help.
Note that the binary sensors in HomeAssistant should update within 1 second, but if you make a automation to send a message to for instance your phone, the sending of the message to your phone can take several seconds depending on the way you send the message, if your phone is in battery saving mode/actively connected to a network and the kind of connection your phone has to homeassistant (local/internet, wifi/LTE, persistent connection etc.).

Regarding the debug log, see my private message response.
For people who are intrested the relevant log entries are:

DEBUG (MainThread) [homeassistant.components.reolink.host] Waiting for initial ONVIF state on webhook 'http://??????:8123/api/webhook/reolink_???????_ONVIF'
DEBUG (MainThread) [homeassistant.components.reolink.host] Did not receive initial ONVIF state on webhook 'http://??????:8123/api/webhook/reolink_???????_ONVIF' after 10 seconds
DEBUG (MainThread) [reolink_aio.api] Reolink ????? requesting ONVIF pull point message
INFO (MainThread) [reolink_aio.api] Reolink ????? received ONVIF pull point event

First one indicates a succesfull subscription to push
Second one indicates it never got a push responds
Third indicates it is falling back to long polling
fourth indicates it succesfully got a long polling responds and will continue using that to receive updates.

Hey @starkillerOG,

I’m experiencing the same issue as the thread’s creator. I’m using motion sensors to trigger an action. Sometimes it works quickly, but at other times, it takes 5-10 seconds, and I’m getting a bit frustrated. Unfortunately, with the Reolink integration, I can’t find a way to enable debugging; there simply doesn’t seem to be an option for it.
I use a E1 Outdoor.
How can I go about activating it?

Best regards.

Its the button on the left of the picture: “Bekannte probleme”

No, thats forwarding me to Issues · home-assistant/core · GitHub

Translated it means “Known Issues”

Sorry indeed, now I see you are missing the button that should be right beloofd that one.
Are you using a custom reolink integration?
(In the custom_components folder inside your config folder is there still a reolink folder?)
If so please remove the custom integration.

Hi,
no there is no custom integration. I use the official one.
Best regards

Is there any chance to get the debug log?

Hey @starkillerOG,
i now have the debug log files for the reolink integration.
May i send them to you?

best regards
Marcel

@MarcelW I checked your log, ONVIF push is working in your setup, so you should receive detections fast.

  • Do you have any other software also accessing the camera (like Blue Iris or Skrypted)?
  • Do you have internet blocked for the camera?
  • What is your average CPU/Memory usage % on your HomeAssistant device and what kind of device are you running HomeAssistant on?

@starkillerOG

  1. No
  2. No
  3. The average CPU/Memory usage is around 4-5%, and I’m running HomeAssistant on a Raspberry Pi 4.

I may have a solution. To ensure a smooth stream in Home Assistant, I have installed the ‘RTSPtoWeb - WebRTC’ add-on, which continuously fetches the stream. When I stop the add-on, it appears that push notifications arrive more quickly.

In that case it could be that the camera CPU/memory usage is high and the camera can’t keep up.
Indeed stopping extra streams can then help give the camera more room to push through the motion detections faster.