NEWS
Gerätename aus Liste auslesen -Blockly
-
@paul53 sagte in Gerätename aus Liste auslesen -Blockly:
Wenn der Objekt-Typ nicht geprüft wird, handelt es sich um den "Parentname".
Stimmt auch wieder. Ist eindeutiger
-
@paul53
Geht nicht:javascript.0 (886) script.js.Testscripte.Skript_1: Die Batterie in Zimmer alias.0.OG.xxx.xxx.LOWBAT muss ausgetauscht werden mit dem Kanal-Namen: [object Object]!
-
@bert-0
Weshalb ist den Name ein Objekt? Ist er mehrsprachig?Was gibt der untere Debug-Block aus, wenn er ergänzt wird?
-
@bert-0
Aso bei mir funzt Paul's Blockly wunderbar:
-
@bert-0
Wie sieht denn der Objektbaum an der Ecke aus? -
11:56:20.299 info javascript.0 (886) script.js.Testscripte.Skript_1: getState(id=alias.0.OG.Schlafzimmer.Fenster_Schlafzimmer.LOWBAT, timerId=undefined) => {"val":true,"ack":true,"ts":xxxxxxxxx,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":xxxxxxxxx} 11:56:20.300 info javascript.0 (886) script.js.Testscripte.Skript_1: getObject(id=alias.0.OG.Schlafzimmer.Fenster_Schlafzimmer, enumName=undefined) => {"_id":"alias.0.OG.Schlafzimmer.Fenster_Schlafzimmer","common":{"name":{"de":"Fenster Schlafzimmer"},"role":"window","icon":"","color":null},"native":{},"type":"channel","from":"system.adapter.admin.0","user":"system.user.admin","ts":xxxxxxxxx,"acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}} 11:56:20.300 info javascript.0 (886) script.js.Testscripte.Skript_1: Die Batterie in Zimmer alias.0.OG.Schlafzimmer.Fenster_Schlafzimmer.LOWBAT muss ausgetauscht werden mit dem Kanal-Namen: [object Object]! 11:56:20.300 info javascript.0 (886) script.js.Testscripte.Skript_1: getObject(id=alias.0.OG.Schlafzimmer.Fenster_Schlafzimmer, enumName=undefined) => {"_id":"alias.0.OG.Schlafzimmer.Fenster_Schlafzimmer","common":{"name":{"de":"Fenster Schlafzimmer"},"role":"window","icon":"","color":null},"native":{},"type":"channel","from":"system.adapter.admin.0","user":"system.user.admin","ts":xxxxxxxxx,"acl":{"object":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}} 11:56:20.300 info javascript.0 (886) script.js.Testscripte.Skript_1: {'de':'Fenster Schlafzimmer'}
Was meinst du mit Name ein Objekt?
Bert
-
@bert-0 sagte: Was meinst du mit Name ein Objekt?
Genau das:
{'de':'Fenster Schlafzimmer'}
Dann hänge noch ein .de in der Funktion dran:
id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id)) return getObject(id).common.name.de;
Funktioniert so aber nur, wenn es immer eine Objekt ist mit {de: 'Kanalname'}. Andernfalls muss der Typ geprüft werden.
id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id)) { let pName = getObject(id).common.name; if(typeof pName == 'object') return pName.de; return pName; }
-
@paul53
Danke dir, passt.noch eine letzte Frage: Wie hast du die Funktion in Blockly eingefügt? Gibt es eine Möglichkeit von Javascript zurück zu Blockly?
Bert -
-
@paul53 Ok sorry, bei mir hatte sich der Editor nicht geöffnet. geht jetzt.
Danke