GX IO Extender 150 Relais über Nodes ansteuern

Hallo, ich möchte meine Relais vom GX IO Extender 150 über Nodes ansteuern. Leider tauchen die in Geräte beim Ekrano nur in der Grupper GX IO auf und unter Intergration Relais garnicht. Somit finde ich sie im Nodes nicht. Außer im Node Switch siehe Bild. (Abwasser öffnen und schließen sind die beiden)

Dir fehlen offenbar grundlegende Kenntnisse, wobei die Grundlagen gar nicht so kompliziert sind.
Schau dir einfach mal ein paar Beispiele an.
Dazu gibt es auch diverse Videos, auch direkt von Victron.

Einfach gesagt:
Nodes mit einem grauen Punkt rechts sind Eingänge und bringen ein Signal in den flow und Nodes mit dem Punkt links sind Ausgänge.
Dazwischen kommen mehr oder weniger Nodes, die das Eingangssignal verarbeiten/anpassen.

Wenn du ein Relais ansteuern willst, musst du auch das Relais Node nehmen, mit dem grauen Punkt auf der linken Seite.

Hallo Matthias, ich verstehe das ihr ein wenig genervt seid.

Ich habe schon nach Videos geschaut und auch Copilot gefragt aber nichts funktioniert nur annährend wie irgendwo dargestellt. Entweder schreibt Copilot “löse es über MQQT” das gehtbei meinem System nicht, das habe ich nach Stunden rausgefunden! Oder “das Relais vom GX IO taucht nun genauso auf wie das vom Ekrano” das stimmt auch nicht, dementsprechend gibt es kein Node. Ich verstehe schon was Ein- und Ausgangs von Nodes sind.

Leider konnte ich z.b. vom letzten Thema (Netzschalter-Relay) wieder nichts gelerntes umsetzen da alles wieder völlig anders ist.

Nun gut genug gejammert, bevor ich noch zig Themen aufmache, schreibe ich einfach mal was ich für Anforderungen habe (wie ich eigentlich finde nicht viele) Ich schreibe was ich umsetzen möchte und was ich bereits verkabelt habe (bzw. welche Signale ich bekomme). P.s. ich habe mir bereits viele Gedanken dazu gemacht, konnte ja keine Ahnen das die Softwareumsetzung das Problem wird. Mein gesammtes Womo habe ich so selbst gebaut…aber dieses System nervt mich gerade.

  1. Netzschalter → gelöst
  2. 230V (Landstrom angeschlossen) Anzeige → Eine Leitung mit 12V Eingang = 230V Landstrom An befindet sich am Ekrano Digitalen Eingang.
  3. Abwasserventil Öffnen → 2xRelaix angeschlossen am GX IO (ich denke es ginge mit einem auch). Zusätzlich habe ich am GX IO 2x Digitalen Eingang die Rückmelde LED für den jeweiligen Zustand angeschossen.
  4. Wasserstand Frischwasser → Ich habe einen GX Tank 140 und habe ich an dem Kanal 4 einen TL-136 angeschlossen. Das “sollte” Plug&Play gehen, schauen wir mal.

Gruß Sascha

ps jedes Youtube Video funktioniert mit dem Cerbo nichts mit dem Ekrano, ich dachte ich hätte mir hier das Beste System von Victron gekauft…

Ich habe jetzt kein IO-Extender zum testen hier, aber war es nicht so, das man da die Relais im GX auch erst noch aktivieren muss?
Mach da doch vielleicht mal ein paar Screenshots, wie es bei dir aussieht.

Laut Anleitung sollte das mit dem Switch und Relay control Nodes funktionieren.
Du kannst dir auch direkt in NodeRed ein paar Beispielflows anschauen, einfach irgendwo im Arbeitsbereich rechts klicken → Einfügen → Import example flow

Auf beiden läuft die gleiche Software, nur die HW ist leicht anders.
Also kannst du mit beiden Geräten das gleiche machen.

Laut deinem Screenshot oben wurde der IO scheinbar richtig erkannt, du hast da aber den “Switch” node genommen (ein Eingang), um ein Relais vom IO zu steuern brauchst du aber den “Relay Control”.
Um über ein Signal von einem digitalen Eingang etwas zu machen brauchst du zuerst ein “Digital Input” Node.
Das Signal vom Input musst du ggf. In eine 0 und 1 umwandeln, weil das “Relay Control” 0 und 1 als Signale erwartet. Zum umwandeln nimmst du den “change” Node (weiter oben bei Funktionen).

Hallo Matthias,

danke das du noch nicht taufgegeben hast!

Hier ein paar Bilder von meinem System. Unter Integration gibt es nur den Punkt Relais und darunter ist keines des GX IO. Unter Geräte ist er integriert und darunter befinden sich alle Ein und Ausgänge.

Laut Anleitung ist der Punkt 4 auf Seite 7 für mich ein Rätsel. Die Darstellung auf Seite 8 gibt es überhaupt nicht im Red Node.

