Home Assistant custom component for Jablotron Cloud.
This integration allows you to monitor and control alarm sections as well as programmable gates and temperature sensors. It does not require a direct connection to the alarm control panel to run, instead it uses a cloud connection via MyJablotron and takes advantage of the mobile API provided by the JablotronPy library.
The integration uses the following entities to enable monitoring and control of individual components of the Jablotron ecosystem:
| Entity type | Description |
|---|---|
alarm_control_panel |
Used for monitoring and controlling alarm sections (including triggered state when an alarm is active) |
binary_sensor |
Used for monitoring UNcontrollable programmable gates (PGs) |
climate |
Used for controlling thermo devices (thermostats) |
switch |
Used for controlling programmable gates (PGs) |
sensor |
Used for monitoring temperature sensors and non-controllable section states |
This integration can be installed using HACS, this can be achieved as follows:
- Install and open HACS in Home Assistant
- Search for
Jablotron Cloud - Open it and click on
Downloadbutton - In Home Assistant go to Integrations
- Click on
Add integrationbutton - Search for
Jablotron Cloud - Complete configuration and confirm
If you are not using HACS, you can install this integration manually as follows:
- Open Home Assistant installation configuration directory (you should see
configuration.yamlfile) - Create
custom_componentsfolder, or skip this step if already exists - Open
custom_componentsfolder - Download
custom_components/jablotron_cloudfolder from this repository - Place downloaded
jablotron_cloudfolder to createdcustom_componentsfolder - Restart Home Assistant
- In Home Assistant go to Integrations
- Click on
Add integrationbutton - Search for
Jablotron Cloud - Complete configuration and confirm
To successfully set up this integration, you will need the username (email) and password used for the MyJablotron web service/mobile app.
The integration allows you to modify the following parameters:
- Default pin used to control PGs
- Whether to bypass section errors by default when arming sections
- Frequency of polling data from Jablotron Cloud
- Timeout for polling data from Jablotron Cloud
The integration surfaces an active alarm by flipping the affected alarm_control_panel entity to the
triggered state. Detection is per section — when an alarm is in progress, the Jablotron Cloud API
returns an event with a message such as "Alarm - Periphery PIR chodba (wifi), Section Dům". The
integration parses the section name from the substring after the , Section token and only the matching
section is reported as triggered. Other sections of the same service stay in their previous state.
While a section is triggered, its entity exposes the following extra attributes describing the latest
matching event:
| Attribute | Description |
|---|---|
last_alarm_type |
Event type as reported by the cloud (currently always ALARM) |
last_alarm_message |
Human-readable description, e.g. detector and section that triggered |
last_alarm_date |
ISO 8601 timestamp when the event was raised |
Example automation that fires whenever any alarm panel is triggered:
- alias: Jablotron alarm triggered
trigger:
- platform: state
entity_id: alarm_control_panel.dum
to: "triggered"
action:
- service: notify.mobile_app
data:
title: "Alarm!"
message: "{{ state_attr(trigger.entity_id, 'last_alarm_message') }}"- Polling-based detection. The Jablotron Cloud API does not push notifications. The integration only
knows about an alarm while the cloud response still contains the active event. If the alarm is silenced
before the next poll, the trigger is missed. For time-critical automations consider lowering the
Frequency of pollingsetting (minimum 30 seconds). - Message format dependency. Section identification relies on the message ending with
, Section <name>where<name>matches the configured section name exactly. If your panel firmware emits ALARM events without that suffix, the entity will not flip totriggered. Please open an issue with a redacted log sample if you observe this. - Historical events are not used. The cloud-side event history endpoint (
eventHistoryGet) returns400 METHOD.NOT-SUPPORTEDon several panel models (e.g. JA100F), so it is not relied on as a fallback.

