openHAB Glossary

Perhaps it is just my years of experience teaching a vocabulary heavy subject, but it seems to me that many of the beginner questions that show up on the forums (and even some of the more advanced ones) result from struggles with all the terminology. Many beginning users stumble when attempting to use docs and even users who have read the help docs sometimes come away with only partial understanding unless they are already fully steeped in the language of openHAB. With the goal of alleviating some small measure of that confusion, I am starting this openHAB glossary.

THINGS THIS IS NOT:

  • This is not intended as a replacement for the help docs. Nearly all of this is information is available somewhere in the docs in greater detail, but here it is summarized and collated for the sole purpose of developing a user’s vocabulary.
  • This is not a place for non-openHAB specific terminology. This glossary tries to focus on those new words or concept that are part of openHAB or required for a fundamental understanding of openHAB’s usage. This is not the place for glossaries about other concepts tangential to openHAB such as advanced networking, container management, linux commands, etc.

THINGS I HOPE THIS IS:

  • This glossary is full of definitions that are quick, simplified (sometimes overly simplified) ideas. The goal is to help users feel that they can better read and understand the fuller concepts as presented in the docs or to just help parse a little better the answers provided by the more veteran/fluent users in the forum.
  • This is intended to be a link that eliminates a lot of forum repetition. A measurable percentage of answers to questions in this forum start with (or eventually wrap around to) basic descriptions of openHAB vocabulary in order to facilitate user understanding or improve the clarity of a question. I hope this glossary helps smooth over that stage and lets users get their answers more quickly and easily.

CATEGORIES:

  • Overall Structure - The basic design of openHAB and some related applications
  • Release Cycle - The different types of openHAB releases and changes that may occur
  • Core Concepts - The hierarchy of concepts that form the basis of openHAB’s function
  • Items - The fundamental openHAB unit, the item
  • User Interfaces - The different applications for allowing users to interact with openHAB
  • Semantic model - The optional information layer for openHAB items that parallels physical arrangement and real-world use
  • Rules - The systems for user defined openHAB actions

Overall Structure

Term Definition
Event-driven A non-linear mode of operation where a program’s execution is idle until some stimulus (or event) requires a response
Karaf The internal console for the control and administration of openHAB, typically recognizable by the openhab> prompt
Marketplace A section on this forum where users and third party developers can post bindings, UI Widgets and rule templates for installation through MainUI.
Messaging bus Software architecture that handles the receiving and routing of small digital communication packets between other applications
openHAB The core software: an Event-driven Messaging bus for home automation
openHABian A feature-rich framework to aid in the installation, setup, and administration of openHAB and several other useful, related programs
RestAPI (API) A request and response system for external programs to gain access to the functions and information of a program

Release Cycle

Term Definition
Breaking Change An intentional change in a new version of an application that is incompatible with the function of previous versions and will require modification on the user’s part to restore proper function: these will always be listed in the documentation about the version release
Milestone The monthly variant of the openHAB release cycle, Milestones offer a balance between access to new features and the probability of undiscovered Regressions, new bugs, or Breaking Changes and are probably a good choice for most uses and use cases
Regression A change in a new version of an application that accidentally results in an malfunction of a previously working feature and must be corrected in an application update to restore proper function
Release The least frequent of the openHAB release cycle variants, a Release represents a major revision in openHAB over the previous Release with changes that have been added and tested throughout the last 6 months: Regressions and new bugs are expected to be at a minimum and these are the versions most often recommended for use in environments where system crashes and errors are least tolerable
Snapshot The most frequent of the openHAB release cycle variants, Snapshots are created nightly (or roughly so) and come with the newest features that therefore have the least breadth of testing: expect the highest frequency Regressions and new bugs and avoid use in systems where errors cannot be tolerated

Core Concepts

