Node-RED – Beispiel-Anlage
Expertenanbindung
Node-RED Integration – Anbindung über die eingebauten
mqtt-in/mqtt-out Nodes.
Schritt 1 – Node platzieren
Einen mqtt-in oder mqtt-out Node in den Flow ziehen → Doppelklick → beim Feld Server auf das Stift-Symbol klicken, um einen neuen Broker hinzuzufügen.
Schritt 2 – Tab "Verbindung"
| Server | cbnode.at |
| Port | 8883 |
| TLS aktivieren | ja |
| Client ID | cbnode-0012AB34 |
Schritt 3 – TLS Konfiguration
Beim Feld TLS Configuration einen neuen TLS-Config Node
anlegen → cbnode-ca.pem als CA Zertifikat hochladen →
Serverzertifikat prüfen aktivieren.
Schritt 4 – Tab "Sicherheit"
| Benutzername | 0012AB34 |
| Passwort | Ihr MQTT Passwort |
Schritt 5 – Topic eintragen
Im mqtt-in Node z.B. ajax/hubs/0012AB34/hub/status/armed
als Topic eintragen, QoS 0 lassen → Deployen.
Befehle senden: mqtt-out Node mit Topic
ajax/hubs/0012AB34/hub/command/arm, Payload 1.
1. MQTT Topics abonnieren:
Verbindung: Server cbnode.at, Port 8883, TLS aktivieren, CA Zertifikat siehe oben.
// MQTT-In Knoten Topics zum Lesen: ajax/hubs/0012AB34/hub/status/mode → Hub Modus (ARMED/DISARMED/NIGHT) ajax/hubs/0012AB34/hub/status/battery → Akku Zentrale % ajax/hubs/0012AB34/hub/groups/+/status/mode → alle Gruppen Status ajax/hubs/0012AB34/hub/groups/+/status/name → Gruppenname ajax/hubs/0012AB34/devices/+/status/state → Gerät ausgelöst (0/1) ajax/hubs/0012AB34/devices/+/status/alarm → Aktiver Alarm (0/1) ajax/hubs/0012AB34/devices/+/status/tamper → Sabotage (0/1) ajax/hubs/0012AB34/devices/+/status/malfunction → Störung (0/1) ajax/hubs/0012AB34/devices/+/status/battery → Batterie % (0-100) ajax/hubs/0012AB34/devices/+/status/switch_state → Plug/Steckdose Zustand (0/1) // MQTT-Out Knoten Topics zum Schreiben (Payload "1" senden): ajax/hubs/0012AB34/hub/command/arm → Hub scharf ajax/hubs/0012AB34/hub/command/disarm → Hub unscharf ajax/hubs/0012AB34/hub/groups/GRUPPE_ID/command/arm → Gruppe scharf ajax/hubs/0012AB34/hub/groups/GRUPPE_ID/command/disarm → Gruppe unscharf ajax/hubs/0012AB34/devices/GERAET_ID/command/bypass → Bypass (1/0) ajax/hubs/0012AB34/devices/PLUG_ID/command/switch → Plug schalten (1/0)
2. Flow – KNX Taster → Gruppe ARM/DISARM:
// [knx in] → [function] → [mqtt out]
// Function Node:
const groupId = '00000001'; // Gruppen-ID anpassen
msg.topic = `ajax/hubs/0012AB34/hub/groups/${groupId}/command/` +
(msg.payload ? 'arm' : 'disarm');
msg.payload = '1';
return msg;
// MQTT-Out: Server cbnode.at, Port 8883, TLS
3. Flow – Gruppen Status → Dashboard anzeigen:
// [mqtt in] → [function] → [ui_text / debug]
// Topic: ajax/hubs/0012AB34/hub/groups/+/status/mode
// Function Node:
const labels = { ARMED: '🔴 Scharf', DISARMED: '🟢 Unscharf', NIGHT: '🌙 Nacht' };
msg.payload = labels[msg.payload] || msg.payload;
// Gruppen-ID aus Topic extrahieren:
const parts = msg.topic.split('/');
msg.groupId = parts[5]; // z.B. "00000001"
return msg;
// → ui_text Node für Node-RED Dashboard
4. Flow – Alarm E-Mail senden:
// [mqtt in] → [switch] → [e-mail] // Topic: ajax/hubs/0012AB34/devices/+/status/alarm // Switch Node: msg.payload == "1" → E-Mail senden // E-Mail Node (node-red-node-email): msg.topic = "ALARM! Ajax Bridge"; msg.payload = "Alarm ausgelöst! Topic: " + msg.topic; return msg;
5. Flow – Plug/Steckdose schalten:
// [inject / ui_switch] → [function] → [mqtt out]
// Function Node:
const plugId = 'PLUG_ID'; // Geräte-ID des Plugs anpassen
msg.topic = `ajax/hubs/0012AB34/devices/${plugId}/command/switch`;
msg.payload = msg.payload ? '1' : '0'; // true/false → '1'/'0'
return msg;
// Zustand lesen: [mqtt in] auf Topic
// ajax/hubs/0012AB34/devices/PLUG_ID/status/switch_state