olarmflowclient


Nameolarmflowclient JSON
Version 1.0.5 PyPI version JSON
download
home_pageNone
SummaryThe official asynchronous Python client for the Olarm Public API.
upload_time2025-10-30 12:21:02
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords olarm api security alarm asyncio
VCS
bugtrack_url
requirements aiohttp paho-mqtt pytest pytest-asyncio ruff
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # OlarmFlowClient

## About Olarm

[Olarm](https://www.olarm.com) is a smart security company that transforms existing alarm systems into connected, app-controlled security solutions. Their products work with major alarm panels (Paradox, DSC, Texecom, IDS, Honeywell and more) to provide remote control, real-time alerts, and comprehensive security management from anywhere.

## Python Client

This is the official asynchronous Python client for interacting with the Olarm Public API.
For more information about our Olarm Public API, please see our official API documentation on our platform.

## Features

*   Fetch your devices information and state
*   Send commands to devices (arm, disarm, stay, sleep, bypass zones, control PGM etc..).
*   Subscribe to real-time state changes and events using MQTT

## Quick Start

1. Sign up at https://login.olarm.com
2. Go to API section, generate token
3. `pip install olarmflowclient`
4. Copy this code:
```
import asyncio
from olarmflowclient import OlarmFlowClient

async def main():
    async with OlarmFlowClient("your-token-here") as client:
        devices = await client.get_devices()
        print(f"You have {len(devices['data'])} devices")

# For non-async code:
import asyncio
result = asyncio.run(main())
```

Please check the examples for more uses!

## Examples

The repository includes example scripts that demonstrate how to use the library:

```bash
# Run the fetch devices example
python examples/fetch_devices.py --api-token YOUR_API_TOKEN

# Run the fetch devices example
python examples/fetch_device.py --api-token YOUR_API_TOKEN --device-id DEVICE_ID

# Run the MQTT events listener example
python examples/subscribe_device_mqtt.py --api-token YOUR_API_TOKEN --user-id YOUR_USER_ID
```
NOTE: you can find your User ID in the Olarm user portal

This library provides asynchronous access using `aiohttp` for API calls and `paho-mqtt` for real-time event handling via MQTT.

## Development

1.  Clone the repository.
2.  Setup venv if necessary
    ```bash
    python3 -m venv venv
    source venv/bin/activate # other shells might be different 
    ```
3.  Install dependencies:
    ```bash
    pip3 install -r requirements.txt
    ```
4.  Format code and check for linting errors using Ruff:
    ```bash
    # Check for issues
    python3 -m ruff check .

    # Fix issues and format code
    python3 -m ruff check . --fix
    python3 -m ruff format .
    ```

## Running Tests

The project uses pytest and pytest-asyncio for testing. To run the tests:

1. Make sure you have the testing dependencies installed:
   ```bash
   pip install -r requirements.txt
   ```

2. Run the tests with pytest:
   ```bash
   python -m pytest
   ```

## Issues / Feature Requests

Please log issues and feature requests in Github issues 👆

## Contributing

Contributions are welcome! Please open an issue or submit a pull request.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "olarmflowclient",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "olarm, api, security, alarm, asyncio",
    "author": null,
    "author_email": "Olarm <support@olarm.com>",
    "download_url": "https://files.pythonhosted.org/packages/14/25/894ed6619840aaf14e20ed6dbd2a44a212304c9171156320403fc6c25b3f/olarmflowclient-1.0.5.tar.gz",
    "platform": null,
    "description": "# OlarmFlowClient\n\n## About Olarm\n\n[Olarm](https://www.olarm.com) is a smart security company that transforms existing alarm systems into connected, app-controlled security solutions. Their products work with major alarm panels (Paradox, DSC, Texecom, IDS, Honeywell and more) to provide remote control, real-time alerts, and comprehensive security management from anywhere.\n\n## Python Client\n\nThis is the official asynchronous Python client for interacting with the Olarm Public API.\nFor more information about our Olarm Public API, please see our official API documentation on our platform.\n\n## Features\n\n*   Fetch your devices information and state\n*   Send commands to devices (arm, disarm, stay, sleep, bypass zones, control PGM etc..).\n*   Subscribe to real-time state changes and events using MQTT\n\n## Quick Start\n\n1. Sign up at https://login.olarm.com\n2. Go to API section, generate token\n3. `pip install olarmflowclient`\n4. Copy this code:\n```\nimport asyncio\nfrom olarmflowclient import OlarmFlowClient\n\nasync def main():\n    async with OlarmFlowClient(\"your-token-here\") as client:\n        devices = await client.get_devices()\n        print(f\"You have {len(devices['data'])} devices\")\n\n# For non-async code:\nimport asyncio\nresult = asyncio.run(main())\n```\n\nPlease check the examples for more uses!\n\n## Examples\n\nThe repository includes example scripts that demonstrate how to use the library:\n\n```bash\n# Run the fetch devices example\npython examples/fetch_devices.py --api-token YOUR_API_TOKEN\n\n# Run the fetch devices example\npython examples/fetch_device.py --api-token YOUR_API_TOKEN --device-id DEVICE_ID\n\n# Run the MQTT events listener example\npython examples/subscribe_device_mqtt.py --api-token YOUR_API_TOKEN --user-id YOUR_USER_ID\n```\nNOTE: you can find your User ID in the Olarm user portal\n\nThis library provides asynchronous access using `aiohttp` for API calls and `paho-mqtt` for real-time event handling via MQTT.\n\n## Development\n\n1.  Clone the repository.\n2.  Setup venv if necessary\n    ```bash\n    python3 -m venv venv\n    source venv/bin/activate # other shells might be different \n    ```\n3.  Install dependencies:\n    ```bash\n    pip3 install -r requirements.txt\n    ```\n4.  Format code and check for linting errors using Ruff:\n    ```bash\n    # Check for issues\n    python3 -m ruff check .\n\n    # Fix issues and format code\n    python3 -m ruff check . --fix\n    python3 -m ruff format .\n    ```\n\n## Running Tests\n\nThe project uses pytest and pytest-asyncio for testing. To run the tests:\n\n1. Make sure you have the testing dependencies installed:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n2. Run the tests with pytest:\n   ```bash\n   python -m pytest\n   ```\n\n## Issues / Feature Requests\n\nPlease log issues and feature requests in Github issues \ud83d\udc46\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "The official asynchronous Python client for the Olarm Public API.",
    "version": "1.0.5",
    "project_urls": {
        "Homepage": "https://www.olarm.com",
        "Repository": "https://github.com/olarmtech/olarmflowclient-python"
    },
    "split_keywords": [
        "olarm",
        " api",
        " security",
        " alarm",
        " asyncio"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "07b31177f637b362b85f009a1deb1709f0de6a47a8266290965dd175b50303e4",
                "md5": "cc1132ab5009e5c2ee14d5759efee396",
                "sha256": "eca639ad2f90db96675b4f85fdde3f770187a7dd11a5bce0faad999778a195fa"
            },
            "downloads": -1,
            "filename": "olarmflowclient-1.0.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cc1132ab5009e5c2ee14d5759efee396",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 13863,
            "upload_time": "2025-10-30T12:21:00",
            "upload_time_iso_8601": "2025-10-30T12:21:00.755594Z",
            "url": "https://files.pythonhosted.org/packages/07/b3/1177f637b362b85f009a1deb1709f0de6a47a8266290965dd175b50303e4/olarmflowclient-1.0.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1425894ed6619840aaf14e20ed6dbd2a44a212304c9171156320403fc6c25b3f",
                "md5": "04206e2d9c04049665ce8e36c19312f4",
                "sha256": "1344eb201704c4749ff4a060c14eb625ce4172a3da20c9db2e5108f0844daca3"
            },
            "downloads": -1,
            "filename": "olarmflowclient-1.0.5.tar.gz",
            "has_sig": false,
            "md5_digest": "04206e2d9c04049665ce8e36c19312f4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 19931,
            "upload_time": "2025-10-30T12:21:02",
            "upload_time_iso_8601": "2025-10-30T12:21:02.101032Z",
            "url": "https://files.pythonhosted.org/packages/14/25/894ed6619840aaf14e20ed6dbd2a44a212304c9171156320403fc6c25b3f/olarmflowclient-1.0.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-30 12:21:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "olarmtech",
    "github_project": "olarmflowclient-python",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "aiohttp",
            "specs": [
                [
                    ">=",
                    "3.12.0"
                ]
            ]
        },
        {
            "name": "paho-mqtt",
            "specs": [
                [
                    ">=",
                    "2.1.0"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "7.0.0"
                ]
            ]
        },
        {
            "name": "pytest-asyncio",
            "specs": [
                [
                    ">=",
                    "0.21.0"
                ]
            ]
        },
        {
            "name": "ruff",
            "specs": [
                [
                    ">=",
                    "0.0.267"
                ]
            ]
        }
    ],
    "lcname": "olarmflowclient"
}
        
Elapsed time: 2.37118s