Z-Wave

Questions and comments specific to a particular plugin should go here.
skribb
Experienced User
Posts: 223
Joined: Thu Feb 12, 2015 7:22 pm
Location: Win7 64bit

Re: Z-Wave

Post by skribb » Mon Oct 15, 2018 10:10 pm

kgschlosser wrote:
Wed Sep 26, 2018 5:03 am

I did find an issue in the plugin I have to fix. in the plugin config. the polling setting for a zstick does not work.
you need to go into the network settings for that zstick it is one of the tabs in the plugin config dialog.
go to that device and make sure you turn on the polling for it.
then go to the variable that holds the state of the device and make sure the polling is turned on there as well...
I could only find an editable setting in the "Settings" tab of the Zwave plugin. it says polling interval: 0. what unit is used here? milliseconds?


No, the computer never sleeps.
Yes, the door sensor fires almost every time.
Automation is life.

Win7 64bit
EG: v0.5.0-rc4

007craft
Posts: 8
Joined: Tue May 28, 2019 9:30 pm

Re: Z-Wave

Post by 007craft » Fri May 31, 2019 5:28 pm

I was wondering if I could get some help with this plugin. I have a Aeotec Z stick 5th gen and a monoprice door sensor. I've used some other software to add the door sensor to the zwave stick, so my zwave network now has just 1 device on it, the door sensor.

I load the zwave plugin in event ghost and everything seems to be working fine. If I open the door sensor I get the following event in the log :

ZWave.znetwork.No Room.New Node.NotificationSensor.NodeEvent {'homeId': '0xF215759F', 'event': 255}

When I close the Door sensor I get:

ZWave.znetwork.No Room.New Node.NotificationSensor.NodeEvent {'homeId': '0xF215759F', 'event': 0}

That seems great but when I try to create an event, neither of those events do anything. I tried dragging and dropping the event name into the config and when I do that it displays differently. It displays like this ZWave.znetwork.No Room.New Node.NotificationSensor.NodeEven. Then it works but It works for both opening and closing the door sensor. I need it to differentiate between the two. How can I fix this? I have included 2 screenshots that show what Im talking about (Using a Macro I made called testing) .

Image
Image

Edit: It magically started working. I walked away from my computer and came back and noticed this in the log

ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'ZWave+ Version'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'InstallerIcon'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'UserIcon'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Battery Level'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Powerlevel'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Timeout'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Set Powerlevel'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Test Node'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Test Powerlevel'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Frame Count'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Test'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Report'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Test Status'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Acked Frames'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Library Version'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Protocol Version'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Application Version'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Alarm Type'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Alarm Level'}
ZWave.znetwork.No Room.New Node.NotificationSensor.Variable.Added {'label': 'Sensor'}

Now when I open and close the sensor I get:

ZWave.znetwork.No Room.New Node.NotificationSensor.AccessControl.22
ZWave.znetwork.No Room.New Node.NotificationSensor.AlarmLevel.0
ZWave.znetwork.No Room.New Node.NotificationSensor.AccessControl.23

This now lets me choose a specific event. I'm not sure what the problem was. Seems like it just took a long time for the network to discover all those variables?

User avatar
kgschlosser
Site Admin
Posts: 4648
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Z-Wave

Post by kgschlosser » Sat Jun 01, 2019 8:30 am

ok so this is the skinny on the zwave plugin.

The plugin shields you from nothing. You have access to change ro set anything you want so long as the device allows it. This can be dangerous. you can booger up a network if you do not educate yourself before making any changes that you do not fully understand.

Most of the changes can be made in the plugin config dialog. if you go into that dialog at the top there is going to be a tab for your network. this is where you will see your whole network.

Now you are dealing with a door sensor. this is a battery operated device. it does not update at the same intervals as a hard wired device. it does this to conserve power.


Also your events are incorrect.

