Intégration API Ajax : Connexion d'Ajax à KNX, Home Assistant et systèmes tiers
Ajax fournit une REST API cloud avec authentification OAuth 2.0 pour les intégrations partenaires. Ce guide couvre les capacités de l'API, l'intégration Home Assistant via HACS, les patterns de liaison KNX via xknx, le traitement des événements webhook et les limites de l'architecture cloud uniquement.
Vue d'ensemble de l'API Ajax
L'API Ajax est une API cloud RESTful hébergée sur l'infrastructure Ajax Systems. Toutes les communications transitent par l'Ajax Cloud — le Hub 2 Plus lui-même ne dispose d'aucune API locale. L'authentification utilise le flux OAuth 2.0 Authorization Code et nécessite une application partenaire enregistrée dans le portail développeur Ajax.
L'API est accessible aux partenaires Ajax (Certified Integrators et au-dessus). Les comptes grand public n'ont pas d'accès direct à l'API — l'intégration passe toujours par une application enregistrée par un partenaire. L'intégration Home Assistant HACS abstrait cela en utilisant un token d'application pré-enregistré.
Pas d'API locale : Ajax Hub 2 Plus n'expose pas d'endpoint REST ou WebSocket local. Tous les appels API transitent par api.ajax.systems via HTTPS. Cela signifie qu'une connexion internet est requise pour toute intégration tierce — y compris Home Assistant, même s'il s'exécute sur le même réseau local que le hub.
Capacités de l'API
| Catégorie d'endpoint | Opérations disponibles | Notes |
|---|---|---|
| Hubs | Liste des hubs, état du hub (armé/désarmé) | Statut en ligne/hors ligne du hub inclus |
| Appareils | Liste des appareils, état, niveau de batterie | Force du signal, état de sabotage |
| Groupes | Liste des groupes, armement/désarmement de groupe | Contrôle au niveau des partitions |
| Armement/Désarmement | POST armement, POST désarmement, POST mode nuit | Nécessite un token d'authentification utilisateur |
| Utilisateurs | Liste des utilisateurs, gestion des accès | Administrateur partenaire uniquement |
| Flux d'événements | Événements push webhook (alarme, sabotage, armement) | Abonnement par hub dans le portail |
| Caméras | Liste des caméras, demande de snapshot | Intégration Ajax NVR et caméra IP |
Intégration Home Assistant
L'intégration officielle Ajax Security pour Home Assistant est disponible via HACS (Home Assistant Community Store). Elle utilise l'API partenaire Ajax en arrière-plan et crée des entités HA standard pour tous les appareils Ajax sur le hub connecté.
Intégration Ajax dans Home Assistant — configuration
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)
Intégration KNX via Home Assistant
Avec les entités Ajax disponibles dans Home Assistant, les liaisons d'adresses de groupe KNX sont créées en utilisant l'intégration KNX (bibliothèque xknx). Les déclencheurs de mouvement des détecteurs Ajax écrivent des télégrammes DPT 1.001 sur les adresses de groupe KNX ; l'entité du panneau d'alarme Ajax est mappée sur une adresse de groupe d'alarme générale KNX.
configuration.yaml — mouvement Ajax → télégramme 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"Exemples de scénarios Ajax + KNX
Le pont Ajax-HA-KNX permet des scénarios où l'état de sécurité physique pilote l'automatisation du bâtiment. Un pattern courant est l'armement d'Ajax lorsqu'une scène KNX "départ" s'active, et le désarmement à l'arrivée avec un code de clavier spécifique.
Scène KNX "Je pars" → armement 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"Événements webhook
Ajax prend en charge les événements push webhook pour les notifications d'alarme en temps réel. Les webhooks sont configurés dans le portail Ajax PRO par hub et délivrent des payloads JSON à un endpoint HTTPS public. Pour Home Assistant, l'URL de déclenchement webhook HA est utilisée.
Payload JSON webhook Ajax — événement alarme
// 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"}'Accès à l'API partenaire Ajax
L'accès à la REST API Ajax nécessite un compte partenaire. Les comptes Ajax grand public ne peuvent pas générer de tokens API. Les partenaires sont catégorisés par niveau, avec des capacités API s'élargissant aux niveaux supérieurs.
| Niveau partenaire | Accès API | Limite de taux |
|---|---|---|
| Certified Installer | Basique — liste des appareils, polling d'état | 60 requêtes/min |
| Certified Integrator | Complet — armement/désarmement, webhooks, caméras | 300 requêtes/min |
| Technology Partner | Complet + gestion multi-hubs en masse | SLA personnalisé |
Pour demander l'accès à l'API partenaire, inscrivez-vous sur ajax.systems/partners. Le processus d'approbation prend 3 à 10 jours ouvrables. Pour un usage personnel avec Home Assistant, l'intégration HACS utilise un token d'application partagé — aucune inscription API personnelle n'est requise.
Limitations et considérations
L'architecture API exclusivement cloud a des implications importantes pour la fiabilité et le traitement des données. Les professionnels de la sécurité doivent les évaluer avant de s'engager dans une automatisation basée sur l'API pour des installations critiques.
| Limitation | Détail | Atténuation |
|---|---|---|
| Pas d'API locale | Hub 2 Plus n'a pas d'endpoint LAN | Accepter la dépendance cloud ; utiliser une connexion internet fiable avec UPS sur le routeur |
| Latence de polling d'état | Polling par défaut de 30 secondes dans HA | Utiliser les webhooks pour les événements d'alarme ; polling uniquement pour l'affichage d'état |
| Coupure internet | API indisponible pendant la coupure | La sécurité autonome Ajax continue ; seul le pont d'automatisation tombe |
| Traitement des données (RGPD) | Données d'événements traitées sur les serveurs Ajax EU | Confirmer l'accord de traitement des données avec Ajax pour les projets commerciaux |
| Rafraîchissement du token OAuth | Le token d'accès expire, nécessite un rafraîchissement | L'intégration HACS gère le rafraîchissement ; les intégrations personnalisées doivent l'implémenter |
La sécurité autonome Ajax n'est pas affectée par une coupure API/internet. Le Hub 2 Plus continue de détecter, d'alarmer et de notifier via GSM même lorsque l'API cloud est inaccessible. La couche d'intégration API est complémentaire — ne concevez pas un système domotique qui repose sur l'API Ajax pour des fonctions de sécurité des personnes.
Ajax + KNX + Home Assistant — intégré et testé
Nous configurons Ajax Hub 2 Plus avec le pont KNX Home Assistant, l'automatisation webhook et l'intégration de scènes bâtiment — livré comme système fonctionnel avec documentation complète.
Demander un devis →