NEWS
Frage zu "getIdByName()
-
@muetzeheinrich sagte: script.js.TEST.ss99: undefined
Das Objekt mit dem Namen "Echo-Schlafzimmer" existiert?
-
-
@muetzeheinrich
Komisch: Ich habe es gerade mit einem Device-Namen "Echo-Schlafzimmer" getestet und es funktioniert. -
"das gibst doch nicht" war meine erste Reaktion! Irgendwo muss aber ein Unterschied sein ..
{ "from": "system.adapter.alexa2.0", "user": "system.user.admin", "ts": 1613250245358, "common": { "name": "Echo-Schlafzimmer", "read": true, "write": false, "icon": "icons/echo_dot3.png" }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "_id": "alexa2.0.Echo-Devices.G090Xxxxxxxxxxxxx", "type": "device" }
log(getIdByName("Echo-Schlafzimmer")); erzeugt :
22:35:01.450 info javascript.0 (25703) script.js.TEST.ss99: undefinedich weis gerade nicht weiter .
-
Versuch mit "EchoSchlafzimmer gibt die ID wieder..
25703) script.js.TEST.ss99: alexa2.0.Echo-Devices.G090XG1103xxxxxxx
-
@muetzeheinrich sagte: Versuch mit "EchoSchlafzimmer gibt die ID wieder..
Starte mal nach Änderung in "Echo-Schlafzimmer" die Javascript-Instanz neu. Es ist offenbar ein Puffer-Problem.
-
@paul53 sagte in Frage zu "getIdByName():
Starte mal nach Änderung in "Echo-Schlafzimmer" die Javascript-Instanz neu.
javascript.0 2021-02-13 23:03:40.095 info (13206) script.js.TEST.ss99: registered 0 subscriptions and 0 schedules javascript.0 2021-02-13 23:03:40.094 info (13206) script.js.TEST.ss99: undefined javascript.0 2021-02-13 23:03:40.086 info (13206) Start javascript script.js.TEST.ss99
-
-
@muetzeheinrich sagte: script.js.TEST.ss99: undefined
Mit?
log(getIdByName("Echo-Schlafzimmer"));
Ich habe "Echo-Schlafzimmer" in "Aussen / Garten" geändert und erst nach Neustart der Javascript-Instanz funktionierte
log(getIdByName('Aussen / Garten'));
-
! zuerst mal für vielen Dank für deine Zeit.
Es ist so, wie du es geschrieben hast. Wenn die Javascript-Instanz nach umbennen von Namen neu gestartet wird, dann klappt es. Vielleicht wird ein cache neu erzeugt - habe es heute noch ein paar mal hin und her probiert. Sehr wahrscheinlich habe gestern die falsche JS-Instanz neu gestartet.
Das löst leider mein ursprüngliches Problem der mehrfach vorkommenden Gerätenamen nicht. Ich habe nur wenig Javascript Kenntnis, für if then else reicht es aber
.
Mit Versuch und Irrtum ist nun diese Blockly-Funktion entstanden , vielleicht geht es auch sicherer / einfachervar arr = getIdByName(echodot); if (arr != null) { for (var i = 0; i < arr.length; i++) { if (arr[i].indexOf("Echo-Devices") > -1) { setState(arr[i] + '.Player.volume', volume) } } } else { log ("Echo nicht vorhanden") }