GithubHelp home page GithubHelp logo

ziver / hal Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 310.98 MB

A home automation hub and server

License: MIT License

Java 90.75% C++ 8.05% C 0.65% Shell 0.43% HTML 0.11%
home-automation tellstick automation-hub scheduler iot iothub

hal's Introduction

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 continuously.

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.