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

Integración API Ajax: Conexión de Ajax con KNX, Home Assistant y sistemas de terceros

Ajax proporciona una REST API en la nube con autenticación OAuth 2.0 para integraciones de socios. Esta guía cubre las capacidades de la API, la integración de Home Assistant a través de HACS, los patrones de binding KNX mediante xknx, el manejo de eventos webhook y las limitaciones de la arquitectura exclusivamente en la nube.

Visión general de la API Ajax

La API Ajax es una REST API en la nube alojada en la infraestructura de Ajax Systems. Todas las comunicaciones pasan a través de Ajax Cloud — el Hub 2 Plus en sí no dispone de ninguna API local. La autenticación utiliza el flujo OAuth 2.0 Authorization Code y requiere una aplicación de socio registrada en el portal de desarrolladores de Ajax.

La API está disponible para los socios Ajax (Certified Integrators y superiores). Las cuentas de consumidor no tienen acceso directo a la API — la integración siempre se realiza a través de una aplicación registrada por un socio. La integración Home Assistant HACS abstrae esto utilizando un token de aplicación pre-registrado.

Sin API local: Ajax Hub 2 Plus no expone ningún endpoint REST ni WebSocket local. Todas las llamadas a la API van a api.ajax.systems vía HTTPS. Esto significa que se requiere conectividad a internet para cualquier integración de terceros — incluido Home Assistant, incluso si se ejecuta en la misma red local que el hub.

Capacidades de la API

Categoría de endpointOperaciones disponiblesNotas
HubsLista de hubs, estado del hub (armado/desarmado)Estado en línea/fuera de línea del hub incluido
DispositivosLista de dispositivos, estado, nivel de bateríaIntensidad de señal, estado de sabotaje
GruposLista de grupos, armado/desarmado de grupoControl a nivel de partición
Armado/DesarmadoPOST armado, POST desarmado, POST modo nocheRequiere token de autenticación de usuario
UsuariosLista de usuarios, gestión de accesoSolo administrador socio
Flujo de eventosEventos push webhook (alarma, sabotaje, armado)Suscripción por hub en el portal
CámarasLista de cámaras, solicitud de instantáneaIntegración Ajax NVR y cámara IP

Integración Home Assistant

La integración oficial Ajax Security para Home Assistant está disponible a través de HACS (Home Assistant Community Store). Utiliza la API de socio Ajax en segundo plano y crea entidades HA estándar para todos los dispositivos Ajax en el hub conectado.

Integración Ajax en Home Assistant — configuración

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)

Integración KNX a través de Home Assistant

Con las entidades Ajax disponibles en Home Assistant, los bindings de direcciones de grupo KNX se crean utilizando la integración KNX (biblioteca xknx). Los disparadores de movimiento de los detectores Ajax escriben telegramas DPT 1.001 en las direcciones de grupo KNX; la entidad del panel de alarma Ajax se mapea a una dirección de grupo de alarma general KNX.

configuration.yaml — movimiento Ajax → telegrama 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"

Ejemplos de escenarios Ajax + KNX

El puente Ajax-HA-KNX habilita escenarios donde el estado físico de seguridad dirige la automatización del edificio. Un patrón habitual es armar Ajax cuando se activa una escena KNX de "salida", y desarmarlo al llegar con un código de teclado específico.

Escena KNX "Me voy" → armado 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"

Eventos webhook

Ajax admite eventos push webhook para notificaciones de alarma en tiempo real. Los webhooks se configuran en el portal Ajax PRO por hub y entregan payloads JSON a un endpoint HTTPS público. Para Home Assistant se utiliza la URL de disparador webhook de HA.

Payload JSON webhook Ajax — evento de alarma

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

Acceso a la API de socio Ajax

El acceso a la REST API Ajax requiere una cuenta de socio. Las cuentas Ajax de consumidor no pueden generar tokens de API. Los socios se categorizan por nivel, con capacidades de API que se amplían en niveles superiores.

Nivel de socioAcceso a la APILímite de tasa
Certified InstallerBásico — lista de dispositivos, polling de estado60 solicitudes/min
Certified IntegratorCompleto — armado/desarmado, webhooks, cámaras300 solicitudes/min
Technology PartnerCompleto + gestión masiva multi-hubSLA personalizado

Para solicitar el acceso a la API de socio, regístrese en ajax.systems/partners. El proceso de aprobación tarda 3–10 días hábiles. Para uso personal con Home Assistant, la integración HACS utiliza un token de aplicación compartido — no se requiere registro de API personal.

Limitaciones y consideraciones

La arquitectura API exclusivamente en la nube tiene implicaciones importantes para la fiabilidad y el tratamiento de datos. Los profesionales de la seguridad deben evaluarlas antes de comprometerse con la automatización basada en API en instalaciones críticas.

LimitaciónDetalleMitigación
Sin API localHub 2 Plus no tiene endpoint LANAceptar la dependencia en la nube; usar internet fiable con SAI en el router
Latencia de polling de estadoPolling predeterminado de 30 segundos en HAUsar webhooks para eventos de alarma; polling solo para visualización de estado
Corte de internetAPI no disponible durante el corteLa seguridad autónoma Ajax continúa; solo falla el puente de automatización
Tratamiento de datos (RGPD)Datos de eventos procesados en servidores Ajax EUConfirmar acuerdo de tratamiento de datos con Ajax para proyectos comerciales
Renovación del token OAuthEl token de acceso caduca, necesita renovaciónLa integración HACS gestiona la renovación; las integraciones personalizadas deben implementarlo

La seguridad autónoma Ajax no se ve afectada por un corte de API/internet. El Hub 2 Plus continúa detectando, alarmando y notificando vía GSM incluso cuando la API cloud no es accesible. La capa de integración API es complementaria — no diseñe un sistema de automatización de edificio que dependa de la API Ajax para funciones de seguridad de personas.

Ajax + KNX + Home Assistant — integrado y probado

Configuramos Ajax Hub 2 Plus con puente KNX Home Assistant, automatización webhook e integración de escenas de edificio — entregado como sistema funcional con documentación completa.

Solicitar presupuesto →
Cargando...
Volver arriba