https://github.com/atennert/homectrl
Home / building automation server software
https://github.com/atennert/homectrl
configurable event-driven home-automation homectrl java spring
Last synced: about 2 months ago
JSON representation
Home / building automation server software
- Host: GitHub
- URL: https://github.com/atennert/homectrl
- Owner: atennert
- License: apache-2.0
- Created: 2015-05-16T14:17:54.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2019-07-24T12:46:27.000Z (over 5 years ago)
- Last Synced: 2025-01-14T13:54:11.495Z (3 months ago)
- Topics: configurable, event-driven, home-automation, homectrl, java, spring
- Language: Java
- Homepage:
- Size: 119 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# HomeCtrl
## Status
__master__:
[](https://travis-ci.org/atennert/de.atennert.homectrl)
[](https://github.com/atennert/de.atennert.homectrl/releases)
[](https://opensource.org/licenses/Apache-2.0)__devel__:
[](https://travis-ci.org/atennert/de.atennert.homectrl)## Contents:
* [Introduction](#intro)
* [How to get the example working?](#make-it-work)
* [Device configuration](#device-config)
* [Event bus](#event-bus)
* [How to add control modules?](#controls)
* [How to add data processors?](#processors)
* [Communication protocols](#protocols)
* [Copyright](#copyright)HomeCtrl is an event based home or building automation system. The name is constructed from "home"
and the label of the English keyboard control button "Ctrl".You are currently looking at version 3 of the HomeCtrl software. This version is a Java application,
that acts as a server. It is designed as a central control unit that can communicate with devices
and user interfaces using different communication protocols with my COM library as a back-end. The
current available protocols are HTTP for reading and writing and EnOcean for reading.The HomeCtrl software consists of 6 projects:
* *homectrl*: the core application
* *homectrl-com-if*: all the stuff for interacting with the COM library the world beyond that
* *sensors*: software "sensors" for stuff, that is computed by the server
* *dataprocessing*: software modules for sensor data preprocessing
* *controls*: software modules for controlling devices
* *server*: the application project with all configurationsVersion 3 of HomeCtrl is the first, where the server can actually control the devices. In versions 2
and earlier, devices where directly controlled by the user and the server was only creating the
connection between user and devices. There is no user interface software yet, but that is planned
(besides, a well configured system doesn't need user interaction ;)). The runtime structure and
behavior of the application is defined in a device configuration file, which is written in JSON. It
contains all devices, the processors and the controls with their individual settings.## How to get the example working?
1. Compile the server project as runnable jar file (simply build the Gradle file in the main directory).
2. Rename example-server.properties to server.properties.
3. Change the data in server.properties to what you like (or go with the default).
4. Rename example-configuration.json to configuration.json.
5. Change the configuration in configuration.json to what your system looks like. This one might be a bit tricky. In case of doubt, check the chapter about device configuration.
6. Start the application and lean back.TODO
**Light at the end of the tunnel ...**
I know that this manual JSON writing is hideous. I'm planning on a visual tool to create and edit configuration files. It will mostly be colorful clicking and dragging and dropping. Even a simulation mode would be nice.
Unfortunately, it will probably take a while to get to this point.
TODO
## How to add control modules?
TODO
## How to add data processors?
TODO
TODO
## Release notes
TODO