Zipato / Benext / Wintop RFID Mini Keypad

I have created a working device handler for the Zipato (a.k.a. Benext / Wintop) RFID tag reader.

After a few bug fixes, it’s working well for me, and finally allows me to give house guests a way to disarm the security system (and allows me to disarm it if my phone is out of juice).

The device looks like a switch on your network (home=off, away=on), which allows you to automate against it with routines and SmartApps. You can register 9 RFID tags or user codes by default, and can expand this up to 255 if you want to edit the device handler.

I have set it up against my home & away routines so that when the away routine is automatically performed when the device turns “on”, and the “home” routine is automatically performed when it is turned “off”. In addition, to ensure that other home/away routines keep the keypad state in sync, I have set up the “away” routine to switch the device “on”, and for the “home” routine to switch it off. It works seamlessly. I hope others enjoy.


Some screenshots.


Just ordered one of these RFID mini Keypads and looking forward to trying your DTH when it arrives.
Hopefully over the weekend.
I’ll let you know how I get on.
Thanks for doing this it certainly sounds like just what I want from reading your write up.

All installed and working well.

Once again many thanks.

1 Like

@seanblanchfield, thank you very much for writing this - it works like a charm.

Forgive my naive question, I’m new to this and not well versed in programming etc, but is there a way it can report which code / rfid was used to set Home / Away? Perhaps using CoRE?

I notice in CoRE it lists rfid1, rfid2 … rfid9 as attributes but I’ve not been successful to use these in any meaningful way. Ideally, I’d like to know who activated / deactivated the systems by means of a push messages and perhaps trigger other events. I understand this functionality may not exist; I just want to be sure I’m not missing something obvious that does exist.

1 Like

I made some additions to my copy of @seanblanchfield excellent code to do pretty much what you are asking.

I am more than happy to share as long as Sean is OK with that.

You can personalise each RFID slot with a meaningful name, enable/disable Push and SMS Messages. and set date format to US or UK (I’m in the UK so needed that option) all from within the apps Preferences screen. The Last User and time of Arm/Disarm is displayed on the app screen. as well as being available in webCore.

Example of display on app screen
Last Set to Home by James at 11:13 Fri 26 May 2017

I use webCore for Push notifications and SMS rather than Core but see no reason why it should’nt work the same in Core.

Example of my webCoRE Push Message
James has arrived and disarmed the system


Thank you for your reply. That’s precisely what I’m after. Hoping @seanblanchfield looks favourably on your generous offer to share the code.

This sounds great Kevin. Please publish and tell me where I can go to get the update. If you have the changes on github I might like to merge them into my version.

1 Like

I have copied and pasted my modified DTH up to GitHub See below.

Hopefully it copied OK and will work as expected.

For Push messages and or SMS messages you will need to use webCore or Core.(Although I’ve not tried it in Core). and create a piston. The keypad should expose the attributes you need to be able to do this.

The attributes

lastsetby This is the name of the user who last set the keypad

webCoREPush. This is Yes/No switch for Push Messages


webCoRESMS. This is Yes/No switch for SMS Messages.

Good luck

I’ll keep my fingers crossed it works.


Thank you Kevin and Sean. This has been a real sticking point for me. All seems to work as it should. Hours of fun ahead!

@Wynand Glad it worked Ok. I can uncross my fingers now.

@seanblanchfield if you have had a look at my additions and are happy with them and want to add them to your original DTH please feel free.

I learn’t a lot from doing these additions by looking at how you coded, so again many thanks.

1 Like

@inpier @wynand I have updated my version with your improvements, along with a bit of refactoring to make it all fit together a bit neater. I also updated the tiles so that there’s a label above each key fob that displays the name that has been set for that slot. See screenshot below.

Thanks for all your work. It’s a significant improvement. I don’t have CoRE set up, so it would be great if you could confirm that the push and SMS notifications still work okay.

1 Like

I have just updated the DTH and have it all working OK including the Push and SMS messages via webCoRE.

I found a typo in line 122 for userName3 attribute, it is set as userName4 so I edited that.

Otherwise I just had to do a refresh to repopulate the slots.

I really like the idea of the UserName labels above the slots. This is a useful work around for tile labels not being dynamic (other than $currentValue)

I think this is just about perfect for my needs now. Thanks.

Thanks for finding that bug. I just made that fix. Agree it a shame tiles labels are not dynamic - it’s a bit ugly to have to put a separate tile in to label them, but it’s better than nothing.

I just finished adding the device handler and syncing my keypad with my hub.
Now I’m looking to find a way to add this device in my CoRE app, anybody know to do this?
Also is it possible to add a time pause, so when I open the frontdoor when I come home I still have 30 seconds to put my code? I guess this needs to be done via the CoRE app right?

@inpier can you share you Webcore piston? It sound like you got it working well. Thanks

@JGoolaerts not core but it may give you ideas.

Yeah more than happy to share my piston although looking at it now I think it has lots of room for improvement.

It’s a little short on comments in the piston but hopefully you’ll be able to work out what it does.

If I arm the system from the keypad webCoRE checks if any of my critical doors/windows are open and warns me via my Samsung R1 speaker. I can then stop the disarming and go and close the open window etc.

If arming continues it begins a countdown lasting 30 secs (I keep meaning to shorten this as it is a bit too long) then warns system is armed.
On entry it warns I have 30 seconds to disarm. If I don’t it sounds my alarm. If I do disarm it runs my I’m back routine.

It does a few other bits like notification and SMS

1 Like

@inpier I just received my mini keypad today and when i installed it, it keeps coming up as a “Z wave Switch” and i go into the IDE and change it to the device that @seanblanchfield wrote and it seems to be stuck on away? any insight on how to reset this keypad and get it to work. Thanks

I am more than happy to help if I can but I don’t remember having too many problems when I first installed it although I do remember it didn’t work at first because I hadn’t put in a ‘Wake Up Interval’ in the settings screen.

After that it all worked OK.

Assuming you have one or more slots populated OK do you see anything in IDE Live Logging when you try to change mode?

@inpier Thanks for your help it works as it should.

© 2019 SmartThings, Inc. All Rights Reserved. Terms of Use | Privacy Policy

SmartThings; SmartApps®; Physical Graph; Hello, Home; and Hello, Smart Home are all trademarks of the SmartThings, Inc.