I’ve written a number of device handlers for devices that support the Z-Wave Protection command class. The basic principle is to protect a device against unintentional control (e.g. by a child), typically by disabling any physical buttons (or requiring a special sequence to be input first). This is common in devices such as relays, dimmers, power outlets, etc. (V2 of the Protection command class also supports protection from wireless RF commands).
Anyway, it got me thinking that it might be useful for SmartApps to be able to control protection states in devices. E.g. A user might want to prevent devices from being turned on or off at particular times of day. It might also be useful to control protection based on beacons or presence, which would offer a way to allow a device to only be controlled when a certain person is present or not present.
Therefore, I suggest a “Protection” capability:
- localProtectionMode: ENUM, values: [unprotected, sequence, noControl]
- rfProtectionMode: ENUM, values: [unprotected, noControl, noResponse]
- setLocalProtectionMode(ENUM localProtectionMode)
- setRfProtectionMode(ENUM rfProtectionMode)
Here, I’m using the same terminology as the Z-wave command class, but if similar functionality exists for Zigbee or other types of devices, then it could be generalised. E.g. localProtectionMode could equally be called physicalProtectionMode or childProtectionMode.