MIni Keypad RFiD by Zibato set-up help

Post Reply
Message
Author
rojolondon
Posts: 11
Joined: Sun Jan 25, 2015 9:34 am

MIni Keypad RFiD by Zibato set-up help

#1 Post by rojolondon » Mon Jan 26, 2015 4:23 am

So I have run in to my second issue already, I have really given it some time to try and work it out but im at a loss.

I have a zipato Mini Keypad RFiD/Z-wave, although also BeNext and Schlage Link seem to have identical products.

I have managed to get it to show up as an object and after editing the manufacturer_specific.xml and adding TagReader.xml to the schlage link folder (as it is recognised as Schlage Link, copied from the BeNext folder mostly) it has a object name and type etc.

I had to register the keyfobs using Domoticz as it support this and was the only way I could figure it out.

So now when I click "home" on the device and scan my keyfob I get the following in the zwave log...

Notification: ValueChanged | Node: 4
ValueChanged start: node:4
value:0
Set property Alarm Type of Mini Keypad - Z4 to: 0
ValueChanged: Mini Keypad - Z4 | node:4 | nodelabel: Entry Control | type: Byte | genre: User | cmdClsID:113 | readOnly: True | value: 0 | label: Alarm Type
---
---
Notification: ValueChanged | Node: 4
ValueChanged start: node:4
ValueChanged: Mini Keypad - Z4 | node:4 | nodelabel: Entry Control | type: Byte | genre: User | cmdClsID:113 | readOnly: True | value: 0 | label: Alarm Level


and when I click Away I get...

Notification: ValueChanged | Node: 4
ValueChanged start: node:4
value:0
Set property Alarm Type of Mini Keypad - Z4 to: 0
ValueChanged: Mini Keypad - Z4 | node:4 | nodelabel: Entry Control | type: Byte | genre: User | cmdClsID:113 | readOnly: True | value: 0 | label: Alarm Type
---
---
Notification: ValueChanged | Node: 4
ValueChanged start: node:4
value:255
ValueChanged: Mini Keypad - Z4 | node:4 | nodelabel: Entry Control | type: Byte | genre: User | cmdClsID:113 | readOnly: True | value: 255 | label: Alarm Level


So it looks like the Alarm level indicates Home(0) / Away(255), however this is not showing in the object property field?

I haven't started playing with scripts yet by im guessing I can do something like - IF Mini Keypad - Z4.Property.Alarm Level = 0 THEN ....

But am I right in thinking the object property field should be updating? Also I have only seen one occurrence in the event log of the Alarm level changing.

I feel its a confusing device to set up as my fist Z-wave experience.

Thanks if anyone could help.

Like for Manual - https://www.google.co.uk/url?sa=t&rct=j ... NlcRJscHTg
Attachments
capture of properties
capture of properties
Capture.PNG (20.01 KiB) Viewed 3641 times

Automate
Posts: 1691
Joined: Sat Dec 11, 2010 1:44 pm
Location: US

Re: MIni Keypad RFiD by Zibato set-up help

#2 Post by Automate » Mon Jan 26, 2015 8:49 am

Yea, it's easier to start with something simple like a light switch or dimmer but it looks like you have made some good progress.

There is a known bug in 0.5.4. You can try the DLL attached to this post http://www.opensourceautomation.com/php ... 9981#p9981

The key thing I see in the logs you posted is:
"Set property Alarm Type of Mini Keypad - Z4 to: 0"
This indicates the logic is setting the value of the "Alarm Type" OSA object property to zero. This matches with your screen-shot
.
But a similar log message is missing for the "Alarm Level" Notification.

EDIT: Actually after looking at it again the updated DLL fixes an issues in triggering methods not in receiving notifications. I think we may need to look into back porting more of the changes from the 0.5.6 Zwave driver.

Automate
Posts: 1691
Joined: Sat Dec 11, 2010 1:44 pm
Location: US

Re: MIni Keypad RFiD by Zibato set-up help

#3 Post by Automate » Mon Jan 26, 2015 11:17 am

OK, I looked through the code and it's doing what it was programmed to do but I'm not sure why it was programmed this way. The "Alarm Level" is a special name it looks for. Here's the code

