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 endpointu | Dostępne operacje | Uwagi |
|---|---|---|
| Huby | Lista hubów, stan huba (uzbrojony/rozbrojony) | Wliczony status online/offline huba |
| Urządzenia | Lista urządzeń, stan urządzenia, poziom baterii | Siła sygnału, stan sabotażu |
| Grupy | Lista grup, uzbrojenie/rozbrojenie grupy | Sterowanie na poziomie partycji |
| Uzbrojenie/rozbrojenie | POST uzbrojenie, POST rozbrojenie, POST tryb nocny | Wymaga tokenu uwierzytelniania użytkownika |
| Użytkownicy | Lista użytkowników, zarządzanie dostępem | Tylko administrator partnera |
| Strumień zdarzeń | Webhook push-zdarzenia (alarm, sabotaż, uzbrojenie) | Subskrypcja per-hub w portalu |
| Kamery | Lista kamer, żądanie zdjęcia | Integracja 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 partnera | Dostęp do API | Limit żądań |
|---|---|---|
| Certified Installer | Podstawowy — lista urządzeń, odpytywanie stanu | 60 żądań/min |
| Certified Integrator | Pełny — uzbrojenie/rozbrojenie, webhooki, kamery | 300 żądań/min |
| Technology Partner | Pełny + masowe zarządzanie wieloma hubami | Indywidualne 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.
| Ograniczenie | Szczegóły | Środki zaradcze |
|---|---|---|
| Brak lokalnego API | Hub 2 Plus nie ma endpointu LAN | Zaakceptować zależność od chmury; używać niezawodnego internetu z UPS na routerze |
| Opóźnienie odpytywania stanu | Domyślny interwał odpytywania w HA to 30 sekund | Używać webhooków dla zdarzeń alarmowych; odpytywanie tylko do wyświetlania stanu |
| Awaria internetu | API niedostępne podczas awarii | Autonomiczne zabezpieczenia Ajax działają dalej; tylko most automatyzacji zawodzi |
| Przetwarzanie danych (RODO) | Dane zdarzeń przetwarzane na serwerach Ajax EU | Potwierdzić umowę o przetwarzaniu danych z Ajax dla projektów komercyjnych |
| Odświeżanie tokenu OAuth | Token dostępu wygasa, wymaga odświeżenia | Integracja 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ę →