# govee-ble-local: Brady-Woods/govee-ble-local

> Source: <https://reversedwithai.com/p/govee-ble-local-1c199484>
> Published: 2026-10-26 04:00:47+00:00

## Evidence at a glance

Based on the linked sources. The author's reported result and independent confirmation are separate checks.

- AI involvement
- Reported models: Claude. Tools: bleak, bleak-retry-connector, cryptography, kaitaistruct. The writeup below describes the work attributed to AI.
- Reported result
- Works. This is the directory's source-based outcome classification.
- Independent confirmation
- Not reported.
- Human work and limitations
- The library is actively maintained with a focus on reducing test suite bloat while maintaining coverage for complex device behaviors like segment tinting and scene uploads.

### Original sources

## What was done

A Python library for local Govee BLE device control, reverse-engineered from the Govee Home app and hardware. It implements AES-ECB+RC4 handshakes and command framing, serving as the protocol engine for the hass-govee-ble-local Home Assistant integration.

The `govee-ble-local` library provides local Bluetooth Low Energy (BLE) control for Govee devices. It implements a custom protocol engine featuring AES-ECB+RC4 handshakes, 20-byte command framing, multi-packet scene uploads, and status read-back. The protocol was reverse-engineered from the Govee Home app and verified against real hardware, specifically the H60A6 Ceiling Light Pro. Other supported SKUs are modeled from the app and may not be fully hardware-verified. The library is designed to be standalone but serves as the protocol engine for the `hass-govee-ble-local` Home Assistant integration. The author reports that behavior may change with device firmware updates. Operational limits include strict timing constraints; for example, an operation deadline or a poll's connection limit can truncate command retries, leading to `GoveeBleTimeout` errors. Additionally, certain firmware, such as the H5083, may fail to process time-sync frames from unpaired sessions, causing connection failures under tight polling intervals. Development and testing have been supported by the Claude Opus 5.5 AI model, which assisted in refactoring and culling test suites. [Source: govee-ble-local README](https://raw.githubusercontent.com/brady-woods/govee-ble-local/HEAD/README.md)

## Reproduce it

```
pip install govee-ble-local; see the library's Quick Start guide for implementing device discovery and control via the `create_device` and `discover` methods.
```


