| <!-- |
| This document is provided as a template along with some guidance for creating |
| your project proposal. This is just a template. Feel free to change it as |
| you see fit (add sections, remove section). We feel, however, that the |
| suggestions represented in this document represent the reasonable minimum |
| amount of information to move forward. |
| |
| Please keep the formatting in this document simple. Please do not edit |
| this document in Microsoft Word as it adds huge piles of markup that make |
| it difficult to restyle. |
| |
| More information is available here: |
| |
| http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase |
| |
| Direct any questions about this template to emo@eclipse.org |
| --> |
| |
| <html> |
| <head> |
| |
| <!-- |
| Include the title here. We will parse it out of here and include it on the |
| rendered webpage. Do not duplicate the title within the text of your page. |
| --> |
| |
| <title>Eclipse SmartHome</title> |
| </head> |
| |
| <!-- |
| We make use of the 'classic' HTML Definition List (dl) tag to specify |
| committers. I know... you haven't seen this tag in a long while... |
| --> |
| |
| <style> |
| dt { |
| display: list-item; |
| list-style-position:outside; |
| list-style-image:url(/eclipse.org-common/themes/Phoenix/images/arrow.gif); |
| margin-left:16px; |
| } |
| dd { |
| margin-left:25px; |
| margin-bottom:5px; |
| } |
| </style> |
| |
| <body> |
| <p>The Eclipse SmartHome project is a proposed open source project under the <a |
| href="http://www.eclipse.org/projects/project_summary.php?projectid=technology">Eclipse Technology Top-Level Project</a>.</p> |
| |
| <!-- |
| The communication channel must be specified. Typically, this is the |
| "Proposals" forum. In general, you don't need to change this. |
| --> |
| <p>This proposal is in the Project Proposal Phase (as defined in the |
| Eclipse Development Process) and is written to declare its intent and |
| scope. We solicit additional participation and input from the Eclipse |
| community. Please send all feedback to the |
| <a href="http://www.eclipse.org/forums/eclipse.proposals">Eclipse Proposals</a> |
| Forum.</p> |
| |
| <h2>Background</h2> |
| |
| <p>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.</p> |
| |
| <h2>Scope</h2> |
| |
| <p>The goals of the Eclipse SmartHome project can be summarized as:</p> |
| <ol> |
| <li>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.</li> |
| <li>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.</li> |
| <li>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.</li> |
| <li>Provide a development environment and tools to foster implementations of extensions. The right tooling can |
| support the emergence of further extensions and thus stimulates future contributions to the project.</li> |
| <li>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.</li> |
| </ol> |
| |
| <h2>Description</h2> |
| |
| <p>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.</p> |
| |
| <p>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. |
| |
| <p> |
| Currently planned initial features and extension points of this framework include: |
| </p> |
| <ul> |
| <li><strong>Data Handling</strong> |
| <ul> |
| <li><strong>Type System:</strong> A basic but extensible type system for smart home data and commands |
| that provides a common ground for an abstracted data and device access.</li> |
| <li><strong>Data Registry:</strong> Keeps track of data point instances and their values.</li> |
| <li><strong>Event Mechanism:</strong> Passes data and operations asynchronously in a loosly coupled way |
| between components.</li> |
| <li><strong>Bindings:</strong> Infrastructure to exchange data and commands with external systems and devices, |
| e.g. through regular polling or background threads. Useful binding implementations such as HTTP, NTP or |
| TCP will be part of the project. |
| </ul> |
| </li> |
| <li><strong>Rule Engine</strong> |
| <ul> |
| <li>An implementation of a flexible rule engine that allows changing rules during runtime.</li> |
| <li>Provides triggering upon events or on a temporal basis.</li> |
| <li>Extensible through rule actions that are made available to all rules</li> |
| <li>Simple but powerful textual representation of rules</li> |
| </ul> |
| </li> |
| <li><strong>Declarative User Interfaces</strong> |
| <ul> |
| <li>A simple way of describing user interface content in a declarative way.</li> |
| <li>Defines a set of standard widgets and a hierarchy of pages.</li> |
| <li>Structure is made available through REST APIs to be easily consumable by UI implementations</li> |
| </ul> |
| </li> |
| <li><strong>Persistence Management</strong> |
| <ul> |
| <li>Infrastructure that allows automatic data processing based on a simple and unified configuration</li> |
| <li>Persistence targets can be anything like databases, log files, IoT cloud services etc.</li> |
| <li>Implementations of persistence services such as logging or cli will be part of the project.</li> |
| </ul> |
| </li> |
| <li><strong>REST API</strong> |
| <ul> |
| <li>Provides all relevant information and services to user interfaces (e.g. native clients)</li> |
| <li>Extensible to provide additional resources specific to a solution</li> |
| <li>Integrates with persistence services to serve time series for interactive charts</li> |
| </ul> |
| </li> |
| </ul> |
| <p>Besides the runtime framework and implementation, the Eclipse SmartHome projects also provides different kinds |
| of tools and samples:</p> |
| <ul> |
| <li>Eclipse editors for editing configuration models and rules. These provide full IDE support, such |
| as content assist and syntax validation.</li> |
| <li>Maven archetypes to easily create skeletons for extensions</li> |
| <li>Demo packaging with Eclipse RT</li> |
| </ul> |
| |
| Planned additions for the future include: |
| <ul> |
| <li>Remote management for configuration models, possibly through REST</li> |
| <li>Meta-data based configuration of extensions</li> |
| <li>Definition of rule modules (triggers and actions) that can be easily plugged together</li> |
| <li>Notification APIs to easily administrate notification channels</li> |
| <li>Interfaces for natural language processing / voice recognition</li> |
| </ul> |
| |
| <h2>Why Eclipse?</h2> |
| |
| <p>Targeting the vertical market of smart homes, this project fits nicely into the recent activities around IoT/M2M.</p> |
| |
| <p>Besides this, Eclipse provides many projects that are a perfect fit for this project (and which are in fact used |
| by the initial contribution):</p> |
| <ul> |
| <li>Eclipse Equinox is used as the default OSGi runtime.</li> |
| <li>Eclipse Jetty serves as an embedded HTTP server for the REST API and other HTTP services.</li> |
| <li>Eclipse Modelling Framework is the basis for all configuration models</li> |
| <li>Eclipse Xtext provides IDE support for the textual editors and furthermore provides with Xbase |
| the basis for the textual rule representation</li> |
| </ul> |
| <p>Other Eclipse projects can be of interest in the future as well:</p> |
| <ul> |
| <li>Concierge: a small-footprint OSGi container optimized for embedded devices can be an interesting alternative |
| to Equinox when being used on constrained devices.</li> |
| <li>Kura: Lower level services offered by Kura, such as I/O connectivity, remote management and configuration can |
| perfectly complement the Eclipse SmartHome stack. |
| <li>Paho: As an MQTT extension is planned as a communication channel, Paho is the natural choice here.</li> |
| <li>Ponte: Ponte can be used as a uniform way of binding custom M2M devices and solutions to the smart home.</li> |
| </ul> |
| |
| <h2>Initial Contribution</h2> |
| |
| The initial contribution of the Eclipse SmartHome project will be a large subset of the current code of |
| openHAB (open Home Automation Bus). In particular: |
| <ul> |
| <li>Source code for all mentioned interfaces and services of the framework</li> |
| <li>Source code of a couple of extensions (openHAB bindings, actions and persistence services)</li> |
| <li>Documentation of the architecture and its extension points</li> |
| <li>Build scripts and sample files</li> |
| </ul> |
| |
| <h2>Legal Issues</h2> |
| |
| <p>openHAB is currently available under GPLv3 license. The openHAB project owners will make the code base available under |
| EPL (with the agreement of all contributors). Most dependencies of the openHAB core framework are already under EPL |
| and even taken from Eclipse Orbit. For all other dependencies of the core framework, the project owners will go through |
| the Eclipse legal review process to make sure that they are eligible for contribution.</p> |
| |
| <p>Many of the existing extensions (bindings, actions, etc.) include third-party libraries that might not be moved to |
| Eclipse. As a result, only a small subset of these extensions will be contributed to the Eclipse SmartHome project |
| while the rest will stay within the openHAB project.</p> |
| |
| <h2>Committers</h2> |
| |
| <p>The following individuals are proposed as initial committers to the project:</p> |
| |
| <dl> |
| <dt>Kai Kreuzer, Deutsche Telekom AG (Project lead)</dt> |
| <dt>Thomas Eichstädt-Engelen, innoQ Deutschland GmbH (Project co-lead)</dt> |
| <dt>Thomas Letsch, Thomas Letsch IT Solutions</dt> |
| </dl> |
| |
| <p>We welcome additional committers and contributions.</p> |
| |
| <h2>Mentors</h2> |
| |
| <p>The following Architecture Council members will mentor this |
| project:</p> |
| |
| <ul> |
| <li>Mike Milinkovich</li> |
| <li>Benjamin Cabé</li> |
| </ul> |
| |
| <h2>Interested Parties</h2> |
| |
| <p>The following individuals, organisations, companies and projects have |
| expressed interest in this project:</p> |
| |
| <ul> |
| <li>Bastian Nordmeyer, Tinkerforge GmbH</li> |
| <li>Eclipse SCADA</li> |
| <li>Falk-Moritz Schaefer, Communication Technology Institute, TU Dortmund University</li> |
| <li>Georg Grütter, Robert Bosch GmbH</li> |
| <li>Prof. Gottfried Zimmermann, Stuttgart Media University, Responsive Media Experience Research Group</li> |
| <li>Prof. Dr. Heiner Klocke, Cologne University of Applied Sciences</li> |
| <li>Jochen Hiller, Deutsche Telekom AG</li> |
| <li>Lars Pfannenschmidt, Deutsche Telekom AG</li> |
| <li>Dr. Marco Eichelberg, OFFIS Institute for Information Technology</li> |
| <li>Myriam Lipprandt, OFFIS Institute for Information Technology</li> |
| <li>Stefan Feilmeier, FENECON GmbH & Co. KG</li> |
| <li>Stefan Tilkov, innoQ Deutschland GmbH</li> |
| <li>Stefan Vaillant, Cumulocity GmbH</li> |
| </ul> |
| |
| <h2>Project Scheduling</h2> |
| |
| Eclipse SmartHome aims at the initial contribution to be completed by the end of 2013. |
| A first release is planned early 2014, mainly based on the refactored initial contribution. |
| |
| <h2>Changes to this Document</h2> |
| |
| <!-- |
| List any changes that have occurred in the document here. |
| You only need to document changes that have occurred after the document |
| has been posted live for the community to view and comment. |
| --> |
| |
| <table> |
| <tr> |
| <th>Date</th> |
| <th>Change</th> |
| </tr> |
| <tr> |
| <td>09-August-2013</td> |
| <td>Document created</td> |
| </tr> |
| <tr> |
| <td>19-August-2013</td> |
| <td>Added interested parties</td> |
| </tr> |
| <tr> |
| <td>29-August-2013</td> |
| <td>Added further interested parties</td> |
| </tr> |
| <tr> |
| <td>06-September-2013</td> |
| <td>Added further interested parties</td> |
| </tr> |
| <tr> |
| <td>17-October-2013</td> |
| <td>Added further interested parties<br/> |
| Changed project name from Smart Home to SmartHome</td> |
| </tr> |
| </table> |
| </body> |
| </html> |