Page 1 of 2

Benext Tag Reader with z-way

Posted: 23 Jul 2014 14:38
by creaflow
Dear all,

can someone explain please, how I can use the RFID tags with the Benext tag reader using z-way?
I have the original Benext tags, but I do not know how to add them for authentication.
The PIN code works fine.

Thanks and regards,
Chris

Re: Benext Tag Reader with z-way

Posted: 24 Jul 2014 11:18
by pofs
You should add your tag's unique code the same way you added a pin.

When you press Home button on your device and pass a yet unknown tag nearby, it should send its code to controller as a USER_CODE_REPORT with UserID=0 and Status=0.
The problem is z-way currently ignores the code part of USER_CODE_REPORT if Status=0 (would be fixed in the next update), so you cannot easily get it as /ZWaveAPI/Run/devices[x].UserCode.data[0].code.value.

But there's still a packet payload printed in the log, so you can get it from there as a workaround.
Find sequence "63 03 00 00" in the received packet, and take next 8 bytes after it (maybe not exactly 8, but it should be all the remaining bytes except the last one).
For example, it would be "A8 B5 2C 45 32 60 D0 EF". Now you may set it with /ZWaveAPI/Run/devices[x].UserCode.Set(userId,"\xA8\xB5\x2C\x45\x32\x60\xD0\xEF",1) where "userId" is a slot you want to use, and "x" is device id assigned to your device.

Hope this helps.

Re: Benext Tag Reader with z-way

Posted: 24 Jul 2014 17:13
by creaflow
Thank you very much for this intersting hint!
I tried to follow your describtion, but I don't get it working. I have searched for the sequence and found the following:

Code: Select all

[2014-07-24 14:08:43.778] RECEIVED: ( 01 14 00 04 00 02 0E 63 03 00 00 8F 12 44 C3 00 00 01 08 00 00 90 )
Then I called the following URL in my Browser:

Code: Select all

http://192.168.2.54:8083/ZWaveAPI/Run/devices[2].UserCode.Set(50,"\x8F\x12\x44\xC3\x00\x00\x01\x08",1)
The browser returns "null" and in the log the following lines show up:

Code: Select all

[2014-07-24 15:52:13.234] Executing script: zway.devices[2].UserCode.Set(50,'\x8F\x12\x44\xC3\x00\x00\x01\x08',1)
[2014-07-24 15:52:13.237] Adding job: UserCode user code set
[2014-07-24 15:52:13.238] Adding job: UserCode user code get
[2014-07-24 15:52:21.363] RECEIVED: ( 01 14 00 04 00 02 0E 63 03 00 00 8F 12 44 C3 00 00 01 08 00 00 90 )
[2014-07-24 15:52:21.365] SENT ACK
I am a beginner, but it looks good to me.

When I press Home and put the tag in front of the reader, the log output is the following:

Code: Select all

