NEWS
Fehler in "if-Bedingung" / brauche mal Anfängerhilfe
-
Hallo zusammen.
Ich versuche grade mit Blockly eine Liste als JSON zu formatieren...Bin blutiger Javascript-Anfänger und habe mir nach einigen Beispielen hier einen ensprechenden Code-Block gebaut...
return {text: getObject(id).common.name, objectId: id, buttonStateValue: getState(id).val, image: "lightbulb", imageActive: "lightbulb-on", imageColor: "#ececec", listType: "buttonToggle", buttonToggleValueTrue: true, buttonToggleValueFalse: false, buttonBackgroundActiveColor: "red", imageActiveColor: "yellow", showValueLabel: false,};
das funktioniert soweit prima. nur gibt es ein paar DP's die keinen Wert haben...
also bekomme ich ein warning:getState "sonoff.0.TVrechts.POWER" not found (3) states[id]=null
ich habe jetzt versucht eine if-Bedingung drumrum zu legen:
if (getState(id) == null) { break; return {text: getObject(id).common.name, objectId: id, buttonStateValue: getState(id).val, image: "lightbulb", imageActive: "lightbulb-on", imageColor: "#ececec", listType: "buttonToggle", buttonToggleValueTrue: true, buttonToggleValueFalse: false, buttonBackgroundActiveColor: "red", imageActiveColor: "yellow", showValueLabel: false,}; }
jetzt bekomme ich ein error:
SyntaxError: Illegal break statement
ist wahrscheinlich ein ganz simples Problem, aber ich finde ihn leider nicht...
kann mir jemand helfen? -
@supermicha
Versuche malif(existsState(id)) return {...
-
-
auch damit funktioniert es leider nicht.
immernoch:
SyntaxError: Illegal break statement
scheint am break zu liegen??
Nachtrag:
Das 'break' ist natürlich jetzt sinnlos mit dem 'existsState()
jetzt läuft es!
-
@supermicha sagte: scheint am break zu liegen??
Wo siehst Du break? Ausführlicher:
if(existsState(id)) return { text: getObject(id).common.name, objectId: id, buttonStateValue: getState(id).val, image: "lightbulb", imageActive: "lightbulb-on", imageColor: "#ececec", listType: "buttonToggle", buttonToggleValueTrue: true, buttonToggleValueFalse: false, buttonBackgroundActiveColor: "red", imageActiveColor: "yellow", showValueLabel: false };
-
ja in meiner ursprünglichen Variante hatte ich ja ein break drin.
-
nochmal Nachtrag:
mit existsState() kommt zwar keine Fehlermeldung mehr, die nicht gefüllten DP's werden aber auch nicht rausgeschmissen...
Denn der Datenpunkt existiert ja, hat nur keinen Wert....
der erste Power ohne Zahl muss weg...
-
Muss mich korrigieren... es funktioniert.
die ausgelassenen Werte werden allerdings als NULL ins JSON übernommen.
Musst mein Blockly jetzt umbauen um die Nullwerte nicht zu übernehmen, nun klappt es...