Ajax Systems · REST API · OAuth 2.0 · Home Assistant · KNX · 9 мин чтения

Интеграция Ajax API: подключение Ajax к KNX, Home Assistant и сторонним системам

Ajax предоставляет облачный REST API с аутентификацией OAuth 2.0 для партнёрских интеграций. В этом руководстве рассматриваются возможности API, интеграция Home Assistant через HACS, паттерны привязки KNX через xknx, обработка событий через вебхуки и ограничения архитектуры, работающей только через облако.

Обзор Ajax API

Ajax API – это RESTful-облачный API, размещённый на инфраструктуре Ajax Systems. Всё взаимодействие проходит через Ajax Cloud – сам Hub 2 Plus не имеет локального API. Аутентификация использует поток Authorization Code OAuth 2.0 и требует зарегистрированного партнёрского приложения в портале разработчиков Ajax.

API доступен партнёрам Ajax (Certified Integrators и выше). Потребительские аккаунты не имеют прямого доступа к API – интеграция всегда осуществляется через приложение, зарегистрированное у партнёра. Интеграция Home Assistant HACS абстрагирует это, используя предварительно зарегистрированный токен приложения.

Нет локального API: Ajax Hub 2 Plus не предоставляет локальный REST или WebSocket-эндпоинт. Все вызовы API идут на api.ajax.systems через HTTPS. Это означает, что для любой сторонней интеграции – включая Home Assistant, даже если он работает в той же локальной сети, что и хаб – требуется подключение к интернету.

Возможности API

Категория эндпоинтаДоступные операцииПримечания
ХабыСписок хабов, состояние хаба (на охране/снят)Включён статус онлайн/офлайн хаба
УстройстваСписок устройств, состояние, уровень зарядаУровень сигнала, статус вскрытия
ГруппыСписок групп, постановка/снятие группыУправление на уровне разделов
Постановка/снятиеPOST постановка, POST снятие, POST ночной режимТребует токен аутентификации пользователя
ПользователиСписок пользователей, управление доступомТолько для администратора-партнёра
Поток событийWebhook push-события (тревога, вскрытие, постановка)Подписка на хаб в портале
КамерыСписок камер, запрос снимкаИнтеграция Ajax NVR и IP-камер

Интеграция Home Assistant

Официальная интеграция Ajax Security для Home Assistant доступна через HACS (Home Assistant Community Store). Она использует партнёрский API Ajax и создаёт стандартные сущности HA для всех устройств Ajax на подключённом хабе.

Интеграция Ajax в Home Assistant – настройка

Prerequisites:
 - Ajax account with hub registered
 - Partner API token (from Ajax PRO Desktop API Keys)
 - Home Assistant 2024.1+ with HACS installed

Installation:
 1. HACS Integrations Search "Ajax Security"
 2. Install integration, restart HA
 3. Settings Integrations Add Integration Ajax Security
 4. Enter API token and select hub(s)

Entities created per hub:
 alarm_control_panel.ajax_hub_[id] – arm/disarm/night mode
 binary_sensor.[device_name]_motion – PIR detectors
 binary_sensor.[device_name]_door – door/window contacts
 binary_sensor.[device_name]_glass – glass break detectors
 binary_sensor.[device_name]_tamper – tamper on all devices
 sensor.[device_name]_battery – battery level (%)
 sensor.[device_name]_signal – signal strength (%)

Polling interval: 30 seconds (HA polls Ajax Cloud)
Alarm events via webhook: real-time push (see below)

Интеграция KNX через Home Assistant

При наличии сущностей Ajax в Home Assistant привязки групповых адресов KNX создаются с помощью интеграции KNX (библиотека xknx). Триггеры движения от детекторов Ajax записывают телеграммы DPT 1.001 на групповые адреса KNX; сущность панели сигнализации Ajax сопоставляется с общим групповым адресом тревоги KNX.

configuration.yaml – движение Ajax телеграмма KNX

# Home Assistant configuration.yaml (KNX integration)
knx:
 tunnel:
 host: 192.168.1.10 # KNX IP Interface address
 port: 3671

# automations.yaml – Ajax motion detector KNX
automation:
 - alias: "Ajax MotionCam hallway KNX lights"
 trigger:
 platform: state
 entity_id: binary_sensor.ajax_motioncam_hallway_motion
 to: "on"
 action:
 service: knx.send
 data:
 address: "3/0/5" # KNX hallway lights GA
 payload: true
 type: "1byte"

 - alias: "Ajax MotionCam hallway OFF KNX lights off"
 trigger:
 platform: state
 entity_id: binary_sensor.ajax_motioncam_hallway_motion
 to: "off"
 for: "00:02:00" # 2-minute hold-off
 action:
 service: knx.send
 data:
 address: "3/0/5"
 payload: false
 type: "1byte"

 - alias: "Ajax alarm KNX general alarm"
 trigger:
 platform: state
 entity_id: alarm_control_panel.ajax_hub_main
 to: "triggered"
 action:
 service: knx.send
 data:
 address: "8/0/1" # KNX general alarm GA
 payload: true
 type: "1byte"

Примеры сценариев Ajax + KNX

