OH3 Semantic Class and Property Use

Hey all, I’m finally moving from 2.x to 3.x and am working on getting my model configured. Right now I’m working on getting my thermostats set up and I’m wondering about the most correct semantic definitions. I have my heat and cool setpoints configured as Class:Control and Property:Temperature. This makes total sense as I’m using them to control the temperature. I have the actual temperature configured as Class:Measurement and Property:Temperature. Again, makes sense. What I’m wondering about is my fan control and fan status. I get that the fan control should be Class:Control, but what should the Property be? It’s not directly controlling the temperature, but it’s part of the thermostat. How do most people handle this? Is it OK to have the Class configured but leave the Property blank if there’s not a clear one to choose?

This leads into a general question of how they should be used. Should every point have a Class and Property? Is it OK to have a Class but NOT a Property? Is it OK to leave them at the default of Class:Point and Property:None?

The docs (Semantic Model | openHAB) kind of gloss over this. The only reason I’m working on this is because of the OH3 videos on YouTube bring it up. I want to make sure my model is as good as I can get it so that everything that follows (Pages, Blockly, habPanel, etc.) works. I don’t want to get way down the line and realize things won’t work because I didn’t set up all my Classes and Properties.

Thanks in advance,


First of all, there is no most correct. This is a model that needs to make sense to you and render in MainUI in the way that you want it to. There is no objectively better approach.

When there is no property tag that makes sense, I either pick one that is closest or omit the property tag entirely. In this particular case I might get cheeky and choose “Wind” :smiley:.

Hopefully it will be done in time for OH 4 but support for creating custom semantic tags is actively being worked. Then you could make your own tag that makes sense to you.

They should have a class or else it’s not a Point. The Property is optional but without the Property the Item won’t appear on the Properties tab.

At this point, the only thing that won’t actually work is how/if the Item appears on the Locations/Equipment/Properties tabs of the Overview page. If it looks good to you, it’s a good implementation. If you use HABApp you might need to add some synonyms but that’s about all.

In short, it’s pretty obvious right from the start if what you’ve done will work for you.

Thanks Rich! This helps alleviate some of my concern. As I was playing around Friday night some of these things became more clear. I just want to make sure I’m not going to paint myself into a corner that would leave me filled with remorse that I hadn’t done something, or had done it incorrectly. Some of these things are fuzzy, and sort of have to be to accommodate an almost endless number of possibilities.

As always, the help is very much appreciated!