Reolink smart home integration, free and open source

Your Reolink cameras in Gladys: images, instant detections, spotlight, siren and PTZ.
This integration brings your Reolink cameras into Gladys: the image on the dashboard, live video, instant detections as scene triggers, and control of the spotlight, the siren, the infrared LEDs and the motorized heads depending on the model.
Everything happens on your local network. No Reolink account is needed, and no image ever goes through a cloud.
What you need
- One or more Reolink cameras on the same network as Gladys — standalone, or paired with a Home Hub or an NVR.
- The username and password you use to log into those cameras (the ones from the Reolink app, usually
admin). - Gladys 5.0.0 or later.
That is all. There is no account to create and no API key to request.
Battery cameras (Argus, Go…) are usually reached through their Home Hub or NVR: on their own, most of them do not offer the local API this integration uses.
Setup
- In Gladys, open Integrations → Install an integration and install Reolink.
- In the configuration screen, fill in the username and password of your cameras.
- Click Test the connection: Gladys looks for your cameras and reports what each one can do, whether it reports its detections instantly, and whether its live view is available.
- Go to Discover and run a scan: your cameras appear there, ready to be added. Behind a Home Hub or an NVR, each camera becomes its own device.
Recommended camera settings
Recent Reolink firmwares ship with some network services turned off. In the Reolink app, open Settings → Network → Advanced → Server settings (the wording varies slightly between app versions) and enable:
- HTTP (or HTTPS) — needed for everything: it is how Gladys talks to the camera. Without it the camera is never found, even when its RTSP stream works elsewhere;
- RTSP — needed for the live video;
- ONVIF — needed for instant detections (see below).
The connection test tells you, camera by camera, when RTSP is off.
If a camera is not found
Gladys looks for your cameras with a network broadcast. Some routers filter it, and a camera on another VLAN never receives it. In that case, enter its address under Camera addresses, in the Advanced section:
192.168.1.42, 192.168.1.43
If a camera does not use the standard port, add it: 192.168.1.42:8000.
If your cameras do not share the same password
Fill in the exceptions under Accounts per camera:
192.168.1.42|gladys|MyPassword
Cameras absent from that list use the global account.
What you get
Each camera gets the features it actually has. The integration asks the camera rather than trusting its model name: two cameras of the same range can differ.
| Feature | On which cameras |
|---|---|
| Image | All |
| Live video | All (RTSP enabled) |
| Motion | All |
| Person / Vehicle / Animal | Models with AI detection |
| Doorbell | Video doorbells |
| Battery | Battery and solar models |
| Charging | Battery and solar models |
| Spotlight | Models with a white spotlight |
| Siren | Models with an alarm speaker |
| Infrared | Most models |
| Move (arrows) | Motorized cameras (pan/tilt, or zoom only) |
| Preset | Motorized cameras with positions saved |
Detections
There are two ways a camera reports what it sees, and the integration picks the best one for each camera on its own:
- Instantly, over ONVIF — wired cameras reached directly push their motion, person, vehicle, animal and doorbell events the moment they happen, and say when they end. This is the default, as long as ONVIF is enabled on the camera.
- By regular checks — battery cameras, cameras behind a Home Hub or an NVR, and cameras with ONVIF turned off are asked regularly. The check interval (15 seconds by default) is then the detection delay.
If a camera stops answering over ONVIF, it falls back to regular checks by itself, and goes back to ONVIF as soon as it answers again. You can turn ONVIF off entirely with the Instant detections (ONVIF) option in the Advanced section.
A detection also triggers an image capture, so the widget shows what happened without waiting.
The person, vehicle and animal detections appear as motion sensors named "Person", "Vehicle" and "Animal": use them in a scene trigger like any motion sensor, for instance "when a person is detected at the gate, turn on the porch light".
Doorbell
The doorbell button appears as a Doorbell feature: the dashboard shows "Ringing" during a ring, then the time of the last one, and the scene editor offers "If the doorbell rings".
Motorized cameras (PTZ)
- Move shows arrows on the dashboard. Each press moves the camera by one small step, which stops by itself — a scene sending a movement never leaves the camera turning. A camera with a zoom lens only gets the zoom buttons.
- Preset lists the positions saved in the Reolink app, by name. Pick one to move the camera there, from the dashboard or from a scene.
The list of positions is read when the camera is discovered: after saving a new position in the Reolink app, run a scan again. The List the PTZ presets action shows what each camera has saved right now.
Charging
Battery and solar cameras also get a Charging feature: it is on while the camera is being recharged, by its charger or by its solar panel, and off once it is full or unplugged. Use it in a scene — "when the garden camera stops charging, notify me" — or simply to check that a solar panel still does its job.
Battery protection
Capturing an image is what drains a battery or solar camera the most. The integration therefore backs off before the battery reaches a critical level:
- below 60%: the automatic refresh stops. Opening the widget or a detection still captures an image;
- below 40%: no image is captured at all;
- back to normal as soon as the camera is put back on its charger, or once it reaches 80% on solar.
That 80% is deliberately well above the pause threshold: resuming just over it would restart the drain immediately. Avoid setting it to 100% — a solar camera charges in bursts and rarely reads exactly full, which would leave it paused for good with no charger to put it on.
The battery level and the detections keep being read in every case: they cost almost nothing, and they are what tells when the camera has recharged.
A battery camera that stops answering — deep sleep, refused session, network down — is also brought back to on-demand: its last known level can no longer be trusted, and a silent camera is more likely to be empty than fine.
Behind a Home Hub, the hub also tells which cameras are asleep: a sleeping camera is never woken up by the automatic refresh, whatever its level.
A capture interval of their own
Battery cameras have their own refresh interval, independent of the wired ones. Spacing out the captures of a solar model therefore costs nothing to the freshness of your mains-powered cameras.
| Setting | Default | Applies to |
|---|---|---|
| Image refresh interval | 60s | wired cameras only |
| Battery camera refresh interval | 900s (15 min) | battery/solar models |
This is the single most effective setting: what costs the battery is waking the camera up, far more than the image itself. In winter, or if your panel gets little sun, lengthen that interval and raise the pause threshold.
Every threshold is configurable, and wired cameras are never affected.
Frequently asked questions
The dashboard image is frozen. Check the refresh interval in the Advanced section. If the camera runs on battery, it may be paused: look at its battery level.
Live video does not start. Live goes through the camera RTSP stream. Run Test the connection: it says when RTSP is disabled on a camera. Enable it in the Reolink app (Settings → Network → Advanced → Server settings), then run a scan again.
My detections arrive with a delay. The camera is checked regularly instead of pushing its events. Run Test the connection: a camera listed with "detections checked periodically" either runs on battery, sits behind a Home Hub or an NVR, or has ONVIF turned off. In the last case, enable ONVIF in the Reolink app and run a scan again.
A camera was found but Gladys says the credentials are refused. The account used must be allowed to read the camera settings. A restricted user works, but a "guest" account does not always have the required rights.
My spotlight switches itself off. The camera applies its own lighting schedule. When you turn the spotlight on from Gladys, the integration widens that schedule to the whole day, and puts your own settings back when you turn it off from Gladys. A change made in the Reolink app in between takes over.
The Preset list is missing a position. The positions are read when the camera is discovered. Run a scan again after saving a new position in the Reolink app.
A camera behind my Home Hub does not appear. The hub only lists the cameras it can currently reach. Check that the camera is powered and in range of the hub, then run a scan again.
A battery camera added before version 1.4.0 has no Charging feature. The feature is new: open Discover, run a scan and update the camera. The feature is added; the existing ones, their history and your scenes are kept.
Configuration settings
These are the settings Reolink asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| Getting started | section | No | This integration talks to your cameras directly on your network — no Reolink account, nothing goes through the cloud. Enter the account you use to log into your cameras below, then go to the Discover screen and run a scan. Each camera gets the features it actually has: image and motion for all of them, plus person/vehicle/animal detection, battery, spotlight, siren, doorbell or PTZ depending on the model. Wired cameras report their detections instantly over ONVIF. |
| Camera username | string | Yes | The user Gladys logs in with, the same one you use in the Reolink app. admin on most installations. A restricted user works too, but it must be allowed to read the camera settings. |
| Camera password | secret | Yes | The password of that user. If your cameras do not all share the same one, fill in the per-camera accounts field further down. |
| Image quality | select | No | HD captures the full-resolution stream and shrinks it if needed; SD asks the camera for its light stream directly — softer, but faster and easier on a battery camera. |
| Advanced | section | No | Fill these fields only if a camera is not found automatically, or to adjust how the cameras are watched. |
| Camera addresses | string | No | Addresses separated by a comma, for example 192.168.1.42, 192.168.1.43. Gladys looks for your cameras on the network by itself; fill this in for one the scan does not find (another VLAN, broadcast filtered by your router). Add :port if a camera does not use the standard port, e.g. 192.168.1.42:8000. |
| Accounts per camera | secret | No | Only needed when a camera has different credentials from the ones above. Cameras separated by a comma, each as address|username|password — for example 192.168.1.42|gladys|MyPassword. |
| Detection check interval (s) | number | No | How often the integration asks the cameras that do not push their detections (battery models, cameras behind a Home Hub or an NVR, or ONVIF turned off) whether something is being detected. Those cameras report their current state rather than a history, so this interval IS their detection delay: a shorter one reacts faster but questions them more often. |
| Instant detections (ONVIF) | boolean | No | Wired cameras reached directly push their motion, person/vehicle/animal and doorbell events the moment they happen, instead of being asked every few seconds. ONVIF must be enabled on the camera (Reolink app → Settings → Network → Advanced → Server settings). A camera that does not answer over ONVIF is polled automatically. |
| Capture timeout (s) | number | No | How long a camera is given to answer. Battery models waking from sleep need more time than a wired one. Above 14s the dashboard live view may time out first, but the scheduled refresh still succeeds. |
| Image refresh interval (s) | number | No | How often a new image is captured for the dashboard, on MAINS-POWERED cameras only. Battery and solar cameras have their own setting below, so keeping your wired images fresh costs nothing to the others. |
| Battery protection | section | No | Capturing images is what drains a battery or solar camera. These settings apply ONLY to battery and solar models — wired cameras keep their own interval and are never throttled. Once a camera goes below the pause limit, capturing resumes as soon as it is back on its charger, or when it reaches the recharge level: a partial recharge would restart the drain, and repeated shallow cycles wear the battery faster. |
| Battery camera refresh interval (s) | number | No | How often a battery or solar camera is captured, independently of your wired cameras. Waking a camera up is what costs the battery, so this is the single most effective setting: 900s (15 min) lets a solar panel refill between two captures. Lower it only if your cameras recharge faster than they discharge. |
| Pause automatic capture below (%) | number | No | Below this level the automatic refresh stops. Opening the camera widget or a detection still captures an image. |
| Stop every capture below (%) | number | No | Below this level no image is captured at all, not even on request. The battery level and the detections keep being read: they cost almost nothing and tell when the camera has recharged. |
| Resume automatic capture at (%) | number | No | Once a camera has been paused, it stays paused until it reaches this level — deliberately well above the pause limit, so it does not immediately fall back into the drain it was pulled out of. A camera put back on its charger resumes at once, so this only applies to solar recharging. Avoid 100%: a solar camera charges in bursts and rarely reads exactly full, which would keep it paused for good. |
How to install Reolink in Gladys
- In Gladys, open Integrations: Reolink appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/william-de71/gladys-reolink:1.4.1), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration). - Open the Configuration screen of the integration, fill in the settings, and save.
- You can also install it directly from its repository URL: https://github.com/William-De71/gladys-reolink.
Reolink requires Gladys >=5.0.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.
Not running Gladys yet? It is free and open source: follow the installation guide to get started.
Related guides
- Reolink RTSP URL: how to enable RTSP and find your camera's stream URL.
About external integrations
Reolink is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by William-De71, not by the Gladys core team.
- Browse all integrations, native and community
- Build and publish your own external integration
- Source code on GitHub — source of this documentation