v1.0.0 - First release
Features
- Async Python client for iAlarm-MK alarm panels via the local Meian TCP protocol
- Arm Away, Arm Stay, Arm Partial, Disarm, Cancel Alarm
- Read alarm status, zone list, and network info
- Framed two-phase socket read: large MK7 responses (>1024 bytes) always received in full
- TCP keep-alive (
SO_KEEPALIVE) to prevent idle connection drops at the OS level - Application-level keepalive: background task polls status every 30 s to prevent panel idle timeouts
- Auto-reconnect: each command retries once on connection drop before raising
- Concurrent-safe: internal
asyncio.Lockserializes all commands (Home Assistant coordinator safe) - Async context manager support (
async with) - Type-safe dataclasses:
AlarmStatusModel,ZoneModel,NetworkInfoModel - Structured exceptions:
IAlarmMkConnectionError,IAlarmMkLoginError,IAlarmMkAlarmError - Comprehensive debug logging at every protocol step
Supported panels
| Model | Default TCP port |
|---|---|
| iAlarm MK7 | 8000 |
| iAlarm MK2 | 18034 |
Full Changelog: https://github.com/VoidElle/open-ialarm-mk-local-api/commits/v1.0.0