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, вебхук-автоматизацией и интеграцией сцен здания — поставляем как работающую систему с полной документацией.

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