Python Elmax API client
Asynchronous Python API client for interacting with the Elmax Cloud services, via HTTP apis.
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.
Release files for elmax-api 0.0.6.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| elmax_api-0.0.6.3.tar.gz | 18.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| elmax_api-0.0.6.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.4 kB
Release files / elmax_api-0.0.6.3.tar.gz
| Download URL | elmax_api-0.0.6.3.tar.gz |
|---|---|
| Size | 18.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6260b75df232b34cbbbf7ff45448df81173c952178a7574b719a6f259255379a
|
|
BLAKE2b-256 checksum How to use checksums |
8299bdb46020d1454cd2afd99ebb60358178f2a9df88d5bcbbdb3b0ba96453c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.20
|
Release files / elmax_api-0.0.6.3-py3-none-any.whl
| Download URL | elmax_api-0.0.6.3-py3-none-any.whl |
|---|---|
| Size | 19.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ffd52ac0f159e9734a5fcf4d2dd63f0aa9ec7703b163f78ab06611d18708c4bc
|
|
BLAKE2b-256 checksum How to use checksums |
b7252de284d03582071b36bf3da30b2e7fc23d4ff8706d5a79ffe49224a4ae14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.20
|