This repository provides ESPHome components for integrating the Xiaomi Mijia Bedside Lamp 2 with Home Assistant. It enables full control of the lamp's RGBWW LEDs, front panel touch interface (buttons and slider), and illumination through custom ESPHome components. The firmware replaces the original Xiaomi firmware to eliminate cloud dependencies and enable local-only control. The architecture follows ESPHome's component model with hardware abstraction layers (HAL) for light control and front panel I2C communication. Key features include individually controllable front panel LEDs, light presets with group support, disco mode for immediate updates, night light calibration, and smooth color transitions with hardware-aware handling of low-brightness limitations. The design emphasizes separation of concerns, with distinct modules for color handling, state management, and event processing. Notable technical implementations include a Chain of Responsibility pattern for handling different light modes (off, night, RGB, white), a flexible preset system with group-based activation, and specialized transition handling that avoids attempting smooth color changes at very low brightness levels where the hardware cannot perform them reliably. The firmware maintains compatibility with modern ESPHome versions through active maintenance and timely adaptation to API changes.
This is the top-level manifest repository for the LineageOS Android distribution. It does not contain any application code, libraries, or build scripts. Its sole purpose is to define the set of Git repositories that must be synchronized to build the LineageOS operating system, using Google's `repo` tool. The repository provides a single `default.xml` manifest file that references hundreds of AOSP and LineageOS-specific projects, including kernel variants, hardware drivers, system components, and prebuilt toolchains. Snippet files under `snippets/` add kernel-specific manifests and LineageOS additions. This repository is a configuration artifact, not a software projectβit is the entry point for initializing a local LineageOS build environment. There is no executable code, no test suite, and no reusable software components. The value lies in the curated list of project references and version pins, which enables reproducible builds across a wide range of devices.