Mmwave blue switches not reporting position data

Hey folks, I’m trying to get live target info data out of a VZM32-SN over ZHA so I can do some fun room-scale position tracking. The Z2M docs describe an mmWaveTargetInfoReport feature that, when enabled, should cause the device to send target reports (command 0x01 on cluster 0xFC32) with x/y/z coordinates and doppler values per detected target. I’ve been trying to get this working on ZHA and I’m stuck — wondering if there’s a step I’m missing or if this is a known issue.

Here’s what I’ve done so far. I wrote attribute 107 (mmwave_target_info_report) to 1 on endpoint 1, cluster 0xFC32 via zha.set_zigbee_cluster_attribute. The write succeeds and reads back as 1. I then bound the device to my coordinator (SkyConnect, EFR32) on cluster 0xFC32 specifically using zha_toolkit.bind_ieee, and also did a general device-level bind via zha/devices/bind. Both report success. I also wrote a custom ZHA quirk that defines the report commands as ServerCommandDefs on the mmWave cluster (following the same pattern as InovelliCluster.button_event), and added a handle_cluster_request handler that emits ZHA_SEND_EVENT.

After all that setup, I subscribe to zha_event and walk around the room. The device correctly detects occupancy and reports it through the normal occupancy cluster — but I get zero events from cluster 0xFC32. No target info reports at all. I also checked the raw bellows/EZSP logs and there are no unsolicited frames from this device on the mmWave cluster. I confirmed the bind is actually in the device’s bind table by reading it back with zha_toolkit.binds_get — cluster 0xFC32 on endpoint 1 is bound to the coordinator, no question.

I started on firmware 1.00 (0x01030100), then OTA’d to 1.01 beta (0x01030101) hoping that would help — same result. The mmWave module itself reports version 100863491 via attribute 115. All other mmWave config attributes (detection areas, depth, width, height, sensitivity, hold time, etc.) read and write fine.

I found a couple of related threads. A Hubitat user had the same problem (param 107 enabled but 0 targets reported), which mysteriously resolved itself when they added a second switch. And @DonF in this thread ran into the same wall trying to get area occupancy data out of cluster 0xFC32 on ZHA — no resolution there either.

Is target info reporting actually functional on the Zigbee firmware? Is there an additional step beyond enabling attribute 107 and binding the mmWave cluster to the coordinator? Any pointers would be really appreciated.

Setup: VZM32-SN, firmware 1.01 beta, SkyConnect coordinator, ZHA on Home Assistant, custom zigpy quirk for cluster 0xFC32.

It definitely works. Many users (including myself) use it on Z2M. You can reference the commit that added it here and ensure that your code does functionally the same thing in ZHA: Inovelli: Initial commit of reportTargetInfo functionality by rohankapoorcom · Pull Request #11412 · Koenkk/zigbee-herdsman-converters · GitHub

Thanks for the code reference @rohan, was able to adapt that to zigpy and am now receiving position frames!

Nice! Hopefully, you’ll be able to push a PR for ZHA so others can also use it!

This topic was automatically closed 14 hours after the last reply. New replies are no longer allowed.