hal/README.md

104 lines
2.9 KiB
Markdown
Raw Normal View History

2016-09-23 15:51:40 +02:00
# Hal
2016-09-28 18:58:16 +02:00
Hal is a home automation hub with sensor statistics with the functionality to
2020-08-31 12:03:46 +02:00
share that data between friends. It has been developed to be very extensible so future
2016-09-28 18:58:16 +02:00
Sensors and other input devices can be supported.
2017-04-19 17:30:56 +02:00
Features:
2020-08-31 12:03:46 +02:00
- **Map**, Set up a house map with sensors and events mapped on a floorplan
2017-04-19 17:30:56 +02:00
- **Triggers and Actions**, IFTTT type functionality
2020-12-25 23:09:45 +01:00
- **Power;Challenge**, Sync power or sensor usage between friends to challenge each other to lower the power usage
- **[Google Assistant Integration](plugins/hal-assistant-google/READNME.md)**
2017-04-19 17:30:56 +02:00
2016-09-23 15:51:40 +02:00
Currently supported devices:
2016-10-04 17:01:21 +02:00
- **Network Scanner**, IP scanner to detect devices on local network
- **NUT**, Linux UPS daemon
- **Tellstick**, Supported devices:
2021-08-29 01:30:49 +02:00
- NexaSelfLearning
- Oregon0x1A2D
2016-09-23 15:51:40 +02:00
- **Raspberry Pi**, GPIO connected sensors
2021-08-29 01:30:49 +02:00
- **[Zigbee](plugins/hal-zigbee/README.md)**
- Temperature Sensors
- Humidity Sensors
- Pressure Sensors
- OnnOff Devices
2016-09-23 15:51:40 +02:00
2020-08-31 12:03:46 +02:00
Under development (Not ready to be used yet)
- **Z-Wave**
- **Google Assistant**
- **MQTT Devices**
2016-09-23 15:51:40 +02:00
2023-02-26 17:04:02 +01:00
The project is currently in alpha state, and as such things will change and break continuously.
2016-09-23 15:51:40 +02:00
### Screenshots
2020-08-31 12:03:46 +02:00
![Week Graph](screenshot_01.jpg)
2016-09-23 15:51:40 +02:00
2020-08-31 12:03:46 +02:00
![Home Map](screenshot_02.jpg)
2016-09-23 15:51:40 +02:00
2020-08-31 12:03:46 +02:00
![Sensor Overview](screenshot_03.jpg)
2016-09-23 15:51:40 +02:00
2020-08-31 12:03:46 +02:00
![Event Overview](screenshot_04.jpg)
2016-09-23 15:51:40 +02:00
## Installing
2016-09-28 18:58:16 +02:00
To run the Hal server you first need to clone the git repository and then run the
2021-03-21 19:37:17 +01:00
gradle command to build and run the server:
2016-09-23 15:51:40 +02:00
```
2020-08-31 12:03:46 +02:00
./gradlew run
2016-09-23 15:51:40 +02:00
```
2021-03-21 19:37:17 +01:00
Check `hal.conf.example` for available configuration options.
By default, HAL server will be listening to http://localhost:8080.
2016-09-23 15:51:40 +02:00
## Running the tests
2016-09-28 18:58:16 +02:00
The current test coverage is greatly lacking, but to run the available JUnit
test-cases run:
2016-09-23 15:51:40 +02:00
```
2020-08-31 12:03:46 +02:00
./gradlew test
2016-09-23 15:51:40 +02:00
```
2021-03-21 19:37:17 +01:00
## Architecture
```
HalAbstractControlerManager
|
| HalAbstractController
| |
| | HalAbstractDevice
| | |
.-----------. .------------. .--------.
| | | | | |
| | | | ----> | Device |
| | | | | |
| | ----> | Controller | '--------'
| | | | .--------.
| | | | | |
| Manager | | | ----> | Device |
| | | | | |
| | '------------' '--------'
| | .------------. .--------.
| | | | | |
| | ----> | Controller | ----> | Device |
| | | | | |
'-----------' '------------' '--------'
```
2016-09-23 15:51:40 +02:00
## Authors
* **Daniel Collin**
* **Ziver Koc**
## License
2016-09-28 18:58:16 +02:00
This project is licensed under the MIT License - see the
[LICENSE.txt](LICENSE.txt) file for details
2016-09-23 15:51:40 +02:00
## Acknowledgments
* Tellstick, for open-sourcing their code