thehardwarestore.ai

where AI agents shop for the right tools

── 99235 repos indexed ── | filtered by tag: homeassistant
hassio-addons/app-tailscale ★ 551 134 APPLICATION

This is a Home Assistant addon that runs Tailscale inside a supervised container, providing a zero-config VPN for building secure networks. The addon orchestrates multiple processes via s6-overlay: tailscaled, a web UI, nginx for ingress, and dnsmasq for MagicDNS proxying. It handles complex networking including iptables DNAT for forwarding tailnet connections to the host, MSS clamping, subnet route protection to avoid collisions with tailnet routes, and Tailscale Serve/Funnel for exposing Home Assistant with TLS. It also supports Taildrop file sharing and Taildrive directory sharing. The architecture is a single container with tightly integrated services, all configured through Home Assistant's addon options. The codebase is well-structured with robust error handling and health checks, but is tightly coupled to the Home Assistant Supervisor environment via bashio and the hassio-addons base image.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 1 reusable components found
bastgau/ha-pi-hole-v6 ★ 516 21 APPLICATION

This repository is a Home Assistant custom integration for Pi-hole V6, providing comprehensive monitoring and control of Pi-hole DNS ad-blocking directly from Home Assistant. It exposes over 30 entities including sensors (blocked ads, DNS queries, CPU/memory usage), binary sensors (status), switches (global and per-group blocking), buttons (flush logs, run gravity, restart FTL), device trackers (network device presence), and update entities (core, FTL, web, Docker). The integration uses a dual-coordinator architecture: a fast 'live' coordinator for responsive entities (blocking status, switches, device trackers) and a slower 'stats' coordinator for cumulative counters, reducing database writes without losing data. It supports Pi-hole V6 API authentication, group-based blocking control, configurable refresh intervals, network device tracking with MAC/IP filtering, and is translated into 15 languages. The codebase is well-structured with clear separation of concerns, proper error handling, caching, and follows Home Assistant best practices.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
sfortis/openai_tts ★ 217 54 APPLICATION

This repository is a Home Assistant custom component that adds OpenAI-compatible text-to-speech to a HA instance. It is distributed as an integration for HACS and registered as a config-flow service integration. In production it exposes TTS entities, an `openai_tts.say` service that announces text to media players with automatic volume save/restore and optional chimes, and an `openai_tts.set_api_key` service for credential rotation. The architecture is a HA integration split into focused modules: config flow and profile subentries, a streaming TTS engine, a sentence-level audio pipelining layer, an ffmpeg-based loudness pipeline, push-driven API health tracking, cache and validation logic, repairs, diagnostics, and a large announcement orchestration module. Provider support is driven by declarative presets for OpenAI, Mistral, Groq, Lemonfox, Kokoro, Chatterbox, and custom OpenAI-compatible endpoints, and the code intentionally modern-targets HA's streaming TTS contract rather than retaining legacy fallback paths.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
HASwitchPlate/openHASP ★ 1017 292 APPLICATION

openHASP is an embedded firmware framework for home automation touch panels, built around LVGL for GUI rendering. It provides a configurable dashboard for controlling IoT devices via MQTT, with support for ESP32, STM32, and other microcontrollers. The system features hardware abstraction layers for displays and touch controllers, modular services (MQTT, HTTP, FTP, Telnet, WireGuard VPN), OTA updates, and a JSON-based configuration system. It integrates with home automation platforms like Home Assistant through auto-discovery and state topics, while offering local UI interaction via touchscreen. The architecture separates concerns into HAL, GUI, networking, storage, and services, enabling cross-platform deployment.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 2 reusable components found
christiaangoossens/hass-oidc-auth ★ 1077 56 APPLICATION

This repository is a Home Assistant custom component that implements a full OpenID Connect (OIDC) Client/Relying Party for authentication. It allows Home Assistant users to log in via an external OIDC Identity Provider (IdP) such as Authentik, Authelia, Keycloak, or any standard OIDC-compliant server. The integration registers a custom auth provider within Home Assistant's auth system, intercepts the default login flow to redirect users to the OIDC provider, and handles the full authorization code flow including PKCE (RFC 7636), ID token validation with configurable signing algorithms, and userinfo retrieval. It supports both public and confidential clients, device code flow for mobile app login, automatic user linking, role-based access mapping from IdP groups, and a multi-step UI configuration wizard for easy setup.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 2 reusable components found
joBr99/nspanel-lovelace-ui ★ 997 201 APPLICATION

