This is a community-developed web app that shows a live view of mmWave targets from an Inovelli Blue series mmWave switch (zigbee only). This is useful for testing/configuring the Inovelli mmWave parameters, including the detection zone dimensions as well as the interference area.
The app provides:
Live Plotly chart of target coordinates (X/Y) with target IDs
Target trail history (adjustable)
Table view of X / Y / Z / Doppler
Device selector (pulls device list from Maker API)
Occupancy indicator (motion: active = occupied / inactive = unoccupied)
Lux display (illuminance/lux attribute if available)
Enable Target Info Reporting in the Preferences of your Inovelli Blue Series mmWave switch (confirm targetInfo and targetCount attributes are populating when a target is present)
Enable the device(s) in Maker API
Clone the mmWave-Tracker repo to your local environment
Edit .env with your Hubitat IP + Maker API app id + token
Configure container
a) (Docker) Install Docker Desktop and run docker compose up --build
b) (Proxmox LXC) See install guide on GitHub
Configure/test your devices using the visualization tool
After configuration/testing is complete, stop the container and disable Target Info Reporting in the device preferences (this is recommended only for configuring/testing device parameters, not for ongoing use, because it is resource intensive and taxes the zigbee network during use)
Thanks to @ericm for incorporating changes to the underlying driver to support this visualization tool.
Can't wait to try this out. If you don't mind I will disassemble your docker file to run it native in a LXC container under Proxmox. If I get it to work I will post the instructions here.
Just exactly what I'm looking for. Can't wait to bring this up!
Edit: loaded everything up, added my switch to the maker API then fired up the tracker URL. It selected my switch and changed the state to "occupied" when I walked into the room but remained in a "no targets detected" state even though I had
mmWave Target Info Report
set to enabled, preferences saved, and also ran a configure (all). Have 01-30-2026 driver. What am I missing?
Edit2: noticing that the switch targetcount state is also 0 when I'm in the room so maybe switch setting related? Sensor is definitely working properly however since room lighting controlled by my occupancy rule is triggering correctly.
When you look on the hubitat device page for your switch, do you see the attribute/state variable called "targetInfo" populating as you move around in the room? If not, then the issue is on the driver/switch side, as this app simply graphs that attribute as it changes.
Thanks got it to work in a LXC container. Just a bit of configuration stuff and it looks great. Once it get it to startup with systemd service and the Environment variables in the service file I will post my configuration steps.
I'm going to bring this up on the VZM32 enhancement/bugs topic on the Inovelli community and also take a quick look at the driver code. I will lyk what I uncover.
yeah it's not getting the needed zigbee binding, since you aren't receiving any of the coordinates from the switch on the mmWave cluster. I believe the driver is supposed to do this for you when you enable the target info reporting. But you could try to manually do it if you know how. See here.
You need to Bind to EP1 Cluster 0xFC32
The Bind command on the device seems like it would work for this perhaps, though I haven't looked at how the driver parses the command
Well, there are apparently ppl out there where this is working so that pretty much eliminates firmware since Hubitat hasn't posted v1.01 and that's the only way we can upgrade. It also demonstrates that the driver is able to bind EP1 to the mmWave cluster. So I'm thinking a parameter combo is exposing a driver bug somewhere where this specific endpoint binding doesn't happen when parameter 107 is set. In my case, I have the mmWave sensor decoupled from the switch for example.
Perhaps, but I'm a bit skeptical of that theory - I have the mmwave sensor decoupled from the switch as well (Light On Presence parameter = disabled). I think you're going to need to provide more detailed info about your device configuration (screenshot of device preferences), your zigbee network (what's your zigbee table look like?), and a full log readout with trace, info, and debug logging enabled showing the log when you (a) set the value of the Report Info log parameter to Enabled and click Save; and (b) click Configure (All).
I opened a support ticket on this with Inovelli. Their support bot also thinks its a binding issue.
Also, they dragged my writeup on the inovelli VZM32 bugs/enhancement thread to a new topic that features your app.
Yes, I saw that. I don't think it's a "bug" on Inovelli's side. You're of course welcome to pursue Inovelli directly, but I suspect you are likely to reach a speedier resolution by posting more detailed logs here or in a DM. I helped write the driver code that does the binding anyway....
Well, it's pretty interconnected to the code I wrote in the driver (the part that populates the targetInfo attribute), so I'm happy to do so as part of making sure the code I wrote in the driver is working as intended.
My zigbee table is somewhat large (76 devices). How would you like to see that? Full screenshot of details in zigbee table or only certain columns? We could also switch to DM or a new topic if you'd rather not clutter up this one.
I also have two more mmWave switches showing up today. It might be interesting to fire one up out of the box to see if its working. I was planning on using this app to assist with zone mapping anyway.