Der Tanksensor

Mein Tanksensor hat zumindest per Plug&Play funktioniert ABER ich habe ihn heute versucht zu kalibrieren da mein Tank nicht überall gleich breit ist. Das ging leider in die Hose.

A steht nirgends was die Einstellungen bedeuten im Ekrano siehe Bild

B funktioniert das was man in Youtube schaut anscheinend nicht bei mir. Div. Videos zeigen die Verwendung mit Super Sense. Die Leute füllen schrittweise z.b. 10% Wasser ein und lesen den angezeigten Wert ab. Dann tragen sie es in die Felder ein links IST und rechts SOLL.

Das habe ich getan → 95l umfasst mein Tanke genau.

Ich habe eingefüllt:

9,5l = 10% zeigt die anzeigen 25% (geändert lt. Video links25% rechts10% hat funktioniert)

19l = 20% zeigt die Anzeige 35% (geändert lt. Video links35% rechts20% hat fast funktioniert 19% hat er angezeigt)

28,5l = 30% zeigt die Anzeige 56% (geändert lt. Video links56% rechts 30% hat überhaupt nicht funktioniert 46% hat er angezeigt)

Dann hatte ich die Schnautze voll nach dem 4.ten Versuch → demnach 400l in das Gully.

Hallo Matthias, ich habe die Relais gefunden, also wenn es stimmt → ich habe den switch control genommen.

So sieht mein Flow aus

Irgendwie verriegeln sich die Schalter nicht. Ich wollte Schalter auf --klicken (pumpe fährt auf) Bis entweder Input kommt von “ist offen” digitalen EA oder ich den Schalter per Hand zurück setze.

Zusätzlich darf Schalter zu fahren nicht betätigt werden so lange wie Schalter auf fahren auf ein steht.

Siehst du den Fehler im Script?

p.s. ein klein wenig geht es voran ; )

pp.s. ich glaube so fügt man kein script hier ein, wie habt ihr das gemacht?