[2014-07-24 16:07:06.347] SETDATA devices.2.data.lastReceived = 0 (0x00000000)
[2014-07-24 16:07:06.349] SETDATA devices.2.instances.0.commandClasses.99.data.0.status = 0 (0x00000000)
[2014-07-24 16:07:06.350] SETDATA devices.2.instances.0.commandClasses.99.data.0.code = Empty
[2014-07-24 16:07:06.351] SETDATA devices.2.instances.0.commandClasses.99.data.0.hasCode = False
[2014-07-24 16:07:06.353] SETDATA devices.2.instances.0.commandClasses.99.data.0 = Empty
[2014-07-24 16:07:06.364] RECEIVED: ( 01 08 00 04 00 02 02 84 07 70 )
[2014-07-24 16:07:06.366] SENT ACK
[2014-07-24 16:07:06.367] SETDATA devices.2.data.lastReceived = 0 (0x00000000)
[2014-07-24 16:07:06.368] Node 2:0 CC Wakeup: Wakeup notification
[2014-07-24 16:07:06.369] SETDATA devices.2.instances.0.commandClasses.132.data.lastWakeup = 1406210826 (0x53d1130a)
[2014-07-24 16:07:06.371] SETDATA devices.2.data.isAwake = True
[2014-07-24 16:07:06.372] SETDATA devices.2.data.lastSend = 671373 (0x000a3e8d)
[2014-07-24 16:07:06.373] SETDATA devices.2.data.lastNonceGet = 670373 (0x000a3aa5)
[2014-07-24 16:07:06.374] Running wakeup handler for node 2
[2014-07-24 16:07:06.376] SETDATA devices.2.instances.0.commandClasses.132.data.lastSleep = 1406210826 (0x53d1130a)
[2014-07-24 16:07:06.377] Node 2:0 CC Wakeup: Send node to sleep
[2014-07-24 16:07:06.378] Adding job: Wakeup Sleep
[2014-07-24 16:07:06.447] SENDING (cb 0x47): ( 01 11 00 13 02 0A 63 01 32 01 C2 8F 12 44 C3 83 05 47 BD )
[2014-07-24 16:07:06.459] RECEIVED ACK
[2014-07-24 16:07:06.470] RECEIVED: ( 01 04 01 13 01 E8 )
[2014-07-24 16:07:06.471] SENT ACK
[2014-07-24 16:07:06.472] Delivered to Z-Wave stack
[2014-07-24 16:07:06.484] RECEIVED: ( 01 05 00 13 47 00 AE )
[2014-07-24 16:07:06.485] SENT ACK
[2014-07-24 16:07:06.487] Job 0x13 (UserCode user code set): Delivered
[2014-07-24 16:07:06.488] SETDATA devices.2.data.lastPacketInfo.delivered = True
[2014-07-24 16:07:06.489] SETDATA devices.2.data.lastPacketInfo.packetLength = 13 (0x0000000d)
[2014-07-24 16:07:06.490] SETDATA devices.2.data.lastPacketInfo.deliveryTime = 14 (0x0000000e)
[2014-07-24 16:07:06.492] SETDATA devices.2.data.lastPacketInfo = **********
[2014-07-24 16:07:06.493] SendData Response with callback 0x47 received: received by recipient
[2014-07-24 16:07:06.494] SETDATA devices.2.data.lastSend = 671382 (0x000a3e96)
[2014-07-24 16:07:06.495] Job 0x13 (UserCode user code set): success
[2014-07-24 16:07:06.496] Removing job: UserCode user code set
[2014-07-24 16:07:06.565] SENDING (cb 0x48): ( 01 0A 00 13 02 03 63 02 32 05 48 F9 )
[2014-07-24 16:07:06.577] RECEIVED ACK
[2014-07-24 16:07:06.588] RECEIVED: ( 01 04 01 13 01 E8 )
[2014-07-24 16:07:06.589] SENT ACK
[2014-07-24 16:07:06.590] Delivered to Z-Wave stack
[2014-07-24 16:07:06.602] RECEIVED: ( 01 05 00 13 48 00 A1 )
[2014-07-24 16:07:06.603] SENT ACK
[2014-07-24 16:07:06.604] Job 0x13 (UserCode user code get): Delivered
[2014-07-24 16:07:06.606] SETDATA devices.2.data.lastPacketInfo.delivered = True
[2014-07-24 16:07:06.607] SETDATA devices.2.data.lastPacketInfo.packetLength = 6 (0x00000006)
[2014-07-24 16:07:06.608] SETDATA devices.2.data.lastPacketInfo.deliveryTime = 14 (0x0000000e)
[2014-07-24 16:07:06.610] SETDATA devices.2.data.lastPacketInfo = **********
[2014-07-24 16:07:06.610] SendData Response with callback 0x48 received: received by recipient
[2014-07-24 16:07:06.612] SETDATA devices.2.data.lastSend = 671391 (0x000a3e9f)
[2014-07-24 16:07:06.613] Job 0x13 (UserCode user code get): success
[2014-07-24 16:07:06.614] Removing job: UserCode user code get
[2014-07-24 16:07:06.626] RECEIVED: ( 01 14 00 04 00 02 0E 63 03 32 01 C2 8F 12 44 C3 83 00 00 00 00 EB )
[2014-07-24 16:07:06.627] SENT ACK
[2014-07-24 16:07:06.628] SETDATA devices.2.data.lastReceived = 0 (0x00000000)
[2014-07-24 16:07:06.629] SETDATA devices.2.instances.0.commandClasses.99.data.50.status = 1 (0x00000001)
[2014-07-24 16:07:06.630] SETDATA devices.2.instances.0.commandClasses.99.data.50.code = **********
[2014-07-24 16:07:06.632] SETDATA devices.2.instances.0.commandClasses.99.data.50.hasCode = True
[2014-07-24 16:07:06.633] SETDATA devices.2.instances.0.commandClasses.99.data.50 = Empty
[2014-07-24 16:07:06.691] SENDING (cb 0x49): ( 01 09 00 13 02 02 84 08 05 49 25 )
[2014-07-24 16:07:06.702] RECEIVED ACK
[2014-07-24 16:07:06.714] RECEIVED: ( 01 04 01 13 01 E8 )
[2014-07-24 16:07:06.715] SENT ACK
[2014-07-24 16:07:06.716] Delivered to Z-Wave stack
[2014-07-24 16:07:06.728] RECEIVED: ( 01 05 00 13 49 00 A0 )
[2014-07-24 16:07:06.729] SENT ACK
[2014-07-24 16:07:06.730] Job 0x13 (Wakeup Sleep): Delivered
[2014-07-24 16:07:06.731] SETDATA devices.2.data.lastPacketInfo.delivered = True
[2014-07-24 16:07:06.733] SETDATA devices.2.data.lastPacketInfo.packetLength = 5 (0x00000005)
[2014-07-24 16:07:06.734] SETDATA devices.2.data.lastPacketInfo.deliveryTime = 13 (0x0000000d)
[2014-07-24 16:07:06.735] SETDATA devices.2.data.lastPacketInfo = **********
[2014-07-24 16:07:06.736] SendData Response with callback 0x49 received: received by recipient
[2014-07-24 16:07:06.738] SETDATA devices.2.data.lastSend = 671400 (0x000a3ea8)
[2014-07-24 16:07:06.739] Job 0x13 (Wakeup Sleep): success
[2014-07-24 16:07:06.740] SETDATA devices.2.data.isAwake = False
[2014-07-24 16:07:06.741] Sending the queue for node 2 into sleep
[2014-07-24 16:07:06.743] Removing job: Wakeup Sleep
The lines from "[2014-07-24 16:07:06.629]" include my userId 50 I used for this tag and Status is 1 etc..

