We set up Imou on Home Assistant last week expecting binary_sensor.porch_motion to appear after adding the integration. It didn’t. Took me a while to realize I was mixing up the old HACS custom component docs with the new core integration.
This post is a straight inventory of what HA 2026.6+ actually creates, how often data refreshes, and where people (including me) trip up. Not a setup tutorial—the official HA docs cover that.
How you add it (short version)
Core integration. No HACS.
- Create an app on Imou Open Platform → App Information → App ID + App secret
- Cameras must already be on that Imou account (Imou Life app)
- Settings → Devices & services → Add integration → Imou
- Pick Server region: Singapore (APAC), Europe, North America, or China
Config flow shortcut: Link to Integrations: add integration – My Home Assistant
If login works but the device list is empty, you almost certainly picked the wrong Server region. Fix that before debugging anything else.
What Core creates today
Per the integration page, platforms are camera and button only.
Camera entities (per channel)
Each channel with a video feed gets two camera entities:
| Entity | What it is |
|---|---|
| Live view SD | Lower-bitrate cloud stream |
| Live view HD | Higher-bitrate cloud stream |
Both are enabled by default. On a weak uplink, SD is the one that actually stays up—I learned that after HD kept freezing on a porch cam over Wi-Fi.
View still image or start live stream when the device is online.
Button entities (when the cloud API says supported)
- PTZ up / down / left / right — short move per press; device must have PTZ
- Mute — alarm audio on supported gateways
- Restart — remote reboot
Buttons go unavailable when the device is offline or removed from your account.
What gets polled (not pushed)
IoT class: Cloud Polling.
The integration refreshes device list and online status about every 2 minutes. New devices on your account show up on the next cycle; removed devices disappear.
Plan automations with that latency in mind. This is not millisecond motion push.
What Core does not expose (yet)
This is the part I wish I’d read first.
- No
binary_sensorfor motion/human in the core integration docs—only camera + button platforms are listed - No local ONVIF/RTSP path through this integration; it’s cloud API only
- No instant alarm push into HA via the core integration itself—polling, not webhook
If you need motion → light today with Core only, your options are narrower than the old custom component marketing suggested. Check Developer tools → States, search imou, and work with what you actually have (often PTZ/restart buttons + camera streams).
For push alarms (motion, offline) into HA, you still need a separate path—typically Open Platform HTTP callback → your bridge → MQTT. That’s documented under the HTTP API, not in the HA core integration page.
Core vs HACS custom component
Both talk to the same Open Platform API.
Core (imou) |
HACS (imou_life) |
|
|---|---|---|
| Install | Add integration | HACS → Imou Life |
| Maintainer | In HA core; Imou-OpenPlatform on GitHub for related work | Imou-Home-Assistant repo |
| Best for | Clean setup, cameras + PTZ buttons | Features not in core yet (wider device/entity coverage in custom) |
Don’t run both unless you know why. Duplicate integrations burn API quota.
API quota (real constraint)
Each App ID gets 30,000 free API requests/month. Above that, billed per platform pricing.
What eats quota faster than you’d think:
- More devices on the account
- Multiple HA instances using the same App ID
- The 2-minute polling cycle × device count
- Leaving several live streams open on a dashboard
Check usage in the console under My Resources.
Example: what you can automate with buttons
PTZ nudge from a script (entity IDs will differ):
script:
porch_ptz_left:
sequence:
- service: button.press
target:
entity_id: button.porch_ptz_left
Night lighting from motion needs a different trigger source today if Core didn’t create a motion binary_sensor for your model—verify in States before copying automations from old forum posts.
Pitfalls (from support threads + my own setup)
Wrong Server region → empty list. Credentials valid, zero devices. Change region in the integration reconfigure flow.
Invalid App ID or App secret. Copy/paste whitespace, or credentials from a different portal (international vs China).
Button unavailable. Device offline in Imou Life app, or model doesn’t support that action.
Quota gone in a week. Count devices × instances × streams; read the integration’s polling note in the official docs.
Copied automation YAML from HACS-era posts. Entity names and platforms may not exist in Core. Always list states first.
Links worth bookmarking
- HA integration (source of truth for Core): Imou - Home Assistant
- Open Platform: Cloud Video And AIoT Services - Imou Open Platform
- HTTP API (callbacks, advanced): Document description · Development documentation
- Core source:
homeassistant/components/imou - Custom component (non-core features): GitHub - Imou-OpenPlatform/Imou-Home-Assistant: The integration developed by the official team of the Imou Open Platform ,which is designed to control Imou devices. · GitHub
If you’re on Core and expected motion sensors—reply with your HA version, server region, and a paste of imou entities from States. Happy to help map what’s actually there vs what you need.
— Imou Open Platform / HA integration team account