[
{
“id”: “5a51a45f83bf50bb”,
“type”: “victron-virtual-switch”,
“z”: “6bf91622239ccc55”,
“name”: “Abwasser zu”,
“outputs”: 2,
“switch_1_type”: 1,
“switch_1_initial”: 0,
“switch_1_label”: “”,
“switch_1_customname”: “zu fahren”,
“switch_1_group”: “Abwasser”,
“switch_1_include_measurement”: false,
“switch_1_rgb_color_wheel”: false,
“switch_1_cct_wheel”: false,
“switch_1_rgb_white_dimmer”: false,
“x”: 150,
“y”: 580,
“wires”: [
,
[
“6ffabb1d7bbd12f6”,
“interlock_abwasser”
]
]
},
{
“id”: “9eb99bbde53d009d”,
“type”: “victron-output-switch”,
“z”: “6bf91622239ccc55”,
“service”: “com.victronenergy.switch/50”,
“path”: “/SwitchableOutput/relay_1/State”,
“serviceObj”: {
“service”: “com.victronenergy.switch/50”,
“name”: “GX IO extender 150”,
“communityTag”: “switch”
},
“pathObj”: {
“path”: “/SwitchableOutput/relay_1/State”,
“type”: “enum”,
“enum”: {
“0”: “Off”,
“1”: “On”
},
“name”: “relais 1 gxio state”,
“mode”: “both”
},
“initial”: 0,
“name”: "Abwasser Relai 1=zu ",
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 0,
“conditionalMode”: false,
“condition1Operator”: “>”,
“condition2Enabled”: false,
“condition2Service”: “”,
“condition2Path”: “”,
“condition2Operator”: “>”,
“logicOperator”: “AND”,
“outputTrue”: “true”,
“outputFalse”: “false”,
“outputOnChange”: false,
“debounce”: 2000,
“x”: 820,
“y”: 520,
“wires”:
},
{
“id”: “6ffabb1d7bbd12f6”,
“type”: “function”,
“z”: “6bf91622239ccc55”,
“name”: “Virtual Switch Reset Logik”,
“func”: “// msg.payload = Zustand des Virtual Switch\n// Reset-Signal setzt den Switch zurück\n\nlet schalter = context.get(‘schalter’) || 0;\n\n// Virtual Switch Änderung\nif (msg.topic !== “reset”) {\n schalter = msg.payload;\n}\n\n// Reset-Signal → Switch zurücksetzen\nif (msg.topic === “reset” && msg.payload === 1) {\n schalter = 0;\n // Virtual Switch zurücksetzen\n node.send({ payload: 0, topic: “set_switch” });\n}\n\ncontext.set(‘schalter’, schalter);\n\n// Relais folgt dem Schalterzustand\nreturn [{ payload: schalter, topic: “relay” }];”,
“outputs”: 1,
“timeout”: “”,
“noerr”: 0,
“initialize”: “”,
“finalize”: “”,
“libs”: ,
“x”: 470,
“y”: 540,
“wires”: [
[
“9eb99bbde53d009d”
]
]
},
{
“id”: “35ba63bd09ba53a9”,
“type”: “victron-input-digitalinput”,
“z”: “6bf91622239ccc55”,
“service”: “com.victronenergy.digitalinput/10”,
“path”: “/Count”,
“serviceObj”: {
“service”: “com.victronenergy.digitalinput/10”,
“name”: “Signal Abwasser ist zu”,
“communityTag”: “digitalinput”
},
“pathObj”: {
“path”: “/Count”,
“type”: “float”,
“name”: “Digital input count”
},
“name”: “signal ist zu”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“outputTrue”: “true”,
“outputFalse”: “false”,
“debounce”: “2000”,
“x”: 150,
“y”: 440,
“wires”: [
[
“6ffabb1d7bbd12f6”
]
]
},
{
“id”: “6a15dc90d3e12413”,
“type”: “victron-virtual-switch”,
“z”: “6bf91622239ccc55”,
“name”: “Abwasser auf”,
“outputs”: 2,
“switch_1_type”: 1,
“switch_1_initial”: 0,
“switch_1_label”: “”,
“switch_1_customname”: “auf fahren”,
“switch_1_group”: “Abwasser”,
“switch_1_include_measurement”: false,
“switch_1_rgb_color_wheel”: false,
“switch_1_cct_wheel”: false,
“switch_1_rgb_white_dimmer”: false,
“x”: 160,
“y”: 880,
“wires”: [
,
[
“97c6cf93b9d32cd9”,
“interlock_abwasser”
]
]
},
{
“id”: “d3d68f2c56d52d61”,
“type”: “victron-output-switch”,
“z”: “6bf91622239ccc55”,
“service”: “com.victronenergy.switch/50”,
“path”: “/SwitchableOutput/relay_2/State”,
“serviceObj”: {
“service”: “com.victronenergy.switch/50”,
“name”: “GX IO extender 150”,
“communityTag”: “switch”
},
“pathObj”: {
“path”: “/SwitchableOutput/relay_2/State”,
“type”: “enum”,
“enum”: {
“0”: “Off”,
“1”: “On”
},
“name”: “relais 2 gxio state”,
“mode”: “both”
},
“initial”: 0,
“name”: “Abwasser Relai 1=auf”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 0,
“conditionalMode”: false,
“condition1Operator”: “>”,
“condition2Enabled”: false,
“condition2Service”: “”,
“condition2Path”: “”,
“condition2Operator”: “>”,
“logicOperator”: “AND”,
“outputTrue”: “true”,
“outputFalse”: “false”,
“outputOnChange”: false,
“debounce”: 2000,
“x”: 840,
“y”: 860,
“wires”:
},
{
“id”: “97c6cf93b9d32cd9”,
“type”: “function”,
“z”: “6bf91622239ccc55”,
“name”: “Virtual Switch Reset Logik”,
“func”: “// msg.payload = Zustand des Virtual Switch\n// Reset-Signal setzt den Switch zurück\n\nlet schalter = context.get(‘schalter’) || 0;\n\n// Virtual Switch Änderung\nif (msg.topic !== “reset”) {\n schalter = msg.payload;\n}\n\n// Reset-Signal → Switch zurücksetzen\nif (msg.topic === “reset” && msg.payload === 1) {\n schalter = 0;\n // Virtual Switch zurücksetzen\n node.send({ payload: 0, topic: “set_switch” });\n}\n\ncontext.set(‘schalter’, schalter);\n\n// Relais folgt dem Schalterzustand\nreturn [{ payload: schalter, topic: “relay” }];”,
“outputs”: 1,
“timeout”: “”,
“noerr”: 0,
“initialize”: “”,
“finalize”: “”,
“libs”: ,
“x”: 490,
“y”: 840,
“wires”: [
[
“d3d68f2c56d52d61”
]
]
},
{
“id”: “763bd06e27dbb737”,
“type”: “victron-input-digitalinput”,
“z”: “6bf91622239ccc55”,
“service”: “com.victronenergy.digitalinput/11”,
“path”: “/Count”,
“serviceObj”: {
“service”: “com.victronenergy.digitalinput/11”,
“name”: “Signal Abwasser ist auf”,
“communityTag”: “digitalinput”
},
“pathObj”: {
“path”: “/Count”,
“type”: “float”,
“name”: “Digital input count”
},
“name”: “signal ist auf”,
“onlyChanges”: false,
“roundValues”: “no”,
“rateLimit”: 0,
“outputs”: 1,
“conditionalMode”: false,
“outputTrue”: “true”,
“outputFalse”: “false”,
“debounce”: “2000”,
“x”: 150,
“y”: 740,
“wires”: [
[
“97c6cf93b9d32cd9”
]
]
},
{
“id”: “interlock_abwasser”,
“type”: “function”,
“z”: “6bf91622239ccc55”,
“name”: “Interlock Abwasser (0/1)”,
“func”: “// Eingang 1 = Schalter ZU\n// Eingang 2 = Schalter AUF\n\nlet zu = context.get(“zu”) || 0;\nlet auf = context.get(“auf”) || 0;\n\n// Welcher Eingang?\nlet input = msg._input; // wird unten gesetzt\nlet val = Number(msg.payload);\n\n// Zustand aktualisieren\nif (input === 1) zu = val;\nif (input === 2) auf = val;\n\n// Verriegelung\nif (input === 1 && val === 1) {\n zu = 1;\n auf = 0;\n}\n\nif (input === 2 && val === 1) {\n auf = 1;\n zu = 0;\n}\n\n// Speichern\ncontext.set(“zu”, zu);\ncontext.set(“auf”, auf);\n\n// Ausgänge\nreturn [\n { payload: zu }, // Ausgang 1 → ZU\n { payload: auf } // Ausgang 2 → AUF\n];”,
“outputs”: 2,
“timeout”: “”,
“noerr”: 0,
“initialize”: “node.on(‘input’, (msg, send, done) => {\n msg._input = msg._msgid_input;\n done();\n});”,
“finalize”: “”,
“libs”: ,
“x”: 450,
“y”: 680,
“wires”: [
[
“6ffabb1d7bbd12f6”
],
[
“97c6cf93b9d32cd9”
]
]
},
{
“id”: “d18aa23ed07c3deb”,
“type”: “global-config”,
“env”: ,
“modules”: {
@victronenergy/node-red-contrib-victron”: “1.6.63”
}
}
]

