elkm1-lib
Library for interacting with ElkM1 alarm/automation panel.
What it is and what it does
elkm1_lib is an asynchronous Python library for controlling and monitoring ElkM1 alarm and automation panels. It abstracts the ElkM1 protocol, handling message encoding/decoding and element synchronization so you can interact with zones, lights, and other panel components through a Python object model. The library supports multiple connection modes: plaintext TCP (elk://), TLS-encrypted TCP (elks://, elksv1_0://, elksv1_2://, elksv1_3://), and serial connections, making it flexible for different panel configurations and network setups.
The core workflow is to create an Elk object with a connection URL, call connect() to establish the session, and then register callbacks to respond to panel state changes or message events. The library automatically synchronizes all panel elements (zones, lights, etc.) into memory and notifies your code when they change. It was originally written for Home Assistant integration but works as a general-purpose library for any ElkM1 automation application. A single runtime dependency on pyserial-asyncio-fast keeps the install lightweight.
Use it for:
- Integrate an ElkM1 security panel into a Home Assistant or custom home automation system.
- Monitor zone status changes and trigger actions based on alarm events or sensor input.
- Control lights and other panel-connected devices programmatically over TCP or serial.
- Build a command-line tool or dashboard to query and manage ElkM1 panel state.
- Develop a custom automation application that responds to panel messages in real time.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Asynchronous Python library for communicating with ElkM1 alarm and automation panels over TCP or serial connections, supporting multiple TLS versions and connection modes.
Yes. The library is production-stable, actively maintained, has no known vulnerabilities, and low install friction. It fills a specific niche—ElkM1 panel control—with a clean async API. Install it if you own an ElkM1 panel and need to integrate it into Python automation or home-assistant workflows.
Install
elkm1-lib on PyPI
pip
pip install elkm1-libuv
uv add elkm1-libpoetry
poetry add elkm1-libInstalling elkm1-lib
Before you install
Low install friction with a single async serial dependency. Actively maintained with recent commits and production-stable status. Requires Python 3.11 or higher.
License in practice
Permissive MIT license allows commercial and private use without restriction.
Quickstart
pip install elkm1_lib
from elkm1_lib import Elk
elk = Elk({'url': 'elk://192.168.1.100'})
elk.connect()
elk.run()
Requires Python 3.11 or higher; ElkM1 panel must be reachable at the specified URL (TCP or serial).
Verify before relying
- Whether the library handles reconnection and fault tolerance automatically after network interruption.
- Performance characteristics when monitoring large numbers of zones or elements simultaneously.
- Whether TLS certificate validation can be disabled for self-signed certificates in secure modes.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — pyserial-asyncio-fast |
| Maintenance | actively maintained — 101 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 74,899/month — #14,773 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: elkm1_lib-2.2.15-py3-none-any.whl
Tags
More Home Automation packages
Represents and manipulates IPv4, IPv6, MAC…
permissive · top 5,000 on PyPI
homeassistantHome Assistant is an open-source home…
permissive · top 5,000 on PyPI
python-statemachineDefines finite state machines and statecharts…
permissive · top 5,000 on PyPI
btsocketA Python library for controlling BlueZ…
permissive · top 15,000 on PyPI
aiohomematicAn async Python library for controlling and…
permissive · top 15,000 on PyPI
hass-web-proxy-libProvides base classes and utilities for Home…
permissive · top 15,000 on PyPI
total-connect-clientA Python client library for authenticating with…
permissive · top 15,000 on PyPI
velbus-aioAn asyncio-based Python library for controlling…
permissive · top 15,000 on PyPI
pyriscoPyrisco provides an async Python interface to…
permissive · top 15,000 on PyPI
pymysensorsPython API for communicating with MySensors…
permissive · top 15,000 on PyPI
xknxXKNX is an asynchronous Python library for…
permissive · top 15,000 on PyPI
elmax-apiAn async Python client for the Elmax Cloud API…
permissive · top 15,000 on PyPI
rflinkLibrary and command-line interface for…
permissive · top 15,000 on PyPI
python-snap7Pure Python library for reading and writing…
permissive · top 15,000 on PyPI
aiohueAsynchronous Python library for controlling…
permissive · top 15,000 on PyPI
python-openevse-httpA Python library for asynchronous communication…
permissive · top 15,000 on PyPI