Definitely go through the Getting Started Tutorial. I find the people who have the most trouble with OH 3 are long time OH 1/2 users who skip the Getting Started Tutorial, thinking they already know what they need to know.
See A Deep Dive into the Semantic Model after reviewing the Semantic Model page in Getting Started. For now the model is used in three different ways:
- to provide information needed by HABot to do it’s natural language processing
- to build the automatically generated parts of the Overview page
- there are some actions that can be used from rules
Most who use the semantic model at all do so for 2. If you don’t plan on using MainIUI, skip it. You probably won’t get enough benefit for the work to make it worth while.
You can still use sitemaps. Or you can use MainUI. If you use MainUI, you will probably want to set up the semantic model so that you can get those automatically built parts of MainUI. See the Pages section of the Getting Started Tutorial for some details.
You can’t get away without Things any more. There is no other option.
Migration depends on whether you want to minimize the changes required to your current config, or whether you want to use new capabilities in OH 3.
If you want minimal changes:
-
You’ll have to translate your MQTT Item configs to Things. There is no way around that. You may want to use .things files or, if you use the UI see OH 3 Tips and Tricks, in particular the “Buying in Bulk” sections.
-
Except for removing any OH 1.x binding configs, leave your Items as is. Skip the semantic model entirely. You’ll have to add the channel link config to connect the Item to the correct Thing Channel.
-
There are a few minor breaking changes in your rules you’ll need to address, particularly the move from Joda ZonedDateTime to java.time.ZonedDateTime which have some minor differences. The
executeCommandLine
Action works differently too and if you use the MQTT publish Action, there’s a new action that handles that. -
Your sitemap should work as is. There are special instructions to migrate HABPanals.
This may push you in the second direction.In that case I recommend the following.
1 Create/discover the Things in the UI.
2. Recreate from scratch your Items using “Create Equipment from Thing” which can let you create dozens of Items all at once automatically linked to the Thing Channels and situated in the Semantic model
3. Bring over rules one-by-one and adjust for breaking changes and potentially changed names.
4. Install from the marketplace widgets and or create custom widgets and apply those to your items.
I’m not sure there’s any advantage to moving the Groups in the UI and keeping the rest of the Items in files.
There are some neat opportunities in UI rules with the rule Condition clause and rule templates. But there are limitations too, such as no being able to easily share variables between rules.
There is for Items but, if you plan on using the semantic model, it’s faster and easier to “Create Equipment from Thing”.
I’m a strong proponent of doing the semantic model in the UI and only in the UI because of this. There are too many tags and you have to keep them all straight. In the UI it presents all the appropriate tags for a given context. You don’t end up with impossible situations like a Location with a Property tag and the like or typos in a tag name through the UI.
Also, managing Group membership is a pain in the UI right now so retrofitting existing Items into the semantic model is painful. That’s why I recommend recreating the Items which automatically sets the Group membership for you.
No
No, but if you wait it might cause more work later on.
Yes, there’s a “Create Items from text definition” option.
Yes, but with the usual caveat that having two ways to configure something active at the same time can cause complexity and confusion.
Custom MainUI widgets and rule templates. All else can be configured in text configs. However, there are a few things that might not be possible for text config Things and it’s way easier to automatically discover Things in the UI than it is to get the text file syntax right (for those bindings that support that).
It is possible to apply default widgets in the .items files but it gets complex and troublesome really fast. OH 3 makes heavy use of Item metadata.
Pretty much everything else. Though some things will be harder in the text files than in the UI since you can’t make syntax errors in the UI quite as easily and that tends to be the part that most people struggle with for both the things and the semantic model.
Yes.