Zipato / Benext / Wintop RFID Mini Keypad

Update, 16 October 2020.
This device handler was designed for the original SmartThings app (the “SmartThings Classic” app). The SmartThings classic app was shut down by Samsung on the 15 October 2020 (despite protests), causing it to stop working, and forcing users to migrate to the new app. I noted that this device handler, or a port of it, appears to exist in the new app, but doesn’t work correctly (there is no main UI page, which contained the controls necessary for registering/unregistering RFID tags). I couldn’t easily see how to fix this (or indeed, if fixing it was possible, or even whether custom device handlers are still supported).

I also noticed that the new app would not allow me to edit some of the more advanced conditions in some unrelated automations I have.

Altogether, this has left me upset with Samsung for breaking a home automation setup that I had invested heavily in, which had been working well for years, and which I depend upon both for convenience and for home security.

The lesson I take away from this is that it is a bad idea to try to depend on cloud-hosted home automation services, which may be changed or withdrawn by companies due to wider commercial interests than the smooth operation of your home (or, perhaps because they find that launching a new product is easier than figuring out how to support the old one). It is very frustrating when planned obsolescence breaks some of your periphery devices (e.g., Nest or Sonos), but it is intolerable when it impacts your automation hub, and thus breaks everything.

Rant over. This week I abandoned SmartThings and switched to Home Assistant, which took about 3 evenings of work. Hopefully members of the SmartThings community who depend on this device handler will eventually find a way to continue to use it with SmartThings. If not, this keypad can be configured out of the box in Home Assistant (see post by bruring here) .

Original post:

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.

4 Likes

Some screenshots.

3 Likes

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

2 Likes

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

and

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

Good luck

I’ll keep my fingers crossed it works.

3 Likes

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.