Skip to main content

Client to interact with Jablotron Cloud API to control Jablotron alarm systems

Project description

PyPI version

JablotronPy

Jablotron Cloud API client written in Python that allows you to retrieve data from Jablotron systems as well as control them.

Installation

The package is published to PyPi, to install it run the following command:

pip install jablotronpy

Usage

This is an example of initializing a client and getting all sections from the first available service:

import os
from jablotronpy.jablotronpy import Jablotron

# Initialize client and perform login
client = Jablotron(
  username=os.environ["JABLOTRON_USER"],
  password=os.environ["JABLOTRON_PASS"],
  pin_code=os.environ["JABLOTRON_PIN"]
)
client.perform_login()

# Get service and its sections
service_id = client.get_services()[0]["service-id"]
sections = client.get_sections(service_id=service_id)
print(sections)

Methods

The client offers a variation of data, here is a table of the methods and data it returns:

Method Description
perform_login Performs initial login to Jablotron Cloud API
get_services Returns list of available services for specified Jablotron Cloud account
get_service_information Returns additional information about specified service
get_sections Returns available sections for specified service
get_thermo_devices Returns list of available thermo devices for specified service
get_keyboard_segments Returns list of available keyboards and their segments for specified service
get_programmable_gates Returns available programmable gates and their states for specified service
get_service_history Returns list of historical events for specified service
control_section Sets specified section of specified service to desired state
control_programmable_gate Sets specified programmable gate of specified service to desired state

Detecting active alarms

The Jablotron Cloud API does not push notifications to third-party clients, so detecting an active alarm requires polling. The signal lives in the sectionsGet response, not in serviceListGet or in the section state itself (a section in alarm continues to report state ARM). While an alarm is live, data["service-states"] contains an events list:

{
  "service-states": {
    "service-name": "Home",
    "events": [
      {
        "type": "ALARM",
        "message": "Alarm - Periphery PIR hallway (wifi), Section House",
        "date": "2026-04-26T10:24:16+0200"
      }
    ]
  },
  "states": [{"cloud-component-id": "SEC-...", "state": "ARM"}],
  "sections": [...]
}

Notes:

  • The events key is only present while an event is active. If the alarm ends before the next poll, you will miss it.
  • Observed type value: "ALARM". Other types (tamper, sabotage, fault) likely exist but are not yet documented here.
  • The JA100/eventHistoryGet.json endpoint exposed via get_service_history returns 400 METHOD.NOT-SUPPORTED for some panels (e.g. JA100F), so it is not a reliable fallback.

Minimal poller:

sections = client.get_sections(service_id=sid)
for event in sections["service-states"].get("events", []):
    if event["type"] == "ALARM":
        ...  # handle alarm

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

jablotronpy-0.7.4.tar.gz (29.4 kB view details)

Uploaded Source

Built Distribution

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

jablotronpy-0.7.4-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file jablotronpy-0.7.4.tar.gz.

File metadata

  • Download URL: jablotronpy-0.7.4.tar.gz
  • Upload date:
  • Size: 29.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jablotronpy-0.7.4.tar.gz
Algorithm Hash digest
SHA256 1dec2402fb1cffb3b689bcfac152b03e7eb0cdc78774dda7ed58d093517506c0
MD5 c3642ee9b167ac74402c80fafda96fdc
BLAKE2b-256 4da7c55b37825a614ad1c791d7ebab10c7f077420b48eb59530fca9de53a55c8

See more details on using hashes here.

File details

Details for the file jablotronpy-0.7.4-py3-none-any.whl.

File metadata

  • Download URL: jablotronpy-0.7.4-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jablotronpy-0.7.4-py3-none-any.whl
Algorithm Hash digest
SHA256 56f6f36ad65f50eb90a20a9e9d5df9564342b8651a9c65f555851447327f7f00
MD5 88fd1af5796c0c4411f7ffc01232bd6b
BLAKE2b-256 07d28c54de3107604f33230b826b510f1daec18ef702cce3af9cce737f5041a5

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