In case someone else comes across this thread looking for a way to make Home Assistant notifications open a specific camera on Reolink app, here’s what I was able to find after some reverse engineering.
To open a specific camera you’ll need to use the following URI:
intent://scan/#Intent;scheme=reolink;package=com.mcu.reolink;action=android.intent.action.VIEW;S.UID=<UID>;S.DEVNAME=<DEVICE_NAME>;S.ALMTYPE=<ALARM_TYPE>;S.ALMCHN=<CHANNEL>;S.ALMNAME=Detection;S.ALMTIME=<ALARM_DATE>;end
Where
<UID>
= The UID of your camera or NVR (see this link)
<DEVICE_NAME>
= The name of your camera or NVR
<ALARM_TYPE>
= This can be either PEOPLE or VEHICLE depending on the detection type that triggered the notification. I personally believe this can be any value you want since it doesn’t impact the mobile app in any way. The important thing is that this has some value. I suggest always using PEOPLE or VEHICLE.
<CHANNEL>
= The NVR channel to show on the Reolink app. I use Reolink NVR so this is important to me since this is the parameter that determines which camera will show up when the app opens. This parameter is a bitmask meaning you need to use it like this:
- NVR camera 1 then CHANNEL = 1
- NVR camera 2 then CHANNEL = 2
- NVR camera 3 then CHANNEL = 4
- NVR camera 4 then CHANNEL = 8
- …
- NVR camera N then CHANNEL = 2N-1
I didn’t test things by connecting directly to a camera, but I assume for direct camera access CHANNEL must always be 1. In that scenario what determines which camera will be shown on Reolink app is the UID parameter.
<ALARM_DATE>
= The date/time to show the camera stream for. If this date is less than 2 minutes from current time, then the Reolink app will show the live view for the camera, otherwise Reolink app opens the camera in playback mode with the correct date/time indicated by this parameter.
This parameter must be in ISO-8601 format. To do that, in my Home Assistant automations, I use {{ now().isoformat() }}
Here’s a simple example on how to send a notification to Home Assistant App that, when clicked, opens Reolink app with a specific camera selected. For this example assume that:
- We’re using an NVR with UID=998877AABBCC and NAME=MyNvr
- We want to show channel 8 of the NVR
service: notify.mobile_app_<your_device_id_here>
data:
message: This message will open Camera 8 on Reolink app
data:
priority: high
ttl: 0
clickAction: >-
intent://scan/#Intent;scheme=reolink;package=com.mcu.reolink;action=android.intent.action.VIEW;S.UID=998877AABBCC;S.DEVNAME=MyNvr;S.ALMTYPE=PEOPLE;S.ALMCHN=256;S.ALMTIME={{now().isoformat()}};S.ALMNAME=Detection;end