Skip to main content

The official asynchronous Python client for the Olarm Public API.

Project description

OlarmFlowClient

About Olarm

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

# 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
    python3 -m venv venv
    source venv/bin/activate # other shells might be different 
    
  3. Install dependencies:
    pip3 install -r requirements.txt
    
  4. Format code and check for linting errors using Ruff:
    # 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:

    pip install -r requirements.txt
    
  2. Run the tests with pytest:

    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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

olarmflowclient-1.0.6.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

olarmflowclient-1.0.6-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file olarmflowclient-1.0.6.tar.gz.

File metadata

  • Download URL: olarmflowclient-1.0.6.tar.gz
  • Upload date:
  • Size: 19.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for olarmflowclient-1.0.6.tar.gz
Algorithm Hash digest
SHA256 13d7b2a745a1df828f4389dcb453cdd9d89cd5f4e1aa5ef5859c843974e8ab2e
MD5 892ba725f5c50bc551c8b0a3b7de0416
BLAKE2b-256 a4265925238fe052662d43b87dc7c79356375c2828bb437e6fca8b11abb6cc3b

See more details on using hashes here.

File details

Details for the file olarmflowclient-1.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for olarmflowclient-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 36730feb1a982a055b26eb860dafffed9406d0ad965cd86ba84eaafbfab14c0b
MD5 8b0d97e5c1cde4d3abf180cfa2d81f5f
BLAKE2b-256 ca7412520333223767d024aa0d41c291a3b5f6609f28420bd5e38c21e050cd8c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page