{"id":17919929,"url":"https://github.com/eavanvalkenburg/pysiaalarm","last_synced_at":"2025-04-05T19:14:21.983Z","repository":{"id":43405393,"uuid":"232558856","full_name":"eavanvalkenburg/pysiaalarm","owner":"eavanvalkenburg","description":"A python package to connect to a SIA DC-09 based alarm system.","archived":false,"fork":false,"pushed_at":"2023-10-04T14:05:23.000Z","size":497,"stargazers_count":30,"open_issues_count":23,"forks_count":25,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-03-15T01:22:27.563Z","etag":null,"topics":["alarm-system","python","python3","sia","siadc-09"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eavanvalkenburg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-08T12:30:45.000Z","updated_at":"2024-06-18T22:37:39.766Z","dependencies_parsed_at":"2024-06-18T22:54:01.915Z","dependency_job_id":null,"html_url":"https://github.com/eavanvalkenburg/pysiaalarm","commit_stats":{"total_commits":147,"total_committers":5,"mean_commits":29.4,"dds":0.4013605442176871,"last_synced_commit":"ec88a41d4dbb7b97026196d974542c6964b29f89"},"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eavanvalkenburg%2Fpysiaalarm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eavanvalkenburg%2Fpysiaalarm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eavanvalkenburg%2Fpysiaalarm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eavanvalkenburg%2Fpysiaalarm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eavanvalkenburg","download_url":"https://codeload.github.com/eavanvalkenburg/pysiaalarm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247386266,"owners_count":20930619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alarm-system","python","python3","sia","siadc-09"],"created_at":"2024-10-28T20:19:57.598Z","updated_at":"2025-04-05T19:14:21.955Z","avatar_url":"https://github.com/eavanvalkenburg.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![CI](https://github.com/eavanvalkenburg/pysiaalarm/workflows/CI/badge.svg?branch=master)\n![Build](https://github.com/eavanvalkenburg/pysiaalarm/workflows/Build/badge.svg)\n[![PyPI version](https://badge.fury.io/py/pysiaalarm.svg)](https://badge.fury.io/py/pysiaalarm)\n\n\u003cH1\u003epySIAAlarm\u003c/H1\u003e\n\nPython package for creating a client that talks with SIA-based alarm systems. Currently tested using a Ajax Systems alarm system. If you have other systems please reach out.\n\n\n\u003cH2\u003eDescription\u003c/H2\u003e\n\nThis package was created to talk with alarm systems using the SIA protocol, it was tested using a Ajax system, but should support all defined SIA codes. \nIt either creates a new thread with a TCP Server or a asyncio coroutine running bound to the host and port, the alarm system acts a client that sends messages to that server and the server acknowledges the messages and call the supplied function.\n\nThe asyncio version seems to be faster but that depends on your system.\n\n\u003cH2\u003eConfig\u003c/H2\u003e\n\nChoose to use the Threaded approach or a Asyncio approach\n\n\u003cH3\u003eSIAClient\u003c/H3\u003e\n\nThreaded version:\n```python \nfrom pysiaalarm import SIAClient, SIAAccount\n``` \nAsyncio version:\n```python \nfrom pysiaalarm.aio import SIAClient, SIAAccount\n``` \n\n\nThe SIAClient takes these arguments:\n\n- host: if there is a specific host to talk to, usually has '' for localhost.\n- port: the TCP port your alarm system communicates with.\n- accounts: list of type SIAAccount that are to be allowed to send messages to this server\n- function: a function that will be called for every event that it handles, takes only a SIAEvent as parameter and does not pass back anything.\n\n\u003cH3\u003eSIAAccount\u003c/H3\u003e\nSIAAccount takes these arguments:\n\n- account_id: the account id as 3-16 ASCII hex characters.\n- [optional] key: encryption key specified in your alarm system 16, 24, or 32 ASCII characters\n- [optional] allowed_timeband: encrypted messages have a timestamp and those are checked against this timeband, by default the timestamp is allowed between -40 and +20 seconds comparing the timestamp in the message and the current timestamp of the system running the server.\n\nSee [`tests/run.py`](tests/run.py) or [`tests/run_aio.py`](tests/run_aio.py) for a complete sample.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feavanvalkenburg%2Fpysiaalarm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feavanvalkenburg%2Fpysiaalarm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feavanvalkenburg%2Fpysiaalarm/lists"}