The open Home Automation Bus (openHAB) project aims at providing a universal integration platform for all things
around home automation. It is a pure Java solution, fully based on OSGi.
It is designed to be absolutely vendor-neutral as well as hardware/protocol-agnostic. openHAB brings together different
bus systems, hardware devices and interface protocols by dedicated bindings. These bindings send and receive commands and
status updates on the openHAB event bus. This concept allows designing user interfaces with a unique look&feel, but with
the possibility to operate devices based on a big number of different technologies. Besides the user interfaces, it also
brings the power of automation logics across different system boundaries.
To understand the system you need to know some base elements:
- Item - represent functionality that is used by the application (mainly user interfaces or automation logic).
Items have a state and are used through events. Items connects on some physical devices or protocols via bindings.
- Sitemap - are used to select and prepare Items in order to compose a user-oriented presentation of
this setup for various frontends, including web-UI, the Android openHAB app and others.
- Automation - base intelligence of openHAB. Rules are used for automating processes:
Each rule can be triggered, which invokes a script that performs any kinds of tasks, e.g. turn on
lights by modifying your items, do mathematical calculations, start timers etcetera.
- Persistence - Persistence support stores item states over time (a time series). openHAB is not restricted
to a single data store. Different stores can co-exist and be configured independently.
- Transformation - Transformation definitons are needed to translate between (possibly technical) item states
and human readable representations.
The official website of openHAB project.
Project page openHAB on GitHub.
Page about openHAB on Wikipedia (DE).