[OBSOLETE] Z-Wave.me, Popp, & Devolo Wireless wall Controller & Key Fob (EU), with button controller dimming apps and CoRE integration

current device handler: 1.7.4, updated: 28/03/2017
current smartapp: 1.6, updated: 25/01/2016

What you can do with this
This allows you to correctly set up Z-Wave.me, Popp, & Devolo Wall controllers and Key Fobs. The Device type alone will mean that they work as you (& ST!) would expect and plays nice with other apps, and if dimming is important to you this accompanying app will allow you to have dim events performed whilst rocker switches are held down. Other actions (like double clicks and click-holds) can be used with the Smartapp as well as CoRE.

Some info on the Wall Controllers
These wall controllers are very cool. You can buy the inside part, cover plate, and rocker switches separately, so you have a hell of a lot of flexibility in terms of how they end up looking. For example, the ones I use around my house have a white glass cover plate and chrome buttons. It looks super modern and I haven’t seen any nicer solution than this for versatile wall controllers, other than some products from Aeotec that have been announced but are not available for purchase yet. Also you can buy one big rocker paddle, or two smaller rocker paddles and it will work with both styles.

Some info on the Key Fobs
These are small Z Wave plus key fobs with 4 buttons that are a great size - they have the exact same functionality as the wall controllers (same 4 buttons), except you can take them around with you in your pocket!

Set up

1. To get your controllers working with ST

  1. Read instructions! and put device into inclusion mode (slightly different for each of these otherwise I would put how here). ST should see the device and call it “Secure wall controller for…” etc [Device handlers 1.6.1 and below will see “Z-Wave Device” or something generic like that]
  2. [If you are on 1.6.2 device handler or above and the device was recognised correctly then you can skip this step] Go to IDE and assign the Device type below to the device
  3. Go into the device page on your app
  4. put the device back into inclusion mode
  5. hit the “configure” button in the app
  6. The light on the controller should go a bit nuts red/green flashing.
  7. Wait at least 30sec after the flashing stops, take battery out of the device and then put back in (no idea why this makes a difference but it seems to increase the chance that the configuration holds)

Now your device is set up. If you don’t care about dimming whilst you hold the buttons, then you can stop here. The device will register as a proper controller with the official Button Controller app, Smart Lighting, Rule Machine, CoRE and anything else that it should.

2. Getting dimming events to run

  • Install the provided app
  • For each switch that you would like to configure, open the app from marketplace (as it will save a new instance for each switch)
  • On the first page name the configuration and apply your desired settings
  • The next 4 pages allow you to decide what happens on: button press, button short hold (ST type holds), continuously (fired every 1s) whilst a button is held down - 1 page for each button.
  • Actions that can fire on the above button trigger types are: set a switch to toggle on a button press, trigger a routine on a button press, trigger either a switch to toggle or a dim up or down event when you do a long hold [IMPORTANT NOTE: this is the Smartthings understanding of a long hold not a whilst held event - this will only trigger once], trigger a dim up or down event to repeatedly fire every second whilst a button is held [ This is the proper dimming function that I have only seen here so far on ST], Trigger an event to fire on hold release

The main reason to use the app is to get the dimming feature, but I have added in a few other actions as well. If you need more actions please use this app in conjunction with SmartLighting, Rule Machine or better yet CoRE as they can handle other actions for the button presses anyway

3. Double Clicks

From version 1.4 onwards, thanks to @Fuzzyligic we now have double clicks. These can be utilised using the Smartapp. Smartthings does not officially support Double Clicks yet - However, I have included a temporary work around to allow you to use double Clicks with other SmartApps using the mapping below in section 5. I have also made a special integration with CoRE so that you can select double clicks under attributes → Button Events.

4. Click - Holds

From version 1.5 onwards, thanks to @milesfrankland we now have click-holds. You can set actions for the click-hold start, and the click-hold release. I have not added the ability to perform dimming actions whilst the click hold is held because I couldn’t think of a use for it myself… but if anyone needs it, just let me know and I’ll add it. Click-Hold Start and Click-Hold stop events can be used with other SmartApps using the mapping and the CoRE integration same as (4.)

5. Mappings for use with other SmartApps

Mappings for other SmartApps work like this:

button pushed = button number pushed
button held = button number held
button double clicked = (real button number + 4) pushed
button hold stopped = (real button number + 8) pushed
button click-held start = (real button number + 4) held
button click-held stopped = (real button number + 8) held

This allows you to use this with Rule Machine properly (especially as Bruce just updated it to work with up to 20 buttons per device).

As an example for button 1 from a controller, used in a different SmartApp e.g. Rule Machine:

button 1 pushed = button 1 pushed
button 1 held = button 1 held
button 1 double clicked = button 5 pushed
button 1 hold stopped = button 9 pushed
button 1 click-held start = button 5 held
button 1 click-held stopped = button 9 held

6. CoRE Integration

From DTH version 1.7 onwards you can now directly use any type of button action (push, hold, double click, hold release, click hold, click hold release) straight from CoRE by using the attribute → Button Events whilst setting up a trigger / condition.