Kann dir da gerade nicht folgen, welche Anleitung?

Ich habe mich mit dem einstellen von Tankformen noch nicht befassen müssen.
Aber du musst dir da glaube ich erst mal selbst ausrechnen, bei welcher Füllhöhe wie viel Volumen der Tank hat bzw wie viel vom Gesamtvolumen man auf welcher Höhe hat.
Dann den Sensor auf verschiedene Höhen bringen und die Werte eintragen.

Das sollte man ohne Wasser machen können, wenn man an den Sensor kommt um diesen manuell zu bewegen.

Der Code scheint so nicht zu funktionieren.
Entweder rot oder grün oder du lädtst die .json Datei runter und hängst die hier an:

Das hat mir Copilot noch vorgeschlagen:

Aber leider geht die Verriegelung dennoch nicht.

Hardwareseitig ginge es sicher so: Ich würde mein Relais 1 als primäres setzen.

Aber Anzeigemäßig?

[
    {
        "id": "c3eda6499cad7722",
        "type": "change",
        "z": "6bf91622239ccc55",
        "name": "Markiere Eingang ZU",
        "rules": [
            {
                "t": "set",
                "p": "input",
                "pt": "msg",
                "to": "1",
                "tot": "num"
            }
        ],
        "x": 340,
        "y": 1740,
        "wires": [
            [
                "8fab95fb36d73fba"
            ]
        ]
    },
    {
        "id": "e6f6f31b5adcdf5e",
        "type": "change",
        "z": "6bf91622239ccc55",
        "name": "Markiere Eingang AUF",
        "rules": [
            {
                "t": "set",
                "p": "input",
                "pt": "msg",
                "to": "2",
                "tot": "num"
            }
        ],
        "x": 340,
        "y": 2040,
        "wires": [
            [
                "8fab95fb36d73fba"
            ]
        ]
    },
    {
        "id": "8fab95fb36d73fba",
        "type": "function",
        "z": "6bf91622239ccc55",
        "name": "Interlock Abwasser (Auto-Reset)",
        "func": "// Eingang 1 = ZU\n// Eingang 2 = AUF\n\nlet zu = context.get(\"zu\") || 0;\nlet auf = context.get(\"auf\") || 0;\n\nlet input = msg.input;     // kommt aus Change-Node\nlet val = Number(msg.payload);\n\n// Zustand aktualisieren\nif (input === 1) zu = val;\nif (input === 2) auf = val;\n\n// Verriegelung + Auto-Reset\nif (input === 1 && val === 1 && auf === 1) {\n    // AUF zurücksetzen\n    node.send([ null, { topic: \"reset\", payload: 1 } ]);\n    auf = 0;\n}\n\nif (input === 2 && val === 1 && zu === 1) {\n    // ZU zurücksetzen\n    node.send([ { topic: \"reset\", payload: 1 }, null ]);\n    zu = 0;\n}\n\n// Speichern\ncontext.set(\"zu\", zu);\ncontext.set(\"auf\", auf);\n\n// Normale Ausgänge\nreturn [\n    { payload: zu },\n    { payload: auf }\n];",
        "outputs": 2,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 550,
        "y": 1880,
        "wires": [
            [
                "100e3f64037bcb91"
            ],
            [
                "608d72f43e370820"
            ]
        ]
    },
    {
        "id": "50e1a23a53e1b594",
        "type": "victron-virtual-switch",
        "z": "6bf91622239ccc55",
        "name": "Abwasser zu",
        "outputs": 2,
        "switch_1_type": 1,
        "switch_1_initial": 0,
        "switch_1_customname": "zu fahren",
        "switch_1_group": "Abwasser",
        "x": 160,
        "y": 1700,
        "wires": [
            [],
            [
                "100e3f64037bcb91",
                "c3eda6499cad7722"
            ]
        ]
    },
    {
        "id": "100e3f64037bcb91",
        "type": "function",
        "z": "6bf91622239ccc55",
        "name": "Reset Logik ZU",
        "func": "let schalter = context.get('schalter') || 0;\nif (msg.topic !== \"reset\") schalter = msg.payload;\nif (msg.topic === \"reset\" && msg.payload === 1) {\n    schalter = 0;\n    node.send({ payload: 0, topic: \"set_switch\" });\n}\ncontext.set('schalter', schalter);\nreturn [{ payload: schalter }];",
        "outputs": 1,
        "x": 830,
        "y": 1700,
        "wires": [
            [
                "be2721bd5d1efa71"
            ]
        ]
    },
    {
        "id": "be2721bd5d1efa71",
        "type": "victron-output-switch",
        "z": "6bf91622239ccc55",
        "service": "com.victronenergy.switch/50",
        "path": "/SwitchableOutput/relay_1/State",
        "name": "Relais ZU",
        "outputs": 0,
        "x": 1110,
        "y": 1700,
        "wires": []
    },
    {
        "id": "97501ce51a9da138",
        "type": "victron-virtual-switch",
        "z": "6bf91622239ccc55",
        "name": "Abwasser auf",
        "outputs": 2,
        "switch_1_type": 1,
        "switch_1_initial": 0,
        "switch_1_customname": "auf fahren",
        "switch_1_group": "Abwasser",
        "x": 160,
        "y": 2000,
        "wires": [
            [],
            [
                "608d72f43e370820",
                "e6f6f31b5adcdf5e"
            ]
        ]
    },
    {
        "id": "608d72f43e370820",
        "type": "function",
        "z": "6bf91622239ccc55",
        "name": "Reset Logik AUF",
        "func": "let schalter = context.get('schalter') || 0;\nif (msg.topic !== \"reset\") schalter = msg.payload;\nif (msg.topic === \"reset\" && msg.payload === 1) {\n    schalter = 0;\n    node.send({ payload: 0, topic: \"set_switch\" });\n}\ncontext.set('schalter', schalter);\nreturn [{ payload: schalter }];",
        "outputs": 1,
        "x": 830,
        "y": 2000,
        "wires": [
            [
                "863a9c56299a46d2"
            ]
        ]
    },
    {
        "id": "863a9c56299a46d2",
        "type": "victron-output-switch",
        "z": "6bf91622239ccc55",
        "service": "com.victronenergy.switch/50",
        "path": "/SwitchableOutput/relay_2/State",
        "name": "Relais AUF",
        "outputs": 0,
        "x": 1110,
        "y": 2000,
        "wires": []
    },
    {
        "id": "94ff107a8f86dd91",
        "type": "global-config",
        "env": [],
        "modules": {
            "@victronenergy/node-red-contrib-victron": "1.6.63"
        }
    }
]

