Repository navigation
Home
Documentation hub for the Home Assistant Crow / AAP IP Module Integration (crowipmodule).
Connects Crow Runner 8/16, Arrowhead Alarm Products (AAP) and compatible alarm panels to Home Assistant through the IP Module (ESIM/TCP), over a purely local TCP connection.
This project has three parallel documentation tracks. Start by finding your version, then follow the matching track.
| Channel | Version | Home Assistant | Documentation |
|---|---|---|---|
| 🧪 Pre-release | 2.1.0-beta.2 |
2026.9.3+ | HA 2026.09 Development Branch |
| ✅ Stable | 2.0.0 |
2025.12 – 2026.8 | Former "v1.2.8 and higher" docs — see Archived Documentation |
| 🗄️ Legacy | pre-1.2.8
|
older | Archived Documentation |
Which one do I want? Running Home Assistant 2026.9.3 or newer → take the pre-release. On 2026.8 or older → stay on stable
2.0.0; the pre-release will not install there.
The current development line lives on branch HA2026_09_dev, released as 2.1.0-beta.2.
Read first → HA 2026.09 Development Branch
Highlights:
- Targets Home Assistant 2026.9.3, which requires Python 3.14.2+.
- Removes the deprecated
DeviceInfo.via_device(Home Assistant deletes it in 2027.8). - Ships its own brand images (
brand/), so the integration has a proper icon without needing the brands repository. - Moves per-entry state to
entry.runtime_data, and adds zone sub-devices linked to the hub. - Arms reliably again on panels that wait for the user code, with a new, translated
Arm Sequence option (
command_then_keypad/command_only). - No Python dependency to install — the panel driver is bundled with the integration.
Engineering documentation (canonical, versioned in the repository)
| Document | Audience | Contents |
|---|---|---|
| Architectural Design Document | Maintainers, reviewers | Context, design decisions, runtime view, HA conformance, risks |
| Software Design Document | Implementers | Modules, data models, protocol tables, entity contracts |
| Workflows and Diagrams | Everyone | Mermaid diagrams of setup, data flow, commands, lifecycle |
Links
- Release notes — 2.1.0-beta.2
- CHANGELOG.md
- README.md
- Architectural Design Document (raw Markdown)
- Software Design Document (raw Markdown)
-
GitDiagram — interactive architecture map
(reads the default branch only, so it currently shows the legacy
masterarchitecture)
- HACS → Crow/AAP Alarm IP Module → ⋮ → Redownload.
- Enable Show beta versions if the pre-release is not listed.
- Install
2.1.0-beta.2and restart Home Assistant.
Manual installs: copy custom_components/crowipmodule/ from the
release archive
into config/custom_components/.
The production release for Home Assistant 2025.12 – 2026.8. It uses the same Monolithic Local
Controller model — a direct local TCP implementation with no external Python library — but without
the 2026.9 API migration, the extra sensor/button platforms, diagnostics, or brand assets.
The documentation for this generation is preserved unchanged in the archive:
- Developer Documentation (v1.2.8+) — installation, the UI configuration wizard, entities, troubleshooting.
- Technical Design Document (v1.2.8+) — architecture, protocol handling, state machine, file breakdown.
Everything below is kept for historical reference only. It describes releases that are no longer developed.
→ Archived Documentation index
| Page | Describes |
|---|---|
| Developer & Technical Reference Guide | The original dependency-based implementation (pre-1.2.8) |
| Technical Design Document | Architecture for the pycrowipmodule-based releases |
| Developer Documentation (v1.2.8+) | User guide for the stable 2.0.0 generation |
| Technical Design Document (v1.2.8+) | Design for the stable 2.0.0 generation |
| Archived Home Landing Page | The previous version of this page |
-
Give the IP Module a static IP address and confirm it responds on TCP port
5002. - Install the integration (HACS or manual) and restart Home Assistant.
- Settings → Devices & Services → Add Integration → Crow/AAP Alarm IP Module.
- Work through the wizard: connection details → areas → outputs → zones.
- Name the zones meaningfully and set each zone's type (window, door, motion, smoke, …) — the type decides the device class and which sub-device the sensor is grouped under.
| Platform | Example | Notes |
|---|---|---|
alarm_control_panel |
alarm_control_panel.house |
Arm Away, Arm Home (Stay), Disarm, Trigger |
binary_sensor |
binary_sensor.front_door |
One per zone, with alarm/bypass/tamper attributes |
binary_sensor |
binary_sensor.mains_power |
Six diagnostic system statuses |
sensor |
sensor.system_status |
Human-readable summary ("Ready", "ALARM", …) |
sensor |
sensor.house_last_alarm |
Which zone last alarmed, per area |
switch |
switch.gate |
Board outputs (momentary toggle) |
button |
button.relay_1 |
Chime toggle and the two board relays |
| Symptom | Cause and fix |
|---|---|
| "Connection Refused" | Something else holds the single TCP socket. Older firmware allowed only one client; the integration now retries with exponential backoff (10 s → 60 s). |
| "Unknown" on startup | The panel is still dumping state. The integration re-broadcasts all state ~2 s after connecting. |
| Entities show Unavailable | The TCP connection dropped. Availability is driven by the live connection state by design, so "Unavailable" always means "unknown", never "disarmed". |
| Status never updates | Make sure the IP Module is configured to send ASCII messages. |
| Arming does nothing | The panel is waiting for your user code. Set Arm Sequence to Command, then code + Enter and make sure the area has a code. |
| Two panels collide | Known limitation in the 2.1.x development line: zone/sensor/output/button unique IDs are global, not per config entry. The alarm panel is already entry-scoped. |
Enable detailed logging:
logger:
default: info
logs:
custom_components.crowipmodule: debug- Repository
- Releases
- Issues
- Pull requests
- Upstream fork source — febalci/ha_pycrowipmodule
- Home Assistant community thread
Crow is a trademark of its respective owner. This is an unofficial, community-maintained integration and is not affiliated with or endorsed by Crow Electronic Engineering or Arrowhead Alarm Products. Brand images in this project use the product name descriptively and reproduce no vendor logo artwork.