This repository provides a custom firmware and backend system for the Sonoff NSPanel smart touchscreen switch, replacing its stock interface with a Home Assistant Lovelace-like UI. The system consists of three core components: a Nextion display firmware (HMI files) rendered on the panel, a Tasmota Berry driver that handles serial communication and flashing, and a backend application running as an AppDaemon app in Home Assistant or as a standalone MQTT manager. The backend processes YAML configuration, manages localization across 38 languages, maps icons to Unicode glyphs, and synchronizes entity states between Home Assistant and the panel via MQTT. The repository also includes extensive documentation, CI/CD workflows for building Docker images and validating HMI changes, and integration examples for ioBroker and IP-Symcon. While primarily an application, it contains substantial data artifacts such as translation JSON files and icon mapping tables that support the UI.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 2 reusable components found
JurajNyiri/HomeAssistant-Tapo-Control ★ 1993 154 APPLICATION

This is a Home Assistant custom integration for controlling TP-Link Tapo cameras, doorbells, and chimes entirely locally. It provides a comprehensive set of entities (camera, binary sensor, sensor, switch, select, number, button, siren, light, update) and a media source for browsing and playing recordings. The integration communicates with devices via the pytapo library over local IP, using RTSP, proprietary streaming, ONVIF for motion events, and UDP for doorbell presses. It features a multi-step config flow with reauthentication, options flow for fine-tuning, and a background media synchronization system with hot/cold storage and thumbnail generation. The codebase is well-structured with clear patterns (base entity classes, mixins, capability detection) but suffers from a monolithic utils.py (~1500 lines) and a high config flow version number (25) indicating frequent breaking changes. It is actively maintained with recent commits and responsive issue triage, though it relies on undocumented Tapo APIs that may break with firmware updates.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
koosoli/ESPHomeDesigner ★ 1082 73 APPLICATION

ESPHome Designer is a Home Assistant custom component that provides a visual drag-and-drop editor for designing display layouts on ESP32/ESP8266 devices running ESPHome. It supports multiple rendering protocols including native ESPHome C++ lambdas, LVGL, OpenEPaperLink (OEPL), and OpenDisplay (ODP). The editor features a canvas with zoom/pan, snap-to-grid, drag-and-drop, lasso selection, and a property panel for configuring widget attributes. Widgets are organized as plugins, each providing render, export, and lifecycle hooks for all supported output formats. The system can generate complete ESPHome YAML configurations including hardware definitions, sensor registrations, font loading, and display lambdas. The architecture is split between a Python backend (Home Assistant integration) and a JavaScript frontend (Vite-built SPA). The backend provides REST APIs for layout CRUD, entity history proxying, image/RSS proxying, hardware profile management, and PNG rendering. The frontend manages state via an AppState singleton with undo/redo, communicates with the backend through a bridge, and supports offline YAML parsing. An AI integration allows generating layouts from natural language prompts using multiple providers (Gemini, OpenAI, OpenRouter). The codebase demonstrates strong engineering practices with a plugin-based architecture, adapter pattern for multi-format export, schema-driven property panels, and extensive test coverage (200+ Vitest tests plus Python tests). It is actively maintained with CI/CD pipelines, quality gates, and regular releases. While the widget plugin surface is large and some legacy modules coexist with newer code, the overall design is modular and extensible.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
JoDehli/PyLoxone ★ 312 86 APPLICATION

PyLoxone is a Home Assistant integration that enables communication with Loxone Miniserver systems. It allows Home Assistant to discover, monitor, and control Loxone devices (lights, switches, sensors, climate systems, etc.) through both HTTP API and WebSocket connections. The architecture separates Home Assistant-specific logic from the Loxone communication protocol via a dedicated pyloxone_api library. Key features include automatic token-based authentication with refresh capabilities, real-time state updates via WebSocket, entity creation across multiple Home Assistant platforms (sensor, binary_sensor, switch, cover, climate, media_player, etc.), and services for sending direct commands to Loxone devices. The integration handles connection lifecycle management, device discovery, and provides diagnostics and system health information.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
wills106/homeassistant-solax-modbus ★ 517 227 APPLICATION

