iCSee PTZ smart home integration, free and open source

Control your iCSee / XMEye PTZ cameras locally: image, pan-tilt, presets, motion.
This integration controls the motorized iCSee cameras (also sold under the XMEye, Xiongmai, Jennov, Hiseeu, Floureon... brands) from Gladys Assistant, locally: Gladys talks to the cameras on your network with their native protocol (DVRIP, TCP port 34567). No cloud account, no internet connection needed.
What you get
- The camera image in Gladys: dashboard camera widget, chat ("show me the camera"), scenes ("send a camera image").
- Pan / tilt (and zoom on the models that have one) from the dashboard, the device rows and the scenes. Every movement stops on its own: a lost "stop" never leaves the camera turning.
- Presets: one tap to point the camera at a saved position.
- Motion and person detection: a motion sensor feature, plus a scene trigger telling a motion from a person.
- Two dashboard widgets: "iCSee PTZ control" (image, status, arrows) and "iCSee presets".
- Scene actions: move a camera, go to / save a preset, refresh the image, restart a camera.
- Scene triggers: detection (motion / person), camera online / offline.
Before you start
- Pair every camera with the iCSee app, on the same network as Gladys.
- In your router, give each camera a fixed IP address (DHCP reservation). The integration also recognizes a camera whose address changed, but a fixed address avoids any interruption.
- Note the device password you set in the iCSee app (empty if you never
set one). The username is
admin. - To receive the detections, enable the motion / human detection alarm of the camera in the iCSee app.
Configuration
Open Integrations → iCSee PTZ → Configuration:
| Field | What to enter |
|---|---|
| Camera addresses | The IP addresses, separated by commas: 192.168.1.50, 192.168.1.51. Add :port if it is not 34567. |
| Username | admin, unless you created another account. |
| Password | The device password of the iCSee app. Leave empty if there is none. All the cameras share these credentials. |
| Image refresh (s) | Seconds between two images sent to Gladys (60 by default, 5 minimum). 0 = only when an image is asked for. |
| Image capture | Automatic uses the camera snapshot, or the RTSP stream when the firmware has no snapshot command. |
| Move step (s) | How long a single move command turns the camera (1 s by default). |
| Motor speed (1-8) | Speed of the PTZ motors. |
| Motorized zoom | Tick it only if your model has an optical zoom. |
| Presets | The positions saved on the cameras, as slot:name: 1:Entrance, 2:Garden. |
| Motion detection | Receive the detections of the cameras. |
| Dual-lens cameras | Split the image of the dual-lens models (fixed lens on top by default). |
Save, then use the buttons:
- Test the cameras connects to every address and tells which ones answer (model and serial number), or why not (wrong password, unreachable...).
- Search the network lists the iCSee cameras of your network. It
broadcasts the iCSee search, then tries port 34567 on every address of the
network: the one you type in "Network to scan" (e.g.
192.168.1.0/24), or by default the network of the cameras already configured. For your first camera, type your network. The address is also shown in the iCSee app (Device settings → Network) and in the device list of your router. - Restart a camera restarts the chosen camera.
Then open the Discovery tab of the integration and add your cameras.
Moving the camera
- Dashboard: add the "iCSee PTZ control" widget (or the device to a room widget). Each arrow turns the camera for the "Move step" duration.
- Scenes: the "Move an iCSee camera" action takes a direction and a duration (5 s at most). The standard "control a device" action works too on the PTZ feature (1 left, 2 right, 3 up, 4 down, 5 zoom in, 6 zoom out, 0 stop).
Whatever sends it, a movement always stops by itself after 5 seconds at the latest.
Dual-lens cameras
Some models (X6E-WEQ...) have a fixed lens and a PTZ lens, but send both in one image, one above the other: the iCSee app splits it on the phone. The integration does the same, automatically: an image taller than wide is a dual-lens image.
- The camera device you already have becomes the PTZ lens (image, arrows, presets, motion): your scenes and dashboards keep working.
- A second device, "fixed lens", appears in the Discovery tab with the image of the fixed lens: add it like the first one.
- One capture feeds both images: splitting costs nothing more than today.
The Dual-lens cameras setting chooses where the fixed lens is (on top by default, or at the bottom) or turns the split off.
Live video is not available through this integration (Gladys external
integrations exchange still images, 12 per minute at most). For live video,
add the camera to the Gladys RTSP camera integration as well, with
rtsp://<address>:554/user=admin&password=<password>&channel=1&stream=0.sdp?real_stream
(both lenses in one image).
Presets
A preset is a position stored in the camera. To create one:
- turn the camera to the position you want (widget, iCSee app);
- run a scene with the Save an iCSee preset action and a slot number (1 to 255), or save it from the iCSee app;
- add
slot:nameto the Presets field of the configuration, e.g.1:Entrance.
The presets then appear on the PTZ feature of the device, in the "iCSee presets" widget, and the Go to an iCSee preset scene action points the camera at them.
Scene ideas
- When the alarm turns on, point every camera at the door (go to a preset).
- When a camera detects a person, send its image on Telegram ("Refresh an iCSee image", then the core "Send a camera image" action).
- When a camera goes offline for the night, restart it.
Troubleshooting
- "wrong password": check the device password in the iCSee app; the
username is
admin. - Unreachable camera: check the address, that the camera is powered and on the same network, and that nothing blocks TCP port 34567.
- No image: some firmwares have no snapshot command; the integration then uses the RTSP stream (port 554). Force "RTSP stream" in "Image capture" if needed.
- No detection: enable the detection alarm in the iCSee app, and keep "Motion detection" ticked.
- The integration logs are in Settings → System → Containers (or
docker logs).
The source code, the issue tracker and the changelog are on GitHub.
Configuration settings
These are the settings iCSee PTZ asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| Getting started | section | No | Pair your cameras with the iCSee app first, then give them a fixed address in your router. The integration talks to them directly on your local network (DVRIP protocol, TCP port 34567): no cloud account is needed. Use "Search the network" below to find their addresses. |
| Camera addresses | string | Yes | IP addresses of the cameras, separated by commas. Add ":port" if it is not 34567. |
| Username | string | Yes | Local account of the cameras, "admin" unless you changed it. |
| Password | secret | No | Device password set in the iCSee app. Leave empty if you never set one. |
| Image refresh (s) | number | No | Seconds between two images sent to Gladys (5 minimum). 0 only captures on demand. |
| Image capture | select | No | Automatic uses the camera snapshot, and the RTSP stream when the firmware has none. |
| Move step (s) | number | No | How long a single move command turns the camera (0.2 to 5 s). Holding a button keeps moving up to 5 s. |
| Motor speed (1-8) | number | No | |
| Motorized zoom | boolean | No | Offer the zoom in / zoom out controls (only for models with an optical zoom). |
| Presets | string | No | Positions saved on the cameras, as slot:name pairs. Save new ones with the "Save a preset" scene action. |
| Dual-lens cameras | select | No | Dual-lens models send both lenses in one image, one above the other (detected automatically: the image is taller than wide). The integration splits it into two devices: the PTZ lens and the fixed lens. |
| Motion detection | boolean | No | Receive the motion and person detections of the cameras (enable them in the iCSee app). |
How to install iCSee PTZ in Gladys
- In Gladys, open Integrations: iCSee PTZ appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/gboulvin/gladys-icseeptz:1.2.0), 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/gboulvin/Gladys-ICSeePTZ.
iCSee PTZ requires Gladys >=5.1.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.
About external integrations
iCSee PTZ 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 gboulvin, 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