updated to latest master or submodules and fixed pom.xml

Signed-off-by: Kai Kreuzer <kai@openhab.org>
pull/13/head
Kai Kreuzer 2016-06-03 09:47:21 +02:00
parent 5bcda2dee3
commit 61ab8cbc8d
7 changed files with 57 additions and 41 deletions

View File

@ -3,8 +3,10 @@ action,Ecobee Action
action,Mail Action
action,MiOS Action
action,Pebble Action
action,Prowl Action
action,Pushover Action
action,Telegram Action
action,Twitter Action
action,XBMC Action
action,XMPP Action
binding,Alarm Decoder Binding

1 category label
3 action Mail Action
4 action MiOS Action
5 action Pebble Action
6 action Prowl Action
7 action Pushover Action
8 action Telegram Action
9 action Twitter Action
10 action XBMC Action
11 action XMPP Action
12 binding Alarm Decoder Binding

@ -1 +1 @@
Subproject commit 11ca7ba6a9dc8223ef726c3a035db30d3f3cdbf1
Subproject commit bac5351248ee25870e9d43f423a1b9ebc27834a4

@ -1 +1 @@
Subproject commit 3da74372202ec108621e0271a312eb1474ec29c3
Subproject commit 34e921c2986f4ae138b6c629c6cb7094d712e7d3

@ -1 +1 @@
Subproject commit 3e61b7c9010cf17d79c190b6db8ab209bed8184d
Subproject commit 2389d03b6e54e2cad0ccf40ed4504b1cb1440032

View File

@ -4,34 +4,31 @@ layout: documentation
{% include base.html %}
# About Eclipse SmartHome
# Concepts
## 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.
Eclipse SmartHome strictly differentiates between the physical view and the functional view on the system.
While the physical view is required for setup, configuration, troubleshooting, etc., the functional side covers the information that matter to applications, such as user interfaces and automation logic.
## How does Eclipse SmartHome help?
## Things, Channels, Items and Links
The goals of the Eclipse SmartHome project can be summarized as:
**Things** are the entities that can be physically added to a system and which can potentially provide many functionalities at once. It is important to note that things do not have to be devices, but they can also represent a web service or any other manageable source of information and functionality.
Things provide their functionality through a set of **Channels**. Channels are "passive" and can be regarded as a declaration of a Thing, what it can offer. It is up to the individual setup, which of the Channels are actively used through Items (see below).
* 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.
**Items** represent (fine-grained) functionality that is used by applications - as user interfaces or automation logic. Items have a state and they can receive commands.
The glue between Things and Items are **Links**. Links are associations between exactly one Thing Channel and one Item.
If a Channel is linked to an Item, it is "enabled", which means that the functionality that the Item represents is handled through the given Channel.
Channels can be linked to multiple Items and Items can be linked to multiple Channels.
To illustrate these concepts, take a two-channel actuator that controls two lights:
![](images/thing-devices-1.png)
The actuator is the _Thing_. This might be installed in the electrical cabinet, it has a physical address and needs to be setup and configured in order to be used.
The user is instead interested in the two lights, which are located at different locations in his home. These lights are the desired functionality, thus the _Items_ and they are linked to the _Channels_ of the actuator.
A _Link_ can be regarded like a physical wire in this example.
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.
The project focuses on services and APIs for the following topics:
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:
* 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

32
pom.xml
View File

@ -18,19 +18,19 @@
<configuration>
<filesets>
<fileset>
<directory>${basedir}/_source/addons/bindings/</directory>
<directory>${basedir}/addons/bindings/</directory>
</fileset>
<fileset>
<directory>${basedir}/_source/addons/uis/</directory>
<directory>${basedir}/addons/uis/</directory>
</fileset>
<fileset>
<directory>${basedir}/_source/addons/io/</directory>
<directory>${basedir}/addons/io/</directory>
</fileset>
<fileset>
<directory>${basedir}/_source/addons/iconsets/</directory>
<directory>${basedir}/addons/iconsets/</directory>
</fileset>
<fileset>
<directory>${basedir}/_source/concepts/</directory>
<directory>${basedir}/concepts/</directory>
</fileset>
</filesets>
</configuration>
@ -45,7 +45,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/_source/concepts/</outputDirectory>
<outputDirectory>${basedir}/concepts/</outputDirectory>
<resources>
<resource>
<directory>${basedir}/_repos/smarthome/docs/documentation/concepts</directory>
@ -69,7 +69,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/_source/addons/bindings/</outputDirectory>
<outputDirectory>${basedir}/addons/bindings/</outputDirectory>
<resources>
<resource>
<directory>${basedir}/_repos/smarthome/extensions/binding</directory>
@ -97,7 +97,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/_source/addons/iconsets</outputDirectory>
<outputDirectory>${basedir}/addons/iconsets</outputDirectory>
<resources>
<resource>
<directory>${basedir}/_repos/smarthome/extensions/ui/iconset</directory>
@ -116,7 +116,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/_source/addons/uis</outputDirectory>
<outputDirectory>${basedir}/addons/uis</outputDirectory>
<resources>
<resource>
<directory>${basedir}/_repos/smarthome/extensions/ui</directory>
@ -139,7 +139,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/_source/addons/io</outputDirectory>
<outputDirectory>${basedir}/addons/io</outputDirectory>
<resources>
<resource>
<directory>${basedir}/_repos/openhab2-addons/addons/io</directory>
@ -166,8 +166,8 @@
</goals>
<configuration>
<source>
def bindings = new File(project.basedir, '_source/addons/bindings')
def bindingList = new File(project.basedir, '_source/_data/bindings.csv')
def bindings = new File(project.basedir, 'addons/bindings')
def bindingList = new File(project.basedir, '_data/bindings.csv')
bindingList.write("id,label,description\n")
bindings.eachFile
@ -218,7 +218,7 @@
<configuration>
<source>
def feature = new File(project.basedir, '_repos/openhab/features/openhab-addons/src/main/feature/feature.xml')
def addonList = new File(project.basedir, '_source/_data/oh1addons.csv')
def addonList = new File(project.basedir, '_data/oh1addons.csv')
addonList.write("category,label\n")
def root = new XmlParser().parse(feature)
@ -240,7 +240,7 @@
</goals>
<configuration>
<source>
def iconsets = new File(project.basedir, '_source/addons/iconsets')
def iconsets = new File(project.basedir, 'addons/iconsets')
iconsets.eachFile
{
@ -270,7 +270,7 @@
</goals>
<configuration>
<source>
def uis = new File(project.basedir, '_source/addons/uis')
def uis = new File(project.basedir, 'addons/uis')
uis.eachFile
{
@ -300,7 +300,7 @@
</goals>
<configuration>
<source>
def uis = new File(project.basedir, '_source/addons/io')
def uis = new File(project.basedir, 'addons/io')
uis.eachFile
{

17
update.sh Executable file
View File

@ -0,0 +1,17 @@
#!/bin/sh
# This script can be used to update all submodules and re-generated the automatically constructed documentation pages
cd _repos/smarthome
git checkout master
git pull
cd ../openhab
git checkout master
git pull
cd ../openhab2-addons
git checkout master
git pull
cd ../..
mvn clean package