Reworked to talk about openHAB

Simplified the wording and tightened up some of the sentences to take
out redundancies .

Reworked bullet points to no longer be their own sentences per many
English writing style guides.

Tried to take some of the "developer" focus off of the text to make it
more suitable for a general audience. I did this by trying to make
definitions simpler and eliminating certain technical words or
descriptions in place of simpler and more straight forward ones.

Signed-off-by: Rich Koshak <rlkoshak@gmail.com> (github: rkoshak)
pull/9/head
Richard Koshak 2016-05-31 06:43:07 -06:00
parent cae87add29
commit d07b55b489
1 changed files with 20 additions and 21 deletions

View File

@ -4,34 +4,33 @@ layout: documentation
{% include base.html %}
# About Eclipse SmartHome
# About openHAB
## Background
Since the emergence of broadband internet connections, smartphones and tablets the smart home market shows a remarkable upsurge. This has led to a very fragmented market, which makes it difficult for customers to "bet on the right horse". In fact, there is not one system, protocol or standard that could possibly fulfill all potential requirements. There is hence a need for platforms that allow the integration of different systems, protocols or standards and that provide a uniform way of user interaction and higher level services.
Since the emergence of broadband internet connections, smartphones and tablets the smart home market shows a remarkable upsurge. Unfortunately, this Internet of Things is still immature and fragmented into multiple competing silos with limited compatiblity between them. This fragmented market forces customers to try to "bet on the right horse" among a range of competing technologies, none of which now or ever could fulfill all potential home automation requirements on its own. There is a need for a platform that allows the integration of these different systems, protocols and standards, that provides a uniform way for user interaction, implements higher level services, and does all of this in an open and extensible framework.
## How does Eclipse SmartHome help?
## openHAB
The goals of the Eclipse SmartHome project can be summarized as:
The openHAB project is a framework that enables the building of smart home solutions that operate in highly heterogeneous environments, i.e. solutions that deal with the integration of different protocols or standards. Its purpose is to provide uniform access to devices and information and to facilitate different kinds of interactions with them.
* Provide a flexible framework for smart home and ambient assisted living (AAL) solutions. This framework focuses on the use cases of this domain, e.g. on easy automation and visualization aspects.
* Specify extension points for integration possibilities and higher-level services. Extending and thus customizing the solution must be as simple as possible and this requires concise and dedicated interfaces.
* Provide implementations of extensions for relevant systems, protocols or standards. Many of them can be useful to many smart home solutions, so this project will provide a set of extensions that can be included if desired. They can also be in the shape of a general Java library or an OSGi bundle, so that these implementations can be used independently of the rest of the project as well.
* Provide a development environment and tools to foster implementations of extensions. The right tooling can support the emergence of further extensions and thus stimulate future contributions to the project.
* Create a packaging and demo setups. Although the focus is on the framework, it needs to be shown how to package a real solution from it, which can be used as a starting point and for demo purposes.
Description
* The Eclipse SmartHome project is a framework that allows building smart home solutions that have a strong focus on heterogeneous environments, i.e. solutions that deal with the integration of different protocols or standards. Its purpose is to provide a uniform access to devices and information and to facilitate different kinds of interactions with them. This framework consists out of a set of OSGi bundles that can be deployed on an OSGi runtime and which defines OSGi services as extension points.
The goals of the openHAB project can be summarized as:
The stack is meant to be usable on any kind of system that can run an OSGi stack - be it a multi-core server, a residential gateway or a Raspberry Pi.
* provide a __flexible framework__ for smart home and ambient assisted living (AAL) solutions with a focus on the use cases of this domain, e.g. easy automation and visualization
* specify __extension points__ for integration and higher-level services using concise and dedicated interfaces so extending and customizing the solution is as simple as possible
* provide implementations of __extensions for relevant systems, protocols or standards__ that can be included or excluded as desired in the form of a general Java library or an OSGi bundle allowing these extensions to be be used independently
* provide a __development environment and tools__ to aid the implementation of extensions
* provide __packaging and demo examples__ to demonstrate a working example which can be used as a starting point
The project focuses on services and APIs for the following topics:
The openHAB framework consists of a set of OSGi bundles which define services and extension points that can be deployed on an OSGi runtime. The framework is meant to be usable on any kind of system that can run an OSGi stack - from a multi-core business class server, to a virtual machine, from a residential gateway to a NAS, from an old laptop to single board computer like a Raspberry Pi.
1. _Data Handling_: This includes a basic but extensible type system for smart home data and commands that provides a common ground for an abstracted data and device access as well as event mechanisms to send this information around. It is the most important topic for integrating with other systems, which is done through so called bindings, which are a special type of extension.
1. _Rule Engines_: A flexible rule engine that allows changing rules during runtime and which defines extension types that allow breaking down rules into smaller pieces like triggers, actions, logic modules and templates.
1. _Declarative User Interfaces_: A framework with extensions for describing user interface content in a declarative way. This includes widgets, icons, charts etc.
1. _Persistence Management_: Infrastructure that allows automatic data processing based on a simple and unified configuration. Persistence services are pluggable extensions, which can be anything from a log writer to an IoT cloud service.
Besides the runtime framework and implementation, the Eclipse SmartHome project also provides different kinds of tools and samples:
* _Data Handling_: includes an extensible type system for smart home data, commands which provide abstracted data and device access, and event mechanisms to distribute data updates
* _Rule Engines_: an event processing environment supporting the creation of "when this occurs do that" logic which drives the home automation's behavior
* _Declarative User Interfaces_: a framework with extensions for describing user interface content in a declarative way and includes widgets, icons, charts, etc.
* _Persistence Management_: pluggable extensions for peramently storing and retreaving historic home automation data for use within the home automation environment.
* Eclipse editors for editing configuration models and rules. These provide full IDE support, such as content assist and syntax validation.
* Maven archetypes to easily create skeletons for extensions
* Demo packaging with other Eclipse IoT projects
Besides the runtime framework and implementation, the openHAB project also provides different kinds of tools and samples:
* editors for creating and modifying configuration models and rules which provide full IDE support, such as content assist and syntax validation
* Maven archetypes to easily create skeletons for extensions for add-on developers
* demo packaging with other Eclipse IoT projects.