Wenn du ein Relais schalten willst, musst du das “Relay control” Node benutzen!!!
Du hast “Switch control” genommen.

Die Logik in den Funktion Nodes kann ich nicht beurteilen, damit kenne ich mich auch (noch) nicht aus.

Eine Verriegelung könnte auch so funktionieren:

[
    {
        "id": "3261bf95600ce467",
        "type": "victron-virtual-switch",
        "z": "6275bec289f837bf",
        "name": "Abwasser zu",
        "outputs": 2,
        "switch_1_type": "1",
        "switch_1_initial": 0,
        "switch_1_customname": "zu fahren",
        "switch_1_group": "Abwasser",
        "x": 130,
        "y": 820,
        "wires": [
            [],
            [
                "d43aa3952d6881f7",
                "a979518c4aaa68a5"
            ]
        ]
    },
    {
        "id": "f7364d793b5a58f7",
        "type": "victron-virtual-switch",
        "z": "6275bec289f837bf",
        "name": "Abwasser auf",
        "outputs": 2,
        "switch_1_type": 1,
        "switch_1_initial": 0,
        "switch_1_customname": "auf fahren",
        "switch_1_group": "Abwasser",
        "x": 130,
        "y": 1120,
        "wires": [
            [],
            [
                "9e525f6cb301a181",
                "4ab94086b080604d"
            ]
        ]
    },
    {
        "id": "d43aa3952d6881f7",
        "type": "switch",
        "z": "6275bec289f837bf",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 430,
        "y": 900,
        "wires": [
            [
                "4ab94086b080604d"
            ]
        ]
    },
    {
        "id": "9e525f6cb301a181",
        "type": "switch",
        "z": "6275bec289f837bf",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 430,
        "y": 1060,
        "wires": [
            [
                "a979518c4aaa68a5"
            ]
        ]
    },
    {
        "id": "a979518c4aaa68a5",
        "type": "victron-output-relay",
        "z": "6275bec289f837bf",
        "service": "",
        "path": "",
        "name": "",
        "onlyChanges": false,
        "roundValues": "no",
        "rateLimit": 0,
        "outputs": 1,
        "conditionalMode": false,
        "condition1Operator": ">",
        "condition2Enabled": false,
        "condition2Service": "",
        "condition2Path": "",
        "condition2Operator": ">",
        "logicOperator": "AND",
        "outputTrue": "true",
        "outputFalse": "false",
        "outputOnChange": false,
        "debounce": 2000,
        "x": 1040,
        "y": 820,
        "wires": [
            []
        ]
    },
    {
        "id": "4ab94086b080604d",
        "type": "victron-output-relay",
        "z": "6275bec289f837bf",
        "service": "",
        "path": "",
        "name": "",
        "onlyChanges": false,
        "roundValues": "no",
        "rateLimit": 0,
        "outputs": 1,
        "conditionalMode": false,
        "condition1Operator": ">",
        "condition2Enabled": false,
        "condition2Service": "",
        "condition2Path": "",
        "condition2Operator": ">",
        "logicOperator": "AND",
        "outputTrue": "true",
        "outputFalse": "false",
        "outputOnChange": false,
        "debounce": 2000,
        "x": 1040,
        "y": 1140,
        "wires": [
            []
        ]
    },
    {
        "id": "843bd0b63bd0115d",
        "type": "global-config",
        "env": [],
        "modules": {
            "@victronenergy/node-red-contrib-victron": "1.6.63"
        }
    }
]

