ERASER - OpenLicht Knowledge Base
Overview
There are a few subprojects in this repository:
- Base
- eraser-base: The core part of the framework containing the grammar, various attributes, the parser for model specification files, and Java classes for the openHAB communication via MQTT
- Utility
- commons.color: Utilities for converting color spaces (XYZ, RGB, HSB)
-
project-template: Template to quickly create new subprojects used by
make-new-project.py
- Demos
- integration and openhab-mock: Playground projects testing some features
- skywriter-hue-integration: The first real demonstrator integrating the Skywriter gesture recogintion with a Hue using a simple rule
- Machine Learning Integration
- org.openhab.action.machinelearn: openHAB connector of the Machine Learning Part (implemented by Kay)
- org.openlicht.action.reinforcementlearning: Reinforcement-Learning of preferences (implemented by Kay)
- stub.org.openhab.core.scriptengine.action: Stub to make the other two projects build
Setup and Building
This project uses Gradle as the build tool. Please use the provided Gradle wrappers instead of an installed one.
Running the demo
There is a demo project, as explained above to showcase the framework.
To start it, run ./gradlew :skywriter-hue-integration:run
This demo is intended to run with a pre-configured openHAB instance and has some hard-coded settings.
It will first try to connect to an MQTT broker (with a hard-coded IP) to listen on changes of item states.
There is one rule implemented, namely to listen on changes of the item skywriter_xyz
expecting MQTT messages of the form XVALUE,YVALUE,ZVALUE
, and to change to state of another item iris1_item
representing the HSB value of a Hue Iris.
Trivia
The name Eraser is a small pun on the term eRACR, which is an extension of RACR for event recognition. It was chosen to ease the search for a good repository image as it is based on a film.