# Eingang zwischen zwei Ausängen umschalten

**URL:** https://discourse.nodered.org/t/eingang-zwischen-zwei-ausangen-umschalten/96203
**Category:** General
**Created:** [23 March 2025 19:10 UTC](https://discourse.nodered.org/t/eingang-zwischen-zwei-ausangen-umschalten/96203 "2025-03-23T19:10:00Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![binderj1](https://avatars.discourse-cdn.com/v4/letter/b/a88e4f/32.png) [@binderj1](https://discourse.nodered.org/u/binderj1)
#### Post date: [23 March 2025 19:10 UTC](https://discourse.nodered.org/t/eingang-zwischen-zwei-ausangen-umschalten/96203/1 "2025-03-23T19:10:00Z")

</div>

Hallo Leute  
Ich habe ein Problem bei dem ich eure Hilfe benötige.  
Ich habe mir einen Flow gebastelt, der aber nicht richtig funktioniert.

Der Injet-Nod liefert einen Text (msg.payload.E1 "HALLO") dieser soll in Abhängikeit von von "Injet E2" (der Toggelt true/false) bei Ausgang 1 oder Ausgang 2 landen.  
Das "HALLO" kommt immer bei Ausgang 2 raus egal was der INJET-E2 toggelt.

Ich bin neu bei Node-red, und hoffe auf eure Hilfe.

```auto
type or paste code here

[{"id":"439acc0ded3ff4d2","type":"inject","z":"a5911143974613fb","name":"OPEN","props":[{"p":"payload.E1","v":"HALLO","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":370,"y":220,"wires":[["1ebe148d41a313de"]]},{"id":"af39ea09f999f888","type":"InjectUltimate","z":"a5911143974613fb","name":"Inject","topic":"E2","curVal":true,"outputJSON":"{ \n\t\"payload\":\"E2\",\n\t\"topic\":\"false\"\n}","x":360,"y":380,"wires":[[],[],["1ebe148d41a313de"],[]],"outputLabels":["","","Toggle",""]},{"id":"1ebe148d41a313de","type":"function","z":"a5911143974613fb","name":"JSON","func":"if (msg.payload.E1 !== undefined) {\n if (msg.payload.E2 === true) {\n return [null, { payload: msg.payload.E1 }]; // E1 → Ausgang 1\n } \n else{\n return [{ payload: msg.payload.E1 }, null];\n }\n}\nelse{\n\nreturn null; // Falls kein E1-Signal existiert, keine Nachricht senden\n} ","outputs":2,"timeout":"1","noerr":0,"initialize":"","finalize":"","libs":[],"x":570,"y":300,"wires":[["d4046f0b4c1128fd"],["b468829235f5493d"]]},{"id":"b468829235f5493d","type":"debug","z":"a5911143974613fb","name":"Ausgang 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":380,"wires":[]},{"id":"d4046f0b4c1128fd","type":"debug","z":"a5911143974613fb","name":"Ausgang 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":220,"wires":[]}]

```

Vielen Dank  
Johannes

---

<div class="post-metadata">

### Author: ![xx\_Nexus\_xx](https://avatars.discourse-cdn.com/v4/letter/x/54ee81/32.png) [@xx\_Nexus\_xx](https://discourse.nodered.org/u/xx_Nexus_xx)
#### Post date: [24 March 2025 00:40 UTC](https://discourse.nodered.org/t/eingang-zwischen-zwei-ausangen-umschalten/96203/2 "2025-03-24T00:40:48Z")

</div>

Dein sample-code hat nen fehler und kann nicht importiert werden... zumindest fuer mich.

Zusaetzlich kannst du auch noch ein Pic uploaden, das macht das verstaendnis n bisl einfacher

---

<div class="post-metadata">

### Author: ![gregorius](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gregorius/32/73816_2.png) [@gregorius](https://discourse.nodered.org/u/gregorius)
#### Post date: [24 March 2025 07:37 UTC](https://discourse.nodered.org/t/eingang-zwischen-zwei-ausangen-umschalten/96203/3 "2025-03-24T07:37:01Z")

</div>

Hallo Johannes

Im Inject Node setzt du E1 aber nicht E2, also die Nachricht was in die Funktion Node kommt sieht dann so aus:

```auto
msg.payload.E1 = "HALLO"

```

dein Funktion Node macht folgendes:

```auto
if (msg.payload.E1 !== undefined) {
 if (msg.payload.E2 === true) {
 return [null, { payload: msg.payload.E1 }]; // E1 → Ausgang 1
 } 
 else{
 return [{ payload: msg.payload.E1 }, null];
 }
}
else{

return null; // Falls kein E1-Signal existiert, keine Nachricht senden
}

```

damit wird immer nur `return [{ payload: msg.payload.E1 }, null];` ausgefuehrt und daher dein Ergebnis.

Was der "InjectUltimate" Node macht weiss ich nicht also kann dazu nichts sagen aber dein Funktion-Node Logik sieht richtig aus.

P.S. den `return null` brauchst du nicht - auch ohne return passiert genau nichts.

Also:

```auto
if (msg.payload.E1 !== undefined) {
    if (msg.payload.E2 === true) {
        return [null, { payload: msg.payload.E1 }]; // E1 → Ausgang 1
    }
    else {
        return [{ payload: msg.payload.E1 }, null];
    }
}

```

wuerde auch funktionieren.

---

<div class="post-metadata">

### Author: ![binderj1](https://avatars.discourse-cdn.com/v4/letter/b/a88e4f/32.png) [@binderj1](https://discourse.nodered.org/u/binderj1)
#### Post date: [24 March 2025 09:17 UTC](https://discourse.nodered.org/t/eingang-zwischen-zwei-ausangen-umschalten/96203/4 "2025-03-24T09:17:07Z")

</div>

Hallo Gregorius  
Danke für deine Antwort.  
Der "InjectUltimate" gibt am obersten Ausgang immer "true" aus, am nächsten darunter kommt immer "false" raus, beim dritten Ausgang wird zwischen "true" und "false" getoggel und am letzten  
Ausgang kann ein beliebiger "payload" hinterlegt werden. Die Funktion wäre folgende:  
Beim Eingang E1 kommt vom Shelly-I4 ein Schaltsignalsignal, das in Abhängikeit von E2 beim Ausgang A1 oder A2 ankommen.

---

<div class="post-metadata">

### Author: ![gregorius](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gregorius/32/73816_2.png) [@gregorius](https://discourse.nodered.org/u/gregorius)
#### Post date: [24 March 2025 09:35 UTC](https://discourse.nodered.org/t/eingang-zwischen-zwei-ausangen-umschalten/96203/5 "2025-03-24T09:35:33Z")

</div>

kannst du mal ein Beispiel fuer das was beim InjectUltimate rausgekommt posten? Also ein Beispiel msg was vom InjectUltimate kam ist was ich meine.

---

<div class="post-metadata">

### Author: ![binderj1](https://avatars.discourse-cdn.com/v4/letter/b/a88e4f/32.png) [@binderj1](https://discourse.nodered.org/u/binderj1)
#### Post date: [24 March 2025 10:05 UTC](https://discourse.nodered.org/t/eingang-zwischen-zwei-ausangen-umschalten/96203/6 "2025-03-24T10:05:40Z")

</div>

reicht ein debug-nod vom InjetUltimad?

---

<div class="post-metadata">

### Author: ![binderj1](https://avatars.discourse-cdn.com/v4/letter/b/a88e4f/32.png) [@binderj1](https://discourse.nodered.org/u/binderj1)
#### Post date: [24 March 2025 17:32 UTC](https://discourse.nodered.org/t/eingang-zwischen-zwei-ausangen-umschalten/96203/7 "2025-03-24T17:32:59Z")

</div>

![injectUltimad2](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/0/70395340570ccfb32db6439473ebaddb6368ded7.png)  
 ![injectUltimad1](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/3/938cb9cfca1d775ab11212757de1e5be7d63fd87.png)

```auto
[{"id":"439acc0ded3ff4d2","type":"inject","z":"a5911143974613fb","name":"OPEN","props":[{"p":"payload.E1","v":"HALLO","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":370,"y":220,"wires":[["1ebe148d41a313de"]]},{"id":"1ebe148d41a313de","type":"function","z":"a5911143974613fb","name":"JSON","func":"//if (msg.payload.E1 !== undefined) {\n if (msg.payload.E2 === false) {\n return [null, { payload: msg.payload.E1 }]; // E1 → Ausgang 1\n } \n else{\n return [{ payload: msg.payload.E1 }, null];\n }\n//}\n//else{\n\nreturn null; // Falls kein E1-Signal existiert, keine Nachricht senden\n//} ","outputs":2,"timeout":"1","noerr":0,"initialize":"","finalize":"","libs":[],"x":570,"y":300,"wires":[["d4046f0b4c1128fd"],["b468829235f5493d"]]},{"id":"b468829235f5493d","type":"debug","z":"a5911143974613fb","name":"Ausgang 1","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":380,"wires":[]},{"id":"d4046f0b4c1128fd","type":"debug","z":"a5911143974613fb","name":"Ausgang 2","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":220,"wires":[]},{"id":"c5cf57550dd1b1b2","type":"InjectUltimate","z":"a5911143974613fb","name":"Inject","topic":"E2","curVal":true,"outputJSON":"{ \n\t\"payload\":\"hello\",\n\t\"topic\":\"1\"\n}","x":340,"y":380,"wires":[[],[],["1ebe148d41a313de","53b84e7fc147585b"],[]]},{"id":"53b84e7fc147585b","type":"debug","z":"a5911143974613fb","name":"debug 9","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":560,"y":440,"wires":[]}]

```

---

<div class="post-metadata">

### Author: ![gregorius](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gregorius/32/73816_2.png) [@gregorius](https://discourse.nodered.org/u/gregorius)
#### Post date: [24 March 2025 18:04 UTC](https://discourse.nodered.org/t/eingang-zwischen-zwei-ausangen-umschalten/96203/8 "2025-03-24T18:04:23Z")

</div>

Es scheint also ob der E1 vom "Inject E2" node garnicht gesetzt wird. Dein Screenshot zeigt nur ein Wert fuer E2.

Oder hast du den Debug node auf nur "msg.payload.E2" beschraenkt? Das hilft dann natuerlich nicht - lieber die komplette Nachrichten loggen als nur teile.

EDIT:

Ah sorry, ich sehe gerade das du den Debug nicht beschraenkt hast:

 ![Screenshot 2025-03-24 at 19.06.15](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/6/e6dd9b4311ee99e1e816a3cb0794aa4dd9a142ef.png)

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)
#### Post date: [22 June 2025 18:04 UTC](https://discourse.nodered.org/t/eingang-zwischen-zwei-ausangen-umschalten/96203/9 "2025-06-22T18:04:48Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