Wenn zu AUF drückst bekommt das Relais ZU eine 0 = AUS und umgedreht.
Kannst da ggf auch noch ein “delay” rein setzen, das erst die 0 bei ZU ankommt, bevor die 1 beim AUF ankommt.

Die Relais zusätzlich über eine digitalen Eingang abzuschalten, sollte auch kein Problem sein.
Wir bewegen uns hier noch komplett bei den Grundlagen von NodeRed.

… hat zwar nichts mit dem Flow zu tun aber ich denke das die grafische Darstellung des Schalters im GX sich nichts aus deinem Flow machen wird.

Wenn du hier schaltest wird in der Grafik der Schieber trotzdem wechseln … auch wenn du im Flow irgendwas verriegelt hast … Der Schalter weiss ja nichts vom Flow im Hintergrund … Warum nutzt du nicht einfach den Wechsler für AUF oder ZU ? Dann benötigst du auch keine Verriegelung …

Vermutlich weil weder auf AUF noch auf ZU Dauerspannung anliegen darf.
Man wird also immer beide Relais nutzen müssen.

Eventuell wird uns das ja gleich mitgeteilt :expressionless_face: … ich kenne Fahr- und Servomotore nur mit eigener interner oder externer Endlagenabschaltung damit man eben keine Totmannschaltung benötigt.

Hallo Steffen, ich bin göaube ich zu vorsichtig bzgl. Der verdrahtung. Bei meiner EBL Schaltung us meinem letzten Thema habe ich die Firma Schaudt angeschrieben, die antwortete: auf kein Fall dauerhaft auf Masse ziehen :rofl: .

In dem Fall jetzt glaube ich auch das das Lilie Kugelhahnventil eine eigene Abschaltung hat denn siehe Bild hat der Bediener ein Wechselschalter. (der wird sicher vergessen zurück zu setze)

Bekomme am handy kein bild hier rein (google bild lilie kugelhahn bedienung)

Ich denke ich werde es mit einem Schalter lösen.

Ich lehne moch mal aus dem Fenster die Wörter An Aus kann ich wieder nicht ändern zu Auf und Zu :face_with_peeking_eye:

Hier könnte man doch auch, analog zu diesem Thread einen Toggle-Switch nehmen, nur die Verzögerung müsste man größer wählen, sodass der Hahn genug Zeit zum Öffnen und Schließen hat, oder?

So in der Art, nur die Zeiten und Relais müsstest Du natürlich anpassen, oder muss das Relais die ganze Zeit des Ablassens angezogen sein? Dann müsste man das etwas anders machen.

