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

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 endpointOperazioni disponibiliNote
HubElenco hub, stato hub (inserito/disinserito)Stato online/offline hub incluso
DispositiviElenco dispositivi, stato dispositivo, livello batteriaForza segnale, stato manomissione
GruppiElenco gruppi, inserimento/disinserimento gruppoControllo a livello di partizione
Inserimento/DisinserimentoPOST inserimento, POST disinserimento, POST modalità notteRichiede token di autenticazione utente
UtentiElenco utenti, gestione accesso utentiSolo amministratore partner
Flusso eventiWebhook push eventi (allarme, manomissione, inserimento)Iscrizione per hub nel portale
TelecamereElenco telecamere, richiesta snapshotIntegrazione 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 partnerAccesso APILimite di frequenza
Certified InstallerBase — elenco dispositivi, polling stato60 richieste/min
Certified IntegratorCompleto — inserimento/disinserimento, webhook, telecamere300 richieste/min
Technology PartnerCompleto + gestione multi-hub in bloccoSLA 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.

LimitazioneDettaglioMitigazione
Nessuna API localeHub 2 Plus non ha endpoint LANAccettare la dipendenza cloud; usare internet affidabile con UPS sul router
Latenza polling statoPolling predefinito di 30 secondi in HAUsare webhook per gli eventi di allarme; polling solo per la visualizzazione stato
Interruzione internetAPI non disponibile durante l'interruzioneLa sicurezza autonoma Ajax continua; solo il bridge di automazione si interrompe
Gestione dati (GDPR)Dati eventi elaborati sui server Ajax EUConfermare l'accordo di trattamento dati con Ajax per progetti commerciali
Rinnovo token OAuthIl token di accesso scade, necessita di rinnovoL'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 →
Caricamento in corso ...
Torna all'inizio