After this first try every other try results in the same output before the setup - the log shows always Status=0:

Code: Select all

[2014-07-24 16:09:31.584] SETDATA devices.2.data.lastReceived = 0 (0x00000000)
[2014-07-24 16:09:31.585] SETDATA devices.2.instances.0.commandClasses.99.data.0.status = 0 (0x00000000)
[2014-07-24 16:09:31.587] SETDATA devices.2.instances.0.commandClasses.99.data.0.code = Empty
[2014-07-24 16:09:31.589] SETDATA devices.2.instances.0.commandClasses.99.data.0.hasCode = False
[2014-07-24 16:09:31.590] SETDATA devices.2.instances.0.commandClasses.99.data.0 = Empty
[2014-07-24 16:09:31.602] RECEIVED: ( 01 08 00 04 00 02 02 84 07 70 )
Did I understand something wrong?
Thank you very much in advance!

Re: Benext Tag Reader with z-way

Posted: 25 Jul 2014 00:43
by pofs
Unfortunately your tag code is not a valid string, and it breaks when performing UTF8 conversion.

According to the documentation, UserCode should be "4 to 10 ASCII digits", but tag readers seem to ignore this and transfer code as binary.

The only thing I can currently think of, is sending a raw command to device:
/ZWaveAPI/Run/SendData(2,[0x63,0x01,50,1,0x8F,0x12,0x44,0xC3,0x00,0x00,0x01,0x08,0x00,0x00])

EDIT:
In the upcoming version there would be UserCode.SetRaw() method, so you can write

Code: Select all

/ZWaveAPI/Run/devices[2].UserCode.SetRaw(50, [ 0x8F,0x12,0x44,0xC3,0x00,0x00,0x01,0x08,0x00,0x00 ], 1)
Furthermore, you can now automate the process. For example, you can have the following handler to add a new tag:

Code: Select all

var uc = devices[2].UserCode;
if (uc.data[0] && uc.data[0].hasCode.value) {
    var code = uc.data[0].code.value;
    if (typeof code === "string")
        uc.Set(userId, code, 1);
    else
        uc.SetRaw(userId, code, 1);
}

Re: Benext Tag Reader with z-way

Posted: 28 Jul 2014 11:14
by a.berton
Hello,
I'm trying to configure my tag reader.
You said your pin code work's fine, can you please share your configuration ?
It still not working on mine :(

If I understand fine we have to wait untill a new razberry firmware for RFID tag ?

Thanks

Re: Benext Tag Reader with z-way

Posted: 28 Jul 2014 11:47
by pofs
a.berton wrote:If I understand fine we have to wait untill a new razberry firmware for RFID tag ?
Software, not firmware. It is already available (1.7.2), and supports binary UserCodes (used by tags).

Re: Benext Tag Reader with z-way

Posted: 28 Jul 2014 12:25
by a.berton
Ok I will try it as soon as possible.
What is the command to update the software ?
Is it the same as an install ?
wget -q -O - razberry.z-wave.me/install | sudo bash

Thanks

Re: Benext Tag Reader with z-way

Posted: 28 Jul 2014 23:38
by pofs
Yes, same command as install

Re: Benext Tag Reader with z-way

Posted: 30 Jul 2014 18:05
by creaflow
That is really great - with the new SetRaw command everything works - I can add my RFID tags now and use the readers full potential :)
Thank you very much!!!

Re: Benext Tag Reader with z-way

Posted: 12 Jan 2016 23:35
by Christian12
Hello,

i do have zipato rfid keypad, can someone please explain, which steps i have to go, to get it run under v2.2.0 or v2.1.1?