Mini-Tutorial - Gladys-Interaktion - IPX800V5 über Node-RED

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

image

dann „Widget hinzufügen“

image

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“

image

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 :wink:

[
    {
        "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

image

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

image

Das wir „IPX800V5“ nennen

Auf „Bearbeiten“ klicken

image

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! :wink:)

Das war’s, Ende dieses langen Tutorials… :sweat:

Ich warte auf Ihr Feedback zu Ihren Tests, um eventuell Korrekturen vorzunehmen! :+1:

Das Tutorial auf dem GCE-Forum

2 „Gefällt mir“