Code: Select all

                #region ValueChanged
                case ZWNotification.Type.ValueChanged:
                    {
                        try
                        {
                            Node node = GetNode(m_homeId, m_notification.GetNodeId());
                            logging.AddToLog("ValueChanged start: node:" + node.ID.ToString(), false);
                            ZWValueID vid = m_notification.GetValueID();
                            Value value = node.GetValue(vid);
                            logging.AddToLog("value:" + value.Val, false);
                            OSAEObject nodeObject = OSAEObjectManager.GetObjectByAddress("Z" + m_notification.GetNodeId());
                            string v;
                            m_manager.GetValueAsString(vid, out v);
                            value.Val = v;

                            if (m_manager.IsValueReadOnly(value.ValueID))
                            {
                                if (value.Genre == ZWValueID.ValueGenre.User)
                                {
                                    if (value.Label == "Sensor")
                                    {
                                        if (value.Val == "False")
                                            OSAEObjectStateManager.ObjectStateSet(nodeObject.Name, "OFF", "ZWave");
                                        else
                                            OSAEObjectStateManager.ObjectStateSet(nodeObject.Name, "ON", "ZWave");
                                    }
                                    else if (value.Label == "Alarm Level")
                                    {
                                        if (value.Val == "255")
                                            logging.EventLogAdd(nodeObject.Name, "ALARM");
                                    }
                                    else
                                    {
                                        OSAEObjectPropertyManager.ObjectPropertySet(nodeObject.Name, value.Label, value.Val, "ZWave");
                                        logging.AddToLog("Set property " + value.Label + " of " + nodeObject.Name + " to: " + value.Val.ToString(), false);
                                    }
                                }
                            }
                            else
                            {
                                if (value.Genre == ZWValueID.ValueGenre.User)
                                {
                                    if (value.Label == "Switch")
                                    {
                                        if (value.Val == "False")
                                            OSAEObjectStateManager.ObjectStateSet(nodeObject.Name, "OFF", "ZWave");
                                        else
                                            OSAEObjectStateManager.ObjectStateSet(nodeObject.Name, "ON", "ZWave");
                                    }
                                    else if (value.Label == "Level")
                                    {
                                        if (value.Val == "0")
                                            OSAEObjectStateManager.ObjectStateSet(nodeObject.Name, "OFF", "ZWave");
                                        else
                                            OSAEObjectStateManager.ObjectStateSet(nodeObject.Name, "ON", "ZWave");
                                        OSAEObjectPropertyManager.ObjectPropertySet(nodeObject.Name, value.Label, value.Val, "ZWave");
                                        logging.AddToLog("Set property " + value.Label + " of " + nodeObject.Name + " to: " + value.Val.ToString(), false);
                                    }
                                    else
                                    {
                                        OSAEObjectPropertyManager.ObjectPropertySet(nodeObject.Name, value.Label, value.Val, "ZWave");
                                        logging.AddToLog("Set property " + value.Label + " of " + nodeObject.Name + " to: " + value.Val.ToString(), false);
                                    }
                                }
                            }

                            logging.AddToLog("ValueChanged: " + ((nodeObject != null) ? nodeObject.Name : "Object Not In OSA") + " | node:"
                                + node.ID + " | nodelabel: " + node.Label + " | type: " + value.Type
                                + " | genre: " + value.Genre + " | cmdClsID:" + value.CommandClassID
                                + " | readOnly: " + m_manager.IsValueReadOnly(value.ValueID) + " | value: " + value.Val + " | label: " + value.Label, false);

                        }
                        catch (Exception ex)
                        {
                            logging.AddToLog("ValueChanged error: " + ex.Message, true);
                        }
                        break;
                    }
                #endregion


Notice if the value name is "Alarm Level" it does not set any properties but only triggers an Event and only if the value is 255, not when it's 0.

EDIT: Ok, I see this was changed with the latest Zwave 0.5.6 plugin.

Try replacing your Zwave DLL with the attached.
Attachments
OSAE.Zwave.dll.zip
(9.47 KiB) Downloaded 112 times

rojolondon
Posts: 11
Joined: Sun Jan 25, 2015 9:34 am

Re: MIni Keypad RFiD by Zibato set-up help

#4 Post by rojolondon » Mon Jan 26, 2015 1:07 pm

Thank you very much automate!

I will give it ago tomorrow, working through the night this evening.

I should also have a delivery of a PIR tomorrow so hopefully adding that will go more smoothly.

Thanks again, will post my results tomorrow.


Sent from my iPhone using Tapatalk

rojolondon
Posts: 11
Joined: Sun Jan 25, 2015 9:34 am

Re: MIni Keypad RFiD by Zibato set-up help

#5 Post by rojolondon » Thu Jan 29, 2015 3:35 am

Finally got some time to play again!

Replaced the DLL and now the Alarm Level property is changing for 0 to 255 depending if I click home or away, so all looks good!. Just need to figure out what to do with that!

I also got some more kit delivered today, Fabaro Montion Sensor FGMS-001 V2.4 and a Fabaro Smoke Sensor FGSS-001 V2.3. I still haven't quite got my head round this Z-Wave stuff, I should of just bought a simple on/off switch! lol

Again these devices are unknown, with the keypad I edited the manufacturer_specific.xml and the device.xml, is this the correct thing to do? I'm confused where the device XML is used? Its configuration information but how do you configure a device with OSA?

Thanks again automate for getting the keypad up and running!

Automate
Posts: 1691
Joined: Sat Dec 11, 2010 1:44 pm
Location: US

Re: MIni Keypad RFiD by Zibato set-up help

#6 Post by Automate » Thu Jan 29, 2015 6:11 am

The OSA Zwave plugin is totally dependent on the OpenZwave library. If the OpenZwave library does not recognize the device then OSA will not either. As you have found, OpenZwave holds the various device specifications in XML files. Since the 0.5.4 Zwave plugin has been out for a while its configurations file are somewhat outdated. You can first check here https://code.google.com/p/open-zwave/so ... k%2Fconfig and see if the latest device specification files include your devices. If so you are in luck and OSA should recognize them after copying the files to the plugins\Zwave\config folder. If not it may be as easy as adding one line to an XML file but for more complex devices it may mean creating a complete custom device specification file. In either case you probably will want to get help from the OpenZwave forum

Also, when modifying the XML files make sure you stop the Zwave plugin, then delete the c:\Program Files\OSA\Plugins\Zwave\zwcg_*.xml file and all the previously discovered but improperly recognized Zwave objects in OSA. Then restart the Zwave plugin and give it a while to rediscover the objects.

Post Reply