Custom ESPHome components. The components/ directory contains components that can be used with the ESPHome external_components feature.
| Component | Description |
|---|---|
| crow_alarm_panel | Integration for Arrowhead Crow alarm panels via the keypad bus |
uv is used to manage the Python build environment so that components can be compiled and tested locally.
- Install uv: https://docs.astral.sh/uv/getting-started/installation/
- Run
uv sync— this creates a.venvusing Python 3.13 (3.14+ is not supported due to missing binary wheels for PlatformIO dependencies)
commitlint is included in the dev dependency group, so after uv sync you can lint commit messages with:
# Lint an explicit message
uv run commitlint "feat: add keypad monitor fixture"
# Lint the latest commit
uv run commitlint --hash HEADTo enforce this automatically when creating commits, install the commit-msg hook:
uv run pre-commit install --hook-type commit-msgA sample test configuration is provided at crow_alarm_panel_test.yaml. Create a secrets.yaml file with your credentials (see ESPHome docs), then run:
# Validate the configuration
uv run esphome config crow_alarm_panel_test.yaml
# Compile the firmware
uv run esphome compile crow_alarm_panel_test.yamlReference the components/ directory via external_components:
external_components:
- source:
type: git
url: https://github.com/dan-s-github/esphome-components
ref: main
components: [crow_alarm_panel]