[
    {
        "id": "be36ea69e2668364",
        "type": "tab",
        "label": "Flow 3",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "87fca846062722e5",
        "type": "victron-virtual-switch",
        "z": "be36ea69e2668364",
        "name": "Abwasser öffnen",
        "outputs": 2,
        "switch_1_type": 1,
        "switch_1_initial": 0,
        "switch_1_customname": "Abwasser öffnen",
        "switch_1_group": "Abwasser",
        "x": 230,
        "y": 140,
        "wires": [
            [],
            [
                "8e2b4e229656588b"
            ]
        ]
    },
    {
        "id": "c8f504e68ab93d43",
        "type": "victron-output-relay",
        "z": "be36ea69e2668364",
        "service": "com.victronenergy.system/0",
        "path": "/Relay/0/State",
        "serviceObj": {
            "service": "com.victronenergy.system/0",
            "name": "Venus device"
        },
        "pathObj": {
            "path": "/Relay/0/State",
            "type": "enum",
            "name": "Venus relay 1 state",
            "enum": {
                "0": "Open",
                "1": "Closed"
            },
            "mode": "both",
            "disabled": false
        },
        "name": "",
        "onlyChanges": false,
        "roundValues": "no",
        "rateLimit": 0,
        "outputs": 0,
        "conditionalMode": false,
        "condition1Operator": ">",
        "condition2Enabled": false,
        "condition2Service": "",
        "condition2Path": "",
        "condition2Operator": ">",
        "logicOperator": "AND",
        "outputTrue": "true",
        "outputFalse": "false",
        "outputOnChange": false,
        "debounce": 2000,
        "x": 860,
        "y": 100,
        "wires": []
    },
    {
        "id": "0d94bccbdf0335cc",
        "type": "victron-output-relay",
        "z": "be36ea69e2668364",
        "service": "com.victronenergy.system/0",
        "path": "/Relay/1/State",
        "serviceObj": {
            "service": "com.victronenergy.system/0",
            "name": "Venus device"
        },
        "pathObj": {
            "path": "/Relay/1/State",
            "type": "enum",
            "name": "Venus relay 2 state",
            "enum": {
                "0": "Open",
                "1": "Closed"
            },
            "mode": "both"
        },
        "name": "",
        "onlyChanges": false,
        "roundValues": "no",
        "rateLimit": 0,
        "outputs": 0,
        "conditionalMode": false,
        "condition1Operator": ">",
        "condition2Enabled": false,
        "condition2Service": "",
        "condition2Path": "",
        "condition2Operator": ">",
        "logicOperator": "AND",
        "outputTrue": "true",
        "outputFalse": "false",
        "outputOnChange": false,
        "debounce": 2000,
        "x": 860,
        "y": 180,
        "wires": []
    },
    {
        "id": "4d74b4ebf05ea005",
        "type": "trigger",
        "z": "be36ea69e2668364",
        "name": "5s öffnen",
        "op1": "1",
        "op2": "0",
        "op1type": "num",
        "op2type": "num",
        "duration": "5",
        "extend": false,
        "overrideDelay": false,
        "units": "s",
        "reset": "",
        "bytopic": "all",
        "topic": "topic",
        "outputs": 1,
        "x": 600,
        "y": 100,
        "wires": [
            [
                "c8f504e68ab93d43"
            ]
        ]
    },
    {
        "id": "a416585de406d3d1",
        "type": "trigger",
        "z": "be36ea69e2668364",
        "name": "5s schließen",
        "op1": "1",
        "op2": "0",
        "op1type": "num",
        "op2type": "num",
        "duration": "5",
        "extend": false,
        "overrideDelay": false,
        "units": "s",
        "reset": "",
        "bytopic": "all",
        "topic": "topic",
        "outputs": 1,
        "x": 610,
        "y": 180,
        "wires": [
            [
                "0d94bccbdf0335cc"
            ]
        ]
    },
    {
        "id": "8e2b4e229656588b",
        "type": "switch",
        "z": "be36ea69e2668364",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "1",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 430,
        "y": 140,
        "wires": [
            [
                "4d74b4ebf05ea005"
            ],
            [
                "a416585de406d3d1"
            ]
        ]
    },
    {
        "id": "4d07c208f18f816b",
        "type": "global-config",
        "env": [],
        "modules": {
            "@victronenergy/node-red-contrib-victron": "1.6.63"
        }
    }
]

Hallo Matthias, das ich habe im Relay control nicht die Auswahl. Daher bin ich auf dieses Switch control gestoßen. Geht das nicht?

Bild Switch Control ich habe jeden Ein/Ausgang und Relay vom GX IO

Bild Relay Control ich habe nur mein Ekrano GX

Meinst du es geht dennoch?

Wohl kaum, das sind eben verschiedene Dinge.

Schau doch noch mal in den Einstellungen im GX Gerät durch alle Menüs, vielleicht ist da noch was.
Die Relais vom GX Gerät muss man ja auch erst für die Nutzung im NodeRed aktivieren (auf manuell schalten).

Wenn ich Zeit habe, kann ich mir das morgen mal in meinem Testsystem versuchen.

Wenn ich das richtig lese sind im GX IO Extender selbsthaltende (bistabile) Relais verbaut.
Die lassen sich als nur zwischen A und B hin und her schalten und wenn sie im Switch Control Node auswählbar sind, warum sollte man sie da nicht ansprechen können?
@Sascha2278 was passiert, denn wenn Du die Relais via Switch Control Node versuchst zu schalten?

EDIT:
Aus dem Handbuch des Extenders Seite 5, Kapitel 2.2 Punkt 4