this is not the event.
ZWave.znetwork.No Room.New Node.NotificationSensor.NodeEvent {'homeId': '0xF215759F', 'event': 255}

this is the event
ZWave.znetwork.No Room.New Node.NotificationSensor.NodeEvent


this is the payload attached to the event. the payload contains any extra information that should be passed along to the user. in this case it is telling you the id of the network and also the variable on the device that changed and what it changed to.

{'homeId': '0xF215759F', 'event': 255}

since a door sensor only has 2 states.. triggered or not triggered you will only see 255 and 0 for the "event"


zwave nodes (devices) can be made to support a variety of different features. each set of features is broken into what are called command classes. they bundle like features into the individual command classes.

here is an example.

if you have a simple on/off light switch. it is going to support a command class called COMMAND_CLASS_BINARY_SWITCH

now say you have a dimmer switch. This is going to have the COMMAND_CLASS_MULTILEVEL_SWITCH added to it.. But wait.. does a dimmer also turn on and off light a normal switch??? yessir it does. so it also has COMMAND_CLASS_BINARY_SWITCH


when a node gets added to the network and also to EG it is going to spit out all of the variables for that device. This is how the zwave network works. when EG starts it goes out and check to see what devices are still attached to the network. it does this by asking the device for a list of what it can do. this list comes back in the form of variables that can be read and or written to.

I coded the plugin to spit these out so you would be able to see what is available for your device. I will give you a rundown of what each of the variable you have do.

{'label': 'ZWave+ Version'} = tells you what version of zwave plus the device supports

{'label': 'InstallerIcon'} = if your zwave network is professionally installed the installation company is able to slap their brand on it. This is where the brand gets stored. in the form of an image or icon


{'label': 'UserIcon'} = this you can attach your own icon to. I believe there is also one that is provided by default by the manufacturer

{'label': 'Battery Level'} = tells you how much battery life is remaining (in percent)

{'label': 'Powerlevel'} = this tells you what the current radio output level is set to.

{'label': 'Timeout'} = I do not remember exactly but this is either the timeout time until the device goes to sleep (battery powered devices) or it is a reset time for the sensor being tripped.

{'label': 'Set Powerlevel'} = this is where you can set the power output level

{'label': 'Test Node'} = tells the device to do a power on self test

{'label': 'Test Powerlevel'} = set the powerlevel as a test

{'label': 'Frame Count'} = number of network packets the device has received

{'label': 'Test'} = don't remember

{'label': 'Report'} = don't remember

{'label': 'Test Status'} = don't remember

{'label': 'Acked Frames'} = number of acknowledge packets the device had received

{'label': 'Library Version'} = the zwave library version

{'label': 'Protocol Version'} = the zwave protocol version

{'label': 'Application Version'} = beats the hell out of me.

{'label': 'Alarm Type'} = the type of alarm the device generates.

{'label': 'Alarm Level'} = = the urgency of the alarm

{'label': 'Sensor'} = don't remember. this could be the sensor value. either 255 or 0

all of these variables are visible in the plugin config dialog. it will show you what is currently stored in them. and if you can change any of them you will be able to do so in there.


the speed issue you are having is going to be caused by several factors. one is because you are using a battery powered device. the second is you probably do not have any kind of a polling routine set up. This I would not recommend doing because you have a zwave plus device. and zwave plus devices will report their state changes without having to be asked to do so. once the device has been added to the network for the first time the variables gets written to a file. so it should be faster to respond the next go around. it's a discovery process. each of those event for a value being added are separate communications with the device. you have to remember they aren't going to pack in an intel i7 processor into that 30 or 40 dollar door switch LOL. and we all know how companies are all about pinching pennies. They are not going to shove in a fast processor into the devices either... actually a device is only able to do a single thing at a time. and because you only have the single device that makes it worse.

Zwave is a mesh network. so if a communication attempt fails (because the device is busy doing something else) the network will try and communicate taking a different route. typically by time it does this the device is no longer busy. but with only a single device there is only a single route. so it's a waiting game.


