Z-Wave WD500Z-1 and WS15Z-1 update logic

Hi,
I tried to google this topic but as usual it brings up dozens of threads with no clear definition of what can actually be done.

Those are GoControl devices and they work well. I got them setup, and i was not expecting really to see updates from them but then i just got puzzled.

So, if you control them from the openhab2 - it all works, all fine. The issue is - if you manually flip the switch or dimmer - you see nothing in the openhab. OK, i then thought, it is not a bug, it is a feature - this device does not speak back.

Then as i was working on other things i stopped and restarted openhab2 service. Just before that i went around the house and turned off some lights that were left on. To my surprise then openhab restarted it correctly got status of all GoControl devices in their correct status. So damn thing DOES speak back, sometimes.

So, if i flip a switch - it does not speak back and UI is not updated. If i stop and restart whole openhab service - it apparently gains enough brainpower to ask the switch of its status and updates UI with current status.

Could anybody explain if this status scan upon startup is controllable and can be enforced to be re-executed at some regular intervals to force this re-check in the same way as it happens during startup?

I don’t know the device, so I don’t know if there are issues with it, but the normal way to configure this status update is to configure an association from the device to the controller. I see the device supports associations, so I would look through the manual to see what they do and look at what needs to be configured.

Associations are then configured in the UI - set the controller into whichever group is needed.

Where exactly is it described how and where it should be done? What parameter should be looked up?
On the z-Wave node for the device i see ‘polling period’ parameter, changed it from 30 minutes to ‘5’ - 0 reaction.
Is there something that should be changed in the controller?

As device turns off and on fine i presume it is associated. What is not done?

I found this thread but i need translation to plain English - did they find out any solution in there or not? I do not know ZWave protocol or how it works to understand what they talk about in there.

As I said, you need to read the device manual - I don’t know this device, so I’m speaking generally. You need to look at the manual to see if it talks about an association to notify the controller. Once you know what the association groups do, then they are configurable in HABmin, and as mentioned you need to set the controller into the appropriate group.

There’s also a short excerpt in the manual -:

I’m not sure - I don’t have this device. It looks like there is some confusion about how the associations are configured for this device. Maybe someone else can provide more specific information on how/if this device works.

Well, I doubt anybody can provide anything. Ok, so, first thing first - what exactly and where should be typed in?
Is there a screenshot of the interface windows where info supposed to be entered and a sample of data that forces some other device to communicate back?
I see noting named ‘association’ in the interface. There is a section for ‘Association Groups’ in the habmin. Is that the one?

