Imou Home Assistant integrations:What’s coming next + what’s on the roadmap (feature requests welcome)

Hi everyone — note from the Imou Open Platform team (open.imoulife.com).

In the previous post we compared the official Core integration (imou) and the community HACS integration (Imou Life Official). This one is focused on the forward-looking side:

  1. Features landing in the next releases
  2. Items already on the roadmap but not built yet

We’d also love you to list features you want integrated into HA in the comments below — the more specific, the better (model, expected behavior, use case).


1. Coming soon — Official integration (imou)

Official changes follow the Home Assistant Core release train. The main change currently under review:

Once merged, it will ship with the matching HA monthly release. Docs will be updated on the Imou integration page. For implementation details, feel free to read the PR diff and discussion.


2. Coming soon — Community integration (Imou Life Official → 1.3.4)

The next community package version is 1.3.4. Compared with the current release (v1.3.3), the main changes are:

  1. Option to disable status polling (Config → General)
    When disabled, the integration stops periodically refreshing device state, which further saves Open Platform API quota. Useful if you mostly do on-demand controls (siren, collection points, etc.).
    Note: entity state may become stale after you turn polling off.

  2. Clearer Open Platform error codes / messages in the config UI
    e.g. quota-related OP1013, instead of a generic “request failed”.

  3. Optimistic updates after entity writes
    After a successful switch / select / button / text action, local state updates first — without immediately triggering a full cloud poll cycle.

  4. Friendlier Select option keys
    e.g. arming home / away / disarm, volume mute / low / …, night vision as string keys — aligned with pyimouapi 1.3.4.
    Upgrade note: if your automations hard-code old numeric option values, update them after upgrading.

  5. Dependency bump to pyimouapi==1.3.4.

  6. Device binding support.

  7. Fix motion detection switch failure on CruiserSE+ devices.

Preview the diff here:

https://github.com/Imou-OpenPlatform/Imou-Home-Assistant/compare/v1.3.3...main

After the formal release, details will also appear in the repo CHANGELOG and release notes.


3. On the roadmap (not available yet)

These are not implemented yet, but they are on the backlog. We’ll first confirm Open Platform read/write APIs and device capability reporting, land them in the community integration first, then consider upstreaming to Core when ready.

  1. HDR toggle
    Control camera HDR on/off from HA for daylight / night / ambient-light automations (HDR on in strong light can help see people more clearly; off is often better in low light / night vision).
    Discussion: Issue #85

  2. Image flip
    Set image flip in HA (e.g. vertical / horizontal — exact options depend on device + Open Platform capabilities). Useful for ceiling / side mounts, and for automations.

  3. Watermark settings
    Configure preview / recording watermark options in HA (e.g. enable/disable, and any content/style options the platform supports — device-dependent).

If you need any of the above, please also share model + expected behavior (HDR simple on/off vs multi-level; which flip directions; watermark toggle only vs editable text). That helps us map against the capability table when we schedule work.


4. Please tell us in the comments

Roadmaps are better when they come from real setups. We especially want to hear:

:one: From coming soon / on the roadmap above — which item matters most to you? Any use case to share?
:two: What else do you want integrated into HA that isn’t listed here?
(A switch, sensor, alarm path, recording-related capability, etc. — please include your camera/model if you can.)

Drop your requests in the comments below. Every reply feeds into how we evaluate and prioritize the next versions. Thanks for using Imou with Home Assistant :backhand_index_pointing_down:

Based on user feedback, we have updated the Imou & Home Assistant integration. Here are the specific updates:

Imou Life v1.3.4 adds a Configure menu (General / Event push / Manage devices), optional status polling, and in-flow device bind. It depends on pyimouapi 1.3.5 and cuts Open API quota use.

:warning: Breaking

  • Home Assistant 2025.4 or newer is required. Cores below that no longer see this integration in HACS
  • Select option states use friendly keys (home/away/disarm, mute/low/medium/high, night-vision string keys). Automations calling select.select_option with the old numeric values ("0", "1", …) must be updated

