habe mal eine Frage.
Der Sachverhalt:
Ich habe ein NXPanel welches mir bei einem Tastendruck folgende Daten an ein Item liefert
Code: Alles auswählen
{"button": {"pid": 10, "bid": 1, "state": 0, "next": 0}}
Code: Alles auswählen
var nxpanel185 = items.getItem("NSPanel185_NxPanel185Result");
var debug = 1;
if (debug == 1)
{
console.log("nxpanel185 "+nxpanel185.state);
}
var objekt = JSON.parse(nxpanel185.state);
var pid = objekt.botton.pid;
var bid = objekt.botton.bid;
if (debug == 1)
{
console.log("pid "+pid+" bid "+bid);
}
Code: Alles auswählen
{"dimmer":{"pid":16,"power":0,"hsbcolor":"180,100,50"}}
Code: Alles auswählen
2022-04-05 16:23:27.096 [INFO ] [org.openhab.automation.script ] - nxpanel185 {"button": {"pid": 10, "bid": 1, "state": 0, "next": 0}}
2022-04-05 16:23:27.098 [INFO ] [org.openhab.automation.script ] - pid 10 bid 1
2022-04-05 16:24:34.012 [INFO ] [org.openhab.automation.script ] - nxpanel185 {"dimmer":{"pid":16,"power":0}}
2022-04-05 16:24:34.016 [ERROR] [b.automation.script.javascript.stack] - Failed to execute script:
org.graalvm.polyglot.PolyglotException: TypeError: Cannot read property "pid" from undefined
nun zu meiner Frage wie kann ich vorher schon filtern ob es ein button oder ein dimmer ist?
Oder ist es besser wenn ich hier für jede Option ein Item anlege?
Dann würden es ein paar mehr Rules werden, wollte es eigentlich in einer unterbringen.
Gruß Gerd