e23bfde7463858c71562c0829792820fba7287cd
modes: - heartbeat mode (as before) - id mode (slowly blink for 30s after receiving PING) - activity mode (short blink to signal e.g. network activity) The latter two modes fallback to heartbeat mode after some time.
Aquamaniac Home Control System (AqHCS)
Quickstart
Prerequisites
To compile the project the following software needs to be installed:
- gwenhywfar (general purpose library, also containing some development tools)
- avrasm (Opensource avr assembler)
- gcc (GNU C compiler)
Building
- download and unpack this project
- cd into the main folder
- create a build folder (e.g. "mkdir build")
- cd into that "build" folder
- configure package for building ("gwbuild -s ../")
- build autogenerated files ("gwbuild -p" and "gwbuild -Btm2builder")
- build project ("gwbuild -j NUM_OF_CPUS")
- install project ("sudo gwbuild -i")
Overview
See https://gitea.aqbanking.de/martin/aqhome/wiki for more information (in German).
The Aquamaniac Home automation/control system consists of multiple parts:
-
nodes
- small PCBs with AVR microcontrollers, for now:
- AtTiny84
- AtTiny85
- AtTiny841
- AtMega644
- decentralized, nodes just broadcast measured data over a two-wire communication network (clock/data), addresses are auto-assigned, no prior setup necessary, no central bottleneck or single point of failure
- node types
- environmental measuring (temperature, humidty, CO2 and others)
- motion detection, door/window sensors
- LED strip controllers
- modular operating system written in AVR assembler
- event-driven GUI
- driver modules for busses:
- one-wire bus
- two-wire-bus
- SPI bus
- UART
- driver modules for devices/sensors (incomplete list):
- DS18b20 sensors for temperature measurement
- SI7021 sensors for temperature and humidity measurement
- SGP_30 sensors for air quality measurement
- ccs811 sensors for air quality measurement
- SK6812 LED driver
- ds3231 realtime clock module
- I2C displays (work-in-progress)
- SPI displays (work-in-progress)
- small PCBs with AVR microcontrollers, for now:
-
applications
- aqhome-data
- TCP data service receiving sensor data
- aqhome-nodes
- service receiving sensor data via inter-node bus from nodes and forwarding that data to aqhome-data
- aqhome-mqttlog
- service exchanging data between aqhome-data service and a mqtt server
- aqhome-react
- service reacting to data received by aqhome-data (home automation service)
- aqhome-tool
- tool to manipulate aqhome-data (e.g. edit devices and values, add data points, create graphs from aqhome-data)
- tool to flash firmware for nodes, list nodes
- aqhome-cgi
- HTTP service for user interaction with aqhome-data
- aqhome-data
Description
Languages
Pascal
70%
Assembly
14.1%
C
9.9%
C++
5.6%
OpenSCAD
0.2%
Other
0.2%