Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vindolin/homebase14

HomeBase14 - a personal home automation app
https://github.com/vindolin/homebase14

flutter home-automation mqtt-client riverpod

Last synced: about 2 months ago
JSON representation

HomeBase14 - a personal home automation app

Awesome Lists containing this project

README

        

# HomeBase14 - a personal home automation app

[![Flutter](https://github.com/vindolin/HomeBase14/actions/workflows/flutter.yaml/badge.svg)](https://github.com/vindolin/HomeBase14/actions/workflows/flutter.yaml)

> [!WARNING]
> This app is tailored to my specific environment and is not intended as a general home automation app!

This project was initiated as a platform for me to acquire knowledge in Flutter/Dart, providing a practical scenario to refine my skills.

Being an enthusiast of open-source home automation and owning a variety of devices with different MQTT payload structures, this project presented an excellent chance to substitute the multiple control programs with one that is custom-made for my requirements.

I experimented with various reactive state frameworks before settling on Riverpod for data-binding.

I really like Flutter's declarative approach and the robustness of the resulting app.

The project is currently a work in progress, and with the knowledge I’ve gained about Flutter/Dart and the libraries I’m utilizing, there are numerous aspects I would approach differently now.

I am continually refactoring past errors and incorporating new devices as they become part of our household.

The app currently runs in desktop mode under Linux/Windows/OSX and Android/iOS.

The following devices can be controlled/monitored via MQTT messages:

#### Zigbee ([Zigbee2MQTT](https://www.zigbee2mqtt.io/))
* Window blinds (single and dual)
* Thermostats (underfloor heating)
* Ikea smart bulbs (and other dump bulbs)
* Garden zistern pump
* Sodastream uses (vibration sensor)
* Multi power strip
* Door contact sensors
* Humidity/Temp sensors

#### Wifi
* Garage door (ESP32 controlling a remote controll via transistor)
* various [Tasmota](https://tasmota.github.io/docs/) plugs
* Plant watering system for an always thirsty coffee bush (ESP8266, servo valve)
* Incubator for Tempeh etc. (ESP32)

#### Other
* Basic IR remote controll for TV and sound bar
* Metrics of my SMA Tripower solar controller (modbus)
* Prusa I3 MK3s (USB Serial controller)
* Sleep modes and output device of my main PC
* Greenhouse temperature sensors (LoRa)
* Configuration data is stored in an encrypted file which is decrypted with a user provided key

It also lets me view the RTSP streams of two survailance cams ([media_kit](https://github.com/media-kit/media-kit))

> [!TIP]
> You can find an example bare bones MQTT/Riverpod example that uses a family provider here: https://github.com/vindolin/simple_mqtt_riverpod_example

### Screenshots