Naming of Control entities in Zwave

How does ZwaveJS decide what Controls to include in the device page and what to name them?
I am looking at a Zooz Zen17 as an example

I dont know where it came up with the names of the control entities on the left. In this case it was very confusing (even with only 3). The first one needs to be named “Parent”, its the logical OR of the two channels. The second one needs to be named Channel 1 or Relay 1, etc.’
It would be nice if the ZwaveJS database used the label or had a friendly name mapping that could be added.

There is a database file that contains this info in zwavejs

Yes, here Z-Wave JS Config DB Browser
But where are the names?
The only names I can see in the ZEN17 entry are here and they are not used

	"associations": {
		"1": {
			"label": "Lifeline",
			"maxNodes": 1,
			"isLifeline": true
		},
		"2": {
			"label": "Relay 1 Status",
			"maxNodes": 5
		},
		"3": {
			"label": "Relay 2 Status",
			"maxNodes": 5
		}
	},

Naming of devices and entities has nothing to do with association group names. It’s just a coincidence that this device has association groups named similarly to the endpoints.

Naming is based on the labels provided by the Z-Wave JS Value API. The naming is programmatic and based on the type of value and type of entity. There is no special logic for individual device models.

Z-Wave JS has the capability to assign endpoint labels via device config files, but HA does not use these labels yet (feature was added early this year). PRs to implement the functionality would be welcome.