Zwave-JS device configuration file style questions

I was working on updating the device configuration for a thermostat and I have some questions about the style guide.

First off I encountered some parameters where the values represent months from 0 to 12 but only multiples of 3 are valid. The impression I got from the style guide is that should be represented with a min value of 0 and max of 12 and “allowManualEntry” set to true, with an option hint explaining what the value 0 represents, and the description explaining that only multiples of 3 are allowed. In this situation it seems like it would allow the user to enter invalid values. It seems to me that it would be more helpful to set “allowManualEntry” to false and provide options only for the valid values.

My second question is around conventions for naming template files. For manufacturer specific templates should everything be contained in a single file or would it be preferred to spread templates over multiple files? I thought it might be helpful to group templates by similar devices that would be likely to have similar parameters for example a template file for light switches and another for thermostats.

I get the opposite impression. “Whenever possible we aim to provide a list of pre-defined options to be displayed in the UI.” Seems like a list of options would be more appropriate in this case if there’s only a small set of valid values.

I would post this kind of question to the Github project discussions, you will get a response directly from the actual developers, instead of people like me who just have opinions. https://github.com/zwave-js/node-zwave-js/discussions

You can always submit the PR, in that case you will definitely get the feedback you’re looking for!

Thanks for the response. Looking at that more closely I think you are right about the pre-defined options, I must have misread something somewhere. I guess I have a PR to update now. Also I didn’t realize the github project discussion was a place to ask such questions I will try there in the future.