Skip to content

home-anthill/docs

Repository files navigation


ks89/home-anthill

Home Anthill

home-anthill is a project to control your home remotely with ESP32 devices.

There are 2 types of devices. I chose this categorization:

  • devices: ESP32 devices to control something, like Air Conditioners.
  • sensors: ESP32 devices to read physical phenomenons like temperature, humidity, air quality.

At the moment, the only supported device are the one to control either Beko air conditioner (Remote type: RG52A9/BGEF) or LG air conditioner (Remote type: AKB74955603), but you can modify the firmware changing the protocol to control you specific model, if supported by crankyoldgit/IRremoteESP8266.

Sensors can read temperature, humidity, light (lux), air quality, motion, air pressure. Feel free to extend this project to match your requirements.

Please check the Devices and Sensors section below to verify the compatibility with ESP32 devices.

On server-side, I'm using a Kubernetes cluster with a simple microservice architecture.


🏠 Architecture 🏠


ks89/home-anthill


Devices sequence diagrams


Sequence diagram register devices



Sequence diagram control devices


Sensors sequence diagrams


Sequence diagram register sensors



Sequence diagram notification sensors



🏗️ Local development 🏗️

To setup this project on your PC to develop and run these microservices, please take a look at local-development.md

If everything works as expected, you can proceed to the next step and try to use the production configuration using a real remote server and domains.


🌍 Production installation and deploy 🌍

Before continuing, you should setup and test your local environment following the section above.

Server

First you have to create a MongoDB database, for example on MongoDB Atlas using a free account. Then, you can check the official tutorial hetzner-install.md to setup your Kubernetes cluster. Before continue, you should verify that everything works fine, for example trying to login to the web interface with your GitHub account.

Devices and Sensors

Supported devices:

  • devices:
    • device-ac-beko: ESP32 DevKit-C (ESP32-WROOM-32), ESP32 S3 DevKit-C (ESP32-S3-WROOM-1)
    • device-ac-lg: ESP32 DevKit-C (ESP32-WROOM-32), ESP32 S3 DevKit-C (ESP32-S3-WROOM-1)
  • sensors:
    • sensor-airquality-pir: ESP32 DevKit-C (ESP32-WROOM-32), ESP32 S2 DevKit-C (ESP32-S2-SOLO), ESP32 S3 DevKit-C (ESP32-S3-WROOM-1)
    • sensor-barometer: ESP32 DevKit-C (ESP32-WROOM-32), ESP32 S2 DevKit-C (ESP32-S2-SOLO), ESP32 S3 DevKit-C (ESP32-S3-WROOM-1)
    • sensor-dht-light: ESP32 DevKit-C (ESP32-WROOM-32), ESP32 S2 DevKit-C (ESP32-S2-SOLO), ESP32 S3 DevKit-C (ESP32-S3-WROOM-1)

As you can see, devices are not working with ESP32 S2 DevKit-C (ESP32-S2-SOLO) because of this issue

To configure and flash firmwares, follow this guide devices-install.md.



💖 A big thank you to 💖

the authors of the main icon of this project:


©️ License ©️

The MIT License (MIT)

Copyright (c) 2021-2024 Stefano Cappa (Ks89)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.