Wo ist der Fehler im Java Code in Node Red (8 Zeilen)?

2 Antworten

Ist das wirklich Java oder JavaScript? Mir sieht es eher nach JavaScript aus ...

Auf jeden Fall steht doch da das Problem. Aus wurde nicht definiert, somit funktioniert if(Lichtstatus == aus) nicht, weil es kein aus gibt


Sacha79 
Fragesteller
 26.01.2022, 18:57

Ja natürlich JavaScript vollkommen richtig. Warum kein aus gibt? Er soll doch vergleichen ob die Variable Lichtstatus aus oder an ist. Was ich mir in Zeile 1 hole per flow.get.

0
FaTech  26.01.2022, 19:13
@Sacha79

Ich weiß nicht, was der Rückgabetyp von flow.get ist, aber ich kann mir vorstellen, dass es ein true false ist, also ein boolean. aus ist kein englisch und deshalb wird es das auch nicht geben und on und off gibt es auch nicht im Normalfall

1
Sacha79 
Fragesteller
 26.01.2022, 19:18
@FaTech

Mit:

var Lichtstatus = flow.get ('Lichtstatus') ||0;
msg.payload=Lichtstatus;
return msg;

Gibt er mir das was ich will raus also an oder aus. Andere Bausteine geben auch on oder off raus daher dachte ich das es schon geht. Ist ja auch auch eine String Message da sollte alles gehen.

0
FaTech  26.01.2022, 19:20
@Sacha79

Welchen Rückgabe Typ hat flow.get? int, float, bool, ...?

1

Die meldung ist doch relativ eindeutig, aus ist nicht definiert.

Du überprüfst ob die variable Lichstatus gleich der variable aus ist, und du hast wohl die variable "aus" nie definiert.


Sacha79 
Fragesteller
 26.01.2022, 19:52

Aus ist aber keine Variable sondern ich will wissen ob die Variable Lichtstatus "aus" ist. Ist"" vielleicht die Lösung?

0
jort93  26.01.2022, 19:53
@Sacha79

Du verwendest es aber wie eine variable, wenn das keine ist, dann ergibt das alles keinen sinn.

Wenn du den string "aus" meinst musst du auch "aus" schreiben.

Aber wäre ja interessant was der rückgabewert von flow.get ist.

1
Sacha79 
Fragesteller
 26.01.2022, 19:57

Jap das war es "aus".

var Lichtstatus = flow.get ('Lichtstatus') ||0;
if (Lichtstatus =="off") {msg.payload = "reset"}
else {msg.payload = "stay"}
return msg;

Gibt dann stay oder oder reset. Vielen Dank.

0