Assume I want to run OpenHab semantics for a location that is very strange. Like a starship.
Group gShip "Starship Enterprise" ["Indoor"]
Group gBridge "Command Bridge" gShip ["Room"]
Group gTurboShaft "Fancy Elevator" gShip ["Corridor"]
Group gBridgeSensor "Bridge Sensor" (gBridge) ["Sensor"]
Group gBridgeLight "Bridge Light" <light> (gBridge) ["Lightbulb"]
Now, when I go into HaBot and ask it, “Show the lights in the bridge”, how does it know that I’m talking about gBridge? It is semantically tagged as a room, and that has to come from the approved list. Or, does HaBot use the label to identify the location? If true, then “Command Bridge” really needs to be “Bridge”, and “Fancy Elevator” needs to be “turboshaft”.
Then, if that’s the case, why so many tags for location? Shouldn’t a simple “Location” suffice?
gBridge also has “Bridge” in his label : “Command Bridge”. I think habot uses the label also.
Think that semantic tagging is not only used by habot, but also in MainUI to auto-populate the location tab, reason of having this variety of definitions available.
There have been numerous discussions on the level of detail in the semantic tags here and on the github page. On the one hand, you are right, a simple “location” tag would be sufficient for many users. On the other hand, because items can be fetched from the api based on semantic tags it can be useful to have location types for rules etc. Say, for example, you want to make sure all bedroom lights are turned off at midnight, but not lights in hallways. Different location tags make this possible and easy.
It all comes down to your preference and use case, including whether you even bother with the model at all.