NEWS
[gelöst]Skript meldet Warning bei Ausführung
-
Hi, ein Skript meldet bei mir ein Warning, den ich nicht verstehe. Und das wurmt mich
Ich habe eine einfache Rollo-Gruppensteuerung, bei denen ich die Position (numeric) mit verschiedenen Functionel-Enums versehen habe. User-Datenpunkt wird mit einem Wert gesetzt, darauf wird reagiert und die entsprechenden Rollo-Positionen in der entsprechenden Funktionsgruppe gesetzt:on({id: /^0_userdata\.0\.Rollos\..+/, change: "any", ack: false}, async function (dp) { let value = getState(dp.id).val; log('Group-Point = ' + dp.id); var aId = dp.id.split(".") var enumName = aId.pop(); let enumContent = getObject("enum.functions." + enumName); let aMembers = enumContent.common.members log("Enums: " + aMembers) for(let i = 0; i < aMembers.length; i++){ log("Steuere: " + aMembers[i] + " auf Position " + value); setState(aMembers[i], value); } });
Die Steuerung funktioniert, aber trotzdem wird eine Warnmeldung ausgegeben:
07:47:34.309 info javascript.0 (162683) Stop script script.js.Steuerung.Allgemein.Rollo-Gruppen-Steuerung 07:47:34.315 info javascript.0 (162683) Start javascript script.js.Steuerung.Allgemein.Rollo-Gruppen-Steuerung 07:47:34.322 info javascript.0 (162683) script.js.Steuerung.Allgemein.Rollo-Gruppen-Steuerung: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 07:47:48.797 info javascript.0 (162683) script.js.Steuerung.Allgemein.Rollo-Gruppen-Steuerung: Group-Point = 0_userdata.0.Rollos.Roll-Sued 07:47:48.797 info javascript.0 (162683) script.js.Steuerung.Allgemein.Rollo-Gruppen-Steuerung: Enums: alias.0.Buero.Rollos.Fenster.position,alias.0.Wohnzimmer.Rollos.Fenster_Sued.position 07:47:48.797 info javascript.0 (162683) script.js.Steuerung.Allgemein.Rollo-Gruppen-Steuerung: Steuere: alias.0.Buero.Rollos.Fenster.position auf Position 20 07:47:48.798 warn javascript.0 (162683) at Object.<anonymous> (script.js.Steuerung.Allgemein.Rollo-Gruppen-Steuerung:15:9) 07:47:48.798 info javascript.0 (162683) script.js.Steuerung.Allgemein.Rollo-Gruppen-Steuerung: Steuere: alias.0.Wohnzimmer.Rollos.Fenster_Sued.position auf Position 20 07:47:48.799 warn javascript.0 (162683) at Object.<anonymous> (script.js.Steuerung.Allgemein.Rollo-Gruppen-Steuerung:15:9)
Die Zeilen 6 und 8 loggen, welcher Datenpunkt mit welchem Wert gesetzt werden
Die Zeilen 7 und 9 melden den Fehler, anscheinend mit einem Objekt.<anonymous>.
Warum?
Reicht die Angabe des Datenpunktes alleine nicht für das Setzen des Values?
Oder gibt es einen anderen Befehl zum Setzen eines numerischen Wertes? -
der Befehl sollte eigentlich nur irgendeinen Text in das log von iobroker Schreiben.
Die zusätzliche Zeile gehört zum Stacktrace, der eigentlich nur bei anderen Loglevels ausgegeben werden sollte. -
@diwoma
Schau mal die Objektdaten der beiden Alias-DP an. Enthalten sie "native"? Falls nicht, bitte ergänzen. -
@paul53
So sieht der Datenpunkt aus:{ "type": "state", "common": { "name": "Position of this cover", "role": "state", "type": "number", "max": 100, "read": true, "write": true, "alias": { "id": "zigbee.0.a4c1380bcc7198fc.position" } }, "_id": "alias.0.Buero.Rollos.Fenster.position", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1657120467870, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Sollte im native was drinnen stehen?
-
@oliverio Die Frage ist ja, warum da ein Stacktrace geschrieben ist, d.h. warum hier eine Warnung kommt.
-
@diwoma sagte: Sollte im native was drinnen stehen?
Das ist so korrekt.
-
@diwoma sagte: warum hier eine Warnung kommt.
Im Tab "Protokolle" sind meist noch weitere Informationen zu Warnungen zu finden.
-
@paul53 said in Skript meldet Warning bei Ausführung:
Im Tab "Protokolle" sind meist noch weitere Informationen zu Warnungen zu finden.
Danke, habe ich auch nachgeschaut. Erst nach Deiner Message habe ich nochmal nachgeschaut und gesehen, dass ich auf NSPanel gefiltert habe.
Natürlich steht da drin, was ihn aufregt:You are assigning a string to the state "alias.0.Wohnzimmer.Rollos.Fenster_Sued.position" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
Hätte so einfach sein können.
Danke.