NEWS
setState mit eigenem Kennzeichen versehen
-
@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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden