[RELEASE] GE Motion Switch (26931) and Motion Dimmer (26933)

I haven’t found an automation that does this and placing it in manual mode would disable the other functionality that is needed. (motion sensing) vacancy, etc.,)

You’ll have to build the automation yourself, you won’t find something that complex, thus why I suggested WebCoRE. I suggest manual mode because the onboard occupancy timer will get in the way of automation. (you can’t change device firmware through DTH you can only turn it on or off…)

That leaves you putting the device in manual mode and then providing the logic yourself with smartlighting or webcore or some other smartapp. And that includes having to handle the basic motion sensor or switching the device in and out of manual mode.

I use Bangali’s rooms manager app to drive mine. But you may not need anything that complex. You can write a piston to do your custom scheduling and when that schedule is activated set the motion switch into manual mode. When it’s done, pop it back to auto occupancy or vacancy mode.

1 Like

Michael…I have your DTH install for my 26933 GE motion dimmer…odd thing is that physically holding the up or down button on the switch no longer dims the lights. Any suggestions on how to rectify this?

That is very odd…are you 100% sure it is a dimmer? There is always a chance a regular switch was put in the wrong box at the factory. Can you dim it via SmartThings? If it is the right switch, it just may be physically defective. The DTH has nothing to do with the physical operation unless you have programmically set it up as a switch.

Yes 100% sure. When I delete the DTH then I can press and hold up on the paddle to increase brightness and vice versa using the down paddle.

Ah…that is good…I should clarify my last statement. Normally, DTHs don’t affect the physical operation. However, the GE switches do have a mechanism that allows the dimmer to be a switch programmically. At the bottom of the interface you will notice an area called ‘switch mode’. This does exactly as you stated…physically will not allow you to dim the lights and to turn the dimmer into a switch. Pretty handy feature, but if you don’t want that, you can turn it off:


Ok. I shall uncheck that when I get home tonight. I thought I had to have that checked on order to operate the switch. I’ll let you know what happens. Thanks for the guidance.

1 Like


Just letting you know that I was able to successfully get the DTH to work and the dimmer is functioning properly now as well. Thank you for your guidance on this. I was wondering if I could ask you a follow up question. I have the dimmer setup to the auto on/auto off when motion is detected and light level is low but do you know if there is a way to instead have the motion sensor only turn the lights on during a specific period of time but auto shutoff whenever there is no motion?

What you are looking for isn’t in the DTH but is possible with a rules engine like Webcore.

Glad you got this worked out.

1 Like

Interesting new problem not sure if you are experiencing the same thing. Bit in the settings menu for the dimmer while scrolling down the list it auto refreshes and brings me back to the home screen in smart things. It started this today Everytime I am in the settings for the dimmer. Any thoughts

That sounds like a SmartThing issue…I just tried it on mine and I can’t reproduce what you are seeing. When things suddenly happen like that I tend to give it 24 hours as something may have changed on SmartThings end.

Can somebody do me a favor?

Modify refresh to look like this. Comment out temporarily all but the notificationV3 get in refresh and see if the device is actually sending a reply to this. I don’t see one coming back.

def refresh() {
  log.debug "refresh() is called"
    zwave.notificationV3.notificationGet(notificationType: 7).format()

Make sure your Z-Wave message method for notifications has some debug logging turned on like this for example:

def zwaveEvent(physicalgraph.zwave.commands.notificationv3.NotificationReport cmd) {
  log.debug "---NOTIFICATION REPORT V3--- ${device.displayName} sent ${cmd}"
  def result = []
  def cmds = []
  if (cmd.notificationType == 0x07) {
    if ((cmd.event == 0x00)) {
      result << createEvent(name: "motion", value: "inactive", descriptionText: "$device.displayName motion has stopped")
    else if (cmd.event == 0x08) {
      result << createEvent(name: "motion", value: "active", descriptionText: "$device.displayName detected motion")	  

Let me know what you see. Thanks in advance!

Did you ever get a response to this? I am curious what problem you are attempting to solve with this? Were you not seeing a refresh on your devices?

No response so far.

Hey guys,

Just recently discovered this DTH & Webcore, truly amazing stuff!

I would like to adjust the dim levels, depending on time of day. I have a piston set up but the dim level is not being set by the piston. Seems like the default dim level from the ST app settings are overriding.

I am using the set level function.

Any ideas what I am doing wrong?

Also, if you update a piston, how long does it take to take effect? Are there any settings or caches that need to be cleared manually?


One additional question – in order for the lights to not turn off when someone is reading, watching tv etc and there is little to no motion, I am wondering if it’s possible to use Alexa to override the motion and enable switch mode. For example, the switch could detect motion and turn on the light. Then if you tell “Alexa keep kitchen light on” the switch would stay on until you manually turn it off (via voice or switch). Then the next time motion is detected, the switch would return to normal motion triggered mode.

I think the way you would want to do this is with a virtual switch…For example, if you tell Alexa to keep the light on it would flip this virtual switch that could have another timer and trigger in webcore. You would modify your original script to look for the virtual switch to be off…it if isn’t then the light would stay on. If it is on, then when the light is manually turned off, it would turn off the virtual switch (second webcore routine) and then it would ‘reset’ all of the actions.

Does that make sense?

Yes that makes sense. Thank you for walking me through that.

In order to set dim level for a certain time of day, can you simply call “setDefaultLevel(x)” or do you also need to include an “occupied()” command?

I’ve noticed that no matter which value I save for resetCycle, the log shows “Reset Cycle is 20 Sec”, and does indeed report that motion has stopped after 20 seconds (more like ~24). I haven’t yet tried another DTH to test if it’s the switch or the code, but curious if this is known behavior or if others can reproduce.

That actually seems to be a bug…never noticed that before. I will see what can be done to fix that. Good catch!

1 Like