Then, wasn`t it expected to get all those items from the device profile? I found several threads where people posted some XML docs seemingly describing content of that particular device. Should that XML be created and placed somewhere in the openhub guts in order for this info to be pre-populated?

Is there anything at all anywhere that describes this process step by step, with an actual sample of config data?

Well, I assumed that others might be using this device ;).

You’ve just provided one ;). This is exactly the right place, and you need to select “Controller” in the appropriate association group.

It’s right there highlighted in blue in your image - it says “Association Groups”.

Some information comes from the device, and it’s stored in an XML so we don’t have to get it again. However configuration data is not provided by the device - it’s loaded from a database in the binding.

Not really - there’s only the generic configuration blurbs.

The device configuration is device dependant. The basic steps are provided, and you’ve already found everything - you need to read the manual, or somehow find out how the device is configured and configure it.

A few pointers for late night reading that might be useful…

If you want an overview of how the various bits hang together, you could take a look at this link.

Or a general overview on adding devices.

Or an overview of the database.

OK, i will look more later - a 1.5 min glance showed no word ‘association’ on either of those pages. database link does not have a word i can see on where to put in custom XML file with device data.
I will look more later, may be i did not see, need to be on the conf call now.

Is there a screenshot anywhere of a configured association for a device that forces it to speak back to controller?
Or am i asking a wrong question? I do not need to know all the details of the underlying code, i need to know how to configure it to work. There is obviously a disconnect somewhere here…

ok, so i guessed right… I tried to click at the first association with name ‘unknown’ - it offered list of nodes and controller, chose controller, hit save, it said ‘saved’. i then went to other device, returned back - nothing is saved.

will try to dig in later.

You have the screenshot already - just select “Controller” in the appropriate associate group.

This is nothing about code, or even openHAB. Associations are a generic concept in ZWave - you can find lots of information in device manuals, or briefly in the binding manual (as I mentioned earlier).

Just one more stupid question - is it correct to assume that it was supposed to be an association in there for a ‘single tap’ in position 1 instead of ‘1.UNKNOWN!!!’?

Well, that’s the really big question (unfortunately!).

In the very long thread you referenced earlier, we had a play with this, and if I remember rightly, it didn’t seem to work (I don’t think the device responded to that group request). This is actually non-compliant in the zwave protocol since groups should start with 1, and should be contiguous.

So, I’d like to say yes, it should be, but everything seems to say No, it isn’t (including the manual as below).

ok, so, if attempted to do from habmin - any input is ignored.

when i go into paperUI and try toi edit the ‘thing’ entering controller name in there it posts this in the log:
2016-11-03 14:21:35.807 [INFO ] [ome.io.rest.core.thing.ThingResource] - Received HTTP PUT request for update config at ‘things/zwave:device:1dd1bc1b:node2/config’ for the unknown thing ‘zwave:device:1dd1bc1b:node2’.

obviously ‘zwave:device:1dd1bc1b:node2’ is a a correct working existing ‘thing’ i am editing.

BTW all this happens to WS15 device, as WD500Z actually does not show tab ‘Association Groups’ at all, in the interface. So i am trying all that with switcher, not dimmer, but to same no avail.

No - it’s in the database, so HABmin should send the command to the binding, and the binding should send it to the device. I think this will time out though.

(sorry - re-reading your post and I don’t know if this was a question or a statement?).[quote=“Paul_Atkin, post:14, topic:16152”]
BTW all this happens to WS15 device, as WD500Z actually does not show tab ‘Association Groups’ at all,
[/quote]

Me thinks you probably have the devices around the wrong way… The WS15Z has no associations, the WD500Z does (this is how the database is configured, and the manuals seem consistent).

Correct, i should stop looking at all this while talking on the conf call. :slight_smile: WD500Z is the one with associations. WS15 shows none.

Question was about this - is there any manual input needed to put controller name in the association group? If yes, how it should be done? Right now it is ignoring any input from habMin UI with no log reaction and errors out in paperUI as i posted above.

Do you also imply content of the database should be somehow manually altered to make it work? Or is it all useless?

If latter - useless - then i go to the square 1 where i asked - if this thing is unable to communicate - how come upon openHab service restart it correctly reads all current status of its state?

No - there shouldn’t be for mains powered devices (battery devices are whole new level of pain :wink: ).[quote=“Paul_Atkin, post:16, topic:16152”]
Do you also imply content of the database should be somehow manually altered to make it work?
[/quote]

It doesn’t need to be altered - it needs to be entered once, but it’s a database of information about a device, so once it’s set, it doesn’t need to change (unless the manufacturer changes the firmware or something!).

Not sure I follow this - is what useless?

On startup, OH polls the device to find out its state. You can do this, and it will work, but it’s not desirable as it generates quite a lot of network traffic, and the latency is low (ie polling only happens every 10 seconds or so minimum so it will not update immediately). This might be your only option though if this device doesn’t want to play nicely.

Associations are recommended as they generate no network traffic other than when the device changes state, and then the device instantly notifies the controller, so everything is immediately updated.

Some devices don’t support associations though, and some don’t implement them well, and in this case, you can use polling.

What and where do i need to type in to initiate polling?
I understand it is the only option as association stuff just does not work at all.

I still did not grasp the outcome about the database - do I, as a consumer, need to update/populate any data in that database for my devices or is it done somewhere inside of openhab code and not open for updates?

If i need to put any content into that database - how can it be done? it is that XML document for WD500Z the other thread was talking about? Where, literally, this XML should go?

Kudos for all your replies, btw, it really helps to understand all those mechanics better.

Polling is configured in the “Device Configuration” area (ie in the image you posted earlier). It defaults to 1800 seconds, but you can set it down to 15 seconds I think.

No - you don’t need to do anything. If a device is not known, then someone needs to add the data, but once this is complete, then everyone else benefits…

The database is online - http://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list. You need to register and email me to give you write access.

Maybe - I’m not 100% sure. There are two different XML files used. One is generated by the binding - it is used to store information about a device so when you close OH and restart, it doesn’t have to download everything again. This is stored in the /userdata/zwave folder. These XML files are used to generate some of the information in the database.

There’s also the XML files that are exported from the database - these are not files most people worry about - they are exported from the database and compiled into the JAR so you can’t really edit them directly.