REST API – Beispiel-Anlage

Expertenanbindung

Sicherheitshinweis: Diese Daten sind vertraulich und Ihrer Anlage eindeutig zugeordnet. Teilen Sie sie nicht mit Dritten und bewahren Sie heruntergeladene Dateien sicher auf. Bei Verdacht auf Kompromittierung können Sie Zugangsdaten jederzeit im Portal neu generieren.
API Key
Header: X-Api-Key: {key}
URL: ?api_key={key}
Bearer Token
Header: Authorization: Bearer {token}
URL: ?token={token}
Die REST API liefert Gerätestatus mit einer Verzögerung von maximal 30 Sekunden. Für Echtzeit-Updates empfehlen wir die MQTT Integration.
Base URL: https://cbnode.at/api  –  Authentifizierung über X-Api-Key Header oder ?api_key= URL-Parameter.
HTTP API Endpoints:
MethodeEndpointBeschreibung
GET/v1/hub/0012AB34/statusHub Status (mode, online)
GET/v1/hub/0012AB34/devicesAlle Geräte mit state/alarm/battery
GET/v1/hub/0012AB34/devices/{id}Einzelnes Gerät
POST/v1/hub/0012AB34/commandHub scharf/unscharf – Body: {"command":"ARM"}
POST/v1/hub/0012AB34/devices/{id}/bypassBypass – Body: {"bypass":true}
GET/v1/hub/0012AB34/groupsAlle Gruppen (Bereiche)
POST/v1/hub/0012AB34/groups/{id}/commandGruppe ARM/DISARM/NIGHT
Gruppen sind Sicherheitsbereiche die in der Ajax App konfiguriert werden. Befehle: ARM, DISARM, NIGHT
MQTT Topics:

Struktur: ajax/hubs/0012AB34/hub/... für Zentrale & Gruppen, ajax/hubs/0012AB34/devices/{id}/... für Geräte.

TopicWerteBeschreibung
.../hub/status/modeARMED/DISARMED/NIGHT/...Hub Modus Klartext (lesen)
.../hub/status/armed0/1Hub scharf (binär, lesen)
.../hub/status/disarmed0/1Hub unscharf (binär, lesen)
.../hub/status/night_mode0/1Nachtmodus aktiv (binär, lesen)
.../hub/status/partially_armed0/1Teilweise scharf (binär, lesen)
.../hub/status/battery0–100Akku Zentrale %
.../hub/status/tampered0/1Sabotage Zentrale
.../hub/command/arm1 sendenHub scharf schalten
.../hub/command/disarm1 sendenHub unscharf schalten
.../hub/command/night1 sendenHub Nacht-Modus
.../hub/groups/{id}/status/modeARMED/DISARMEDGruppen Status Klartext (lesen)
.../hub/groups/{id}/status/armed0/1Gruppe scharf (binär, lesen)
.../hub/groups/{id}/status/nameTextGruppenname (lesen)
.../hub/groups/{id}/command/arm1 sendenGruppe scharf schalten
.../hub/groups/{id}/command/disarm1 sendenGruppe unscharf schalten
.../devices/{id}/status/state0/1Ausgelöst (lesen)
.../devices/{id}/status/alarm0/1Aktiver Alarm (lesen)
.../devices/{id}/status/tamper0/1Sabotage (lesen)
.../devices/{id}/status/malfunction0/1Störung (lesen)
.../devices/{id}/status/online0/1Online-Status (lesen)
.../devices/{id}/status/battery0–100Batterie % (lesen)
.../devices/{id}/status/bypass_statusENABLED/BYPASSEDBypass Status (lesen)
.../devices/{id}/command/bypass1/0 sendenBypass setzen/aufheben
.../devices/{id}/status/switch_state0/1Plug/Steckdose Zustand (lesen)
.../devices/{id}/command/switch1/0 sendenPlug/Steckdose schalten
.../devices/{id}/status/power_wZahlPlug Leistung in Watt (lesen)

{id} ist die Geräte- bzw. Gruppen-ID aus /devices bzw. /groups.

cURL eignet sich zum schnellen Testen der API direkt im Terminal. Kopieren Sie die Befehle und führen Sie sie in Ihrer Kommandozeile aus.
1. Hub Status abfragen:
curl -H "X-Api-Key: IHR_API_KEY" \
     https://cbnode.at/api/v1/hub/0012AB34/status
2. Alle Gruppen abrufen:
curl -H "X-Api-Key: IHR_API_KEY" \
     https://cbnode.at/api/v1/hub/0012AB34/groups

# Beispiel Antwort:
# {"groups": [{"id": "00000001", "name": "ALARMANLAGE", "mode": "DISARMED"}]}
3. Gruppe scharf/unscharf schalten:
# Gruppe scharf (ARM):
curl -X POST -H "X-Api-Key: IHR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"command": "ARM"}' \
     https://cbnode.at/api/v1/hub/0012AB34/groups/{GRUPPE_ID}/command

# Gruppe unscharf (DISARM):
curl -X POST -H "X-Api-Key: IHR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"command": "DISARM"}' \
     https://cbnode.at/api/v1/hub/0012AB34/groups/{GRUPPE_ID}/command

# Verfügbare Befehle: ARM | DISARM | NIGHT
4. Alle Geräte abrufen + Bypass:
# Alle Geräte mit Status:
curl -H "X-Api-Key: IHR_API_KEY" \
     https://cbnode.at/api/v1/hub/0012AB34/devices

# Gerät bypasssen (deaktivieren):
curl -X POST -H "X-Api-Key: IHR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"bypass": true}' \
     https://cbnode.at/api/v1/hub/0012AB34/devices/{GERAET_ID}/bypass

# Bypass aufheben:
curl -X POST -H "X-Api-Key: IHR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"bypass": false}' \
     https://cbnode.at/api/v1/hub/0012AB34/devices/{GERAET_ID}/bypass