NEWS
js-controller 3.2 jetzt im Latest!
-
Ich habe im Zigbee Adapter einen durch das Update auf js-controller 3.2.12 (von 3.1.x) verursachten crash:
2021-01-28 17:02:52.696 - error: zigbee.0 (2742) The state contains the forbidden properties effect, speed, colors! 2021-01-28 17:02:52.706 - warn: zigbee.0 (2742) set State:{"effect":"firework","speed":9.375,"colors":[{"r":255,"g":0,"b":0},{"r":0,"g":255,"b":0},{"r":0,"g":0,"b":255}]} 2021-01-28 17:02:52.707 - warn: zigbee.0 (2742) set State:{"effect":"firework","speed":9.375,"colors":[{"r":255,"g":0,"b":0},{"r":0,"g":255,"b":0},{"r":0,"g":0,"b":255}]} 2021-01-28 17:02:52.709 - error: zigbee.0 (2742) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 2021-01-28 17:02:52.710 - error: zigbee.0 (2742) unhandled promise rejection: The state contains the forbidden properties effect, speed, colors! 2021-01-28 17:02:52.712 - error: zigbee.0 (2742) Error: The state contains the forbidden properties effect, speed, colors! at validateSetStateObjectArgument (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5848:23) at Zigbee.setState (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5935:21) at Immediate.adapter.getObject (/opt/iobroker/node_modules/iobroker.zigbee/lib/statescontroller.js:254:38) at runCallback (timers.js:706:11) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5)
Ein Try/Catch um die aufrufende Funktion setState bringt keine Abhilfe.
Einen Issue auf Github hab ich auch schon angelegt.
A.
Nachtrag: gibt es eine Funktion mit der ich beim Adapter nachfragen kann ob ich einen bestehenden Wert in den State schreiben darf ?
-
npm install iobroker.js-controller@next installiert 3.2.11
-
@asgothian Hi,
Rest und Diskussion am besten im Issue. Ich denke es braucht keinen "darf ich einen Wert reinschreiben" Check, weil es ist sehr einfach. Der zweite Parameter von setState ist entweder ein Objekt mit genau definierten Eigenschaften (sie Typdefinition https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/iobroker/index.d.ts#L29-L56). Alternativ ist es der "echte" Wert (siehe "val") und ausgewählte weitere Parameter wie ack und so können als weitere Parameter übergeben werden.
Wenn das State vom typ "Object" ist dann kannst du als value (also in dem fall dann aber {val: {...}} ein Objekt übergeben.
-
@apollon77 sagte in js-controller 3.2 jetzt im Latest!:
Rest und Diskussion am besten im Issue.
Dem stimme ich zu. Wir haben inzwischen auch eine Zwischenlösung, so das der Absturz erst einmal weg bin. Auch der Link auf die Typdefinitionen ist sehr hilfreich - den hatte ich nicht auf dem schirm.
Danke dafür.
A.
-
Hier stand ein Bezug zum Javascript-Adapter.
-
@ofbeqnpolkkl6mby5e13 sagte in js-controller 3.2 jetzt im Latest!:
npm install iobroker.js-controller@next installiert 3.2.11
frage mich gerade ob dein Problem mit Backitup evtl. an der Installation via npm liegt? Die normale Vorgehensweise ist ja
iobroker upgrade self
-
@fastfoot
Aber das ist doch eigentlich eine erlaubte Variante, oder? -
@ofbeqnpolkkl6mby5e13 Backitup Problem?? Hab ich was Überlesen?
-
@ofbeqnpolkkl6mby5e13 sagte in js-controller 3.2 jetzt im Latest!:
npm install iobroker.js-controller@next installiert 3.2.11
@apollon77
Was ist hiermit? -
@ofbeqnpolkkl6mby5e13 naja @next war der GitHub test ... oben in der Latest Anleitung steht davon nichts oder?! ;-)) Aber ja ich kann next mal auf die gleiche Version setzen
-
@apollon77
Also wenn man das nicht benutzen kann, dann braucht es das auch nicht. -
@apollon77
Nein Backitup Problem ist hier falsch ausgedrückt.
Es gab wohl eher generelle Probleme mit dem BACKUP nach einem Update des js-controllers.So wie ich es aber gelesen habe, hat den Fehler immer ein
iobroker fix
behoben. -
@fastfoot
Ich probiere das mal. Lasse jetzt den Fixer durchlaufen und installiere dann 3.2.12. -
irgenwie bin ich zu blöd...ich schaffs nicht, dass der server korrekt läuft und ich mich mit einem device connecten kann.
außerdem hab ich scheinbar das selbe problem, dass automatisch auch openvpn läuft.
wie war denn nun wirklich die lösung für das problem um alles ans laufen zu bekommen?
-
@apollon77 sagte in js-controller 3.2 jetzt im Latest!:
@ofbeqnpolkkl6mby5e13 Backitup Problem?? Hab ich was Überlesen?
naja, immer wenn er den js-controller installiert(in letzter Zeit halt) wird der Ordner node_modules/iobroker.js-controller/tmp (den benutzt Backitup) mit root:root geflaggt und der Adapter kann keine Datei erstellen. iobroker fix behebt das dann bis zum nächsten Update des js-controller. Alles unter Docker, aber den habe ich auch und nicht diese Probleme
-
@ofbeqnpolkkl6mby5e13 sagte in js-controller 3.2 jetzt im Latest!:
@fastfoot
Ich probiere das mal. Lasse jetzt den Fixer durchlaufen und installiere dann 3.2.12.checke den Ordner mal unmittelbar vor und nach dem Upgrade, noch bevor du sonst irgendwas Anderes machst
-
@fastfoot sagte in js-controller 3.2 jetzt im Latest!:
checke den Ordner mal unmittelbar vor und nach dem Upgrade, noch bevor du sonst irgendwas Anderes machst
Das hatte ich bei der Installation von 3.2.11 ja genau so gemacht. Ich installiere jetzt 3.2.12 mit upgrade self. Natürlich prüfe ich vorher und nachher.
-
@simatec sagte in js-controller 3.2 jetzt im Latest!:
Nein Backitup Problem ist hier falsch ausgedrückt.
das Problem trat bisher nur in Verbindung mit diesem Adapter auf, ist aber tatsächlich ein Problem mit Dateiberechtigungen, insofern hast du völlig recht. Habe auch nur von @oFbEQnpoLKKl6mbY5e13 darüber gelesen
-
@fastfoot
In einem anderen Thread wurde aber auch das gleiche Problem mit dem Kosolenbefehliobroker backup
gemeldet.
Also ist dieses Problem ein allgemeines und nicht auf den Adapter Backitup bezogen. Backitup nutzt ebenfalls die Methode aus dem js-controller. -
@simatec
Bei mir funktioniert im Fehlerfall "iobroker backup" aber.