NEWS
js-controller 3.3 jetzt im Beta
-
@homoran sagte in js-controller 3.3 jetzt im Latest:
leider bekomme ich den iobroker nicht gestoppt,
Ich konnte ioBroker auch nicht stoppen und zwar ohne weitere Meldung... habe dann den admin gestoppt und wieder gestartet, dann ging es.
@apollon77 ein issue wert? -
@apollon77 sagte: if it's a number we perform additional checks for min and max
Dies hatte ich schon vor langer Zeit angeregt, wurde von @Bluefox aber nur im Javascript-Adapter umgesetzt. Wenn jetzt der js-controller die Prüfungen macht, kann man sie aus dem Javascript-Adapter wieder entfernen. Unterschied: Javascript gibt keine Warnung aus, sondern begrenzt den Wert zwischen min und max.
adapter.js, ab Zeile 1756:
if (!(obj.common.type === 'mixed' || obj.common.type === typeof state.val || obj.common.type === 'array' && typeof state.val === 'string' || obj.common.type === 'json' && typeof state.val === 'string' || obj.common.type === 'file' && typeof state.val === 'string' || obj.common.type === 'object' && typeof state.val === 'string')ist nicht korrekt.
obj.common.type === 'array' && typeof state.val === 'object' || // typeof Array ist objecttypeof state.val sollte bei "object" kein "string" sein.
@paul53 Der Controller wird jetzt warnen, in einer Späteren version das "set" ablehnen. Die Entwickler müssen sauber arbeiten. Der Javascript Adapter ist eher auf die "End-Nutzer" ausgerichtet, daher wird dort der Wert angepasst ... ist netter und weniger frustrierend für die Entwickler.
Das andere ist korrekt! Die Typen "array", "json", "file" und "Object" erwarten als Wert einen JSON-stringified Wert des inhaltes.
-
@stratos-gkrekidis leider geht bei mir auch der Downgrade nicht =(, habs installiert, zeigt mir via Shell auch an das 3.2.16 ist,aber im Interface immernoch 3.3.2, hab leider kein bock auf die Fehlermeldungen im log..
gibts ne andere lösung? Im log steht als resultat wenn ich " npm install iobroker.js-controller@3.2.16
> iobroker.js-controller@3.2.16 preinstall /home/pi/node_modules/iobroker.js-controller > node lib/preinstallCheck.js NPM version: 6.14.12 > iobroker.js-controller@3.2.16 install /home/pi/node_modules/iobroker.js-controller > node iobroker.js setup first object _design/system updated npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"}) + iobroker.js-controller@3.2.16 updated 1 package and audited 930 packages in 18.746s 16 packages are looking for funding run `npm fund` for details found 3 high severity vulnerabilities run `npm audit fix` to fix them, or `npm audit` for details -
@stratos-gkrekidis leider geht bei mir auch der Downgrade nicht =(, habs installiert, zeigt mir via Shell auch an das 3.2.16 ist,aber im Interface immernoch 3.3.2, hab leider kein bock auf die Fehlermeldungen im log..
gibts ne andere lösung? Im log steht als resultat wenn ich " npm install iobroker.js-controller@3.2.16
> iobroker.js-controller@3.2.16 preinstall /home/pi/node_modules/iobroker.js-controller > node lib/preinstallCheck.js NPM version: 6.14.12 > iobroker.js-controller@3.2.16 install /home/pi/node_modules/iobroker.js-controller > node iobroker.js setup first object _design/system updated npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"}) + iobroker.js-controller@3.2.16 updated 1 package and audited 930 packages in 18.746s 16 packages are looking for funding run `npm fund` for details found 3 high severity vulnerabilities run `npm audit fix` to fix them, or `npm audit` for details@canim probiere mal hier mit
iobroker stop
npm i iobroker.js-controller@3.2.16 --production
iobroker start -
@paul53 Der Controller wird jetzt warnen, in einer Späteren version das "set" ablehnen. Die Entwickler müssen sauber arbeiten. Der Javascript Adapter ist eher auf die "End-Nutzer" ausgerichtet, daher wird dort der Wert angepasst ... ist netter und weniger frustrierend für die Entwickler.
Das andere ist korrekt! Die Typen "array", "json", "file" und "Object" erwarten als Wert einen JSON-stringified Wert des inhaltes.
@apollon77 sagte: Die Typen "array", "json", "file" und "Object" erwarten als Wert einen JSON-stringified Wert des inhaltes.
Wirklich? Ich habe bisher den Typ "array" für echte Arrays und den Typ "object" für echte Objekte (außer Arrays) in Javascript verwendet, was funktioniert.
-
@canim probiere mal hier mit
iobroker stop
npm i iobroker.js-controller@3.2.16 --production
iobroker start@stratos-gkrekidis auch nicht
pi@raspberrypi:~ $ npm i iobroker.js-controller@3.2.16 --production > iobroker.js-controller@3.2.16 preinstall /home/pi/node_modules/iobroker.js-controller > node lib/preinstallCheck.js NPM version: 6.14.12 > iobroker.js-controller@3.2.16 install /home/pi/node_modules/iobroker.js-controller > node iobroker.js setup first object _design/system updated ATTENTION: Error reporting via Sentry will be activated on next start of ioBroker ioBroker wants to make sure to deliver the most stable smart home system. To allow this we decided to implement an automatic error and crash reporting solution into the js-controller and also into adapters. THIS REPORTING WILL BE ENABLED WITH THE NEXT START OF YOUR IOBROKER! For any error that leads to the crash of the js-controller or one of the relevant adapters the error details are send to a server. For the js-controller and core adapters this server is located and operated in germany. For community adapters please check the Github Readme of the affected adapter for details which Sentry server is used. If you want to disable the error reporting you can use the command 'iobroker plugin disable sentry' This command will also make sure that no adapter that runs on this host will send crash reporting data to sentry. npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"}) + iobroker.js-controller@3.2.16 updated 1 package and audited 930 packages in 16.545s 16 packages are looking for funding run `npm fund` for details found 3 high severity vulnerabilities run `npm audit fix` to fix them, or `npm audit` for details@apollon77 habe den befehl im haupt ordner ausgeführt also cd, muss ich irgendwo noch im unterverzeichnes? und dann den befehl ausführen?, wäre mir neu
-
@apollon77 sagte: Die Typen "array", "json", "file" und "Object" erwarten als Wert einen JSON-stringified Wert des inhaltes.
Wirklich? Ich habe bisher den Typ "array" für echte Arrays und den Typ "object" für echte Objekte (außer Arrays) in Javascript verwendet, was funktioniert.
@paul53 Ja, es funktioniert ... ausser man steckt zu komplexe Objekte rein mit denen dann ggf mehr knallt :-)
Die "Pure definition der states" ist das was der controller 3.3 jetzt anmeckert ... Am Ende sind wir wieder bei "ja viel geht, aber es wurde bisher versäumt das zu enforcen was sein solll" :-)Am Ende werden die Daten ja pber die verschiedensten Protokolle übertragen und daher braucht es Standards damit das interoperabel bleibt.
Aktuell alles ok, ausser das es geloggt wird. hast Zeit es anzupassen :-)
-
Ich habe auch auf 3.3.2 aktualisiert. Nun erhalte ich in den Logs immer folgende Meldungen.