TIP OF THE DAY: drag and drop events from your log panel (left) into a macro in your configuration tree (right). this will make sure there are no typos and also the accidental adding of the payload does not happen.
If you like the work I have been doing then feel free to Image

007craft
Posts: 8
Joined: Tue May 28, 2019 9:30 pm

Re: Z-Wave

Post by 007craft » Tue Jun 11, 2019 12:05 am

I got a new device today. a FIBARO BUTTON FGPB-101. It's just a single button. (Here is the manual to the button in case it helps) https://manuals.fibaro.com/content/manu ... T-v1.0.pdf

I paired it with my Z stick and Event ghost sees it, but pushing it does nothing. Sometimes if I push it a few times Ill get

ZWave..No Room.FIBARO System FGPB101 Button.BasicWallController.Group.0x2.Group {'homeId': '0xF215759F'}
ZWave..No Room.FIBARO System FGPB101 Button.BasicWallController.Group.0x3.Group {'homeId': '0xF215759F'}
ZWave..No Room.FIBARO System FGPB101 Button.BasicWallController.Group.0x4.Group {'homeId': '0xF215759F'}
ZWave..No Room.FIBARO System FGPB101 Button.BasicWallController.NodeQueriesComplete {'homeId': '0xF215759F'}

But then after that I get nothing if I try pushing it again until I uncheck the comport in the event ghost plugin and check it again to re-initialize the stick

Further more I was poking around in the settings for the button in eventghost and one of the varibles it has is "scenes sent to controller". I changed it from 127 (default) to 1 but now it wont change back. This button may be over my head, its way more complicated than my door sensor. It seems to control everything by "associations", which I THINK are scenes, but I dont have any scenes. I only want event ghost to generate an event when I push the button. Any event, very simply.

Here is the full event log I get when I initiate the network.

