No description
Find a file
2021-09-09 17:53:07 +02:00
arduino Formatting cleanup 2021-03-23 21:54:29 +01:00
external Formatting cleanup 2021-03-23 21:54:29 +01:00
gradle/wrapper Including gradle wrapper 2020-08-28 23:22:29 +02:00
hal-core Moved OAuth to the external http daemon and added OAuth2 store 2021-09-09 17:52:14 +02:00
plugins Removed deconz 2021-09-09 17:53:07 +02:00
.gitattributes Updated vendore code exclusion as project now shows as majority javascript 2021-06-21 12:19:21 +02:00
.gitignore Moved find device to its own utility method, and added a specific equals method and reworked some test. 2021-03-23 01:57:12 +01:00
.gitmodules Adding NexaTellstick code and NexaControl library (as git submodule) 2016-01-19 15:19:55 +01:00
build.gradle Moved OAuth to the external http daemon and added OAuth2 store 2021-09-09 17:52:14 +02:00
gradlew Added exec permisison 2021-08-26 19:54:54 +01:00
gradlew.bat Including gradle wrapper 2020-08-28 23:22:29 +02:00
hal.conf.example Upgraded Zutil lib version 2021-08-22 16:09:43 +02:00
hal.service Added hal.service file for systemd and updated the run script to support forground execution 2021-07-29 10:30:55 +01:00
Jenkinsfile Moved find device to its own utility method, and added a specific equals method and reworked some test. 2021-03-23 01:57:12 +01:00
LICENSE.txt Moved find device to its own utility method, and added a specific equals method and reworked some test. 2021-03-23 01:57:12 +01:00
logging.properties Added mDNS Daemon which will resolve hal.local domain 2021-08-26 21:21:55 +02:00
README.md Zigbee plugin version uplift 2021-08-29 01:30:49 +02:00
run.sh Fixed ctrl-c for the gradle build 2021-09-06 16:17:11 +02:00
screenshot_01.jpg Updated README.md file 2016-09-23 15:51:40 +02:00
screenshot_02.jpg Updated README.md file 2016-09-23 15:51:40 +02:00
screenshot_03.jpg Updated README.md file 2016-09-23 15:51:40 +02:00
screenshot_04.jpg Updated README.md file 2016-09-23 15:51:40 +02:00
settings.gradle Updated with new Configurator changes and cleaned up imports 2021-05-08 01:41:13 +02:00

Hal

Hal is a home automation hub with sensor statistics with the functionality to share that data between friends. It has been developed to be very extensible so future Sensors and other input devices can be supported.

Features:

  • Map, Set up a house map with sensors and events mapped on a floorplan
  • Triggers and Actions, IFTTT type functionality
  • Power;Challenge, Sync power or sensor usage between friends to challenge each other to lower the power usage
  • Google Assistant Integration

Currently supported devices:

  • Network Scanner, IP scanner to detect devices on local network
  • NUT, Linux UPS daemon
  • Tellstick, Supported devices:
    • NexaSelfLearning
    • Oregon0x1A2D
  • Raspberry Pi, GPIO connected sensors
  • Zigbee
    • Temperature Sensors
    • Humidity Sensors
    • Pressure Sensors
    • OnnOff Devices

Under development (Not ready to be used yet)

  • Z-Wave
  • Google Assistant
  • MQTT Devices

The project is currently in alpha state, and as such things will change and break.

Screenshots

Week Graph

Home Map

Sensor Overview

Event Overview

Installing

To run the Hal server you first need to clone the git repository and then run the gradle command to build and run the server:

./gradlew run

Check hal.conf.example for available configuration options. By default, HAL server will be listening to http://localhost:8080.

Running the tests

The current test coverage is greatly lacking, but to run the available JUnit test-cases run:

./gradlew test

Architecture

 HalAbstractControlerManager
       |
       |             HalAbstractController
       |                   |
       |                   |              HalAbstractDevice
       |                   |                   |
 .-----------.       .------------.       .--------.  
 |           |       |            |       |        |
 |           |       |            | ----> | Device | 
 |           |       |            |       |        |
 |           | ----> | Controller |       '--------'
 |           |       |            |       .--------.  
 |           |       |            |       |        |
 |  Manager  |       |            | ----> | Device | 
 |           |       |            |       |        |
 |           |       '------------'       '--------'
 |           |       .------------.       .--------.  
 |           |       |            |       |        |
 |           | ----> | Controller | ----> | Device | 
 |           |       |            |       |        |
 '-----------'       '------------'       '--------'
         

Authors

  • Daniel Collin
  • Ziver Koc

License

This project is licensed under the MIT License - see the LICENSE.txt file for details

Acknowledgments

  • Tellstick, for open-sourcing their code