This is the third generation of my own house automation system called Angharad that I started 2 years ago.
The goal is to have a house automation system fully accessible via a REST API, and access this API via a web application, or other programs like mobile apps or voice control applications. Also, for better performance on nano computers like the Raspberry Pi, and because I like it, I wanted to program the server in C.
When I started the development of the third generation, I created some libraries to help developing webservices in C.Sagremor
Sagremor is currently the only Angharad client application. It's an AngularJS 1.5 application and is also designed to easily add new services.Main features
- Dashboard, top-left and top-right menus
Sagremor has a dashboard that can be personalized with any element from the other pages, a top-left menu to navigate between pages and a top-right menu to run other commands (change profile, change language, refresh data, etc.).
- Command house switches, dimmers, heaters and sensors
Sagremor uses widgets to control Angharad elements:
You can also monitor data and compare multiple monitored element in the same graph.
- Carleon services
Carleon is a submodule used to control other types of service, currently it can control MPD instances or get Motion pictures and streams.
The main libraries used are:
- Ulfius: a framework to develop webservices
- Hoel: a framework to execute SQL queries with JSON objects as query language
Angharad system is a modulable application. It consists of 4 different parts:
- Angharad: The core system, provides authentication, manages scripts and events
- Benoic: House devices management: lights, switches, heaters and sensors
- Carleon: Other services management: surveillance cameras, music, etc.
- Gareth: Logs management and alert trigger
Currently, Angharad supports ZWave dongles, Taulas devices, can controls MPD instances and check motion camera pictures.
But since the program is designed to use modules, adding new Benoic device types, such as EnOcean, ZigBee or X10, or adding new Carleon services, such as door locks, or any other idea or need one might have should be easy.Installation
This is a totally free software, feel free to use it, send feedback, bug reports and improvements if you want to.