Home Assistant Core is the open-source home automation platform that powers millions of smart homes. It provides a unified event-driven architecture for integrating, controlling, and automating IoT devices, services, and voice assistants. The system runs as a Python async application with a modular component system: each integration (e.g., lights, sensors, climate, locks) is a self-contained Python package under `homeassistant/components/`, following a consistent pattern of config entries, data update coordinators, and entity platforms. Key entry points include the CLI (`hass`), the web-based frontend (served via aiohttp), WebSocket API, and REST API. Data flows are event-driven: state changes, service calls, and automation triggers propagate through a central bus. External dependencies include hundreds of third-party libraries for device communication (BLE, Zigbee, Z-Wave, MQTT, HTTP), cloud services (Nabu Casa, Google Assistant, Alexa), and media playback (Cast, DLNA). The architecture is a monolith with a plugin system, not microservices, but supports horizontal scaling via separate instances and the 'recorder' component for persistent state history.
This repository is the official open-source implementation of the Matter smart home connectivity standard, developed by the Connectivity Standards Alliance. It provides a comprehensive SDK for building Matter-compliant devices (e.g., lighting, locks, thermostats, sensors) and controllers (e.g., smartphone apps, hubs). The codebase is a large, multi-platform C++ project with a layered architecture: a data model layer defining over 100 clusters (OnOff, Temperature, DoorLock, etc.), an interaction model for read/write/execute/invoke, a transport layer supporting BLE, TCP, and UDP, a security layer for certificate-based attestation and encryption, and a platform abstraction layer for numerous embedded MCUs (ESP32, nRF, Silicon Labs, NXP, etc.) and operating systems (Linux, Android, iOS, Zephyr, FreeRTOS). The SDK includes example applications for device types, reference controller tools (chip-tool, darwin-framework-tool, Android/Kotlin controllers), and extensive test infrastructure. Key entry points are the example app main.cpp files, the chip-tool CLI, and the Python command-line tool. Primary data flows involve commissioning (pairing a device via BLE or network, then establishing secure IP communication) and ongoing cluster interactions (attribute reads/writes, command invocations, event subscriptions). The build system is GN (Google's ninja) with platform-specific overrides, and code generation via ZAP for cluster definitions. External dependencies include OpenThread, BoringSSL, mbedTLS, Pigweed, nlassert, and others. The project is actively maintained with frequent commits, but the sheer number of example apps and platform ports creates maintenance overhead and some duplication.
Eclipse Hono is a cloud-native IoT messaging platform that ingests telemetry and events from devices via multiple protocols (MQTT, CoAP, HTTP, AMQP, LoRa, Sigfox) and routes them to northbound applications over AMQP, Kafka, or Google Pub/Sub. The codebase is modular, comprising protocol adapters, device registry services (JDBC and MongoDB), authentication, command routing, and client libraries. It is built on Vert.x and Quarkus, uses Micrometer for metrics and OpenTracing/OpenTelemetry for distributed tracing. The system handles device registration, credentials management, tenant configuration, connection limits, and resource governance. It includes a CLI tool for consuming telemetry and a comprehensive integration test suite. The repository is actively maintained with frequent commits and CI pipelines.
This is a personal Home Assistant configuration repository for automating a smart home. It uses Home Assistant's core automation system supplemented with AppDaemon for complex Python-based automations, HACS for managing community integrations, and Lovelace for custom UI. The configuration controls lighting, climate, security, media players, vacuum robots, and plant monitoring, with integrations for devices like Philips Hue, Xiaomi Aqara, KEF speakers, LG OLED TV, and Roborock. The repository demonstrates good organization through modular includes for reusable configuration snippets, functional separation of automations by domain, and clear separation between YAML-based and Python-based automation approaches.
Gobot is a Go framework for robotics, physical computing, and the Internet of Things. It provides a consistent hardware abstraction layer (HAL) over dozens of single-board computers (Raspberry Pi, BeagleBone, Intel Edison, Jetson, etc.), microcontrollers (Arduino via Firmata, Digispark), and communication protocols (GPIO, I2C, SPI, BLE, serial, MQTT, NATS, MAVLink). The architecture is modular: platform-specific adaptors implement core interfaces (DigitalPinner, PWMPinner, I2cBusAdaptor, etc.) and are composed from reusable building blocks in the `platforms/adaptors` package. Drivers for sensors, actuators, displays, and robots (Sphero, Parrot drones, DJI Tello, GoPiGo3) are organized by bus type (gpio, i2c, spi, ble, aio, onewire, serial) and share a common lifecycle pattern with event publishing and command registration. A built-in HTTP API server (with optional basic auth and CORS) exposes robot state and commands over REST and Server-Sent Events, and includes an embedded web UI (Robeaux). The framework supports both high-level orchestration via `Robot` and `Manager` and low-level 'metal' usage for direct hardware control. External dependencies include `periph.io` for GPIO, `tinygo.org/x/bluetooth` for BLE, `gocv.io/x/gocv` for computer vision, and `go.bug.st/serial` for serial communication. The codebase is extensively tested with mock filesystem and syscall infrastructure, and uses functional options for configuration throughout.
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).