Important info if you still use version 1.0

If you are upgrading from version 1.0, you may find that you need to do a full delete and reinstall for each switch to upgrade.

Furthermore, if you were using the virtual device from version 1.0 as a grouping method, but still want to have groups after upgrading - I would suggest using this fantastic smartapp from @Kriskit here which is a much more robust grouping method anyway.

Device type:


###Z-Wave.me Wall Controller v1 & v2:

###Z-Wave.me Key Fob:

###Various cover plates and rocker paddle options for wall controllers / switches:


Great work - looking forward to trying it out later

@AdamV - thanks so much for this! I’ve just used the device type to get the first of my “light switches” up and running.

It’s controlling power to my home office desk & desk lamp and a LIFX 1000 bulb in the ceiling light.

Press only turns the light on and off, press & hold does the same but for the desk power as well.

So useful!

I’m not using it for dimming yet, that might come later when I install the other bulbs and switches in the future.

Glad to help! To be honest I’m just surprised that this functionality did not already exist.

The code isnt the best - if I ever get the chance I’ll clean it up - but it does work. Also if ST ever allows consecutive events to fire more than 1 a second then Ill update this so that the dimming is smoother.



I’m using a Z-Wave.me “wall controller” - http://www.vesternet.com/z-wave-me-wall-controller-set-with-frame - and I’m also using your smartapp to control what it does as well, because I had problems with “Smart Lighting” not acting on button presses.

I do have a small problem though - it appears to be draining batteries very quickly! After getting mine connected and during testing it reported that it only had 1% battery left, so I went out and bought some new Duracell CR2032 cells and swapped it over.

It reconnected to Smartthings OK and initially reported that its battery was at 88% (which I thought was a bit odd), but after 4 button presses to test it in its final location to check it could connect back to the ST hub downstairs and it being on the wall for an hour, it’s reporting that it’s battery level has again dropped to 1%!

I just checked the voltage of the cell that’s in it and it’s reporting that it’s at 2.86V

Do you have any suggestions?

Thanks again for coding this though, here in the UK we don’t have neutral wires in lighting back boxes, so re-wiring to put in mains switches would be too expensive so I’ve decided to go with LIFX bulbs. I don’t want to put a tablet in each room running SmartTiles, so these switches seemed like the ideal choice.

1 Like

Sounds like a dodgy device - to be honest I think all these wall switches are a liitle weird. I have quite a lot of the same ones as you - I just checked them and some are still reporting 100% battery whilst others that were set up at the same time and have had similar usage are reporting 56%. No clue why. The only one I drained was the one that I was working with to get the device type / app working.

Although it’s too late for me if you havent bought all of yours yet I would suggest getting the Zwave.me secure wall controller 2 / Popp forever wall controller (its the same device). it has a slightly different fitting - but uses a more up to date firmware (the ones we have can not be upgraded). I have one of these newer devices and have found it to be more responsive - maybe it also suffers from less battery issues - just a guess.

@AdamV - thanks for the tip! I haven’t bought any others yet so I’ll keep an eye out for the newer ones that you suggested…

Really weirdly, I just checked the battery levels and the same switch is now reporting back 96% battery left!

Ah yes - should have mentioned that - i noticed that too. If you use these a lot in a short space of time they report low battery - give them 1 -2hours of no use and they’ll start reporting the actual battery.

Hello, followed the instructions and I have this partially working with a Popp switch, buttons toggle light.
Button state in smart app is not updating, neither it controls the light.
Couldn’t make dimming work either, device.currentValue(“level”) returns null.

Do you have any hints what am I doing wrong?

I’d like to help - but I don’t understand all of your issues:

So this means that you have you have set up the device type and configured it as above and assigned a toggle to some buttons - and this part is working? is that right?

There is no button state reported in the smartapp so I don’t know what this means

If you meant in the device type for the popp switch then pressing the picture of the switch in the device in the app on your phone is supposed to do nothing! The only event that is designed to trigger anything is actually pressing the buttons of the physical device.

The dimming only works if you have either edited the device type of the light that you are trying to dim as per the instructions, or if you use the virtual light device type provided above and use an app like "color coordinator) to get one or more of your real light devices to copy whatever happens to the virtual ones (this is incidentally a great way of making groups of lights as well)

If you are still having issues - please run live logging and let me know what happens when you try to do stuff.

  1. Yes, the physical buttons on switch toggle the light. Any chance to have the buttons do on or off only not toggle so that the switch could be used as a real on/off switch?

  2. The smartapp has the image of a switch so I assumed it should do something. If it’s not supposed to work couldn’t be removed?

  3. Yes I did the edits otherwise I wouldn’t have this line of code what fails. I copied the level capability, the level commands, up and down tiles, initialize(), levelDown(), levelDown() and replaced setLevel(100) in initialize with sendEvent(name: “setLevel”, value: 100, displayed: false).
    Tried the virtual light device type too but didn’t control the lights at all (on/off).

No need to use my smartapp to do that, once my device type is set up correctly you can use the either of: the official button controller app, the official smartlighting app or Rule Machine to exactly this. Your choice.

