Anyone can contribute. Just raise a PR and we will see from there. I prefer to have small iterations.
Let’s see how far we get. It will be complex, but there are more bindings like this we could use as example.
I also think it can grow, we don’t need 100% coverage from the start. Not promising anything but it would be supercool to have this stable for openHAB 5.
The json messages from the zwave js server are somewhat documented, but information about details do not seem to be documented. Or at least I can’t find it.
To determine the capabilities of a device i think i need to process the commandclasses. As they are modelled to json the handling is simple. Anyway, i can’t find a source of all used command classes with their id and what they do. As these classes are modelled and related to channels also provided by the server, I need documentation.
Thanks, I should have been more clear. I’m looking at documentation to the websocket server. As that layer is some kind of abstraction.
The readme.md of the project does show some json messages, but it does not cover the full schema. Like Value and Metadata objects.
I struggle to generate channels based on the endpoint t metadata objects. I’ll try to share my ‘hacks’ later today so some of you can share your thoughts.
@lsiepel I cloned your repo and built the binding. When doing the build for the first time on my Mac, I got the following two errors:
[ERROR] /Users/mark/Development/openhab-zwavejs/openhab-addons/bundles/org.openhab.binding.zwavejs/src/main/java/org/openhab/binding/zwavejs/internal/handler/zwavejsHandlerFactory.java:[42,14] The public type ZwaveJSHandlerFactory must be defined in its own file
[ERROR] /Users/mark/Development/openhab-zwavejs/openhab-addons/bundles/org.openhab.binding.zwavejs/src/main/java/org/openhab/binding/zwavejs/internal/zwavejsBindingConstants.java:[25,14] The public type ZwaveJSBindingConstants must be defined in its own file
When looking at the files on the filesystem, they were named zwavejsHandlerFactory.java and zwavejsBindingConstants.java. To fix, I just renamed those 2 files to have the proper case. Not sure why those were the only files that had the issue.