Following on the many responses from users about the changes in categories (Apps=> Automations, Drivers, Devices, etc) in release 2.5, I'd like to suggest adding the ability for completely user-defined (customized) menus.
This would be implemented by allowing users to group each code object (a driver, a device, an integration, an automation, etc) with their choice of menu, with the menu title named as they decide. The grouping would ideally be done via drag-n-drop in the GUI, but could also be done via a menu.
Each code object would be internally identified by a unique attribute -- ideally the Id (as exists for applications), but if a code object lacks that, a unique repeatable ID would be generated based on the name (ie., "basicZwaveTool") and the category (ie., "driver"). This would allow different -- but related -- objects, such as an Acme driver and an Acme automation, to be distinguished.
For example, this pseudo-json represents a customized menu structure:
menus.json
{
"Automation (the artist formerly know as Apps)":
[
# the order within the json reflects the order of objects shown in the GUI
"id": "abc-123", # the id used by the author publishing the App
"id": "34a4bc_RingCamera_Driver" # a code object w/o an ID, hash the category and name given by the author
],
"3rd Party Drivers":
[
"id": "HPM_12789ad",
],
"3rd Party Putters":
[
id: "ashk81304_zWave_integration"
id: "8340-sajd_Kwikset"
]
]
}
Using a unique id (software author defined or created by the hub when the code object is installed) would not require changes from application or driver developers and the user-defined organization would be preserved over both HE platform and 3rd-party code updates.