NEWS
Seltsames Problem mit "Zombie"-Datenpunkt
-
(Javascript: 6.1.4)
Ich habe seit gestern einen Zombie Datenpunkt.
Es geht um folgenden Datenpunkt:var ObjectName = 'javascript.0.Geraet.Heizung.8.RelaisIstDP';In der Objektansicht ist dieser Datenpunkt nicht sichtbar.
console.log($("javascript.0.Geraet.Heizung.*.RelaisIstDP"));liefert:
javascript.0 (11573) script.js.Programmieren.Objekte.StateExists: {'0':'javascript.0.Geraet.Heizung.0.RelaisIstDP','1':'javascript.0.Geraet.Heizung.1.RelaisIstDP','2':'javascript.0.Geraet.Heizung.14.RelaisIstDP','3':'javascript.0.Geraet.Heizung.2.RelaisIstDP','4':'javascript.0.Geraet.Heizung.3.RelaisIstDP','5':'javascript.0.Geraet.Heizung.4.RelaisIstDP','6':'javascript.0.Geraet.Heizung.5.RelaisIstDP','7':'javascript.0.Geraet.Heizung.6.RelaisIstDP','8':'javascript.0.Geraet.Heizung.7.RelaisIstDP','length':9}("8" ist nicht dabei).
var ObjectName = 'javascript.0.Geraet.Heizung.8.RelaisIstDP'; if (existsState(ObjectName)) { console.log("ObjectName " + ObjectName + " existiert"); console.log('**' + getState(ObjectName).val); setState(ObjectName, 545, true); } else console.log(ObjectName + ' existiert nicht');liefert
12:12:01.753 info javascript.0 (11573) script.js.Programmieren.Objekte.StateExists: ObjectName javascript.0.Geraet.Heizung.8.RelaisIstDP existiert 12:12:01.753 info javascript.0 (11573) script.js.Programmieren.Objekte.StateExists: **null 12:12:01.755 warn javascript.0 (11573) at script.js.Programmieren.Objekte.StateExists:10:5(10:5 ist die Zeile "setState(ObjectName, 545, true);")
Wie bekomme ich so einen Zombie wieder los?
-
(Javascript: 6.1.4)
Ich habe seit gestern einen Zombie Datenpunkt.
Es geht um folgenden Datenpunkt:var ObjectName = 'javascript.0.Geraet.Heizung.8.RelaisIstDP';In der Objektansicht ist dieser Datenpunkt nicht sichtbar.
console.log($("javascript.0.Geraet.Heizung.*.RelaisIstDP"));liefert:
javascript.0 (11573) script.js.Programmieren.Objekte.StateExists: {'0':'javascript.0.Geraet.Heizung.0.RelaisIstDP','1':'javascript.0.Geraet.Heizung.1.RelaisIstDP','2':'javascript.0.Geraet.Heizung.14.RelaisIstDP','3':'javascript.0.Geraet.Heizung.2.RelaisIstDP','4':'javascript.0.Geraet.Heizung.3.RelaisIstDP','5':'javascript.0.Geraet.Heizung.4.RelaisIstDP','6':'javascript.0.Geraet.Heizung.5.RelaisIstDP','7':'javascript.0.Geraet.Heizung.6.RelaisIstDP','8':'javascript.0.Geraet.Heizung.7.RelaisIstDP','length':9}("8" ist nicht dabei).
var ObjectName = 'javascript.0.Geraet.Heizung.8.RelaisIstDP'; if (existsState(ObjectName)) { console.log("ObjectName " + ObjectName + " existiert"); console.log('**' + getState(ObjectName).val); setState(ObjectName, 545, true); } else console.log(ObjectName + ' existiert nicht');liefert
12:12:01.753 info javascript.0 (11573) script.js.Programmieren.Objekte.StateExists: ObjectName javascript.0.Geraet.Heizung.8.RelaisIstDP existiert 12:12:01.753 info javascript.0 (11573) script.js.Programmieren.Objekte.StateExists: **null 12:12:01.755 warn javascript.0 (11573) at script.js.Programmieren.Objekte.StateExists:10:5(10:5 ist die Zeile "setState(ObjectName, 545, true);")
Wie bekomme ich so einen Zombie wieder los?
@wolfgangfb sagte in Seltsames Problem mit "Zombie"-Datenpunkt:
In der Objektansicht ist dieser Datenpunkt nicht sichtbar.
ist das darüber liegende Verzeichnis korrekt als Objekt angelegt?
-
(Javascript: 6.1.4)
Ich habe seit gestern einen Zombie Datenpunkt.
Es geht um folgenden Datenpunkt:var ObjectName = 'javascript.0.Geraet.Heizung.8.RelaisIstDP';In der Objektansicht ist dieser Datenpunkt nicht sichtbar.
console.log($("javascript.0.Geraet.Heizung.*.RelaisIstDP"));liefert:
javascript.0 (11573) script.js.Programmieren.Objekte.StateExists: {'0':'javascript.0.Geraet.Heizung.0.RelaisIstDP','1':'javascript.0.Geraet.Heizung.1.RelaisIstDP','2':'javascript.0.Geraet.Heizung.14.RelaisIstDP','3':'javascript.0.Geraet.Heizung.2.RelaisIstDP','4':'javascript.0.Geraet.Heizung.3.RelaisIstDP','5':'javascript.0.Geraet.Heizung.4.RelaisIstDP','6':'javascript.0.Geraet.Heizung.5.RelaisIstDP','7':'javascript.0.Geraet.Heizung.6.RelaisIstDP','8':'javascript.0.Geraet.Heizung.7.RelaisIstDP','length':9}("8" ist nicht dabei).
var ObjectName = 'javascript.0.Geraet.Heizung.8.RelaisIstDP'; if (existsState(ObjectName)) { console.log("ObjectName " + ObjectName + " existiert"); console.log('**' + getState(ObjectName).val); setState(ObjectName, 545, true); } else console.log(ObjectName + ' existiert nicht');liefert
12:12:01.753 info javascript.0 (11573) script.js.Programmieren.Objekte.StateExists: ObjectName javascript.0.Geraet.Heizung.8.RelaisIstDP existiert 12:12:01.753 info javascript.0 (11573) script.js.Programmieren.Objekte.StateExists: **null 12:12:01.755 warn javascript.0 (11573) at script.js.Programmieren.Objekte.StateExists:10:5(10:5 ist die Zeile "setState(ObjectName, 545, true);")
Wie bekomme ich so einen Zombie wieder los?
@wolfgangfb sagte: Wie bekomme ich so einen Zombie wieder los?
Javascript-Instanz oder ioBroker neu starten. Es ist anscheinend ein übrig gebliebener Zustand ohne das zugehörige statische Objekt.
-
@wolfgangfb sagte in Seltsames Problem mit "Zombie"-Datenpunkt:
In der Objektansicht ist dieser Datenpunkt nicht sichtbar.
ist das darüber liegende Verzeichnis korrekt als Objekt angelegt?
@homoran
Alle Datenpunkte "'javascript.0.Geraet.Heizung.x.RelaisIstDP" funktionieren (x = 0...7), nur die "8" macht Probleme.Das übergeordnete Verzeichnis liefert:
{ "type": "folder", "common": { "name": "Heizung" }, "native": { "autocreated": "by automatic ensure logic" }, "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1674394364267, "_id": "javascript.0.Geraet.Heizung", "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } -
@wolfgangfb sagte: Wie bekomme ich so einen Zombie wieder los?
Javascript-Instanz oder ioBroker neu starten. Es ist anscheinend ein übrig gebliebener Zustand ohne das zugehörige statische Objekt.
@paul53
Javascript Neustart und auch IO-Broker Neustart hat nichts gebracht.
Was funktioniert hat ist folgendes:createStateAsync(ObjectName, 30, {type: "number",name: 'für alles mögliche', read: true,write: true,role: "value", unit: ""});Anschließend taucht der Datenpunkt wieder auf, kann auch wieder gelöscht werden und "existState" liefert auch wieder sinnvolle Ergebnisse.
Bleibt die Frage: Woher kommt so ein Verhalten und wie kann ich das verhindern? Ich arbeite in ettlichen Skripten mit "existState" und habe mich bisher darauf verlassen, dass das Ergebnis stimmt ud man im Falle von "True" auch etwas in den Datenpunkt schreiben kann -
@paul53
Javascript Neustart und auch IO-Broker Neustart hat nichts gebracht.
Was funktioniert hat ist folgendes:createStateAsync(ObjectName, 30, {type: "number",name: 'für alles mögliche', read: true,write: true,role: "value", unit: ""});Anschließend taucht der Datenpunkt wieder auf, kann auch wieder gelöscht werden und "existState" liefert auch wieder sinnvolle Ergebnisse.
Bleibt die Frage: Woher kommt so ein Verhalten und wie kann ich das verhindern? Ich arbeite in ettlichen Skripten mit "existState" und habe mich bisher darauf verlassen, dass das Ergebnis stimmt ud man im Falle von "True" auch etwas in den Datenpunkt schreiben kann@wolfgangfb sagte: Neustart hat nichts gebracht.
Dann ist der Zustand in der States-DB hängen geblieben und es wurde nur in der Objects-DB gelöscht. Das sollte eigentlich nicht passieren.
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