skillfed

elkm1-lib

Library for interacting with ElkM1 alarm/automation panel.

elkm1-lib v2.2.15 74.9K downloads/30d#14,773 on PyPI21
Permissive license Active released

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-lib

uv

uv add elkm1-lib

poetry

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 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: Home Automation

Tags

elk m1 panel libraryalarm automation control pythonhome automation elk integrationasync serial tcp panel communicationelk m1xep ethernet controlsecurity panel integration libraryhome assistant elk driver
home-automationalarm-securityasync-io

More Home Automation packages