Was kann ich tun?
-
@stratos-gkrekidis auch nicht
pi@raspberrypi:~ $ npm i iobroker.js-controller@3.2.16 --production > iobroker.js-controller@3.2.16 preinstall /home/pi/node_modules/iobroker.js-controller > node lib/preinstallCheck.js NPM version: 6.14.12 > iobroker.js-controller@3.2.16 install /home/pi/node_modules/iobroker.js-controller > node iobroker.js setup first object _design/system updated ATTENTION: Error reporting via Sentry will be activated on next start of ioBroker ioBroker wants to make sure to deliver the most stable smart home system. To allow this we decided to implement an automatic error and crash reporting solution into the js-controller and also into adapters. THIS REPORTING WILL BE ENABLED WITH THE NEXT START OF YOUR IOBROKER! For any error that leads to the crash of the js-controller or one of the relevant adapters the error details are send to a server. For the js-controller and core adapters this server is located and operated in germany. For community adapters please check the Github Readme of the affected adapter for details which Sentry server is used. If you want to disable the error reporting you can use the command 'iobroker plugin disable sentry' This command will also make sure that no adapter that runs on this host will send crash reporting data to sentry. npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"}) + iobroker.js-controller@3.2.16 updated 1 package and audited 930 packages in 16.545s 16 packages are looking for funding run `npm fund` for details found 3 high severity vulnerabilities run `npm audit fix` to fix them, or `npm audit` for details@apollon77 habe den befehl im haupt ordner ausgeführt also cd, muss ich irgendwo noch im unterverzeichnes? und dann den befehl ausführen?, wäre mir neu
-
@canim ioBroker ist immer in /opt/iobroker installiert. Wenn du npm Befehle direkt ausführst musst du da manuell hin.
Alles andere was Du meinst sind "iobroker "befehle ... Das ist was ganz anderes
@apollon77 Super! Wieder was gelernt ;), bin erstmal zurück. Bis dato werde ich hier das ganze mal mitverfolgen! Danke!
-
@msiemers Lesen? :-) Im ersten Post, und bestimmt inzwichen 10 mal in diesem Thread "und bestimmt nicht so wirklich viel weiter oben als Dein Post": Issues bei den Adaptern anlegen!
Wo genau?
Habe die Meldungen bei Sonoff Info und MQTT.
Dazu habe ich bei GitHub keinen Adapter gefunden. -
@apollon77 Läuft auf meinem Testsystem. ioBroker lief dann aber ohne das ich
iobroker starteingeben musste -
Zur Info
3.3.2 (2021-04-30)
- (Apollon77) "upgrade self" CLI command should not start controller because we require it to be stopped before (will be effective for all upgrades from 3.3.2 to higher versions only)
- (Apollon77) fix "iobroker upgrade" call that crashed when no updates were available
- (foxriver76) adjust some state wrote checks (type array needs to provide a string, ack-only-sets are allowed again)
... bald schon in Ihrem Theater :-)
@Chaot
Das ändert sich erst von 3.3.2 auf 3.3.3 (die es noch nicht gibt)@apollon77 sagte in js-controller 3.3 jetzt im Latest:
3.3.2 (2021-04-30)
(Apollon77) "upgrade self" CLI command should not start controller because we require it to be stopped before (will be effective for all upgrades from 3.3.2 to higher versions only)
-
@paul53 Ja, es funktioniert ... ausser man steckt zu komplexe Objekte rein mit denen dann ggf mehr knallt :-)
Die "Pure definition der states" ist das was der controller 3.3 jetzt anmeckert ... Am Ende sind wir wieder bei "ja viel geht, aber es wurde bisher versäumt das zu enforcen was sein solll" :-)Am Ende werden die Daten ja pber die verschiedensten Protokolle übertragen und daher braucht es Standards damit das interoperabel bleibt.
Aktuell alles ok, ausser das es geloggt wird. hast Zeit es anzupassen :-)
@apollon77 sagte: hast Zeit es anzupassen
Wenn bei "array" nur noch JSON erlaubt ist, muss der Javascript-Adapter angepasst werden.
-
Wo genau?
Habe die Meldungen bei Sonoff Info und MQTT.
Dazu habe ich bei GitHub keinen Adapter gefunden. -
@fredf Den Effekt hatte ich auch. Sogar jetzt nach dem letzten Update.
In der Konsole kommt:
npm install iobroker.js-controller@3.3.2 --loglevel error --unsafe-perm --prefix "/opt/iobroker" (System call) Starting node restart.js -
@apollon77 sagte: hast Zeit es anzupassen
Wenn bei "array" nur noch JSON erlaubt ist, muss der Javascript-Adapter angepasst werden.
-
Zur Info:
3.3.4 (2021-04-30)
- (AlCalzone) Fix restart logic for linux systems to prevent processes started aside systemd
- (bluefox) Add new system config values to set a default loglevel for new created instances
- (bluefox) Do not delete objects recursively that have dontDelete flag
-
Was mir beim HAM (Homebridge) Adapter aufgefallen ist ...
Der js-conroller schmeißt auch hunderte Meldungen raus, wenn in einem Datenpunkt (noch) kein Wert enthalten ist (undefined). Wäre es nicht besser/korrekter diese Meldung (ggf. optional) zu ignorieren?Ich könnte mir bei einigen Datenpunkten vorstellen, dass die womöglich nie einen Werte erhalten werden?
Beispiel:
im HAM Adapter habe ich z.B. für meinen SkyQ Receiver einen Datenpunkt "vorheriges Programm".
Den habe ich bis heute aber noch nie verwendet, entsprechend gab es noch nie eine Aktualisierung dieses Datenpunktes. Macht es da Sinn derlei Datenpunkte mit einem "warn" auszugeben nur weil diese noch keinen Wert enthalten?Die Gegenreaktion alle Instanzen auf "error" Level zu stellen halte ich für Kontraproduktiv und hilf meines erachtens niemanden
