VZM32-SN and VZM36

Hey Team,

THE SETUP


I’m excited to be excited about these new VZM32-SN mmwave switches, I have 5 of them.

I also bought 5x of the VZM36 fan control modules.

I have 5 rooms that only have a single gang box, and romex 14-2 going from the switch box to the overhead ceiling fan with lights.

I’ve installed the VZM32-SN to the neutral and line. I’ve wired the 14-2 going to the fan module to the neutral and line as well. In other words, both devices always have power.

The VZM36 has “dumb” leds installed.


PROBLEM #1


Unfortunately, I’m really struggling with exactly how to configure this setup.

One area I’m struggling with is the ramprate and dimmingspeed configurations on the VZM36 and the VZM32. Do they work together? Independently? Should one be set to 0 and the other to something else? The local and remote don’t seem to be aligned with my mental model. The way it should work in my mind vs my experiences are very different. I’d love to just see a definitive guide, documented, with expected behaviors. For example, if I turn all of the “remote” rates to 0, and leave the local at 127 and then stand at the switch and hold the paddle down or up, it immediately goes to 100 or to 0. I’d expect it to slowly dim since I’m “local”


PROBLEM #2


Another area I’m struggling with is zigbee groups and bindings. I have an additional smart bulb (independent of the “dumb” leds in the ceiling light).

I think a really simple setup is to have the lightgroup contains:

VZM32-SN endpoint 1

VZM36 endpoint 1

SmartBulb endpoint 1

When I bind VZM32-SN endpoint 2 to the lightgroup, my expectation would be that the wallswitch would control the light level on the fan module and the smartbulb. This doesn’t work consistently.


PROBLEM #3


Lastly, it seems like there is no way to keep the fan module in-sync with wallswitch for the fan. I’m using the “cycle” fan control mode. If I exclusively use the wallswitch the fan module and the wallswitch remain syncronized. However, if I use the controller (i.e. zigbee2mqtt/HA) to change the fan speed thru the fanmodule then the wallswitch gets out of sync, and doesn’t cycle to the next correct speed. It cycles to the next speed that -it- was aware off. I can’t figure out a way to have the controller send a command to the wallswitch and have it keep the state and forward it on to the fanmodule, nor does it appear that you can create a zigbee group for the fan and add the VZM32-SN endpoint1 to get the updates.


PROBLEM #4

On that note, I just haven’t spend the time hooking up another switch exactly the same and so forth. I’m using zigbee2mqtt. Is there a way to definitively “download” the full switch config such that I can validate, yup, these are configured 100% identically? Looking through hundreds of configurable parameters (which I appreciate and love) manually is just very error prone from a troubleshooting perspective, also, it makes communicating with y’all more error prone (vs just attaching the config/params)


FINAL WORDS


I know there is a lot to unpack here. If you even have the answer for part of one problem it’d still be much appreciated!

I’m so excited about these switches. I know that they are going to be awesome (I haven’t even had a chance to start the exciting mmwave part!), but I can’t get through these “simple” light and fan issues.

I’d really love/appreciate some help. I’m happy to add more detail if required. I tried to simplify as much as possible. I think another possibility is that this one switch has a bug(s) in it.

Thanks team!

SixOSaxO

Here is my VZM32-SN config

