# 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) - 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