Is there currently (or will it be possible in the future) a way for a user to give a natural language name/description to an item, channel or thing?
The reason I’m asking is because I’m currently trying to come up with ideas on how best to utilise voice interface services and I’m experimenting with seeding the services with user items together with a description (or synonyms) vs not seeding data and trying to identify target item once the response has been received in openHAB.
I doubt it because the Item name is a programming construct and I know of no language that allows spaces in a variable name. But perhaps they will expose the label…
Having reread my question it probably isn’t obvious what I meant.
I didn’t mean changing the item identifier/variable so it accepts spaces, I’m trying to find a way to add a label or tag/alias so when I say “living room light” I mean item living_room_light and when I say “bedroom lights” I mean the group “bedroom_lights”.
Maybe I’ll try it defining that in a .cfg file for now.
Several people are working on this problem as well. Search the forum for “Voice” and you should see at least a couple of threads.
What most people do is parse the speech into parts, name their Items in a standard way, and then use Groups that will let them search for an Item by name.
For example, if all your Items are a member of the a Group called All and you construct a name living_room_light you can search for that item using:
val switch = all.members.filter(s|s.name=="living_room_light").head
I was part of those discussions but they were all aimed around voice control through rules which, while my personal setup works, seems a bit hacky. I’m hoping to do it through an addon so that its more robust and has access to the item registry and the events bus.