[Release] Reolink Integration - Cameras, Doorbells, NVRs & Home Hubs
An open-source integration for Reolink cameras, doorbells, NVRs, and Home Hubs. Talks to your devices over their local HTTP API no cloud account, no Reolink app dependency for automation purposes.
GitHub: Hubitat-Apps-Drivers/Reolink Integration at main · jdthomas24/Hubitat-Apps-Drivers · GitHub Available via HPM (see install steps below)
Why I built this
Reolink doesn't have an official Hubitat integration, and the existing community options I found didn't cover the ground I needed. A better way to handle the mix of standalone cameras, NVRs, and Home Hubs a lot of us actually have, rather than assuming one topology.
This is built and tested against real hardware, not just the API docs - a few of the notes below exist specifically because Reolink's own documentation turned out to be incomplete or self-contradictory once checked against actual devices.
Features
- Motion & AI detection - motion, person, vehicle, pet, package as native Hubitat attributes
- Doorbell button press - standard
PushableButtonevent, triggers Rule Machine like any other doorbell- Snapshot capture
- PTZ control - pan/tilt/zoom, plus preset recall and save (Reolink's API has no dedicated "Home" command - preset recall is the practical equivalent)
- Spotlight, night vision, and siren control on models that support them
- Battery % via the standard Hubitat
Batterycapability- Sleep Status - tells "no response because the device is asleep" apart from "no response because something's actually wrong," so a normal battery check-in gap doesn't get misread as an outage
- Multi-source architecture - any mix of standalone cameras, NVRs, and Home Hubs at once, with per-device poll intervals
Installation
Via HPM: Search for "Reolink Integration"
- Install
- Integrations → Add User Integration → "Reolink Integration"
Manual:
- Drivers Code → New Driver → paste
CameraDriver.groovy→ Save.- Repeat for
DoorbellDriver.groovy.- Apps Code → New App → paste
ParentApp.groovy→ Save.- Integrations → Add User Integration → "Reolink Integration"
Setup
Before adding any camera Check its own Network > Advanced (or Server) settings and make sure HTTP, HTTPS, and ONVIF are enabled. These are off by default on most models I've tested, and it's the single most common reason a source fails to connect. Don't assume based on model name. Check the device's own settings directly.
From there: Add a source (IP, port, username, password) → Run discovery → create the device(s) it finds. Full walkthrough and troubleshooting is in the app's own Tips, limitations & what works so far page, kept current as things get discovered on real hardware.
Device compatibility
Model Status E1 Pro Working standalone (HTTP had to be manually enabled - off by default)
Trackmix Working standalone
RL-1240A Working standalone
Doorbell 2K Gen 2 Did not connect reliably standalone - may need a Home Hub/NVR, unconfirmed
Battery-class (Argus line, Doorbell Battery) No local HTTP/ONVIF server standalone, confirmed - requires a Home Hub or NVR
Base E1, Lumus Untested
Home Hub Pro Untested
Argus Pro (Black) Untested
16MP line (e.g. Duo 3V PoE) Untested
PoE and WiFi cameras outside the E1/battery lines are expected to work standalone without issue.
Known limitations
- Battery-class devices have no local HTTP/ONVIF server at all when used as standalone device. The will have a sleep/timing issue because the port simply isn't opened by that hardware class. Only reachable once paired to a Home Hub or NVR.
- E1 / E1 Pro / Lumus - Reolink's own docs are inconsistent about which of these support local HTTP/HTTPS. Check the camera's own settings directly rather than trusting the model name.
- A handful of PTZ/accessory commands (preset save, spotlight, night vision, siren, battery %) are built from consistent patterns across independent Reolink API references but aren't all confirmed against every model.
Testers wanted
I'd genuinely appreciate help testing against:
- A Home Hub or NVR Need to confirm multi-channel discovery and channel importing/selection
- A battery-class camera/doorbell paired to a Hub Need to confirm how it relays data while asleep, from a distance
- The newer 16MP line (e.g. Duo 3V PoE)
My version of the Reolink app does not have HTTP, HTTPS or ONVIF in the Advanced Settings for my hub or cameras. App version is 4.61.0.3.20260721
Does anyone know how to update them?
4.61.0.3.20260721 is an android version of the Reolink app.
What model cameras do you have?
POE, WiFi, or Battery?
Have you tried the desktop version of the Reolink app?
In Reolink’s iOS app, I’m able to see those settings by tapping on my doorbell device in the main settings menu, then tapping advanced network settings—>server settings.
I suspect that these MAY be battery devices which the server settings MAY not be available.
I have the Gen 2 doorbell which is battery but has a hardwired option. The hardwire function is more for a trickle charge for the battery, than true hardwire bypass. Even when I hardwire and change the settings in the app hard wired, those settings are not exposed.
Have Wifi cameras. Will try the desktop version.
Here's a list of most of the Reolink camera specs for ONVIF compatibility.
I have it bookmarked to help with the impulse buying of extra cameras. ![]()
ok- Battery Wifi? What model?
Sometimes you have to login directly to the camera’s IP to setup ONVIF or RTSP, depending on manufacturer
I have 2 Duo 3V POE cameras and both are doing the same thing. Works fine with only HTTPS enabled on the camera, but when adding an Image tile and setting to the snapshot URL with a refresh after the initial dashboard load and the tile refreshes, the image goes away and displays a broken link icon. Image does not auto refresh on it’s own.
I set up my doorbell camera with a refresh of 3 and it seems to work as expected.
Can you share the general shape of the snapshot URL you're using for the Duo 3V tiles (with credentials/token redacted)? That'll tell me whether it's the session-collision path or a token-expiry path, since the fix differs.
I’m just copying the Snapshot URL that is on the device page
https://x.x.x.x:443/cgi-bin/api.cgi?cmd=Snap&channel=0&token=\*\*\*\*\*\*\*\*\*\*\*\*\*\*
I want to confirm with a quick test.
- Go to the Duo 3V device page in Hubitat, hit Refresh, then copy the Snapshot URL again (it may have changed since you last grabbed it).
- Paste that fresh URL into the dashboard tile and note the time you did it.
- Just let it sit and check back periodically for when it breaks again (goes to the broken-link icon), let me know roughly how long that took. Even a rough window like "still working after 2 hours" or "broke within 20 minutes" is useful.
If you're open to it and comfortable finding the setting: in the Reolink Integration Parent App, there's a debug logging toggle (auto-turns off after 90 min). If you can flip that on before starting the test above, and send me a screenshot of the Logs around the time it breaks, that'd help me nail down exactly why.
The timing info alone in steps 1-3 is enough to get started, so no worries if the logging part's a hassle.
Refreshed the link and have the tile set to refresh at 5 seconds… Reloaded the dashboard and 5 seconds later the broken link icon came up. Let me know if you need more logs. Specifically testing with only ONE of the cameras, looks like its dev:587, but also a lot on my other one 585 and on my doorbell camera 586.
Reolink Integration v1.1.1 — Bugfix Release
Fixed: Device polling was stacking duplicate timers on every app save instead of replacing the existing one and repeated saves could compound into enough polling activity to trip Hubitat's excessive-hub-load protection (
LimitExceededExceptionin Logs, tied toparseReolinkState/markAsleep). No device functionality was affected, just polling under repeated saves.Update: Via HPM or repo pull, no reconfig needed. Fix applies on next save/init.
Rerun the test after you update to 1.1.1. This will give us a cleaner log to verify.
Checked HPM and it’s not picking up the update just yet.. Keep you posted after I get it updated.
HPM can be tricky sometimes. Log out/in and try again.
Ended up having to uninstall and reinstall to get it to pick up the update.. It never would when just checking with HPM.. Anyway, I repeated all those steps and I don’t see any logs generated for some reason. (confirmed debug was on and reloaded the tiles several times)
![]()
Success with Reolink Duo 3 for Light/Siren control, nothing else set up to test ATM.
Turned on alarms, will have to wait and see. ![]()
