NEWS
setState mit eigenem Kennzeichen versehen
-
@hanss sagte:
setState("javascript.0.zigbee.0.AlarmLicht", {val: 3, ID: xyz})
Datenpunkte vom Typ "Objekt" können es aufnehmen. Aber nicht den Bezeichner val im Objekt verwenden, denn val hat in Datenpunkten eine besondere Bedeutung.
@paul53
Ich kriegs einfach nicht hin.
Wann verwendet man denn getState und getObject?createState("javascript.0.zigbee.0.Test", { name: "objekt", type: 'object', }); var Alarm = { Wert: 0, Last: '' }; Alarm.Wert = 5 Alarm.Last = "Heizung" setState("javascript.0.zigbee.0.Test", Alarm) Alarm = getObject("javascript.0.zigbee.0.Test") var x = Alarm.Wert var y = Alarm.Last log("Lesen- Wert: " + x + " Last: "+y) -
@paul53
Ich kriegs einfach nicht hin.
Wann verwendet man denn getState und getObject?createState("javascript.0.zigbee.0.Test", { name: "objekt", type: 'object', }); var Alarm = { Wert: 0, Last: '' }; Alarm.Wert = 5 Alarm.Last = "Heizung" setState("javascript.0.zigbee.0.Test", Alarm) Alarm = getObject("javascript.0.zigbee.0.Test") var x = Alarm.Wert var y = Alarm.Last log("Lesen- Wert: " + x + " Last: "+y) -
@paul53
Ich kriegs einfach nicht hin.
Wann verwendet man denn getState und getObject?createState("javascript.0.zigbee.0.Test", { name: "objekt", type: 'object', }); var Alarm = { Wert: 0, Last: '' }; Alarm.Wert = 5 Alarm.Last = "Heizung" setState("javascript.0.zigbee.0.Test", Alarm) Alarm = getObject("javascript.0.zigbee.0.Test") var x = Alarm.Wert var y = Alarm.Last log("Lesen- Wert: " + x + " Last: "+y)@hanss sagte:
Alarm = getObject("javascript.0.zigbee.0.Test")
ist falsch. Richtig:
Alarm = getState("javascript.0.zigbee.0.Test").val;Besser:
on("javascript.0.zigbee.0.Test", function(dp) { Alarm = dp.state.val; log("Lesen- Wert: " + Alarm.Wert + " Last: " + Alarm.Last); }); -
@hanss sagte:
Alarm = getObject("javascript.0.zigbee.0.Test")
ist falsch. Richtig:
Alarm = getState("javascript.0.zigbee.0.Test").val;Besser:
on("javascript.0.zigbee.0.Test", function(dp) { Alarm = dp.state.val; log("Lesen- Wert: " + Alarm.Wert + " Last: " + Alarm.Last); });@paul53 sagte in setState mit eigenem Kennzeichen versehen:
@hanss sagte:
Alarm = getObject("javascript.0.zigbee.0.Test")
ist falsch. Richtig:
Alarm = getState("javascript.0.zigbee.0.Test").val;Und wie erhalte ich dann:
var x = Alarm.Wert // Fehlermeldung -
@paul53 sagte in setState mit eigenem Kennzeichen versehen:
@hanss sagte:
Alarm = getObject("javascript.0.zigbee.0.Test")
ist falsch. Richtig:
Alarm = getState("javascript.0.zigbee.0.Test").val;Und wie erhalte ich dann:
var x = Alarm.Wert // Fehlermeldung -
@hanss sagte:
Und wie erhalte ich dann:
var x = Alarm.Wert // FehlermeldungGenau so. Bringt der Compiler eine Fehlermeldung, Javascript zur Laufzeit oder der Editor ? Eine rote Wellenlinie im Editor kannst Du ignorieren.
@paul53
zur Laufzeit: TypeError: Cannot read property 'Wert' of nullEs ist auch im Objekt nichts von Alarm oder Wert oder Last eingetragen:
{ "common": { "name": "objekt", "type": "object", "unit": "", "role": "state" }, "native": {}, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1584874455228, "_id": "javascript.0.zigbee.0.Test", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } -
@paul53
zur Laufzeit: TypeError: Cannot read property 'Wert' of nullEs ist auch im Objekt nichts von Alarm oder Wert oder Last eingetragen:
{ "common": { "name": "objekt", "type": "object", "unit": "", "role": "state" }, "native": {}, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1584874455228, "_id": "javascript.0.zigbee.0.Test", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } -
@paul53
zur Laufzeit: TypeError: Cannot read property 'Wert' of nullEs ist auch im Objekt nichts von Alarm oder Wert oder Last eingetragen:
{ "common": { "name": "objekt", "type": "object", "unit": "", "role": "state" }, "native": {}, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1584874455228, "_id": "javascript.0.zigbee.0.Test", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } -
@hanss sagte:
Cannot read property 'Wert' of null
Nach einem 2. Script-Start sollte der Fehler nicht mehr kommen, da dann setState() den Wert geschrieben hat.

Egal wie oft ich dieses Script starte, der Fehler erscheint immer:
createState("javascript.0.zigbee.0.Test", { name: "objekt", type: 'object', }); var Alarm = { Wert: 0, Last: '' }; Alarm.Wert = 4 Alarm.Last = "Heizung" setState("javascript.0.zigbee.0.Test", Alarm) Alarm = getState("javascript.0.zigbee.0.Test").val; var x = Alarm.Wert var y = Alarm.Last log("Lesen-Wert: " + x + " Last: "+y) -
Egal wie oft ich dieses Script starte, der Fehler erscheint immer:
createState("javascript.0.zigbee.0.Test", { name: "objekt", type: 'object', }); var Alarm = { Wert: 0, Last: '' }; Alarm.Wert = 4 Alarm.Last = "Heizung" setState("javascript.0.zigbee.0.Test", Alarm) Alarm = getState("javascript.0.zigbee.0.Test").val; var x = Alarm.Wert var y = Alarm.Last log("Lesen-Wert: " + x + " Last: "+y) -
@hanss sagte:
Egal wie oft ich dieses Script starte, der Fehler erscheint immer:
Das Script läuft unter der Instanz javascript.0 ?
-
@hanss sagte:
Node.js: v10.19.0 Script Engine 4.4.3
Damit muss es funktionieren so wie mit meiner Version 4.4.0.
@paul53
Könntest Du freundlicherweise einmal das Script von oben einmal bei Dir laufen lassen?
(Egal wie oft ich dieses Script starte, der Fehler erscheint immer:)Jetzt funktionierts, ich weis aber nicht warum, ich habe nur die Kommentare aus dem
Script gelöscht.Vielen, vielen Dank.
-
Egal wie oft ich dieses Script starte, der Fehler erscheint immer:
createState("javascript.0.zigbee.0.Test", { name: "objekt", type: 'object', }); var Alarm = { Wert: 0, Last: '' }; Alarm.Wert = 4 Alarm.Last = "Heizung" setState("javascript.0.zigbee.0.Test", Alarm) Alarm = getState("javascript.0.zigbee.0.Test").val; var x = Alarm.Wert var y = Alarm.Last log("Lesen-Wert: " + x + " Last: "+y) -
@hanss sagte:
setState("javascript.0.zigbee.0.Test", Alarm)
Hat auch bei mir nicht funktioniert.
setState("javascript.0.zigbee.0.Test", Alarm, true);funktioniert.