:sparkles: Added

  • Bind a device to the open-platform account from Configure → Manage devices (serial + verification code). Setup no longer aborts when the account has zero devices
  • Enable status polling in Configure → General; disable to stop background status refreshes and save Open API quota (#15)

:wrench: Changed

  • Default status polling interval is 300 seconds (5 minutes), was 60 seconds. Existing entries keep the interval already saved in options
  • Options flow: top-level menu; each section saves on Submit without changing the other sections
  • Account listing runs on a ten-minute clock instead of every status poll
  • Config / options errors show Imou Open API code/msg (e.g. OP1013) (#67)
  • Device settings (detection switches, volume, night vision, …) are filed under the device’s configuration section
  • Depend on pyimouapi==1.3.5: concurrent status reads, per-host connection cap, credentials kept out of debug logs

:bug: Fixed

  • IPC-K7C (FKX9UYL4) motion_detect binds 108800 instead of unusable 14800/305000; toggling no longer returns 40999 (#77)
  • Deleting one NVR camera / multi-lens channel no longer removes the siblings; refused with a clear error (#89)
  • Options can be saved when the device list cannot be fetched (#67)
  • Deselecting a device stops polling only — it does not remove the Home Assistant device
  • Empty account at setup stores selected_devices: []; a camera bound later in the Imou app is not polled until chosen under Manage devices
  • Turning event push off unregisters the cloud callback
  • Revoked credentials open re-authentication on the next status poll
  • Device diagnostics download includes that device’s summary

Feel free to post any features you’d like to see in the comments below this thread, and we will include them in the next update.

Would be great to have a motion detector binary sensor for my Cue 2E camera.

You can send me the detailed model number of your camera, and I’ll help you check whether the new version supports that feature.

The device model of the camera is IPC-C22E. Thanks for your help.

Based on my understanding, your camera does have the motion detection feature.

Based on user feedback, we have updated the Imou & Home Assistant integration. Here are the specific updates:
Imou Life v1.4.0 adds local alarm pictures, a camera motion binary sensor, live IoT property updates, recording on alarm, and a reorganised Configure menu. It requires pyimouapi 1.4.0, which is installed automatically with this integration.

:warning: Breaking

  • select.*_mode is replaced by . Update automations from (//) to , , and . Leftover entities for this are removed on setupalarm_control_panelselect.select_optionhomeawaydisarmalarm_control_panel.alarm_arm_homealarm_arm_awayalarm_disarmselect
  • button.siren_start / button.siren_stop are replaced by a entity. Use / . Leftover siren buttons are removed on setupsirensiren.turn_onsiren.turn_off

:sparkles: Added

  • Configuration switches for pet detection, flip image, wide dynamic range, smart tracking, prompt sound, alarm-linked siren, and alarm-linked white light (shown when the device supports them; pet detection is IoT-only)
  • Per-device Notify on alarm (default on). Turning it off silences phone notifications for that device; and recording on alarm are unchangedimou_life_alarm
  • Record on alarm: per-camera switch (default off) plus a shared save folder and clip duration under Configure → Record on alarm. On an alarm, Home Assistant saves a short cloud live-stream clip (no pre-roll; uses live-stream quota; the folder must be in allowlist_external_dirs)
  • Arming panel (home / away / disarm) on devices that support it. No PIN; an alarm does not set the panel to triggered
  • siren entity for manual on/off on devices that support a siren. Event push is not required. State turns off after about 15 seconds, or immediately when the device reports that the siren has stopped
  • Camera Motion binary sensor () from event-push picture-change / human / PIR / person-in-area / line-crossing / area intrusion. It stays on for about 15 seconds, or turns off when PIR clears. Pet / fire / gas / vehicle stay on notify + . Needs event push with type alarmdevice_class: motionimou_life_alarm
  • With event push on and IoT device messages selected, thing-model switches, sensors, and arming update from the push instead of waiting for the next poll. That is not an alarm and is not gated by Notify on alarm
  • Show the picture in alarm notifications (default off). Home Assistant downloads the alarm picture and decrypts it locally with the official Demo libraries. linux x86-64 only — copy and into . Some devices also need their Imou Life device passwordlibLCOpenApiClient.solibLCOpenSDK.so/config/imou_life/native/
  • Configure → Alarm pictures holds the switch, an optional default password, and a password field for each device that needs one (labelled with the device name). Devices that do not need a password are not listed. Saved passwords are filled back in (masked). To delete one, use Remove stored passwords / Clear default device password. Passwords stay on this Home Assistant and are used only to decrypt
  • Configure reference — every Configure page, including the Settings → System → Network steps that alarm push and alarm pictures both need

:wrench: Changed

  • Requires pyimouapi==1.4.0 (installed automatically with this integration)
  • Enabling event push requires a public Callback URL. Notify targets are a multi-select; leave empty to use automations onlynotify.*
  • Notification titles are in English and Simplified ChineseImou Life · {alarm_type}
  • Companion alarm notifications include the Home Assistant area and labels (when set) and a local date-time. Tapping the notification opens that device in Home Assistant
  • When alarm pictures are on, the native libraries load, and the push includes a picture, Companion notifications can show the decrypted still. The image URL uses Home Assistant’s external URL so phones off the LAN can load it. Many motion pushes have no picture; those stay text-only
  • Add notify.persistent_notification as a notify target to show the same still in the Home Assistant web notification drawer (one entry per device, replaced by the next alarm)
  • Alarm-picture download retries briefly when the push arrives before the camera has finished uploading the still
  • Pictures are decrypted on this Home Assistant. Only the two official files are required.so
  • The smaller thumbnail is used first when the push includes one
  • If every device fails a status poll, the refresh is marked failed instead of keeping stale values as current
  • Overlapping picture decrypts on the same camera wait in line so the later alarm still gets a still
  • Simplified Chinese alarm titles use event names (区域入侵, 烟感报警, 有人或车出现) rather than feature-style 「检测」 wording
  • Configure is one job per entry: Alarm push and notifications, Alarm pictures, Record on alarm, Choose devices to poll, Bind a new device. Each page saves and returns to the menu; Done closes it. The menu shows a one-line status of what is on (device count only while polling is on)
  • Alarm pictures and Record on alarm say so when event push is off — both need event push
  • Show the picture in alarm notifications cannot be turned on if the native libraries are missing; the form explains why
  • Callback URL is prefilled with the address Home Assistant generates. A saved address still wins
  • Changing only alarm pictures, passwords, notify targets, camera defaults, or recording updates the running integration without a full reload. Changing polling, selected devices, or event-push registration still reloads
  • Camera defaults are expanded. Alarm pictures lists the devices that need a password by name
  • English and Simplified Chinese copy aligned with the UI (including Go to collection point / 转到收藏点)

:bug: Fixed

  • The Configure menu no longer shows a device-poll count next to Status polling: off
  • Enabling event push no longer saves as success when Imou rejects the callback URL; the form stays open with the API error
  • A push that does not match a Home Assistant device is discarded
  • Product-model events such as storage-empty are no longer treated as alarms or sent twice
  • Notify on alarm stays on when the switch is or (only an explicit off silences the device)unavailableunknown
  • Accessory events resolve to the accessory, not the parent camera, when both are registered
  • Alarm push and notifications warns when the callback address is only reachable on the LAN
  • Alarm pictures show on iOS again
  • A missing external URL is no longer silent: falling back to a LAN address logs a warning with the address used and what to set
  • Live streams follow the Video resolution default (the stream used to fall back to while the page showed SDHD)

:wastebasket: Removed

  • Video protocol is gone from camera defaults. Live streams always use (plain is blocked as mixed content on an HTTPS Home Assistant)httpshttp

:round_pushpin: Requirements

  • Home Assistant 2025.4.0+
  • pyimouapi==1.4.0 (PyPI)
  • Alarm pictures: linux x86-64 and both official Demo files (not shipped in this integration).so

:up_arrow: Upgrade

  1. Home Assistant 2025.4 or newer
  2. Update to v1.4.0 via HACS (or download from this release)imou_life.zip
  3. Restart Home Assistant
  4. Update automations that used or siren buttonsselect.*_mode
  5. For pictures in notifications: put the two files in , set an internet-reachable Home Assistant URL, then turn on Configure → Alarm pictures.so/config/imou_life/native/
  6. To record a clip on alarm, add the save folder to and turn on Configure → Record on alarmallowlist_external_dirs