Ajax Systems · REST API · OAuth 2.0 · Home Assistant · KNX · 9 min czytania

Integracja Ajax API: Połączenie Ajax z KNX, Home Assistant i systemami zewnętrznymi

Ajax udostępnia chmurowy REST API z uwierzytelnianiem OAuth 2.0 dla integracji partnerskich. Ten przewodnik obejmuje możliwości API, integrację Home Assistant przez HACS, wzorce bindingu KNX przez xknx, obsługę zdarzeń webhook oraz ograniczenia architektury działającej wyłącznie w chmurze.

Przegląd Ajax API

Ajax API to chmurowy API RESTful hostowany na infrastrukturze Ajax Systems. Cała komunikacja przechodzi przez Ajax Cloud — sam Hub 2 Plus nie posiada lokalnego API. Uwierzytelnianie wykorzystuje przepływ OAuth 2.0 Authorization Code i wymaga zarejestrowanej aplikacji partnerskiej w portalu deweloperskim Ajax.

API jest dostępne dla partnerów Ajax (Certified Integrators i wyżej). Konta konsumenckie nie mają bezpośredniego dostępu do API — integracja zawsze odbywa się przez aplikację zarejestrowaną przez partnera. Integracja Home Assistant HACS abstrahuje to, używając wstępnie zarejestrowanego tokenu aplikacji.

Brak lokalnego API: Ajax Hub 2 Plus nie udostępnia lokalnego endpointu REST ani WebSocket. Wszystkie wywołania API trafiają do api.ajax.systems przez HTTPS. Oznacza to, że połączenie z internetem jest wymagane dla każdej integracji zewnętrznej — w tym Home Assistant, nawet jeśli działa w tej samej sieci lokalnej co hub.

Możliwości API

Kategoria endpointuDostępne operacjeUwagi
HubyLista hubów, stan huba (uzbrojony/rozbrojony)Wliczony status online/offline huba
UrządzeniaLista urządzeń, stan urządzenia, poziom bateriiSiła sygnału, stan sabotażu
GrupyLista grup, uzbrojenie/rozbrojenie grupySterowanie na poziomie partycji
Uzbrojenie/rozbrojeniePOST uzbrojenie, POST rozbrojenie, POST tryb nocnyWymaga tokenu uwierzytelniania użytkownika
UżytkownicyLista użytkowników, zarządzanie dostępemTylko administrator partnera
Strumień zdarzeńWebhook push-zdarzenia (alarm, sabotaż, uzbrojenie)Subskrypcja per-hub w portalu
KameryLista kamer, żądanie zdjęciaIntegracja Ajax NVR i kamer IP

Integracja Home Assistant

Oficjalna integracja Ajax Security dla Home Assistant jest dostępna przez HACS (Home Assistant Community Store). Korzysta z partnerskiego API Ajax w tle i tworzy standardowe encje HA dla wszystkich urządzeń Ajax podłączonych do huba.

Integracja Ajax w Home Assistant — konfiguracja

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)

Integracja KNX przez Home Assistant

Gdy encje Ajax są dostępne w Home Assistant, bindingi adresów grupowych KNX tworzone są przy użyciu integracji KNX (biblioteka xknx). Wyzwalacze ruchu z detektorów Ajax zapisują telegramy DPT 1.001 na adresy grupowe KNX; encja panelu alarmowego Ajax jest mapowana na ogólny adres grupowy alarmu KNX.

configuration.yaml — ruch Ajax → telegram 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"

Przykłady scenariuszy Ajax + KNX

Most Ajax-HA-KNX umożliwia scenariusze, w których fizyczny stan zabezpieczenia steruje automatyką budynku. Typowym wzorcem jest uzbrojenie Ajax po aktywacji sceny KNX "wychodzę" i rozbrojenie przy powrocie z określonym kodem klawiatury.

Scena KNX "Wychodzę" → uzbrojenie 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"

Zdarzenia webhook

Ajax obsługuje push-zdarzenia webhook dla powiadomień alarmowych w czasie rzeczywistym. Webhooki są konfigurowane w portalu Ajax PRO dla każdego huba i dostarczają payloady JSON do publicznego endpointu HTTPS. Dla Home Assistant używany jest adres URL wyzwalacza webhooka HA.

Payload JSON webhooka Ajax — zdarzenie alarmowe

// 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"}'

Dostęp do partnerskiego API Ajax

Dostęp do REST API Ajax wymaga konta partnerskiego. Konsumenckie konta Ajax nie mogą generować tokenów API. Partnerzy są kategoryzowani według poziomów, a możliwości API rozszerzają się na wyższych poziomach.

Poziom partneraDostęp do APILimit żądań
Certified InstallerPodstawowy — lista urządzeń, odpytywanie stanu60 żądań/min
Certified IntegratorPełny — uzbrojenie/rozbrojenie, webhooki, kamery300 żądań/min
Technology PartnerPełny + masowe zarządzanie wieloma hubamiIndywidualne SLA

Aby ubiegać się o dostęp do partnerskiego API, zarejestruj się na ajax.systems/partners. Proces zatwierdzenia trwa 3–10 dni roboczych. Do osobistego użytku Home Assistant integracja HACS używa wspólnego tokenu aplikacji — osobista rejestracja API nie jest wymagana.

Ograniczenia i uwagi

Architektura API działająca wyłącznie w chmurze ma istotne implikacje dla niezawodności i przetwarzania danych. Specjaliści ds. bezpieczeństwa powinni je ocenić przed zastosowaniem automatyzacji opartej na API w krytycznych instalacjach.

OgraniczenieSzczegółyŚrodki zaradcze
Brak lokalnego APIHub 2 Plus nie ma endpointu LANZaakceptować zależność od chmury; używać niezawodnego internetu z UPS na routerze
Opóźnienie odpytywania stanuDomyślny interwał odpytywania w HA to 30 sekundUżywać webhooków dla zdarzeń alarmowych; odpytywanie tylko do wyświetlania stanu
Awaria internetuAPI niedostępne podczas awariiAutonomiczne zabezpieczenia Ajax działają dalej; tylko most automatyzacji zawodzi
Przetwarzanie danych (RODO)Dane zdarzeń przetwarzane na serwerach Ajax EUPotwierdzić umowę o przetwarzaniu danych z Ajax dla projektów komercyjnych
Odświeżanie tokenu OAuthToken dostępu wygasa, wymaga odświeżeniaIntegracja HACS obsługuje odświeżanie; niestandardowe integracje muszą to zaimplementować

Autonomiczne zabezpieczenia Ajax nie są zależne od awarii API/internetu. Hub 2 Plus nadal wykrywa zagrożenia, alarmuje i powiadamia przez GSM nawet gdy chmurowy API jest niedostępny. Warstwa integracji API jest uzupełniająca — nie projektuj systemu automatyki budynku, który opiera się na Ajax API dla funkcji krytycznych dla bezpieczeństwa życia.

Ajax + KNX + Home Assistant — zintegrowane i przetestowane

Konfigurujemy Ajax Hub 2 Plus z mostem KNX Home Assistant, automatyzacją webhooków i integracją scen budynku — dostarczane jako działający system z pełną dokumentacją.

Zapytaj o ofertę →
Ładowanie...
Powrót do góry