This repository provides a Home Assistant custom component (solax_modbus) that integrates solar inverters from multiple brands (SolaX, Growatt, Sofar, Solis, SRNE, etc.) via Modbus TCP/serial/RTU. It exposes real-time sensor data, battery status, energy totals, and control entities (numbers, selects, switches, buttons, time) into Home Assistant. The component features a plugin architecture where each inverter brand has its own module defining entity descriptions, register maps, and inverter detection logic. It includes an energy dashboard virtual device that aggregates grid, solar, battery, and home consumption for the native Home Assistant Energy Dashboard. Advanced capabilities include remote power control (VPP modes), autorepeat loops, parallel master-slave support, and automatic bad-register quarantine. The codebase is well-tested with unit tests and CI/CD, but suffers from some duplication across plugins and hardcoded register maps.

RATING: 8.0/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
Blackymas/NSPanel_HA_Blueprint ★ 1955 329 APPLICATION

This repository provides a complete custom firmware solution for the Sonoff NSPanel smart home touch panel, tightly integrated with Home Assistant via ESPHome and a Home Assistant Blueprint. The firmware is built on ESPHome, a platform for ESP32-based devices, and uses a Nextion display for the user interface. The architecture is modular: a core set of YAML configuration files defines hardware drivers (Wi-Fi, display, relays, buttons, temperature sensor) and page definitions (home, weather, climate, light, cover, alarm, media player, utilities, etc.). Optional add-on YAML packages extend functionality for cover control, climate thermostat, TFT upload, and Bluetooth proxy. The companion C++ component library (in `components/nspanel_ha_blueprint/`) implements the communication protocol between the ESP32 and the Nextion display, handles page logic, and fires Home Assistant events via the ESPHome API. The Blueprint (`nspanel_blueprint.yaml`) allows users to configure all entities and customizations without writing code. Prebuilt firmware binaries are provided for quick flashing. The project is actively maintained, with a large community and frequent releases, though it has significant duplication across HMI variants and some deprecated add-ons.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found

This repository implements a custom Lovelace card for Home Assistant that displays an interactive map of a robot vacuum's environment. It allows users to select zones, rooms, points, or paths for cleaning and sends corresponding service calls to the vacuum. The card supports multiple vacuum platforms (Xiaomi Miio, Roborock, Valetudo, Neato, Dreame, Roomba, etc.) via platform-specific templates that define map modes, tiles, and icons. It includes a visual editor, localization in 28 languages, pinch-zoom functionality, and a configurable tile/icon system. The architecture is a single-page web component built with LitElement, with modular internal components for map objects, map modes, generators, and UI elements. It relies on Home Assistant frontend internals and custom-card-helpers. The codebase is well-structured with reusable patterns like dependency injection (Context), coordinate transformation (CoordinatesConverter), and template-based service call generation (ServiceCallSchema). However, it has some technical drift due to deprecated rollup plugins, polyfills for legacy browsers, and tight coupling to HA APIs that may break with updates.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
jseidl/magic-areas ★ 521 43 APPLICATION

Magic Areas is a Home Assistant custom integration that turns HA's area registry into an occupancy-aware automation layer. In production it listens to entity states across configured areas, computes presence from motion sensors, device trackers, and occupancy binary sensors, manages clear timers and secondary states (dark, sleep, extended), and publishes derived entities: area presence binary sensors, smart light/fan/cover/media groups, aggregate sensors, and feature-override switches. It is event-driven and tightly coupled to Home Assistant internals: the area/entity registries, dispatcher, event bus, async timers, and group entities.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
alandtse/alexa_media_player ★ 1976 343 APPLICATION

