Domo
A fully local, open-source home automation system. Sensors on Pico 2W and Pi Zero 2W publish their measurements over MQTT to a Raspberry Pi 5 that stores, displays and reacts, with no cloud service at all.
- Light, sound, water-leak and motion sensors, with camera capture on detection
- Shelly plugs controlled and metered from the same interface
- Remote firmware updates for the Picos (OTA)
- Phone alerts via ntfy
- GitLab CI pipeline for testing and deployment
- Raspberry Pi 5
- Pico 2W
- MicroPython
- Mosquitto
- Telegraf
- InfluxDB
- Grafana
- Flask
- GitLab CI
The journey of a measurement
- SensorThe Pico 2W reads the sensor and publishes to an MQTT topic.
- BrokerMosquitto on the Pi 5 receives and redistributes.
- StorageTelegraf writes the measurement into InfluxDB.
- DisplayGrafana plots the history in real time.
- ReactionThe Flask API triggers the action or the ntfy alert.
What the hardware taught me
- The Pi's 3V3 pin tops out around 300 mA: beyond that, an external regulator is needed.
- The Pico's Wi-Fi transmission spikes need a 470 µF and a 100 nF capacitor to stay stable.
- A simple NPN transistor and a resistor are enough to drive a fan, no relay needed.
- The Camera Module 3 is not detected on its own: you have to force the imx708 overlay.