Мост Ajax-HA-KNX позволяет реализовывать сценарии, при которых физическое состояние охраны управляет автоматизацией здания. Распространённый паттерн – постановка Ajax на охрану при активации сцены KNX «ухожу» и снятие при возвращении с определённым кодом клавиатуры.

Сцена KNX «Ухожу» постановка Ajax на охрану

# KNX "I'm leaving" button press (GA 1/0/10 = true)
# triggers HA automation arms Ajax

automation:
 - alias: "KNX leaving scene Ajax arm away"
 trigger:
 platform: event
 event_type: knx_event
 event_data:
 address: "1/0/10" # KNX leaving button GA
 value: true
 action:
 - service: knx.send
 data:
 address: "3/0/0" # Lights off (all zones)
 payload: false
 type: "1byte"
 - service: knx.send
 data:
 address: "4/0/0" # HVAC setback mode
 payload: false
 type: "1byte"
 - delay: "00:00:30" # 30-second exit delay
 - service: alarm_control_panel.alarm_arm_away
 target:
 entity_id: alarm_control_panel.ajax_hub_main
 data:
 code: "1234" # Master code

 - alias: "Ajax armed KNX confirmation"
 trigger:
 platform: state
 entity_id: alarm_control_panel.ajax_hub_main
 to: "armed_away"
 action:
 service: knx.send
 data:
 address: "1/0/11" # KNX armed indicator LED
 payload: true
 type: "1byte"

Webhook-события

Ajax поддерживает push-события через вебхуки для уведомлений о тревоге в реальном времени. Вебхуки настраиваются в портале Ajax PRO для каждого хаба и доставляют JSON-пакеты на публичный HTTPS-эндпоинт. Для Home Assistant используется URL вебхук-триггера HA.

JSON-пакет вебхука Ajax – событие тревоги

// Ajax webhook POST body (alarm event)
{
 "hubId": "HUB-XXXXXXXX",
 "eventType": "ALARM",
 "deviceId": "DEV-12345678",
 "deviceName": "MotionCam Hallway",
 "deviceType": "MotionCam",
 "zoneId": 3,
 "zoneName": "Ground Floor",
 "timestamp": "2025-04-15T14:32:10Z",
 "alarmReason": "MOTION_DETECTED"
}

// Event types:
// ALARM – motion, door open, glass break
// TAMPER – device opened or removed
// ARM – system or group armed
// DISARM – system or group disarmed
// POWER_LOSS – hub external power lost
// BATTERY_LOW – device battery below 10%
// SIGNAL_LOSS – device communication lost

// Test webhook (curl):
curl -X POST https://your-ha-instance.duckdns.org/api/webhook/ajax_test \
 -H "Content-Type: application/json" \
 -d '{"eventType":"ALARM","deviceName":"Test","alarmReason":"TEST"}'

Доступ к партнёрскому API Ajax

Для доступа к REST API Ajax требуется партнёрский аккаунт. Потребительские аккаунты Ajax не могут генерировать токены API. Партнёры классифицируются по уровням, и возможности API расширяются на более высоких уровнях.

Уровень партнёраДоступ к APIЛимит запросов
Certified InstallerБазовый – список устройств, опрос состояния60 запросов/мин
Certified IntegratorПолный – постановка/снятие, вебхуки, камеры300 запросов/мин
Technology PartnerПолный + массовое управление несколькими хабамиИндивидуальный SLA

Для получения доступа к партнёрскому API зарегистрируйтесь на ajax.systems/partners. Процесс одобрения занимает 3–10 рабочих дней. Для личного использования Home Assistant интеграция HACS использует общий токен приложения – личная регистрация API не требуется.

Ограничения и требования

Архитектура, работающая только через облако, имеет важные последствия для надёжности и обработки данных. Специалистам по безопасности следует оценить их, прежде чем использовать API-автоматизацию в критически важных объектах.

ОграничениеДеталиМеры
Нет локального APIHub 2 Plus не имеет LAN-эндпоинтаПринять облачную зависимость; использовать надёжный интернет с ИБП на маршрутизаторе
Задержка опроса состоянияСтандартный интервал опроса в HA – 30 секундИспользовать вебхуки для событий тревоги; опрос только для отображения статуса
Отключение интернетаAPI недоступен при отключенииАвтономная защита Ajax продолжает работать; только мост автоматизации отказывает
Обработка данных (GDPR)Данные событий обрабатываются на серверах Ajax в ЕСПодтвердить соглашение об обработке данных с Ajax для коммерческих проектов
Обновление токена OAuthТокен доступа истекает, требует обновленияHACS-интеграция обрабатывает обновление; пользовательские интеграции должны реализовать это самостоятельно

Автономная защита Ajax не зависит от отключения API/интернета. Hub 2 Plus продолжает обнаруживать угрозы, поднимать тревогу и уведомлять через GSM, даже если облачный API недоступен. Уровень интеграции API является дополнительным – не проектируйте систему автоматизации здания, которая зависит от Ajax API для функций жизнеобеспечения.

Ajax + KNX + Home Assistant – интегрировано и протестировано

Мы настраиваем Ajax Hub 2 Plus с KNX-мостом Home Assistant, вебхук-автоматизацией и интеграцией сцен здания – поставляем как работающую систему с полной документацией.

Запросить предложение
Загрузка ...
Наверх