[OBSOLETE] Cooper Aspire Dimmer Switch RF9540-N with Protection (Lock-out) Mode and Panic Mode

Based on SmartThings Dimmer Switch


  • Device parameters configuration
  • Panic Mode (Alarm) capability
  • Protection Mode (Child Lock) capability

Warning: If you are using RF9540-N master with auxiliary Aspire switch(es), this DH may break the connection, since I do not have an Aspire auxiliary switch and thus I’m unable to test it.

Please read the comments at the top of the DH for complete info on features and limitations.

Let me know of any bugs and if you find it useful. Keep in mind - I’m not a programmer.

Regarding Protection Mode – my planned usage:

I’m using SmartThings at the office. There’s janitorial services, and they come-in after hours. When alarm is armed, and motion detector sees activity, dimmer protection is set to Remote Only, dimmer brings up lights to 40%, and allows 30 seconds to enter the disarm code before siren and Panic Mode are turned on.

If janitorial disarm code is entered, Mode is set to Janitorial, dimmer level brought up to 99%. After 5 minutes, setLevel(0,120) is sent, allowing 2 minutes before lights are completely off and system is re-armed.

Haven’t decided if I’ll keep the dimmer in Remote Only while armed. Seems that keeping lights locked On at 99% when intrusion happens would be a good deterrent in the case of an office with cameras installed.

To manipulate the Protection Mode, use Rule Machine Expert Features or the helper app below.

Need to know if anyone is using this DH. Posting/documenting takes a little time, so I will only keep doing this (documenting/posting) if it’s useful to others. Thank you.

Version history

28 Apr 2016 v1 initial release

01 May 2016 v2

  • changed Protection Mode commands, now no longer uses parameters
  • moved Protection Mode setting from preferences to tile
  • added multiple value tiles to UI to display current dimmer configuration (device parameters)

Protection Mode helper

Here’s a helper app to use a virtual switch to enable/disable protection mode. When installing the app, it will ask what you want the Protection Mode to be – Sequence Control or Remote Only. This app will allow you to easily add protection mode switching to Routines and Smart Rules. Without it, you need to use Rule Machine to manipulate the Protection Mode.

1 Like

Thanks @gkl_sf! This is a great resource for me. I am using your DH.

Are you planning to add any more capability to it? I would like the ability to adjust items #4, #5, and possibly #6 (though I’m not sure about this one yet). By default I would like it to power up to 100%, then allow dimming via zwave or the rocker on the switch.

I’m new to this and I love all the options to tweak.

Hi. Glad you gave it a try. Let me know if you run into any issues. Also let me know if you have more than one RF9540 and would like to be able to set them up as master-slave or want to be able to synchronize them (master-master).

Here are my hesitations regarding making parameters 4, 5 and 6 available for editing:

4: The manufacturer states:
Normally this parameter should be left at factory default unless specific associated devices require a fixed value. It is included to ensure Z-Wave certification requirements. If a value other than 0 is configured, then the device will send the configured value rather than the actual value of the dim level to associated devices. Changing this value from 0 will result in undesired operation in most cases.

5: My understanding of this one is if power goes out (ie electricity shut off to switch), what should the switch do once the power is restored. I can make it available for editing, but it does seem that the factory default of “OFF” is a safer choice.

6: If this parameter is made available for editing, and one was to disable it, the Alarm (flashing lights) capability would no longer function. The device would still show up as an “Alarm” device, but would not actually have the function. I feel this is problematic, but am open to other opinions/suggestions about this.

Thanks. George

Thanks for clarifying. I agree with you on all accounts. I thought #5 would allow me to setup a default “on” state when i push the top button regardless of where it was last.

I only have it connected in a single position.

Thanks again!

Thanks for the DH. I have found it very useful.

1 Like

oddball question for you, since you seem to be the only person around here who’s working on a custom DH for this switch. do you think that there is a way to adjust the dim level without turning on the light? i’d like to set different dim settings by time of day, but when i do this with the default DH and the light is off, it turns on. i can set up something like CoRE to do a quick turn off if status was already off, but that has been known to cause a brief flash and that’s not ideal for the AM bring lights up to 100% change.

i’m no coder either, but this is the section that would seem to be relevant:

def setLevel(value) {
log.debug “setLevel() called with value = ${value}”

def currentSwitchState = device.currentValue("switch")
if (currentSwitchState == "off" && value > 0) {
  sendEvent(name: "switch", value: "turningOn", displayed: false)
else if (currentSwitchState == "on" && value == 0) {
  sendEvent(name: "switch", value: "turningOff", displayed: false)
else {
  sendEvent(name: "switch", value: "dimming", displayed: false)

would it be possible here to have setLevel just set the level without sending the commands to turn on?

Unfortunately, it’s not possible.

sendEvent simply tells ST the status of the switch but doesn’t send anything to the physical switch.

zwave.basicV1.basicSet(value: level).format() is the statement which is responsible for sending the command to the physical switch (well, it actually formats a raw command which then gets returned and then sent on by ST), and when the switch receives a command to change level, it turns on the light.

ah, very interesting. thanks for that.

do you know if there are any switches that don’t have that behavior?

also, happy holidays!

Hi. Happy holidays.

I don’t think that any switch would work that way.

On the other hand, you can have an app watch for the turn-on event and then set the level to whatever it should be based on time of day. Should be able to do that with CoRE. There would be a 1-2 sec lag prior to the level change and the level change itself would take a second.

thanks, to you as well!

interesting thought, if i’m feeling ambitious i’ll give that a shot this weekend.

Big Thank You George, This is a great DH. Please keep up the work,it’s people like you that make
Smarththing=GREATthings :slight_smile:

1 Like