explaingit

laurentpointca/bluetti-ac200l-autorestart

Analysis updated 2026-05-18

0C++Audience · generalComplexity · 4/5LicenseSetup · hard

TLDR

A small ESP32-based controller that automatically re-enables a Bluetti AC200L power station's AC output after it drains during an outage and recharges.

Mindmap

mindmap
  root((bluetti-ac200l-autorestart))
    What it does
      Watches AC200L over BLE
      Detects grid power return
      Re-enables AC output
    Tech stack
      ESP32 firmware
      C++
      Bluetooth LE
      Python daemon option
    Use cases
      Home UPS automation
      Keep internet gear powered
      Raspberry Pi alternative
    Status
      Read and write proven
      Needs board flashed
      MIT licensed

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Automatically restore power output on a Bluetti AC200L after it fully drains during a power outage.

USE CASE 2

Keep home internet equipment powered without needing to manually re-enable a UPS after an outage.

USE CASE 3

Run the same restart logic as a background service on a Raspberry Pi instead of an ESP32.

USE CASE 4

Use the included proof-of-concept scripts to explore the AC200L's Bluetooth communication protocol.

What is it built with?

C++ESP32Bluetooth LEPython

How does it compare?

laurentpointca/bluetti-ac200l-autorestartalange/llama.cppayushm74/binance-lob-capture
Stars000
LanguageC++C++C++
Setup difficultyhardmoderatehard
Complexity4/54/54/5
Audiencegeneraldeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires flashing an ESP32 board or setting up a Raspberry Pi daemon, plus a physical Bluetti AC200L to test against.

MIT license: use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

This project fixes an annoying gap in the Bluetti AC200L, a portable battery power station some people use as a home UPS, a backup power source that keeps things running during an outage. If the grid power fails for long enough to fully drain the AC200L to zero percent, the unit shuts down. When power returns, it wakes up and starts recharging on its own, but it does not turn its AC output back on, so anything plugged into it, like home internet equipment, stays without power until someone manually flips the output back on. Bluetti has chosen not to add an auto-restart feature for safety reasons, even though other models of theirs support it. The fix here is a small, always-on controller, built to run on a cheap ESP32 microcontroller, that watches the AC200L over Bluetooth Low Energy and automatically re-enables the AC output once it detects that grid power is back and it is safe to do so. It determines safety by checking whether the unit is actively drawing input power or whether its battery charge is above a certain threshold, since either condition rules out a genuine ongoing power outage. The controller runs entirely over a direct Bluetooth connection to the unit, with no dependence on the internet, a cloud service, or a home network, which matters because the AC200L itself is what powers the network equipment. The repository provides three ways to run this: firmware for the recommended ESP32 controller, an alternative Python program meant to run as a background service on a Raspberry Pi, and a set of proof-of-concept scripts used to test and confirm the communication protocol on a Mac. The underlying Bluetooth communication protocol was reverse engineered by community members from other related open-source projects, not created from scratch here, and the author credits that prior work. According to the README, both reading device status and writing the restart command have been proven to work on real hardware, with the main remaining task being to flash the firmware onto a physical ESP32 board and deploy it. The project is released under the MIT license.

Copy-paste prompts

Prompt 1
Walk me through flashing the ESP32 firmware from this project to automate my Bluetti AC200L's AC output restart.
Prompt 2
Explain how this project decides it is safe to re-enable the AC200L's output after a power outage.
Prompt 3
How do I set up the Raspberry Pi Python daemon alternative instead of using the ESP32 controller?
Prompt 4
What Bluetooth registers does this project read and write to control the Bluetti AC200L?

Frequently asked questions

What is bluetti-ac200l-autorestart?

A small ESP32-based controller that automatically re-enables a Bluetti AC200L power station's AC output after it drains during an outage and recharges.

What language is bluetti-ac200l-autorestart written in?

Mainly C++. The stack also includes C++, ESP32, Bluetooth LE.

What license does bluetti-ac200l-autorestart use?

MIT license: use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is bluetti-ac200l-autorestart to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is bluetti-ac200l-autorestart for?

Mainly general.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.