Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@ accessory required (see `tests/`).

`majordom-homekit` is a standalone library — import it into your own app, or run **just this
integration** interactively (discover, pair, control, and inspect devices from a prompt) with no Hub.
It discovers IP accessories over mDNS (BLE accessories need a BLE adapter); no external service is
required.
It discovers IP accessories over mDNS; no external service is required.

See **[Standalone mode](https://docs.majordom.io/device-integration/standalone)** for the interactive
CLI, watch mode, and the programmatic API.
Expand All @@ -60,28 +59,30 @@ CLI, watch mode, and the programmatic API.

- **Protocol / platform:** Apple HomeKit Accessory Protocol (HAP) via the
[`parker-aiohomekit`](https://pypi.org/project/parker-aiohomekit/) fork of `aiohomekit`.
- **Transport(s):** IP (Wi-Fi / Ethernet, discovered via mDNS); BLE for BLE accessories.
- **Transport(s):** IP (Wi-Fi / Ethernet, discovered via mDNS). BLE is not supported yet: discovery
and pairing are in progress, and the transport stays disabled until the encrypted session is
verified on hardware.
- **Supported devices:** HomeKit-compatible accessories — lights, plugs, switches, sensors, locks.
- **Credentials needed to pair:** `code` (the accessory's 8-digit HomeKit setup code).

### Required harness

- **Hardware adapters:** a BLE adapter only if pairing BLE accessories; IP accessories need none.
- **Hardware adapters:** none.
- **Third-party software services:** none — `aiohomekit` speaks HAP directly.
- **OS / permissions:** mDNS on the LAN for discovery; BLE access for BLE accessories.
- **OS / permissions:** mDNS on the LAN for discovery.

### Protocol stack (OSI)

| OSI layer | Protocol | Implemented by |
|-----------|----------|----------------|
| Application (7) | HAP characteristics / services | **this integration** (via `aiohomekit`) |
| Session (5) | Pair-Setup / Pair-Verify (SRP, Ed25519) | library (`aiohomekit`) |
| Transport (4) | TCP (IP) / GATT (BLE) | OS |
| Network + below (1–3) | IP over Wi-Fi / Ethernet (or BLE) | OS |
| Transport (4) | TCP (IP) | OS |
| Network + below (1–3) | IP over Wi-Fi / Ethernet | OS |

### Progress

- [x] Discovery services registered (mDNS via `zeroconf_discovery_service`; BLE where applicable); cancel closures called in `stop`
- [x] Discovery services registered (mDNS via `zeroconf_discovery_service`); cancel closures called in `stop`
- [x] Discovery listeners fire and call `controller_did_receive_discovery`
- [x] Re-discovery of already-paired accessories on reconnect (`controller_did_connect_device`)
- [x] Device pairing (HAP pair-setup with the setup code)
Expand All @@ -94,6 +95,7 @@ CLI, watch mode, and the programmatic API.
- [x] Availability tracking while running (`controller_did_lose_device` / `last_error`)
- [x] Graceful shutdown in `stop`
- [x] Tests pass against a fake HAP accessory server (`tests/`)
- [ ] BLE accessories (discovery and pairing in progress; disabled until the encrypted session is verified on hardware)

### Notes

Expand Down
Loading