stampzilla / gozwave

An opensource golang lib for zwave-controller communication thru serial-api. Tested and developed with a usb connected AEOTEC Z-Stick Gen5
Apache License 2.0
54 stars 13 forks source link

Database out of date? #27

Open lukescott opened 7 years ago

lukescott commented 7 years ago

I have a HS-WD100+ and HS-WS100+ switches and no information is showing up. The binary switches do turn on and off however.

It looks like this database no longer exists: http://www.pepper1.net/zwavedb/

However, there seems to be a more up to date database in JSON format:

http://www.cd-jackson.com/index.php/zwave/zwave-device-database

Some of the things I'm able to map between the XML <-> JSON. But both sets of files contain extra or are missing information. Or perhaps some of the keys are called something else. I'm not entirely sure.

For example, in command classes there is "nif" and "InNIF" which I assume are the same thing. But "Controlled" is in the XML, but not present in JSON. But the JSON has "Basic".

If someone could help me determine what the mappings are, I could update the generator.

ERnsTL commented 7 years ago

Greetings,

Well yes, a NIF = Node Identification Frame is a command class which is going from a device to the ZWave controller chip. Response would be an ACK frame.

I do not know what a "controlled" device is - that never showed up with me so far; can only assume that it is used to differentiate between actor devices and sensor devices. Sensors only send reports by themselves and get polled from time to time. Controlled could also be a misspelling, and refer to controller = devices, which can send commands to other devices (like a scene switch).

Basic most likely refers to the BASIC SET/GET command classes/messages, which is a very generic way to send interoperable commands and get basic status from a device. A switch could for example map a BASIC set with value > 0 to "turn on" and BASIC SET with 0 to "turn switch off". Maybe this or this might shed some light.

Are there any other unsure mappings?

jonaz commented 7 years ago

The zwave protocol really only need specific device configs for knowing what settings they support. Device class with GENERIC / SPECIFIC is enought to identify all devices without a specific config file for all devices. (this info can be queried on the zwave network). That will include their mandatory commandclasses for each device type.

https://github.com/stampzilla/gozwave/blob/master/protocol/constants.go

However i still think its good to switch to an updated database. I'll try to squeeze in some time and review it next week.