Term Definition
Binding An add-on to openHAB that allows some 3rd party service or device(s) to communicate with the core software
Channel One single attribute of a Thing which openHAB can read and/or write
Event An occurrence such as a change in Item State or the triggering of a Channel with the potential to trigger a reaction. See events.log.
Item The openHAB object associated with a single point of information or datum
Link A defined connection between a Channel and an Item such that information from the channel changes the item’s state and/or changes of the item’s state pass through the channel to the Binding for control of the device or service
Name A unique identifier for any object within openHAB used for referring unambiguously to that object (for example in rules or widgets): this is not the same as an object’s label which is usually a more human-readable and descriptive (but not necessarily unique) property
Profile A procedure applied to a Link that converts data passing between the Channel and the Item and therefore resulting in potentially different item State
Quantity A numerical value with associated units which allows openHAB to do unit intelligent conversion and comparison tasks
Rule A user created openHAB action that executes in response to one or more selected Events
Semantic Model A structured method for relating Items and adding information about them for openHAB UIs that reflects more closely how human language would refer to items and their relationships
State A special type of information that is the functionally important value of an Item, often the value of the property of a device or service the item represents
Thing The digital representation of a device or service as defined in a Binding
Transformation An add-on to openHAB that defines a method for converting values, usually Item states, in some way
Trigger Channel A special kind of Channel found in some things that is not linked to an item but can trigger events (and therefore rules) directly
UID or Unique ID See Name
Unit of Measure See Quantity

Items

Term Definition
Aggregation Function A function by which a Group can be configured to have a State that is one of a select number of summaries of the states of the member Items: these are only available for certain item Types
Command An openHAB specific term that is sent to an item and may result in a State Change
Group A special type of Item which holds a list of other items and distributes any Command it receives to all its members
Metadata A structured set of data that can be applied to an Item; used by some bindings, the UI, rules and 3rd party integrations (e.g. Google Assistant, Alexa) to define more information about an item.
Proxy Item An Item that is not linked to a Channel but stands alone and holds a value useful in some other context such as a rule or user interface
State Change Event in which something modifies the State of an Item to a different value
State Update Event in which the State of an Item receives a value which may or may not be different than the current value and may not trigger the same downstream events as a State Change
Tag An extra, arbitrary identifier attached to an item which may include information about the item’s role in the Semantic Model or just general/custom information for searching and conglomerating
Type The designation that determines what kinds of information an item is associated with and the values its State can have

User Interfaces

Term Definition
HABPanel Long-standing openHAB interface with an emphasis on tablet display and extreme customization
MainUI A web-based interface newly developed for openHAB3 covering both openHAB administration and the design and deployment of highly-customizable, responsive user interface pages
Overview Page In MainUI, the default page one sees when first bringing up the UI. It consists of a custom defined overview tab and three automatically generated tabs based on the semantic model.
PaperUI An unfinished, experimental, web-based interface from openHAB2 no longer available in openHAB3
Sitemap A very basic form of user interface with a simple list format of control elements and minimal possibility of customization: sitemaps have been available for a long time and remain available in openHAB3

Semantic Model

Term Definition
Equipment A Group item with one of the equipment type semantic Tags, an equipment is meant to represent a physical device that a person might interact with (e.g., a thermostat or garage door). Mostly commonly equipment will be all the items associated with one configured Thing.
Location A Group item with one of the location type semantic Tags, a location is meant to represent a physical location. It is not uncommon to find a nested hierarchy of locations to represent a home (e.g., House, Floor, Room)
Point An Item of any of the standard types with one of the point type semantic Tags, a point is meant to represent one information or control aspect of an equipment item. These items are most likely Linked to the Channel of a Thing
Property An additional semantic Tag added to a Point to further classify the kind of information associated with that point

Rules

Term Definition
Global Variable Any variable in a text based config that is defined outside the scope of a rule (i.e. at the top of the file). UI Based rules do not support global variables.
JSR223 An old standard since renamed Java Scripting, which allows for the use of a number of other languages to develop openHAB Rules. Even though it has a specific meaning, it’s common to see it used to mean “any rules language that isn’t Rules DSL.”
Rules DSL A Domain Specific Language created by and for use in openHAB for the creation of rules.
Text Based Rules Any set of rules written in any language using text files.
UI Based Rules defined and written using MainUI.
11 Likes

I have made this topic a wiki, so please everyone feel free to contribute other relevant definitions or improve on mine.

Whether this belongs in the docs in the long run or should remain here is a discussion that is worth having, I can see pros and cons of both sides.

2 Likes

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.