{
“0”: 29,
“1”: 47,
“10”: 199,
“11”: 0,
“12”: 0,
“13”: 0,
“14”: 3,
“15”: 43,
“16”: 255,
“17”: 40,
“18”: 0,
“19”: 0,
“2”: 18,
“20”: 0,
“21”: 44,
“22”: 1,
“23”: 0,
“3”: 45,
“4”: 5,
“5”: 168,
“6”: 253,
“7”: 88,
“8”: 2,
“9”: 0,
“activeEnergyReports”: 10,
“activePowerReports”: 10,
“autoTimerOff”: 0,
“auxSwitchUniqueScenes”: “Disabled”,
“bindingOffToOnSyncLevel”: “Disabled”,
“brightness”: 115,
“brightnessLevelForDoubleTapDown”: 55,
“brightnessLevelForDoubleTapUp”: 254,
“brightness_1”: 254,
“buttonDelay”: “500ms”,
“current”: 0,
“defaultLed1ColorWhenOff”: 255,
“defaultLed1ColorWhenOn”: 255,
“defaultLed1IntensityWhenOff”: 101,
“defaultLed1IntensityWhenOn”: 101,
“defaultLed2ColorWhenOff”: 255,
“defaultLed2ColorWhenOn”: 255,
“defaultLed2IntensityWhenOff”: 101,
“defaultLed2IntensityWhenOn”: 101,
“defaultLed3ColorWhenOff”: 255,
“defaultLed3ColorWhenOn”: 255,
“defaultLed3IntensityWhenOff”: 101,
“defaultLed3IntensityWhenOn”: 101,
“defaultLed4ColorWhenOff”: 255,
“defaultLed4ColorWhenOn”: 255,
“defaultLed4IntensityWhenOff”: 101,
“defaultLed4IntensityWhenOn”: 101,
“defaultLed5ColorWhenOff”: 255,
“defaultLed5ColorWhenOn”: 255,
“defaultLed5IntensityWhenOff”: 101,
“defaultLed5IntensityWhenOn”: 101,
“defaultLed6ColorWhenOff”: 255,
“defaultLed6ColorWhenOn”: 255,
“defaultLed6IntensityWhenOff”: 101,
“defaultLed6IntensityWhenOn”: 101,
“defaultLed7ColorWhenOff”: 255,
“defaultLed7ColorWhenOn”: 255,
“defaultLed7IntensityWhenOff”: 101,
“defaultLed7IntensityWhenOn”: 101,
“defaultLevelLocal”: 255,
“defaultLevelRemote”: 255,
“deviceBindNumber”: 3,
“dimmingMode”: “Leading edge”,
“dimmingSpeedDownLocal”: 127,
“dimmingSpeedDownRemote”: 25,
“dimmingSpeedUpLocal”: 127,
“dimmingSpeedUpRemote”: 25,
“doubleTapClearNotifications”: “Enabled (Default)”,
“doubleTapDownToParam56”: “Enabled”,
“doubleTapUpToParam55”: “Enabled”,
“energy”: 0,
“energy_reset”: null,
“fanControlMode”: “Cycle”,
“fanLedLevelType”: 0,
“fanTimerMode”: “Disabled”,
“firmwareUpdateInProgressIndicator”: “Enabled”,
“highLevelForFanControlMode”: 254,
“higherOutputInNonNeutral”: “Disabled (default)”,
“identify”: null,
“illuminance”: 2,
“individual_led_effect”: null,
“internalTemperature”: 51,
“invertSwitch”: “No”,
“last_seen”: “2026-02-08T02:25:44.719Z”,
“ledBarScaling”: “Gen3 method (VZM-style)”,
“ledColorForFanControlMode”: 255,
“ledColorWhenOff”: 170,
“ledColorWhenOn”: 170,
“ledIntensityWhenOff”: 1,
“ledIntensityWhenOn”: 33,
“led_effect”: null,
“linkquality”: 216,
“loadLevelIndicatorTimeout”: “Stay On”,
“localProtection”: “Disabled”,
“lowLevelForFanControlMode”: 63,
“maximumLevel”: 255,
“mediumLevelForFanControlMode”: 128,
“minimumLevel”: 1,
“mmWaveDepthMax”: 600,
“mmWaveDepthMin”: 0,
“mmWaveDetectSensitivity”: “High (default)”,
“mmWaveDetectTrigger”: “Fast (0.2s, default)”,
“mmWaveHeightMax”: 300,
“mmWaveHeightMin”: -300,
“mmWaveHoldTime”: 30,
“mmWaveRoomSizePreset”: “Custom”,
“mmWaveStayLife”: 300,
“mmWaveTargetInfoReport”: “Disable (default)”,
“mmWaveVersion”: 100863491,
“mmWaveWidthMax”: 600,
“mmWaveWidthMin”: -600,
“mmwaveControlWiredDevice”: “Disabled”,
“mmwave_area1_occupancy”: true,
“mmwave_area2_occupancy”: false,
“mmwave_area3_occupancy”: false,
“mmwave_area4_occupancy”: false,
“mmwave_control_commands”: {
“controlID”: “reset_mmwave_module”
},
“mmwave_detection_areas”: {
“area1”: {
“depth_max”: 600,
“depth_min”: 0,
“height_max”: 300,
“height_min”: -300,
“width_max”: 600,
“width_min”: -600
},
“area2”: {
“depth_max”: 0,
“depth_min”: 0,
“height_max”: 600,
“height_min”: -600,
“width_max”: 0,
“width_min”: 0
},
“area3”: {
“depth_max”: 0,
“depth_min”: 0,
“height_max”: 600,
“height_min”: -600,
“width_max”: 0,
“width_min”: 0
},
“area4”: {
“depth_max”: 0,
“depth_min”: 0,
“height_max”: 600,
“height_min”: -600,
“width_max”: 0,
“width_min”: 0
}
},
“mmwave_interference_areas”: {
“area1”: {
“depth_max”: 0,
“depth_min”: 0,
“height_max”: 600,
“height_min”: -600,
“width_max”: 0,
“width_min”: 0
},
“area2”: {
“depth_max”: 0,
“depth_min”: 0,
“height_max”: 600,
“height_min”: -600,
“width_max”: 0,
“width_min”: 0
},
“area3”: {
“depth_max”: 0,
“depth_min”: 0,
“height_max”: 600,
“height_min”: -600,
“width_max”: 0,
“width_min”: 0
},
“area4”: {
“depth_max”: 0,
“depth_min”: 0,
“height_max”: 600,
“height_min”: -600,
“width_max”: 0,
“width_min”: 0
}
},
“mmwave_stay_areas”: {
“area1”: {
“depth_max”: 0,
“depth_min”: 0,
“height_max”: 600,
“height_min”: -600,
“width_max”: 0,
“width_min”: 0
},
“area2”: {
“depth_max”: 0,
“depth_min”: 0,
“height_max”: 600,
“height_min”: -600,
“width_max”: 0,
“width_min”: 0
},
“area3”: {
“depth_max”: 0,
“depth_min”: 0,
“height_max”: 600,
“height_min”: -600,
“width_max”: 0,
“width_min”: 0
},
“area4”: {
“depth_max”: 0,
“depth_min”: 0,
“height_max”: 600,
“height_min”: -600,
“width_max”: 0,
“width_min”: 0
}
},
“notificationComplete”: null,
“occupancy”: true,
“onOffLedMode”: “All”,
“otaImageType”: “Zigbee (259)”,
“outputMode”: “Dimmer”,
“overheat”: “No Alert”,
“periodicPowerAndEnergyReports”: 3600,
“power”: 0,
“powerType”: “Neutral”,
“quickStartLevel”: 254,
“quickStartTime”: 0,
“rampRateOffToOnLocal”: 0,
“rampRateOffToOnRemote”: 0,
“rampRateOnToOffLocal”: 0,
“rampRateOnToOffRemote”: 0,
“remoteProtection”: “Disabled”,
“singleTapBehavior”: “Old Behavior”,
“smartBulbMode”: “Smart Bulb Mode”,
“state”: “OFF”,
“stateAfterPowerRestored”: 255,
“state_1”: “ON”,
“switchType”: “Single Pole”,
“update”: {
“installed_version”: 16974081,
“latest_release_notes”: null,
“latest_source”: null,
“latest_version”: 16974081,
“state”: “idle”
},
“voltage”: 121
}