Integrazione API Ajax: Connessione di Ajax a KNX, Home Assistant e sistemi di terze parti
Ajax fornisce una REST API cloud con autenticazione OAuth 2.0 per le integrazioni partner. Questa guida tratta le capacità dell'API, l'integrazione Home Assistant via HACS, i pattern di binding KNX tramite xknx, la gestione degli eventi webhook e i limiti dell'architettura esclusivamente cloud.
Panoramica API Ajax
L'API Ajax è una REST API cloud ospitata sull'infrastruttura Ajax Systems. Tutte le comunicazioni transitano tramite Ajax Cloud — il Hub 2 Plus stesso non dispone di un'API locale. L'autenticazione utilizza il flusso OAuth 2.0 Authorization Code e richiede un'applicazione partner registrata nel portale sviluppatori Ajax.
L'API è disponibile per i partner Ajax (Certified Integrators e superiori). Gli account consumer non hanno accesso diretto all'API — l'integrazione avviene sempre tramite un'applicazione registrata da un partner. L'integrazione Home Assistant HACS astrae questo utilizzando un token applicazione pre-registrato.
Nessuna API locale: Ajax Hub 2 Plus non espone un endpoint REST o WebSocket locale. Tutte le chiamate API transitano verso api.ajax.systems via HTTPS. Ciò significa che la connettività internet è necessaria per qualsiasi integrazione di terze parti — incluso Home Assistant, anche se in esecuzione sulla stessa rete locale dell'hub.
Capacità dell'API
| Categoria endpoint | Operazioni disponibili | Note |
|---|---|---|
| Hub | Elenco hub, stato hub (inserito/disinserito) | Stato online/offline hub incluso |
| Dispositivi | Elenco dispositivi, stato dispositivo, livello batteria | Forza segnale, stato manomissione |
| Gruppi | Elenco gruppi, inserimento/disinserimento gruppo | Controllo a livello di partizione |
| Inserimento/Disinserimento | POST inserimento, POST disinserimento, POST modalità notte | Richiede token di autenticazione utente |
| Utenti | Elenco utenti, gestione accesso utenti | Solo amministratore partner |
| Flusso eventi | Webhook push eventi (allarme, manomissione, inserimento) | Iscrizione per hub nel portale |
| Telecamere | Elenco telecamere, richiesta snapshot | Integrazione Ajax NVR e telecamera IP |
Integrazione Home Assistant
L'integrazione ufficiale Ajax Security per Home Assistant è disponibile tramite HACS (Home Assistant Community Store). Utilizza l'API partner Ajax in background e crea entità HA standard per tutti i dispositivi Ajax sull'hub connesso.
Integrazione Ajax in Home Assistant — configurazione
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)
Integrazione KNX via Home Assistant
Con le entità Ajax disponibili in Home Assistant, i binding degli indirizzi di gruppo KNX vengono creati utilizzando l'integrazione KNX (libreria xknx). I trigger di movimento dei rilevatori Ajax scrivono telegrammi DPT 1.001 sugli indirizzi di gruppo KNX; l'entità del pannello di allarme Ajax viene mappata su un indirizzo di gruppo di allarme generale KNX.
configuration.yaml — movimento Ajax → telegramma 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"Esempi di scenari Ajax + KNX
Il bridge Ajax-HA-KNX abilita scenari in cui lo stato fisico di sicurezza guida l'automazione dell'edificio. Un pattern comune è l'inserimento di Ajax quando si attiva una scena KNX "uscita", e il disinserimento all'arrivo con un codice tastiera specifico.
Scena KNX "Sto uscendo" → inserimento 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"Eventi webhook
Ajax supporta gli eventi push webhook per le notifiche di allarme in tempo reale. I webhook vengono configurati nel portale Ajax PRO per hub e consegnano payload JSON a un endpoint HTTPS pubblico. Per Home Assistant viene utilizzato l'URL del trigger webhook HA.
Payload JSON webhook Ajax — evento allarme
// 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"}'Accesso all'API partner Ajax
L'accesso alla REST API Ajax richiede un account partner. Gli account Ajax consumer non possono generare token API. I partner sono categorizzati per livello, con capacità API che si ampliano ai livelli superiori.
| Livello partner | Accesso API | Limite di frequenza |
|---|---|---|
| Certified Installer | Base — elenco dispositivi, polling stato | 60 richieste/min |
| Certified Integrator | Completo — inserimento/disinserimento, webhook, telecamere | 300 richieste/min |
| Technology Partner | Completo + gestione multi-hub in blocco | SLA personalizzato |
Per richiedere l'accesso all'API partner, registrarsi su ajax.systems/partners. Il processo di approvazione richiede 3–10 giorni lavorativi. Per uso personale con Home Assistant, l'integrazione HACS utilizza un token applicazione condiviso — non è richiesta alcuna registrazione API personale.
Limitazioni e considerazioni
L'architettura API esclusivamente cloud ha implicazioni importanti per l'affidabilità e la gestione dei dati. I professionisti della sicurezza dovrebbero valutarle prima di impegnarsi nell'automazione basata su API per installazioni critiche.
| Limitazione | Dettaglio | Mitigazione |
|---|---|---|
| Nessuna API locale | Hub 2 Plus non ha endpoint LAN | Accettare la dipendenza cloud; usare internet affidabile con UPS sul router |
| Latenza polling stato | Polling predefinito di 30 secondi in HA | Usare webhook per gli eventi di allarme; polling solo per la visualizzazione stato |
| Interruzione internet | API non disponibile durante l'interruzione | La sicurezza autonoma Ajax continua; solo il bridge di automazione si interrompe |
| Gestione dati (GDPR) | Dati eventi elaborati sui server Ajax EU | Confermare l'accordo di trattamento dati con Ajax per progetti commerciali |
| Rinnovo token OAuth | Il token di accesso scade, necessita di rinnovo | L'integrazione HACS gestisce il rinnovo; le integrazioni personalizzate devono implementarlo |
La sicurezza autonoma Ajax non è influenzata dall'interruzione API/internet. Il Hub 2 Plus continua a rilevare, allarmare e notificare via GSM anche quando l'API cloud non è raggiungibile. Il livello di integrazione API è supplementare — non progettare un sistema di automazione edificio che si affida all'API Ajax per funzioni di sicurezza delle persone.
Ajax + KNX + Home Assistant — integrato e collaudato
Configuriamo Ajax Hub 2 Plus con bridge KNX Home Assistant, automazione webhook e integrazione scene edificio — consegnato come sistema funzionante con documentazione completa.
Richiedi un preventivo →