NEWS
iob 3.3.4. Read-only state has been written without ack-flag
-
@thomas-braun sagte: dass es mit js-controller 3.3.x zutun haben müsste.
Ja, aus der changelog.md:
if state is read only and we get ack false -> not allowed
-
Okay, das hatte ich wohl überlesen.
Kann/soll ich in den Datenpunkten was ändern oder muss das im Adapter-Code erfolgen? -
@thomas-braun Ja, der Backitup Adapter muss den Wert mit
ack: true
schreiben wenn es ein read-only state ist. Sprich das Anpassen der Schreibrechte wäre ein Workaround, besser jedoch sollte der Adapter das anpassen. Allerdings nur eine Warnung, es wird nichts verhindert. Sollte also so tun wie vorher. -
@foxriver76
Danke für die Info!Der Backitup-Adapter tut seine Arbeit, ich hatte auch schon ein Issue dort dazu hinterlassen. Ich war aber nicht ganz sicher in welche 'Ecke' das eigentlich gehört.
-
@foxriver76 said in iob 3.3.4. Read-only state has been written without ack-flag:
@thomas-braun Ja, der Backitup Adapter muss den Wert mit
ack: true
schreiben wenn es ein read-only state ist. Sprich das Anpassen der Schreibrechte wäre ein Workaround, besser jedoch sollte der Adapter das anpassen. Allerdings nur eine Warnung, es wird nichts verhindert. Sollte also so tun wie vorher.Das gleiche "Problem" gibt es beim Powerfox Adapter...Wie kann ich denn den Adapter anpassen?
Die Abfrage der Daten sieht bspw. so aus:
if(type == "POWER"){ if(data.hasOwnProperty("Watt")){ var consumption = 0, feedIn = 0; if(data["Watt"] < 0){ feedIn = (data["Watt"] * -1); } else { consumption = data["Watt"]; } adapter.setObjectNotExists(path + '.currentPower', { type: 'state', common: { name: 'current power (W)', type: 'number', role: 'value', unit: "W", read: false, write: false, }, native: {}, }); adapter.setState(path+'.currentPower', data["Watt"]);
Ändert man hier read: auf true, dann läuft er nicht mehr...
-
@joergh sagte in iob 3.3.4. Read-only state has been written without ack-flag:
adapter.setState(path+'.currentPower', data["Watt"]);
adapter.setState(path+'.currentPower', data["Watt"], true);
-
@foxriver76
Danke. Hab es gerade gefunden... -
@joergh Ich habe den Fehler in dem Log für NodeRed:
Read-only state "javascript.0.NodeRed.Zaehlerstand" has been written without ack-flag with value "
An welcher Stelle müsste da was eingestellt werden ?
-
@werner2000x sagte: An welcher Stelle müsste da was eingestellt werden ?
Ändere bei "ioBroker out" Type von "command" in "value".
-
@paul53 sagte in iob 3.3.4. Read-only state has been written without ack-flag:
@werner2000x sagte: An welcher Stelle müsste da was eingestellt werden ?
Ändere bei "ioBroker out" Type von "command" in "value".
Wer sagt denn, dass das was mit NodeRed zu tun hat nur weil es so heißt - das ganze läuft hier unter dem Kontext des Javascript Adapters und würde mich schon wundern, wenn NodeRed da reinschreibt - ausser er hat wirklich so einen Flow. Vielleicht doch lieber "aktualisiere" anstatt "steuere".
-
Ich hatte das selbe Problem und habe es wie folgt gelöst:
In meinem JavaScript war vorher:
//Datenpunkt erstellen wenn nicht vorhanden createState(pfad_javascript + daten[1], { read: true, write: false, name: "Watchdog " + daten[1], type: "boolean", role: " ", def: "false"});
Da ich ja auch Daten schreibe (eh klar) habe ich es wie folgt geändert:
//Datenpunkt erstellen wenn nicht vorhanden createState(pfad_javascript + daten[1], { read: true, write: true, name: "Watchdog " + daten[1], type: "boolean", role: " ", def: "false"});
War irgendwie auch logisch, dass diese Warnung kommen muss.
Vielleicht hilft es ja jemand...
-
@thomas-braun Ich habe seit heute auch die Meldungen in der Log, ich dachte erst das ist nach dem Umzug auf ein neues System passiert. Denke wohl eher weil ich nun alles up2date habe. Bei mir kommt der Fehler auch in Verbindung mit einem Script von @Pittini
Das haut mir so die Log voll, das mein ganzes System in die Knie geht. Was hast du getan, damit das funktioniert.
Read-only state "0_userdata.0.Tuer_Fenster_Ueberwachung.RoomsWithVentWarnings" has been written without ack-flag with value "Bad nicht gelüftet seit: 2 Std. 39 Min.,Büro nicht gelüftet seit: 3 Std. 19 Min.,Esszimmer nicht gelüftet seit: 2 Std. 35 Min.,Haus nicht gelüftet seit: gerade eben,Hof nicht gelüftet seit: gerade eben,Küche nicht gelüftet seit: 3 Std. 16 Min.,Phillip nicht gelüftet seit: 2 Std. 53 Min.,Selina nicht gelüftet seit: 3 Std. 5 Min.,Wohnzimmer nicht gelüftet seit: 3 Std. 19 Min."
Damit wird die Log voll geballert.
-
@d3ltoroxp sagte in iob 3.3.4. Read-only state has been written without ack-flag:
Was hast du getan, damit das funktioniert.
Nix, das wurde Adapterseitig angegangen. Von skripten hab ich keinen Schimmer.
-
@d3ltoroxp sagte in iob 3.3.4. Read-only state has been written without ack-flag:
Damit wird die Log voll geballert.
entweder eine neuere Version des Skripts verwenden, falls es die gibt, oder den DP von read-only auf read/write abändern. ggf alle bei denen die Warnung kommt
-
@fastfoot Vor lauter, ist heute einfach zu viel der Umzug. Ja es gibt eine neuere Version, nun sind die Meldungen weg.
Wo hätte ich denn read write ändern können, am DP selber ?
Hab auch noch ein paar andere Einträge aus anderen Scripten, dort schau ich auch mal obs ne neuere Version gibt, ansonsten muss ich das mal mit dem read write ändern probieren.
-
@d3ltoroxp sagte in iob 3.3.4. Read-only state has been written without ack-flag:
@fastfoot Vor lauter, ist heute einfach zu viel der Umzug. Ja es gibt eine neuere Version, nun sind die Meldungen weg.
Wo hätte ich denn read write ändern können, am DP selber ?
ja, im RAW des DP Objekts. Da ist write auf false gesetzt und im neueren js-controller soll man solche DP nur noch steuern(ack=true), nicht aktualisieren(ack=false).
Hab auch noch ein paar andere Einträge aus anderen Scripten, dort schau ich auch mal obs ne neuere Version gibt, ansonsten muss ich das mal mit dem read write ändern probieren.
das sollte eig. im Adapter bzw. Skript geändert werden, wenn aber nicht möglich mangels Update oder eigenen Kenntnissen dann ist die Änderung des DP ein guter Workaround. Ich habe den Sinn von Read-Only DP eh noch nicht kapiert, zumal ein Beschreiben immer noch möglich ist
-
@fastfoot sagte in iob 3.3.4. Read-only state has been written without ack-flag:
zumal ein Beschreiben immer noch möglich ist
aber nicht manuell in Objekten.
Bin gestern auch endlich umgezogen und habe auch einige solche Meldungen.
bin mir aber gar nicht sicher, dass das alles RO States waren.
@paul53 hatte mich auf die Fährte gebracht, dass in den Skripten "true" statt true stand -
@homoran said in iob 3.3.4. Read-only state has been written without ack-flag:
Skripten "true" statt true stand
Macht das einen Unterschied, ist ja normal und kursiv ? Oder meinst du die Gänsefüßchen ?
-
@d3ltoroxp sagte in iob 3.3.4. Read-only state has been written without ack-flag:
Oder meinst du die Gänsefüßchen ?
ja
-
@homoran sagte in iob 3.3.4. Read-only state has been written without ack-flag:
aber nicht manuell in Objekten.
jein, im Expertenmodus geht das schon