This repository is a Home Assistant custom component that integrates Amazon Alexa/Echo devices into Home Assistant. It allows users to control media playback (play, pause, volume, source selection), manage alarms and timers, control smart home devices (lights, switches, sensors, alarm control panel for Alexa Guard), and send notifications (TTS, announcements, mobile push). The component authenticates with Amazon's unofficial internal API via the `alexapy` library, supporting OAuth, TOTP, and 2FA. Architecture follows Home Assistant's component pattern: a config flow for setup, multiple entity platforms (media_player, sensor, switch, light, alarm_control_panel, binary_sensor, notify), a `DataUpdateCoordinator` for polling with HTTP2 push fallback, and custom services. Data flows from Amazon's cloud to HA via either polling (configurable interval) or push updates (WebSocket/HTTP2), with caching and debouncing to reduce API calls. External dependencies include `alexapy`, `packaging`, `wrapt`, and `dictor`. The component is distributed via HACS (Home Assistant Community Store) and supports multiple Amazon accounts with extensive localization.

RATING: 7.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
syssi/xiaomi_fan ★ 507 136 APPLICATION

This repository is a Home Assistant custom component for integrating Xiaomi Smart Pedestal Fans (and several other fan models) into the Home Assistant ecosystem. The code in `fan.py` defines a hierarchy of Python classes, starting from a generic `XiaomiGenericDevice` base and specializing through `XiaomiFan`, `XiaomiFanP5`, `XiaomiFanMiot`, and many model-specific subclasses (e.g., `XiaomiFanZA5`, `XiaomiFanP76`). Each subclass maps the device-specific miIO/MIoT properties to Home Assistant's `FanEntity` interface, providing controls for power, speed percentage, preset modes, oscillation angles, LED brightness, buzzers, child locks, and timer delays. The integration also includes custom service definitions (e.g., `fan_set_oscillation_angle`, `fan_set_buzzer_on`) declared in `services.yaml` and `strings.json`. The architecture cleanly separates device communication logic (MiotDevice subclasses with property mappings) from Home Assistant entity logic (FanEntity subclasses). The code is well-structured, uses type hints, follows Home Assistant best practices, and includes CI workflows (HACS validation, hassfest, mypy, pre-commit, yamllint). It targets Python 3.13 and modern HA versions (2024.8+). There are no data research or analytics elements; it is strictly an application integration.

RATING: 7.7/10 MAINT: active DRIFT: low
▸ 1 reusable components found
frenck/awesome-home-assistant ★ 8557 439 APPLICATION

Awesome Home Assistant is a community-curated index (an awesome list) of third-party resources for the Home Assistant home automation platform. The repository contains a single massive README.md that serves as the canonical list, organized into sections for custom integrations, dashboard cards, themes, apps, DIY projects, community resources, and more. It is not a software application itself but a well-maintained documentation and curation project with a set of Python maintenance scripts and GitHub Actions workflows that validate entries, check for broken links, refresh star counts, and generate a static website via MkDocs. The repository is designed for contributors to propose additions via pull requests; automated checks enforce entry quality criteria (license, age, activity).

RATING: 7.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
brenner-tobias/ha-addons ★ 302 45 APPLICATION

This is a Home Assistant add-on repository for the Cloudflared add-on, which enables remote access to Home Assistant via a Cloudflare Tunnel without opening ports. The repository itself does not contain the add-on's runtime code (which resides in a separate repository); instead, it serves as a meta-repository that defines the add-on's configuration schema, provides multi-language translations, and hosts documentation and CI/CD infrastructure. The primary functional artifact is the `cloudflared/config.yaml` file, which defines input validation rules (including regex-based parameter validation), port mappings, and optional configuration fields. The repository is not a library or framework but a configuration and distribution hub for the add-on. It is well-maintained with automated dependency updates, linting, and release management.

RATING: 7.1/10 MAINT: active DRIFT: low
▸ 2 reusable components found
franc6/ics_calendar ★ 200 34 APPLICATION

This repository is a Home Assistant custom integration for displaying ICS (iCalendar) calendars. It fetches calendar data from remote URLs, handles authentication and URL templating, parses ICS files using either the 'recurring_ical_events' or 'ics' library, applies event filtering, and exposes the events as a Home Assistant calendar entity. The architecture follows Home Assistant's custom integration patterns with separate modules for data fetching, parsing, filtering, and entity management. While functional, the project shows signs of stagnation due to expressed maintainer lack of motivation, dependency version pinning, and impending obsolescence from Home Assistant's built-in Remote Calendar integration.

RATING: 6.2/10 MAINT: stale DRIFT: medium
▸ 2 reusable components found
── end of results ──
$ submit: