Z-Wave - all on/off command supported?

Does Hubitat support sending the All On/Off command?

As described in the Z-wave spec at 4.5 (google "SDS13781-Z-Wave-Application-Command-Class-Specification.pdf"

I use it to quickly turn off all lights and devices (that I have opted in per device) when I leave and I use it to quickly turn on the whole house in case of alarm. I know it's obsoleted and we should multi-cast S2 but none of my devices support that.

How would I send an "Command Class = COMMAND_CLASS_SWITCH_ALL, Command = SWITCH_ALL_OFF"?


No, not that I know of. I'm pretty sure this came up before.

Edit: I was right. This was asked in December of 2018, and the answer was no.

Since Hubitat isn't exclusively a Z-wave hub and one device doesn't know what the other devices are, when you issue a command to a device, it sends the message out to the device. There's no way for the driver to know it should issue the All Off. And even if it did, you'd have every z-wave device issuing the All off command, which is really overkill.

That's not really how Zwave "All ON" / "All OFF" works.

It is a specific command that sends out a broadcast message to all zwave devices it knows about at the same time (I guess that is redundant, as that is what broadcast means...). Repeaters are required to repeat it immediately before acting on it.

It chews up a tremendous amount of zwave bandwidth on use, though, as all devices that do use All ON/OFF then respond their new status back to the hub - huge flood of traffic..

How the end device responds to an All ON / All OFF broadcast message (if at all) depends on the device, and how it is configured.

Most older hubs support it, but to my knowledge Hubitat does not. It is also deprecated, so likely would not be added to any other hub at this point.

That was my point.

Also since not all devices connected to hubitat are z-wave, issuing a z-wave all-off command will not turn off all your devices. Each device in Hubitat is a little island unto itself as far as messages are concerned.

Gotcha - and I agree / very true. It is only useful for people that have most/all devices on zwave. And supporting it could be very confusing to novice end uses - "why didn't my hue bulbs turn off when I issued an All OFF????"

Exactly. Plus, Hubitat's model is that each driver controls one device. Who would issue the "All off" command?

The main problem, and a possible reason it got dumped is that it's non discriminatory, any zwave device that has this command implemented will turn off, possibly including gramps life support system where you are only using that switched outlet to monitor power...


Zwave devices can opt in/out to all-on or all-off on a per device level so that should be ok.

Could I just go down this path and create my own Z-wave all-off event?

why not just make a group (or scene) with all the devices you want the turn off? i have a hierarchy of groups for this (kitchen->front of the house->upstairs) this makes adding devices easy. A new kitchen light is the automaticity in the front of the house and upstairs.

1 Like

A long time ago (before any official Z-Wave documentation was free and public) I was reverse engineering some test Z-Wave devices .... Duwi remotes .... with an intriguing "All Off" button on ....

Having pressed it (assuming All Off meant the devices Associated to that remote) panic ensued when I heard the simultaneous chatter of 50+ devices on my Z-Wave network turning OFF. And then the absolute deluge of traffic killing the Z-Wave radio as each device tried to report its status change!

Lesson learned :slight_smile:


Sure have at it, it's your network after all.

All of the SwitchAllV1 command class commands are implemented, so you don't have to build these the hard way.

Just do Hubitat a favor, and don't publish any drivers implementing this, those would be support tickets that we don't need...


I'll probably end up doing this but I have 50+ Z-wave lights/switches and on previous systems it took quite a while for this to work where you could watch each light turn off.

Good to know thanks. I'll try it out and let you know here about any progress. I promise to not make it too easy for anyone else :slight_smile:

Ideally I would query for the Z-wave IDs of the devices in the group and do a bitfield multicast command with a basic_off but not sure if I have access to the low level device IDs in the API.

It would take about 60 seconds to make a driver with a custom command for this, then apply that to a virtual device.

Hey @mike.maxwell, where is the documentation for this? I'm looking around but I can only really find the empty section under developer docs (Developer Documentation - Hubitat Documentation) and what seems to be an infinite recursion or possibly overloaded Z-Wave example (Zwave Object - Hubitat Documentation).

Where is a more complete API documentation?

These have just been added...

Specifically this (in case it wasn't obvious):

This is awesome. Where did you copy that code from to create that page just now? I'm asking both to learn specifically about Z-Wave on HE, and hopefully help with documentation in the future.

Sorry, I just fall of my chair laughing over this. Yeah let's put Gramps life on our home automation... :grin: We can time it... :joy:

1 Like