NEWS
[Erledigt] Skript Lichtzählen [..] angezeigt
-
@Tictactoo sagte:
zeigt er mit zwar das JSON-Object darin an, wenn ich aber versuche mit .de auf den deutschen Namen zuzugreifen, sagt er das die Proberty nicht vorhanden wäre.
Du hast getObject so verwendet ?
getObject(id, "rooms").enumNames[0].de;
-
@paul53 Ja, hab ich. Wie gesagt, wenn ich "getObject(id, "rooms").enumNames[0]" logge, zeigt er mir auch den Inhalt.
-
-
javascript.0 (17215) script.js.Rhasspy.Slots: [{'en':'bath_room','de':'Bad'}]
Nehm ich die Variable und setzen "[0].de" dahinter bekomme ich nur das:
javascript.0 2020-01-30 15:44:21.547 error (17215) at Script.runInContext (vm.js:133:20) javascript.0 2020-01-30 15:44:21.546 error (17215) at script.js.Rhasspy.Slots:9:84 javascript.0 2020-01-30 15:44:21.546 error (17215) TypeError: Cannot read property 'de' of undefined javascript.0 2020-01-30 15:44:21.546 error (17215) ^ javascript.0 2020-01-30 15:44:21.545 error (17215) var test = getObject(devices[i].replace('.available',''), 'rooms').enumNames[0].de; javascript.0 2020-01-30 15:44:21.545 error (17215) script.js.Rhasspy.Slots: script.js.Rhasspy.Slots:9
Hatte es auch schon mit array['de'] versucht, aber das schluckt er auch net...
-
@Tictactoo sagte:
bekomme ich nur das:
Sehr eigenartig. Was ergibt im Log?
var test = getObject(devices[i].replace('.available',''), 'rooms').enumNames[0];
-
Schomal iobroker bzw Script Engine neugestartet?
-
@paul53 Hatte es vorher oben reingeschrieben, vielleicht hatte sich das mit deiner Antwort überschnitten:
javascript.0 2020-01-30 15:44:21.547 error (17215) at Script.runInContext (vm.js:133:20) javascript.0 2020-01-30 15:44:21.546 error (17215) at script.js.Rhasspy.Slots:9:84 javascript.0 2020-01-30 15:44:21.546 error (17215) TypeError: Cannot read property 'de' of undefined javascript.0 2020-01-30 15:44:21.546 error (17215) ^ javascript.0 2020-01-30 15:44:21.545 error (17215) var test = getObject(devices[i].replace('.available',''), 'rooms').enumNames[0].de; javascript.0 2020-01-30 15:44:21.545 error (17215) script.js.Rhasspy.Slots: script.js.Rhasspy.Slots:9
-
Gibt es schon eine Lösung für diesen Fehler?
// auch mit getObject(ab, 'rooms').enumNames[0].de durchprobiert var test = getObject(ab.replace('.available',''), 'rooms').enumNames[0].de;// Fehler var test = getObject(ab.replace('.available',''), 'rooms').enumNames[0]; log(test.de); // Fehler var test = getObject(ab.replace('.available',''), 'rooms').enumNames[0]; test = JSON.stringify(test); test = JSON.parse(test); // Fehler
Was ich mir nicht erklären kann ist folgendes:
var test = getObject(ab.replace('.available',''), 'rooms').enumNames[0]; if (test === undefined) log('yep'); let t = JSON.stringify(test); //let x = JSON.parse(t);
test ist nicht undefiniert und das Script läuft durch.
Aktiviere ich die 4 Zeile, ist test in Zeile 2 undefiniert. -
@ticaki sagte:
test = JSON.parse(test); // Fehler
Es ist kein JSON.
@ticaki sagte in [Erledigt] Skript Lichtzählen [..] angezeigt:
var test = getObject(ab.replace('.available',''), 'rooms').enumNames[0].de;// Fehler
Wenn die Räume schon in einer früheren Version angelegt wurden, gibt es das Sprach-Objekt nicht. Bei selbst angelegten Räumen fehlt es wohl ebenso.
-
@paul53
Danke für deine AntwortIch war gestern abend zu müde, mein Fehler war, dass das erste Element in der Auflistung kein enumNames hatte.