Das Ziel dieses Tutorials ist es, zu zeigen, wie man Relais der IPX800V5-Domotic-Plattform von GCE mit Gladys steuert
Gehen Sie zum Tab „System“
Klicken Sie auf „MQTT“
Konfigurieren Sie wie folgt, wobei für „Server: " die IP des Mosquitto-Brokers (IP des Raspberry oder des NUC, auf dem Gladys installiert ist) und für „Client-ID" der gewünschte Name (hier habe ich IPX800V5 eingetragen, das ist wichtig für die Konfiguration der Topics in Node-Red)
Dann gehen wir zum Tab „Links“
Dann zum Untertab „OBJEKTE“ und klicken auf „MQTT Publish“
und „MQTT Publish hinzufügen“
Dadurch wird ein „Publish“-Objekt mit dem Namen „TOPIC PUB N°“ erstellt, auf das wir klicken „Bearbeiten“
Wir konfigurieren es wie unten
Der „Name: " ist der Name, den wir in der GCE-Api-Deck finden und der auf den Namen des „Relais 1“ verweist, wenn wir diesen Namen in der IPX bearbeiten, wird er in der Api-Deck aktualisiert (er wird derselbe für die API- und HTTP-Aufrufe sein, nehme ich an) „URL“ entspricht „Client-ID“ konfiguriert in „System“ „MQTT“ (man kann auch direkt den _id-Wert angeben, z. B. für das Relais 1: 65536 usw., so dass unabhängig vom Namen der Instanz des Relais 1 alles in Ordnung ist!)
Wir aktivieren „JSON“ und setzen den gleichen Wert wie den Namen als Schlüssel und bestätigen.
Dann erstellen wir das Objekt „Suscribe“. Wir klicken auf „MQTT suscribe“
dann „MQTT suscribe hinzufügen“
Dadurch wird ein „Suscribe“-Objekt mit dem Namen „TOPIC SUB N°“ erstellt, auf das wir klicken „Bearbeiten“
Wir konfigurieren es wie unten,
hierbei beziehen wir uns auf die Api-Deck für den Namen und den Schlüssel und bestätigen.
Wir klicken auf den Tab links „Dashboard“
Wir klicken auf das Schloss, um in den Bearbeitungsmodus zu wechseln
![]()
dann „Widget hinzufügen“
![]()
dann „Bearbeiten“
Wir konfigurieren wie folgt und wählen „Steuerung“ „Druckknopf“ und „Bestätigen“
Wir konfigurieren das Widget wie folgt und bestätigen
Jetzt erstellen wir die Links, indem wir links auf den Tab „Links“ klicken
dann auf „Link bearbeiten“
![]()
Dann das „+“ links neben „[IPX]Relay cmd1“
und links auf „MQTT Suscribe“, das wir in den gestrichelten Bereich ziehen
wir konfigurieren wie folgt und bestätigen. Wir erhalten
Wir klicken auf „Relaiszustand“
und „+“ rechts von „[IPX]Relay State 1“
und links auf „MQTT Publish“, das wir in den gestrichelten Bereich ziehen
wir konfigurieren wie folgt und bestätigen.
Das war’s, wir haben den gesamten Teil „IPX800V5“ erledigt, jetzt geht’s an den Teil NodeRed… !
Hier ist der Flow, der in node-red von „Gladys“ importiert werden soll ![]()
[
{
"id": "bd5facfbf1ab26d3",
"type": "tab",
"label": "IPX800V5 - Gladys Via Node-rec",
"disabled": false,
"info": "",
"env": []
},
{
"id": "8f7e7262bc6bf978",
"type": "mqtt out",
"z": "bd5facfbf1ab26d3",
"name": "IPX800V5",
"topic": "",
"qos": "1",
"retain": "false",
"respTopic": "",
"contentType": "",
"userProps": "",
"correl": "",
"expiry": "",
"broker": "291914c5c9c68f02",
"x": 1020,
"y": 300,
"wires": []
},
{
"id": "4c607c3838172c89",
"type": "function",
"z": "bd5facfbf1ab26d3",
"name": "switch [IPX]Relay state x true/false => \"1\" \"0\" ",
"func": "var msg1, varNoRelais, varStateRelais;\n\nmsg1 = msg.payload\nvarNoRelais = msg1.substring(msg1.indexOf('state',1) + 6, msg1.indexOf('state',1) + 7);\nvarStateRelais = msg1.substring(msg1.indexOf(':',1) + 1, msg1.indexOf(':',1) + 2);\n\nswitch (varStateRelais) {\n case \"t\": msg = {payload:\"1\"}; break;\n case \"f\": msg = {payload:\"0\"}; break;\n default: \n break;\n}\n\nmsg.topic = \"gladys/master/device/mqtt:IPX800V5_Relais-\" + varNoRelais + \"/feature/mqtt:IPX800V5_Relais-\" + varNoRelais + \"/state\";\n\nreturn msg;\n\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 530,
"y": 180,
"wires": [
[
"f7ebc07a077abf6c"
]
]
},
{
"id": "f7ebc07a077abf6c",
"type": "mqtt out",
"z": "bd5facfbf1ab26d3",
"name": "gladys/master/device/....",
"topic": "",
"qos": "1",
"retain": "false",
"respTopic": "",
"contentType": "",
"userProps": "",
"correl": "",
"expiry": "",
"broker": "291914c5c9c68f02",
"x": 970,
"y": 180,
"wires": []
},
{
"id": "f490302139729ca3",
"type": "mqtt in",
"z": "bd5facfbf1ab26d3",
"name": "gladys/device/#",
"topic": "gladys/device/#",
"qos": "1",
"datatype": "auto",
"broker": "291914c5c9c68f02",
"nl": false,
"rap": true,
"rh": 0,
"inputs": 0,
"x": 120,
"y": 300,
"wires": [
[
"ea9d791fe72e3274"
]
]
},
{
"id": "78bd795f15c0ddd0",
"type": "mqtt in",
"z": "bd5facfbf1ab26d3",
"name": "IPX800V5",
"topic": "IPX800V5",
"qos": "2",
"datatype": "auto",
"broker": "291914c5c9c68f02",
"nl": false,
"rap": true,
"rh": 0,
"inputs": 0,
"x": 100,
"y": 180,
"wires": [
[
"4c607c3838172c89"
]
]
},
{
"id": "7b3539772604e4c6",
"type": "mqtt in",
"z": "bd5facfbf1ab26d3",
"d": true,
"name": "Capture tout #",
"topic": "#",
"qos": "0",
"datatype": "auto",
"broker": "291914c5c9c68f02",
"nl": false,
"rap": true,
"rh": 0,
"inputs": 0,
"x": 120,
"y": 60,
"wires": [
[
"e40c2829b14d2289"
]
]
},
{
"id": "e40c2829b14d2289",
"type": "debug",
"z": "bd5facfbf1ab26d3",
"d": true,
"name": "",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "true",
"targetType": "full",
"statusVal": "",
"statusType": "auto",
"x": 340,
"y": 60,
"wires": []
},
{
"id": "ea9d791fe72e3274",
"type": "function",
"z": "bd5facfbf1ab26d3",
"name": "switch \"1\" \"0\" => [IPX]Relay state x true/false",
"func": "var msg1;\n\nmsg1 = msg.topic\n\n/* gladys/device/mqtt:IPX800V5_Relais-1/feature/mqtt:IPX800V5_Relais-1/state */\nvar varNoRelais = msg1.substring(35,36);\nvar varStateRelais = msg.payload;\n\nswitch (varStateRelais) {\n case \"1\":\n msg = {payload:\"{\\\"[IPX]Relay cmd \" + varNoRelais + \"\\\":true}\"}; break;\n case \"0\":\n msg = {payload:\"{\\\"[IPX]Relay cmd \" + varNoRelais + \"\\\":false}\"}; break;\n default: \n break;\n}\n\nmsg.topic = \"IPX800V5\";\n\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 530,
"y": 300,
"wires": [
[
"8f7e7262bc6bf978"
]
]
},
{
"id": "49d3fe656e3c55b0",
"type": "comment",
"z": "bd5facfbf1ab26d3",
"name": "gladys/device/# <=> switch \"1\" \"0\" => [IPX]Relay state x true/false <=> IPX800V5",
"info": "",
"x": 320,
"y": 260,
"wires": []
},
{
"id": "b3606a34a3565c0a",
"type": "comment",
"z": "bd5facfbf1ab26d3",
"name": "IPX800V5 <=> switch [IPX]Relay state X true/false <=> 0/1 <=> gladys/master/device/mqtt:IPX800V5_Relais-\" X \"/feature/mqtt:IPX800V5_Relais-\" X \"/state\"",
"info": "",
"x": 550,
"y": 140,
"wires": []
},
{
"id": "291914c5c9c68f02",
"type": "mqtt-broker",
"name": "mqtt://localhost",
"broker": "mqtt://localhost",
"port": "1883",
"clientid": "",
"autoConnect": true,
"usetls": false,
"protocolVersion": "4",
"keepalive": "60",
"cleansession": true,
"birthTopic": "",
"birthQos": "0",
"birthPayload": "",
"birthMsg": {},
"closeTopic": "",
"closeQos": "0",
"closePayload": "",
"closeMsg": {},
"willTopic": "",
"willQos": "0",
"willPayload": "",
"willMsg": {},
"sessionExpiry": ""
}
]
Auf „New flow“ klicken und in den rosa Bereich einfügen
Sie erhalten den folgenden Flow (Der Debug-Bereich ist deaktiviert)
Der Node-red-Teil ist abgeschlossen, jetzt geht es zum „Gladys“-Teil
In Gladys auf „Integrationen“ klicken
Dann auf das Widget „MQTT“ klicken
Auf „Neu“ klicken
![]()
Wie folgt einrichten und auf „Funktion hinzufügen“ klicken
Dann auf „Speichern“ und „Zurück“ klicken
Auf „Startseite“ klicken
Dann auf „Neu“ klicken, um ein neues „Dashboard“ zu erstellen
![]()
Das wir „IPX800V5“ nennen
Auf „Bearbeiten“ klicken
![]()
In der Spalte 1 auf „Geräte des Raumes“ klicken
„Elektrischer Schaltkasten“ für den Raum auswählen (in der Raumkonfiguration erstellt)
Dann „IPX800V5_Relais-1“ auswählen und speichern!
Jetzt können Sie auf das Relais 1 des IPX800V5 klicken, um es zu steuern (Sie können alle anderen Relais auf die gleiche Weise steuern, indem Sie die Schritte anpassen!
)
Das war’s, Ende dieses langen Tutorials… ![]()
Ich warte auf Ihr Feedback zu Ihren Tests, um eventuell Korrekturen vorzunehmen! ![]()
Das Tutorial auf dem GCE-Forum



































