Интеграция 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-автоматизацию в критически важных объектах.
| Ограничение | Детали | Меры |
|---|---|---|
| Нет локального API | Hub 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, вебхук-автоматизацией и интеграцией сцен здания — поставляем как работающую систему с полной документацией.
Запросить предложение →