IncQueryLabs / smarthome-cep-demonstrator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Smarthome cep demonstrator

This demonstrator uses Complex Event Processing (CEP) to automate devices in a smart home simulator, HomeIO. It uses Drools as a Complex Event Processing rule engine for Eclipse SmartHome. The HomeIO integration is separated to a standalone repository, but required by this demonstrator.

Install and tryout

To install and tryout this demonstrator, follow the developer guide.

Case study

A case study with example Drools smart home automation rules for HomeIO can be found in the wiki.

Rule generator tool

This project also contains a basic rule generator tool for Eclipse to help the creation of smart home automation rules. This rule generator uses an EMF model to model a simple automation rule. Smart home automation rules are generated for this Drools rule engine with VIATRA + XTEND. There is also a graphical editor for this model with Sirius. Examples for this rule generator tool can be found in the wiki.

Extended event bus

Drools rule engine operates on objects. However, the Eclipse SmartHome event bus uses only the string name of the item to communicate on the event bus. To solve this, an extended event bus is created, with the same events as in Eclipse SmartHome, but they use the item object instead of the name of the item. More can be read about it in the wiki.

Repository layout

  1. Demo rules for HomeIO in demo/com.incquerylabs.smarthome.demorules.homeio/src/main/resources/
  2. Target platform: releng/com.incquerylabs.smarthome.target
  3. Run configuration files: smarthome-simulator/HomeIO/homeio-resources/launch/
  4. OpenHAB configuration files: smarthome-simulator/HomeIO/homeio-resources/distro-resources/src/main/resources
  5. Extended event bus + Drools rule engine: runtime/
  6. Rule generator tool: model/
  7. Code for the physical motion sensor: sensors/

About

License:Eclipse Public License 1.0


Languages

Language:Java 73.1%Language:Python 21.4%Language:Xtend 4.3%Language:C++ 0.8%Language:HTML 0.5%