You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

20 lines
2.1 KiB

\section{Environment}
The home-automation projects developed by \textit{Magrathea Laboratories e.V.}\autocite{maglab}, the local hackerspace in Fulda, are used to provide control over the different actors and sensors in the foundations rooms to visitors and members locally and remotely.
The different components available (like the door status, power sockets, projectors and screens, temperature, etc.) are all managed by the home-automation controller driven by the software home-assistant\autocite{HASS}.
It provides direct control over all existing components using a web UI and allows to define rules and automations on how these components interact.
The hackerspace has developed a common software and hardware platform for its home-automation projects called \textit{ESPer}\autocite{ESPer}.
For the hardware, boards based on the ESP8266 micro-controllers, mostly ESP-01s\autocite{ESP-01s} boards, are used in combination with self-developed power supplies and use-case specific hardware components.
These boards provide a MCU fast enough for all required scenarios integrate WiFi without requiring any extra components.
The software is based on the Sming\autocite{Sming} library, which in turn is based on the open source SDK for ESP8266 and integrates a lot of other software components for easy use.
To build the software, a Makefile\autocite{make} is used and provides a simple way for reproducible builds.
For communication with the controller, the MQTT\autocite{MQTT} protocol is used.
It provides a lightweight messaging mechanism implementing the publish-subscribe pattern which allows devices to listen for commands and publish their current state to the controller and other interested parties.
The controller software has out-of-the-box support for this protocol which allows easy integration of all different device types using the same patterns.
The components all share the same configuration in regard of the network access and the controller to communicate with.
The configuration is provided during build time which eschews the need for a configuration interface and thus reducing the manage overhead and increases the security.