This article has multiple issues. Please help improve it or discuss these issues on the talk page . (Learn how and when to remove these messages)
|
Initial release | 2011 |
---|---|
Stable release | |
Repository | github |
Written in | Java |
Operating system | Linux, Windows, Mac OS X, Unix, Solaris, OpenBSD, FreeBSD |
Type | Home automation |
License | Eclipse Public License |
Website | www |
open Home Automation Bus (openHAB) is an open source home automation software written in Java. It is deployed on premises and connects to devices and services from different vendors. As of 2019, close to 300 bindings are available as OSGi modules. [2] Actions, such as switching on lights, are triggered by rules, voice commands, or controls on the openHAB user interface. The openHAB project started in 2010. In 2013, the core functionality became an official project of the Eclipse Foundation under the name Eclipse SmartHome. [3] openHAB is based on Eclipse SmartHome and remains the project for the development of bindings. According to Black Duck Open Hub, it is developed by one of the largest open-source teams in the world. [4] It also has an active user community. [5]
OpenHAB requires a JVM and can be deployed on servers running various operating systems, a dedicated Raspberry Pi instance, or some network-attached storage systems. [6] [7] The required bindings can be added at runtime via OSGi. OpenHAB supports a number of persistence backends for storing and querying the smart home data, including relational and time series databases. By default openHAB uses rrd4j for persistence. [8]
After installation, openHAB scans the local network and discovers devices that can be included in the smart home solution. [9] Users can provide credentials and meaningful device names via an administration user interface.
Since major version 2 of openHAB the connections to physical devices is split in 2 levels. "Things" are the interface elements to a specific physical device (e.g. an interface to a home automation network like KNX, Z-Wave or Zigbee). Within these things, one or more "Items" can then be defined or discovered. These "Items" correspond to one specific component like a relay controlling a light, the desired temperature of a heating system or a dimmer percentage.
Sitemaps allow the user to determine how the devices in the smart home are arranged. A sitemap groups devices by floor and room and determines how they are visualized and controlled. The following example illustrates what a typical sitemap definition might look like:
sitemap demo label="My home automation" { Frame label="Date" { Text item=Date } Frame label="Demo" { Switch item=Lights icon="light" Text item=LR_Temperature label="Livingroom [%.1f °C]" Group item=Heating Text item=LR_Multimedia_Summary label="Multimedia [%s]" icon="video" { Selection item=LR_TV_Channel mappings=[0="off", 1="DasErste", 2="BBC One", 3="Cartoon Network"] Slider item=LR_TV_Volume } } }
Once the system is configured, openHAB users can view data and perform actions using a number of user interfaces. These include a browser based interface as well as apps for Android, Windows 10, and iOS. [10] [11] [12] All of these UIs are defined by the sitemap mechanism.
An event, condition, action rule-based system is used to automate the smart home. The following example turns off a light once the sun rises at the configured location.
rule"Start wake up light on sunrise"whenChannel"astro:sun:home:rise#event"triggeredthenswitch(receivedEvent.getEvent()) { case "START": { Light.sendCommand(OFF) } } end
OpenHAB Cloud is a companion cloud service and backend for openHAB. It provides secure remote access and enables openHAB users to remotely monitor, control and steer their homes through the internet. The openHAB foundation provides a demo system without SLA guarantees. [13]
In 2020, the code was forked for a major rework, separating to 2.5 version from the upcoming 3.0 branch. [14] Apart from some technical code changes (e.g. use of Java 11), several functional improvements are foreseen:
The main drawback is that backward compatibility to openHAB add-ons for version 1 is dropped.
Version 3.0 has been released as of 21 December 2020. [15]
Many security and privacy concerns have been raised with home automation and IoT in general. OpenHAB's on-premises engine and open source character are answers to these concerns. [16] However, it was criticized for its use of default configurations. [17]
OpenHAB won the IoT Challenge 2013 [18] and the JavaOne Duke's Choice Award 2013. [19] It was nominated for the JAX Innovation Award 2014 [20] and was the People's Choice Winner at the Postscapes IoT Awards 2014/15. [21]
OSGi is an open specification and open source project under the Eclipse Foundation.
Jakarta EE, formerly Java Platform, Enterprise Edition and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Jakarta EE applications are run on reference runtimes, which can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components they are deploying.
Home automation or domotics is building automation for a home. A home automation system will monitor and/or control home attributes such as lighting, climate, entertainment systems, and appliances. It may also include home security such as access control and alarm systems.
Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, HLASM, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, PL/I, Prolog, Python, R, Rexx, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.
Z-Wave is a wireless communications protocol used primarily for residential and commercial building automation. It is a mesh network using low-energy radio waves to communicate from device to device, allowing for wireless control of smart home devices, such as smart lights, security systems, thermostats, sensors, smart door locks, and garage door openers. The Z-Wave brand and technology are owned by Silicon Labs. Over 300 companies involved in this technology are gathered within the Z-Wave Alliance.
PikeOS is a commercial hard real-time operating system (RTOS) which features a separation kernel-based hypervisor. This hypervisor supports multiple logical partition types for various operating systems (OS) and applications, each referred to as a GuestOS. PikeOS is engineered to support the creation of certifiable smart devices for the Internet of Things (IoT), ensuring compliance with industry standards for quality, safety, and security across various sectors. In instances where memory management units (MMU) are not present but memory protection units (MPU) are available on controller-based systems, PikeOS for MPU is designed for critical real-time applications and provides up-to-standard safety and security.
QF-Test from Quality First Software is a cross-platform software tool for automated testing of programs via the graphical user interface. The program is specialized on cross-browser test automation of static and dynamic web-based applications. Version 4.1 added support for MacOS and the Apple Safari and Microsoft Edge browsers via the Selenium WebDriver. RESTful web service testing. From version 5.0, Windows applications can also be tested and modern C++ applications. Version 5.3 added support for the Chrome DevTools protocol, which allows browsers to be controlled using CDP drivers.
ProSyst Software GmbH was founded in Cologne in 1997 as a company specializing in Java software and middleware. ProSyst's first commercial application was a Java EE application server. In 2000, the company sold this server technology and has since focused completely on OSGi solutions.
Internet of things (IoT) describes devices with sensors, processing ability, software and other technologies that connect and exchange data with other devices and systems over the Internet or other communication networks. The Internet of things encompasses electronics, communication, and computer science engineering. "Internet of things" has been considered a misnomer because devices do not need to be connected to the public internet; they only need to be connected to a network and be individually addressable.
JFire was an Enterprise Resource Planning and Customer Relationship Management system.
Spring Roo is an open-source software tool that uses convention-over-configuration principles to provide rapid application development of Java-based enterprise software. The resulting applications use common Java technologies such as Spring Framework, Java Persistence API, Thymeleaf, Apache Maven and AspectJ. Spring Roo is a member of the Spring portfolio of projects.
Jenkins is an open source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration, and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat. It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase, and RTC, and can execute Apache Ant, Apache Maven, and sbt based projects as well as arbitrary shell scripts and Windows batch commands.
HomeKit, also known as Apple Home, is a software framework and communication protocol developed by Apple Inc. that lets users configure, communicate with and control smart-home appliances using Apple devices. It provides users with a way to automatically discover such devices and configure them. By designing rooms, items and actions in HomeKit, users can enable automations in the home through a voice command to Siri or through Apple's Home app or third party apps. With HomeKit, developers are able to create complex applications in order to manage accessories at a high level.
oneM2M is a global partnership project founded in 2012 and constituted by 8 of the world's leading ICT standards development organizations, notably: ARIB (Japan), ATIS, CCSA (China), ETSI (Europe), TIA (USA), TSDSI (India), TTA (Korea) and TTC (Japan). The goal of the organization is to create a global technical standard for interoperability concerning the architecture, API specifications, security and enrolment solutions for Machine-to-Machine and IoT technologies based on requirements contributed by its members.
Reactive Blocks is a visual model-driven development environment based on Activity Diagrams supporting formal model analysis, automated code generation, hierarchical modelling, and an extensive library of ready-to-use components for the Java platform.
Home Assistant is free and open-source software used for home automation. It serves as an integration platform and smart home hub, allowing users to control smart home devices. The software emphasizes local control and privacy and is designed to be independent of any specific Internet of Things (IoT) ecosystem. Its interface can be accessed through a web-based user interface, by using companion apps for Android and iOS, or by voice commands via a supported virtual assistant, such as Google Assistant, Amazon Alexa, Apple Siri, and Home Assistant's own "Assist" using natural language.
OpenAtom OpenHarmony, abbreviated as OpenHarmony (OHOS) is a family of open-source distributed operating systems based on HarmonyOS derived from LiteOS, donated the L0-L2 branch source code by Huawei to the OpenAtom Foundation. Similar to HarmonyOS, the open-source distributed operating system is designed with a layered architecture, consisting of four layers from the bottom to the top: the kernel layer, system service layer, framework layer, and application layer. It is also an extensive collection of free software, which can be used as an operating system or in parts with other operating systems via Kernel Abstraction Layer subsystems.