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 endpoint | Operaciones disponibles | Notas |
|---|---|---|
| Hubs | Lista de hubs, estado del hub (armado/desarmado) | Estado en línea/fuera de línea del hub incluido |
| Dispositivos | Lista de dispositivos, estado, nivel de batería | Intensidad de señal, estado de sabotaje |
| Grupos | Lista de grupos, armado/desarmado de grupo | Control a nivel de partición |
| Armado/Desarmado | POST armado, POST desarmado, POST modo noche | Requiere token de autenticación de usuario |
| Usuarios | Lista de usuarios, gestión de acceso | Solo administrador socio |
| Flujo de eventos | Eventos push webhook (alarma, sabotaje, armado) | Suscripción por hub en el portal |
| Cámaras | Lista de cámaras, solicitud de instantánea | Integració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 socio | Acceso a la API | Límite de tasa |
|---|---|---|
| Certified Installer | Básico — lista de dispositivos, polling de estado | 60 solicitudes/min |
| Certified Integrator | Completo — armado/desarmado, webhooks, cámaras | 300 solicitudes/min |
| Technology Partner | Completo + gestión masiva multi-hub | SLA 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ón | Detalle | Mitigación |
|---|---|---|
| Sin API local | Hub 2 Plus no tiene endpoint LAN | Aceptar la dependencia en la nube; usar internet fiable con SAI en el router |
| Latencia de polling de estado | Polling predeterminado de 30 segundos en HA | Usar webhooks para eventos de alarma; polling solo para visualización de estado |
| Corte de internet | API no disponible durante el corte | La seguridad autónoma Ajax continúa; solo falla el puente de automatización |
| Tratamiento de datos (RGPD) | Datos de eventos procesados en servidores Ajax EU | Confirmar acuerdo de tratamiento de datos con Ajax para proyectos comerciales |
| Renovación del token OAuth | El token de acceso caduca, necesita renovación | La 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 →