Item/Equipment labels for the semantic model in relation to Google Assisstant

Tags: #<Tag:0x00007f174ac096b8> #<Tag:0x00007f174ac095a0>

Hello everybody,

I am setting up the semantic model in OH3 (after switching from 2.5) and I am trying to figure out the best way to setup item names in relation with Google Assisstant.

In the tutorial for the semantic model, the main idea is to use an equipment (group) first and add points (items) to that group, which is exactly what the “add equipment from thing” feature does. If I don’t change any naming suggestions from the “add equipment from thing” feature, the labels of the semantic model will look like this (this is really just the labels, not the names of the items, of course):

  • Ground Floor [location group]
    • Living Room [location group]
      • Rollershutter Living Room [equipment group]
        • Control [point or item, which actually needs to be controlled]
    • Kitchen [location group]
      • Rollershutter Kitchen [equipment group]
        • Control [point or item, which actually needs to be controlled]

The problem now is, to make the Google Assistant work properly, I need to add the Google Assistant metadata to the point (e.g. “Control” in this case). However, by default, the device which is added in the Google Assistant will be called “Control” as well (which is of course not a good name, but the label of the item is exposed to Google Assistant, not the item name).

If I now want to expose a second item of the same type (e.g. the point “Control” of my Kitchen Rollershutter) it will be called the same name as my other device of the same type and nothing will properly work in Google Assistant, because obviously, naming is very important here.

Does anybody have a good idea, how to solve this naming issue, while sticking to the default way labels are created in the GUI?

Annotations:

  • Of course I could just change the label of every point with a more detailed name, but that doesn’t seem to be the way it was meant to be. I don’t want to rename every point on creation and I am trying to stick with the default way, labels are created by the GUI.
  • Another way would be to set the “Custom Name” in the advanced options of the Google Assistant Metadata, but this seems very annoying for me, too, as I don’t want to do this for all my items.

No, because the default naming is not really suitable for Google Assistant. GA needs that more detailed name. For some Items you might be able to get away with a room hint in the GA metadata or adding custom names but in cases where that doesn’t work you’ll have to label your Item in a way that GA can understand.

Furthermore, you probably want to use a more detailed label anyway. When you are writing a Rule and searching for an Item to trigger it by, which Control Item do you choose? If the label is more detailed and meaningful there is no question. On your Properties tab, which Control Item is which? In that case there is actually no way to tell them apart unless you use a more meaningful name.

What if all those sensor readings were just labeled with “Humidity”? In fact, in this particular case, because it’s obvious what the Item is based on its icon I’m toying with the idea of not even putting what it is in the label at all (see the Den entry). But I need to play some more to see the impact of doing that in other places (e.g. finding Items in the Items settings and developer sidebar and the like).

It is important to understand that the model and GA really don’t have anything to do with each other. When they come into conflict, you have to decide what is more important to you and do that. But in this case, I don’t think there is a conflict because there are lots of other reasons to use a more meaningful name. The UI can’t recommend a more meaningful name itself because it can’t guess what is more meaningful in each and every case.

If you don’t want to change anything in the “openhab side”, you can alway rename your item on google home app once imported. It does not change anything back to openhab , you can change it to whatever you want and call it that way in google.

Going back to my 2.5 installation, I simply maintain a parallel set of items for the devices that are connected to google assistant. This was very easy with the textual item definitions. I’ve continued this with OH3 which is only slightly more administration through the UI, but that way my assistant items are not even part of the model and the labels can be easily modified to match how usage evolves (and comments from other family users) without impact on the items that are configured for the various interface components.

Thank you all for your advice!
However, I have a few additions:

For this case i have a specific name for each equipment and most pages etc. show the equipment name on top of the point name. So actually I thought, the whole idea is to have very simple labels for the points, to keep things short.
Are you using only points in your system?

I think it should be possible to auto suggest a label the same way like the name itself is actually generated from [thing name]_[channel name].
So I thought the short labels where mostly part of the concept with equipment and points.

Another idea would be maybe to add the GA metadata to the equipment, not the point. But therefore, I think the implementation would need to be changed a bit?

This might work if you don’t have too many items exposed to GA, but for my case it is not really suitable and would make maintenance rather difficult.

Good point, I might do that, however it seems less painfull for me, to just use good labels for the points anyway, as rlkoshak suggested.

No, but on the properties tab the equipment isn’t shown. Just the properties are.

So one of my temperature sensors appears as follows on the three tabs:

Locations:


NOTE: Yes, I have some naming inconsistencies. The Equipment is called “Main Floor Sensors” but the temp is labeled “Front Room Sensors Temperature”. It’s on the list (but way down at the bottom) to fix that at some point.

Equipment:

So far so good though notice that there is no Location. The only way I know where that equipment is is because I included the location in the Equipment and Point’s Item label. But on the Properties tab…

Notice, no Equipment and no Location is anywhere. The only way to tell one temperature reading from another is to make each one’s label unique and meaningful.

But the Thing doesn’t know anything about where it is (Location) and what it is (Equipment). And one may not always want the Location or Equipment in the label of the Item. Maybe they only have the one instance. What if it’s a Point that isn’t a part of an Equipment? What if it’s not put into a Location at all (which is allowed)?

Right now the suggested name comes from the Thing’s Channel name. It could probably add the Location (if there is one) or the Equipment (if there is one).

Google Assistant doesn’t know anything about the semantic model and Equipment. And given how it appears to work, I don’t know for sure that it can except for maybe Thermostats. Everything else has a one-to-one mapping between Item and GA metadata setting.

Alright, thank you very much!
I guess I will stick to your suggestion and change the default labels to more meaningful ones, that then will work with GA as well.