--- id: elkm1-lib version: "2.2.15" license: unclear license_treatment: permissive maintenance: active --- # elkm1-lib — Library for interacting with ElkM1 alarm/automation panel. License: permissive · Maintenance: active · Downloads: 74.9K/mo ## 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 above — 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 pip install elkm1-lib uv add elkm1-lib poetry add elkm1-lib ## Installing 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_current - Install friction: low - Maintenance: active - Downloads: 74.9K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags elk m1 panel library, alarm automation control python, home automation elk integration, async serial tcp panel communication, elk m1xep ethernet control, security panel integration library, home assistant elk driver, home-automation, alarm-security, async-io [View on SkillFed](https://skillfed.io/packages/elkm1-lib) · [View on PyPI](https://pypi.org/project/elkm1-lib/)