Schalten Sie den Schalter und den Schaltknoten und steuern Sie den GX IO-Extender 150. Diese Knoten sind Teil des
Pakets node-red-contrib-victron, das im Venus OS Large-Image vorinstalliert ist.

Klingt mir, wenn auch schlecht übersetzt, ebenfalls nach Switch Control Node.

Ja, die Relais sind bi-stabil, aber trotzdem sind es, so weit ich weiß, Wechselkontakte, also entweder ist A oder B aktiv, nicht beide oder keiner.

@Sascha2278 hat die Hardware und könnte es einfach mal testen.
Einfach mal zwei “inject” Nodes mit jeweils 1 und 0 mit dem “switch control” Node eingestellt auf ein IO Relais verbinden.

So, habe es nun mal fix getestet, so wie es auch @Sascha2278 hätte machen können.

Es ist beim IO-Extender tatsächlich so, das man das “switch control” Node nutzen muss um die Relais zu schalten. Macht meiner Meinung nach nicht viel Sinn, scheint aber so zu sein.

[
    {
        "id": "5275e1a33d5d77e2",
        "type": "victron-output-switch",
        "z": "cf1d25bdda377942",
        "service": "com.victronenergy.switch/51",
        "path": "/SwitchableOutput/relay_1/State",
        "serviceObj": {
            "service": "com.victronenergy.switch/51",
            "name": "GX IO extender 150",
            "communityTag": "switch"
        },
        "pathObj": {
            "path": "/SwitchableOutput/relay_1/State",
            "type": "enum",
            "enum": {
                "0": "Off",
                "1": "On"
            },
            "name": "Relay 1 state",
            "mode": "both"
        },
        "name": "",
        "onlyChanges": false,
        "roundValues": "no",
        "rateLimit": 0,
        "outputs": 0,
        "conditionalMode": false,
        "condition1Operator": ">",
        "condition2Enabled": false,
        "condition2Service": "",
        "condition2Path": "",
        "condition2Operator": ">",
        "logicOperator": "AND",
        "outputTrue": "true",
        "outputFalse": "false",
        "outputOnChange": false,
        "debounce": 2000,
        "x": 740,
        "y": 340,
        "wires": []
    },
    {
        "id": "3baa533f6c7df6ba",
        "type": "inject",
        "z": "cf1d25bdda377942",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "1",
        "payloadType": "num",
        "x": 490,
        "y": 300,
        "wires": [
            [
                "5275e1a33d5d77e2"
            ]
        ]
    },
    {
        "id": "dda2e7083916ba3c",
        "type": "inject",
        "z": "cf1d25bdda377942",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "0",
        "payloadType": "num",
        "x": 490,
        "y": 380,
        "wires": [
            [
                "5275e1a33d5d77e2"
            ]
        ]
    },
    {
        "id": "4fbad89897eeea3f",
        "type": "global-config",
        "env": [],
        "modules": {
            "@victronenergy/node-red-contrib-victron": "1.6.63"
        }
    }
]

Entschuldigung daher für meine falschen Aussagen dazu, habe ja aber auch geschrieben, das ich es nicht testen konnte.

@Sascha2278 am Anfang zum Testen sind die “inject” und “debug” Nodes extrem hilfreich und wichtig, damit kann man ganz gut verstehen, wie das alles funktioniert.

Ich würde dir auch empfehlen mal bei Victron Professional zu schauen, da gibt es auch immer mal Termine zu kostenlosen Schulungen von Victron.
Meist in Fulda oder Ettenheim.

Hallo,

ich setzte das Thema auf abgeschlossen. der Austausch hat mir sehr geholfen weiter zu kommen und ich habe bereits einiges gelernt. Danke an alle.

@M_Lange das mit den Kursen ist ein es gute Idee. Danke.

Bitte nicht wundern, ich werde noch einmal ein paar Themen eröffnen. Ich denke es ist besser um nicht alles zu mischen.

Von meiner Liste siehe ganz oben habe ich nun 1. und 3. gelöst.

  1. würde ich gern nochmal zusammenfassen da ich glaube es hilfreich für jemanden sein kann der ebenfalls ein Grauwasser Kugelhahn von Lielie verbauen und steuern möchte.

Mein Lilie Kugelhahn Ventil hat 5 Adern

Grün = Signal LED Anschlag 1

Gelb = Signal LED Anschlag

Weiß = 12v dauernd für LED

WICHTIGSTE: Rot und Schwarz, diese wechseln ihre Polarität, je nach dem fahren Aus oder Ein.

So habe ich es mit zwei Relais umgesetzt

Risiko dachte ich: Ich habe keine Nullstellung in Endlage und der Motor überhizt.

Ich habe den Strom während der Bewegung gemessen = 35-50mA in Endlage 5mA, wobei es sich hier auch um Messungenauigkeit handelt und ich es vernachlässige.

Weiter Kabel außer Rot und Schwarz habe ich nicht verwendet ich ohnehin keine LED darstellen kann.

Nun auf zu Punkt 2 und 4.

Gruß Sascha