ZWave.znetwork.NetworkStart {'controller': 'Aeotec ZW090 Z-Stick Gen5 US'}
ZWave.znetwork.Z-Wave Network Controller.Aeotec ZW090 Z-Stick Gen5 US.StaticPCController.NodeProtocolInfo {'homeId': '0xF215759F'}
ZWave.znetwork.Z-Wave Network Controller.Aeotec ZW090 Z-Stick Gen5 US.StaticPCController.EssentialNodeQueriesComplete {'homeId': '0xF215759F'}
ZWave.znetwork.Z-Wave Network Controller.Aeotec ZW090 Z-Stick Gen5 US.StaticPCController.Variable.Added {'label': 'None'}
ZWave.znetwork.Z-Wave Network Controller.Aeotec ZW090 Z-Stick Gen5 US.StaticPCController.NodeNaming {'homeId': '0xF215759F'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.NodeProtocolInfo {'homeId': '0xF215759F'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.EssentialNodeQueriesComplete {'homeId': '0xF215759F'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'None'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Level'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Bright'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Dim'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Ignore Start Level'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Start Level'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Scene Count'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'ZWave+ Version'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'InstallerIcon'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'UserIcon'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Scenes sent to the controller'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Associations in Z-Wave network security mode'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 1 time - command sent to 2nd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 1 times - value of SWITCH ON command sent to 2nd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 2 time - command sent to 2nd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 2 times - value of SWITCH ON command sent to 2nd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 3 time - command sent to 2nd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 3 times - value of SWITCH ON command sent to 2nd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 1 time - command sent to 3rd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 1 times - value of SWITCH ON command sent to 3rd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 2 time - command sent to 3rd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 2 times - value of SWITCH ON command sent to 3rd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 3 time - command sent to 3rd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 3 times - value of SWITCH ON command sent to 3rd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': ' Key Held Down - command sent to 3rd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': ' Alarm frame triggers'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Alarm Type'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Alarm Level'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'SourceNodeId'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Burglar'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Powerlevel'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Timeout'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Set Powerlevel'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Test Node'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Test Powerlevel'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Frame Count'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Test'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Report'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Test Status'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Acked Frames'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Battery Level'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Minimum Wake-up Interval'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Maximum Wake-up Interval'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Default Wake-up Interval'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Wake-up Interval Step'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Wake-up Interval'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Group.0x1.Group {'homeId': '0xF215759F'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Group.0x2.Group {'homeId': '0xF215759F'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Group.0x3.Group {'homeId': '0xF215759F'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Group.0x4.Group {'homeId': '0xF215759F'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Library Version'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Protocol Version'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Application Version'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Group.0x1.Group {'homeId': '0xF215759F'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Group.0x2.Group {'homeId': '0xF215759F'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Group.0x3.Group {'homeId': '0xF215759F'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Group.0x4.Group {'homeId': '0xF215759F'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'General'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.NodeNaming {'homeId': '0xF215759F'}
ZWave.znetwork.No Room.New Node.NotificationSensor.NodeNaming {'homeId': '0xF215759F'}
ZWave.znetwork.Z-Wave Network Controller.Aeotec ZW090 Z-Stick Gen5 US.StaticPCController.NodeQueriesComplete {'homeId': '0xF215759F'}
ZWave.znetwork.DriverAwake {'nodeId': 255}
ZWave.znetwork.AwakeNodesQueried {'nodeId': 255}

User avatar
kgschlosser
Site Admin
Posts: 4648
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Z-Wave

Post by kgschlosser » Tue Jun 11, 2019 4:46 am

ok the device is just a button right? not a light switch correct??

if that is the case the "button" should support COMMAND_CLASS_CENTRAL_SCENE. Support for that command class is being added to openzwave
(the backend used in the plugin)


Let me explain the events you see.

This one beats the hell out of me. LOL
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'None'}


It appears as tho the "button" also supports COMMAND_CLASS_MULTILEVEL_SWITCH. This command class is used for dimmer switches.

Sets/Gets the level
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Level'}


This is for accessing the primary switch in a dual switch device. You do not need to worry about this.
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Bright'}

This is for accessing the primary switch in a dual switch device. You do not need to worry about this.
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Dim'}

This is for accessing the primary switch in a dual switch device. You do not need to worry about this.
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Ignore Start Level'}

This is for accessing the primary switch in a dual switch device. You do not need to worry about this.
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Start Level'}


This is for the central scene command class. which is not yet supported.
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Scene Count'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Scenes sent to the controller'}

Your device supports ZWave +. these next items are for ZWave Plus devices.
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'ZWave+ Version'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'InstallerIcon'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'UserIcon'}


Not sure.
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Associations in Z-Wave network security mode'}


The use of the word Alarm in this is misleading. the newest version of the OpenZwave specification has depreciated the Alarm command class. they changed the name of it to Notification. This is so that you will get notifications of button presses.

ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': ' Alarm frame triggers'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Alarm Type'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Alarm Level'}


# most of these are prettty standard across devices
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'SourceNodeId'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Burglar'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Powerlevel'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Timeout'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Set Powerlevel'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Test Node'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Test Powerlevel'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Frame Count'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Test'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Report'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Test Status'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Acked Frames'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Library Version'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Protocol Version'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Application Version'}



The button is a battery operated device.
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Battery Level'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Minimum Wake-up Interval'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Maximum Wake-up Interval'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Default Wake-up Interval'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Wake-up Interval Step'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Wake-up Interval'}




OK so this is the skinny on how this all works. Your device supports association groups. it appears as tho your device has 4 association groups available to it.

each of the association groups stores other zwave devices. a button press it married to an association group. So when you press the button 2 times
any devices you have in association group 2 will either turn on or off.

Because the button supports the multilevel switch command class it is by default also going to support the binary switch command class. So this button is specifically designed for controlling lights. because the values for the device only reference association group 2 and 3 this means you have 2 association groups you can assign other devices to.

You are only seeing events for the multiple presses of the button because the single press is native. It is handled differently then the multiple presses or the press and hold.


here are the values.
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 1 time - command sent to 2nd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 1 times - value of SWITCH ON command sent to 2nd association group'}


ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 2 time - command sent to 2nd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 2 times - value of SWITCH ON command sent to 2nd association group'}


ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 3 time - command sent to 2nd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 3 times - value of SWITCH ON command sent to 2nd association group'}


ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 1 time - command sent to 3rd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 1 times - value of SWITCH ON command sent to 3rd association group'}


ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 2 time - command sent to 3rd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 2 times - value of SWITCH ON command sent to 3rd association group'}


ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 3 time - command sent to 3rd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 3 times - value of SWITCH ON command sent to 3rd association group'}


ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': ' Key Held Down - command sent to 3rd association group'}

If you open up the plugin config dialog you should see a tab that has the name of your network and/or the COM port. click on that tab.

This is going to display every device on your network. from here you have the ability to change the values that are assigned to a device.


All of the values listed above should be a boolean value. and it should be shown in the plugin config dialog as a check box. The checking and unchecking of one of the values is going to simulate you pressing the button. It allows you to "press the button" when you really are not pressing it.,


I have been working on updating the openzwave backend to the plugin. It is going to be a little while longer before I am finished with it. when I am finished I will add any additional controls needed into the plugin. At the moment the 2 things that are needed is access to the association groups and also the central scene command class.
If you like the work I have been doing then feel free to Image

007craft
Posts: 8
Joined: Tue May 28, 2019 9:30 pm

Re: Z-Wave

Post by 007craft » Tue Jun 11, 2019 4:29 pm

Thanks for the explanation
You are only seeing events for the multiple presses of the button because the single press is native. It is handled differently then the multiple presses or the press and hold.

ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 1 time - command sent to 2nd association group'}
ZWave.znetwork.No Room.FIBARO System FGPB101 Button.BasicWallController.Variable.Added {'label': 'Key Pressed 1 times - value of SWITCH ON command sent to 2nd association group'}
So after you update the plugin would Event ghost be able to make an event log when the button is pushed once, or will it show nothing since its only sending commands to an association group which has no other devices? If that is the case ill return the button and get something that acts differently.

User avatar
kgschlosser
Site Admin
Posts: 4648
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Z-Wave

Post by kgschlosser » Wed Jun 12, 2019 2:21 am

from reading the manual for the device it looks as tho the device supports the central scene command class. Once that is finished being added to openzwave I will make the necessary modifications to the plugin to support the scenes.

It is going to be a little bit before these updates are finished being added.
If you like the work I have been doing then feel free to Image

User avatar
kgschlosser
Site Admin
Posts: 4648
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Z-Wave

Post by kgschlosser » Mon Jun 24, 2019 9:38 am

I wanted to let you know that I have been working on this. I have almost completely rewritten the python-openzwave library (the backend to the plugin).

My understanding of ZWave has vastly improved. I had done my best to open the doors to all of the settings that are available. but the use of 2 actions is not ideal I think. Because I have rewritten the back end the command classes are actual separate classes now. this makes it far easier to create a GUI interface for and have it supply the correct controls.

That button you have works in 2 ways. the first way is by device association. this is done by adding a zave device to another zwave device to be controlled. This does not sound like it is what you are wanting to do. You want to get the events for the button presses. Which is the central scene command class. I have added this into the back end I am currently running tests to make sure that everything is stable.

I have also sped up the program by leaps and bounds. startup times that would take 40 seconds now take 8 seconds. This is a really good improvement. I also added in a queue to handle the sending of commands. Because the zwave network can only do a single thing at a time I set it up so it will queue the commands to be sent. before it would simply not perform the task if the controller was busy.
If you like the work I have been doing then feel free to Image

Post Reply