Skip to main content

Asynchronous API Library to work with Elmax devices

Project description

Python Elmax API client

Elmax Logo

Asynchronous Python API client for interacting with the Elmax Cloud services, via HTTP apis.

Release Build Status Testing Status Documentation

Installation

Use the package manager pip to install Python Elmax API client:

$ pip3 install elmax-api --user

or, to install it globally, use the following command

$ pip3 install elmax-api

Usage

import asyncio

from elmax_api.http import Elmax
from elmax_api.model.command import SwitchCommand

MY_USERNAME = 'TYPE_HERE_YOUR_ELMAX_EMAIL'
MY_PASSWORD = 'TYPE_HERE_YOUR_ELMAX_PASSWORD'


async def main():
    # Instantiate the Elmax API client
    client = Elmax(username=MY_USERNAME, password=MY_PASSWORD)

    # List panels for your user
    panels = await client.list_control_panels()
    print(f"Found {len(panels)} panels for user {client.get_authenticated_username()}")

    # Get online panels only
    online_panels = []
    for p in panels:
        status = 'ONLINE' if p.online else 'OFFLINE'
        print(f"+ {p.hash}: {status}")
        if p.online:
            online_panels.append(p)

    if len(online_panels) == 0:
        print("Sorry, no panel to work with. Exiting.")
        exit(0)

    # Fetch status of first panel
    p = online_panels[0]
    panel_status = await client.get_panel_status(control_panel_id=p.hash)

    # Print some zone status
    for z in panel_status.zones:
        print(f"Zone '{z.name}' open: {z.opened}")

    # Toggle some actuator
    actuator = panel_status.actuators[0]
    old_status = actuator.opened
    print(f"Actuator {actuator.name} was {'ON' if old_status else 'OFF'}")
    print(f"Switching {'OFF' if old_status else 'ON'} actuator {actuator.name}")
    await client.execute_command(endpoint_id=actuator.endpoint_id, command=SwitchCommand.TURN_ON if not old_status else SwitchCommand.TURN_OFF)

    print("Waiting a bit...")
    await asyncio.sleep(5)

    print("Reverting back original actuator status")
    await client.execute_command(endpoint_id=actuator.endpoint_id,
                                 command=SwitchCommand.TURN_ON if old_status else SwitchCommand.TURN_OFF)
    print("Done!")

if __name__ == '__main__':
    asyncio.run(main())

Documentation

Full API documentation is available on GitHub pages, here.

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

elmax_api-0.0.6.1.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

elmax_api-0.0.6.1-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file elmax_api-0.0.6.1.tar.gz.

File metadata

  • Download URL: elmax_api-0.0.6.1.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for elmax_api-0.0.6.1.tar.gz
Algorithm Hash digest
SHA256 dd573afa1710640b7c759410e6bda62379f7c861c37b4d2c9063d313527b1f54
MD5 ddc39e5d675b59d37ac62e2186100041
BLAKE2b-256 ae924b1dc75dbd35944e7fd7a609af28941ad9dc9361abde1b126d9b83da388c

See more details on using hashes here.

File details

Details for the file elmax_api-0.0.6.1-py3-none-any.whl.

File metadata

  • Download URL: elmax_api-0.0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 18.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for elmax_api-0.0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 de869639dbbf4d4fefffc126ef7e0696c1c309d1e07afdec872b3796d18a232a
MD5 39f6cf83e1c6b417932dfa30c654cb1c
BLAKE2b-256 d7ac65c3c5e37f603f140d0e2d26477c3c6132f5e5a8fe199f5dd497f1678c19

See more details on using hashes here.

Supported by

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