Hello guys, I’ve been struggling for a long time with my deep-sleep enabled sensors (about 50 of them) to find a way of getting them updated with a minimal amount of power consumption.
I finally decided to create a service that would take the charge of completely automate the burden of synchronizing with the devices when they are available to update their firmware. This is an application that can be run on any Linux computer, probably also on Macs and Windows platforms too.
For Linux, it can be started as a daemon in the background. It was written in Rust and it is well documented. Here is the the first part of the README.md file. You can find it at the following GitHub location
Enjoy!
Guy
OTA Service for ESPHome devices
Over-The-Air Firmware Update Service for ESPHome Devices
Last updated: December 15, 2025
A robust Rust-based service that automatically manages firmware updates for devices running ESPHome firmware. The service monitors for new firmware versions, coordinates updates via MQTT, and uploads firmware using the ESPHome native OTA protocol v2.
Platform Note: This application is built and tested for Linux platforms. It may also work on other operating systems, but Linux is the primary target environment.
Device Note: All testing has been done with ESP32 devices. Please advise if the other kind of devices supported by ESPHome OTA capability are not working properly.
Features
Web-Based Monitoring - Real-time device dashboard with sortable tables and configuration management
ESPHome OTA Protocol v2 - Native protocol with comprehensive error handling
MQTT Coordination - Device registration and update notifications
Automatic Version Management - Detects and deploys latest firmware versions
Device State Tracking - SQLite database tracks device status and update progress
Authentication Support - MD5 and SHA256 password authentication
Pushover Notifications - Real-time alerts for updates, failures, and new devices
Home Assistant Integration - Uses the MQTT automatic discovery feature to have it’s state on Home Assistant
Timeout Protection - All network operations have configurable timeouts
Comprehensive Error Handling - 13 distinct error codes with descriptive messages
Concurrent Updates - Configurable parallel firmware uploads
Deep Sleep Support - Compatible with battery-powered devices