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

(DTH NO LONGER SUPPORTED) GE Motion Switch (26931) and Motion Dimmer (26933)


Thank you for all of the users that have supported this DTH since July 2018!..Michael

I am pleased to announce the re-release (under new ownership by me) of the GE Z-Wave Plus Motion Switch and Dimmer DTHs (Device Type Handlers)! Special thanks to @mlebaugh for the original DTH and @Darwin for the suggestions and testing of these new DTHs.

These DTHs are required when using the GE model 26931 and 26933 combination Switch (or Dimmer) and Motion Sensor.

No longer do you have to change batteries in the motion detectors of the room! In addition, the devices allow for limited LOCAL CONTROL of lighting based on motion. The DTH also allows you to sync other lights actions (ZWave only) within the SmartThings Environment without the need for a separate app.

This is almost a complete revamping of version 1.0.0 released by @mlebaugh. Below is the change log. Please note that some of you that already are using 1.0.0 with WebCoRE MAY need to update your pistons as I have changed many of the programming commands for consistency and compatibility with other applications.

Removed the following commands from the code as they were never implemented 100%:

  • Up()
  • Down()
  • setModeNumber(value)

Formatted commands to a more consistent syntax for other developers to utilize:

  • occupancy()
  • vacancy()
  • manual()
  • lightSenseOn()
  • lightSenseOff()

Added the following new commands:

  • occupied()-same as occupancy(), sets the operating mode to Occupancy
  • vacant()-same as vacancy(), sets the operating mode to Vacant
  • setMotionSenseLow()-sets the motion sensor sensitivity to low
  • setMotionSenseMed()-sets the motion sensor sensitivity to medium
  • setMotionSenseHigh()-sets the motion sensor sensitivity to high
  • setMotionSenseOff()-turns off the motion sensor
  • setTimeout5Seconds()-set the lighting timeout to 5 seconds
  • setTimeout1Minute()-set the lighting timeout to 1 minute
  • setTimeout5Minutes()-set the lighting timeout to 5 minutes
  • setTimeout15Minutes()-set the lighting timeout to 15 minutes
  • setTimeout30Minutes()-set the lighting timeout to 30 minutes

Other changes:

  • Optimized code for redundant items and syntax/logic errors.
  • Better version control, added version to main screen
  • Settings do not override operating mode if left blank (others that are blank will take on default value)
  • Added a dashboard on the main GUI to show settings that can be changed programmatically
  • Added option to double press the ‘on’ button (manual override) to change the timeout option. Will reset after ‘off’ command (either programmatically or physical push)

Partner Announcements
The DTHs work with any application that can use a motion sensor or switch. The advanced commands (such as operations mode) are available natively in Ask Alexa and Room Manager ([Migrated to Custom Capabilities] Rooms Manager: Smarter Rooms: Personalized rules based home automation with rooms Occupancy sensing from devices you already have in your home)

Installation instructions for these DTHs are here:

Switch: GE Z-Wave Motion Sensor Switch - Things That Are Smart Wiki

Dimmer: GE Z-Wave Motion Sensor Dimmer Switch - Things That Are Smart Wiki

Be sure you use the correct DTH for the model of device (Dimmer/Switch) you have.


  • Feel free to use this thread to get support for either of the device types and myself or other community members can assist you.
  • When evaluating new features I will typically ask for a valid use case. If it can be used by others to bring them value I will put it on my list of future revisions. Not all suggestions will be used and many times I add aspects of the request.
  • There are no dumb questions, but many of the questions you may have were probably answered in the forum and instructions. Please take some time to go through the forum and the wiki if you have issues. And don’t be offended if I give you the specific area of the manual that answers your question. I have spent almost as much time on the documentation as I have on the app.
  • If you find a bug or a consistent crash please help me track it down by giving me repeatable steps to reproduce it. A non-reproducible bug, many times, indicates other areas that may be at fault besides the DTH. If you watch the live logging and see a red error with a line number, that is very helpful to me!

As always, I appreciate any public accolades or even donations to my PayPal account: PayPal.Me . However, neither of these are required to use the DTHs.



@MichaelS thank you for the hard work!!!


@MichaelS - Thank you for your great work!

I found something that might be a bug. I switched over from the original DTHs and found a mode discrepancy between the main screen and the settings screen.

This may have been caused by my upgrade method or by the fact I have a piston that attempts to change the mode depending on the time of day which has never worked (and I have never had time to go back to figure out why).

1 Like

Version 1.0.2: GE Motion Switch (26931) and Motion Dimmer (26933)

I have released version 1.0.2 of the DTHs for these devices. Here is the change log:

Added the following new commands:

  • switchModeOn()- Programmatically turns the dimmer to ‘switch mode’ (only used for dimmer 26933)
  • switchModeOff()-Programmatically turns off ‘switch mode’ (only used for dimmer 26933)

New to the settings page:

  • Items that only have enabled/disabled now have on/off sliders. You WILL have to reset your settings for these to operate the first time.
  • Added a ‘double press’ option for the off button to override the main mode.

Other items:

Syntax changed and bug fixes.

The documentation has been updated and the files are now in GitHub.





This is probably not a bug, but more of a perception issue. The Settings page will NEVER change on its own (ST security actually prevents this). The main screen is what the settings are currently. In your case it appears the mode was changed programmatically or was ‘left over’ from the update. To ‘reset’ this, simply tap ‘Save’ and your setting should then match the dashboard. And, if something (like other automation) overwrites this, you should see this on the dashboard. NOT in the settings area…the items there are ‘one way’…i.e. Saving there overwrites what you see on the main page, but you can not change what is displayed in the settings programmatically. In other words, this page are true settings, not active representations of the condition of the switch (ST does not allow dynamic updating of the Settings pages on DTHs).

Hope that explains it.


I forgot about that… It all works now! When changing other settings and saving, the mode was not updating on the main screen but that turned out to be caused by me running a network repair at the same time (I am replacing all my Leviton Vizia RF Dimmers/Switches with HomeSeer 200 series)…

Ok…excellent…I DID update the DTHs today and again, once you upgrade you should SAVE your settings as I changed some variables from enum (a selection from a list) to Boolean (i.e. true/false). Saving will update your settings and then should work great!

1 Like

Any idea why I can’t get a 26933 device using this handler to work with the new Smartthings app?


Because the new ST doesn’t support most of the custom device handlers… You’re better off sticking with classic until ST says you should use new.

1 Like

Have you been able to get the 26933 to show up in the new SmartThings (Samsung Connect) app without using the custom device handler?

It doesn’t work for me and I’d like to know if it works for anyone else.

I started the below thread the other day about it:

It is my understanding you need a custom DTH to use the device. It is not part of SmartThings natively.

1 Like

You are correct. It’s a compound device that combines multiple ZWave classes… Without the DTH SmartThings has zero clue how to handle it. Aaaand because the new app doesn’t know how to handle custom DTHs it won’t work there even if you do load one. :slight_smile:

BTW I’m loving the new device handler in my classic app @MichaelS

1 Like

I was hoping somebody can help me use this DTH. I have already added the switch to smartthings. How do I go about using the DTH? I went to the smarrthings IDE and added the code to my device handlers, saved and published it but nothing happened. Am i doing something wrong ?

I think I figured it out. Now is there a way to make the switch turn on (by motion) ONLY during daytime? I dont want it to turn on at night.

Yes… You will need an app like WebCore to change the functionality in the evening… It is his mine is set up and I love it.

Would you be able to share how to set that up on webcore


In English, this is what it does: basically during the day the rooms are in occupancy mode and the bathroom is in vacant mode. I set the default of the rooms to 99% and turn the bathroom into a switch. At night, the rooms go to vacant (so you have to manually turn them on), and all of the rooms defaults to 5% (and the bathroom back to dimmer mode); the bathroom (in occupancy mode) will come on automatically using the motion sensor and then turn off after 5 minutes (based on the base configuration of the switch in the DTH).

Let me know if this all makes sense.


so I was able to import your webcore piston but I got the following error:

Any idea what I should do? I really want it simply to use the motion sensor on the switch to turn on the switch during daytime and not to do so during night time. I don’t have the dimmer version and not sure why there would be 2-3 different sensors here

Using the code on my example just fills in the devices (which are unique to my environment) as generics. You first have to add the devices in your SmartThings to WebCore then they can be used in your pistons.

I would do this:

Create a new piston
Create an “IF” condition
Choose a way to determine day from night in your environment (light sensor, mode, etc).
If the “Then” (for Day) area you set the switch to Occupancy
In the “Else” (Night) area you set the switch to Vacant

WebCore is a rather complicated app, but in its simpliest form, it is a simple, IF THEN ELSE set of conditions. If you can say it with word (I want to turn lights on in the day, off at night) then you should be able to translate that to a piston.

I hope that is helpful.


I upgraded the dimmer to 1.0.3. This simple update changes the setLevel option to a ‘boolean’ on/off instead of a pull down. If you upgrade, you will need to toggle then save the settings for this to take affect.

The switch version remains at 1.0.2.