I still can’t tell if you mean the smartapp or the device type!

If you mean the smartapp - then it’s the app’s icon, most apps have icons its very normal!
If you mean the device type - I put it in there just because otherwise its very bland - you’d only see the battery details. The idea is that once you have set this device up you should probably never need to click on it in the mobile app again so you will never see this anyway.

Ok so this is the main issue - I’m not sure why it’s not working for you, so I have some suggestions/questions:


  1. Virtual light - this should be far easier to get working than edits to the code. Which smartapp did you use to assign the virtual device to your device? Did you follow a method similar to this:

– Install virtual device type in IDE
– Create a new device in the IDE, label it whatever you want and then assign it to the virtual device type above
– Use a Smartapp, such as “Color Coordinator” from the marketplace to make your real device copy whatever this virtual device does
– Test that fiddling with the virtual device in the mobile app then turns on off / dims the real light
– Then assign the virtual device in my Smartapp for dimming

2 . If you want to go the code route - you shouldn’t need to replace the setLevel method in initialise (or in fact anything in initialise()) at all so put this back and give it another go.


  1. what light are you controlling exactly?
  2. when you copied the code did you copy the full methods for level up and level down?
  3. could you PM me your real device’s device type code before and after the modifications?


I’m planning to make a change to the smartapp this weekend (if I get the chance) that should hopefully mean that it can handle dimming without the need to modify the device type or use a virtual device. So you may want to wait for that - but I can’t guarantee that I’ll get around to it.

I still can’t tell if you mean the smartapp or the device type!

I tap the switch in Home - Things in Android app and I have a screen with a switch-like image, two dashes, and Configure button.

If I don’t replace setLevel() in initialize() I also have to copy sendRGB, hexToRgb and hex and who knows what else.
I’m controlling a Philips Hue, and I copied full methods (otherwise it wouldn’t work at all).

I’ll wait for your update, thanks for doing this for the community - shame on Samsung they don’t support Z-Wave switches natively.

I have updated the app and the device handler.

Device Handler Changes:

  • State is correctly displayed

App Changes:

  • You can now set the dimming increment on the start page
  • You no longer need the virtual device or any code changes for dimming to work!

Known Issues:

  • Dimming whilst held occurs every 1 second. I’ve spent hours tyrying to get dimming to occur more frequently and had the help of some of the best developers in this community - the reality is, at this point it is just not possible with ST due to the nature of the platform. When this changes I’ll update the app

@AdamV I really should have found this thread for the Zwave.me keyfob when i bought it. but it passed me by, probably because the title said wall switch i didn’t see the keyfob part, anyway i have just created a device type for the keyfob that includes double click, but it doesn’t do dimming as its not something i am personally interested in, i just want this to control locks and the likes, but it could easily

maybe you could amalgamate my code into yours to achieve the double click also? as my device type recognises hold start and hold stop

my device type thread

Thanks for this - I’ll try it out when I get back later.

The thing is - this is a bit of a weird one:

  • I have also managed to get double clicks working on the Key Fob - but when I applied the same configuration to the wall switches the double clicks didn’t work.
  • I have managed to get double clicking to work on the wall switches - but only either for two of the buttons (but not all 4)

Hopefully your configuration has cracked it! -

I dont know about the wall dimmers as i don’t have one, but looking at your device type, its most likely because you are not associated with Association groups 2,3,4,& 5. i have also configured the buttons to work separately and not in pairs in the configuration block, parameter numbers 1 & 2

try my device type with your wall adapter. bear in mind though that this will change the configuration parameters, so if you want to roll back to your device type then you will need to reset and re include it to the network.

but looking at your code, you are using pushed, held, holdRelease for your device type which is the same as mine, but then i have added the doubleclick value as well, so i suspect your smartap will continue to function with the pressed and dim values, you just need to expand your smartapp to include the double click value.

just wished we had bumped heads earlier, i was working on this for 2 days straight to get right :slight_smile: if i had used your code first i would have saved me quite some time.

anyway i am going to clean up my device code to get rid of all the if statements, as i have figured a way to neaten it somewhat hopefully i should finish this soon

Cool - I’m going to give it a go tonight.


You can change the configuration by just putting the controller into inclusion mode without the need to reset.

Also - I saw your post to Rule Machine - and from previous experience I would guess as double clicks are not supported by ST Bruce won’t include it in RT. My approach will be to have the double clicks register internally as a push for non-existent buttons 5,6,7,8 so that it can be used by apps other than mine (or yours).

I am aware, but since my device type changes stuff in the config that yours wont put back to what they were and i couldnt be bothered to list them, i figured a reset and re-include would be easier :wink:

yup as for rule machine, double clicks aren’t supported yet. but lets be honest if we between us created a standard for community generated devices, then hopefully ST would add the support

I definitely hope so - let’s do that. For the time being however I’m going to have it send both events doubleClick & a push 5,6,7,8 just so that in the meantime it’s useful… If you do manage to convince Bruce to adopt doubleClick I’ll take the workaround out.