NEWS
js-controller 3.3 jetzt im Beta
-
@foxriver76 sagte in js-controller 3.3 jetzt im Latest:
@foxthefox sagte in js-controller 3.3 jetzt im Latest:
State value to set for "fritzdect.0.DECT_grp5665DB-3A12B8E79.endperiod" has to be type "number" but received type "string"
Bin mir ziemlich sicher, dass da noch der Wurm drin ist bei dir. Das casten als String müsste auf jeden Fall einen String zurückgeben und der controller checkt ja nur mit
typeof
undtypeof String(new Date())
iststring
.Grundsätzlich würde ich allerdings empfehlen für
role: 'date'
common.type: 'number'
zu wählen und das Datum alsnumber
zu speichern. Dies lässt sich in Skripten leichter weiterverarbeiten und Admin stellt es auch korrekt als Timestamp dar, da er dierole
Angabe nutzt.Ich denke es ist auch in ein String umgewandelt, zumindest besagt das der letzte Teil der Fehlermeldung.
Für mich ist nur komisch warum bei type="string" der Checker eine "number" erwartet.Ich stelle es gern auf number um, dann gibt es in den Objekten eine kryptische Millisekunden Angabe und das wars. Ist nicht Anwenderfreundlich, aber löst das Problem höchstwahrscheinlich.
Und es gibt dann GitHub-issues, daß das so nicht bleiben kann.Oder habe ich es falsch verstanden und vis und admin können aus Millisekunden einen lesbaren String erzeugen?
-
@foxthefox bei dem state wo er meckert sagt e tja er möchte Number aber bekommt String deshalb passt da was nicht, weil du laut oben type String in der Definition hast, deshalb meine ich da ist der Wurm drin.
Ja wandelt number automatisch in menschenlesbares Datum um , wenn role date ist.
-
@thomas-braun Danke Dir!
-
@foxthefox sagte in js-controller 3.3 jetzt im Latest:
common: { name: name, type: 'string', read: true, write: false, role: 'date', desc: name },
Also nochmal weil ich es im Post davor evtl. etwas verwirrend vom Handy getippt habe. Hier oben ist deine Objektdefinition die angeblich zum State
fritzdect.0.DECT_grp5665DB-3A12B8E79.endperiod
gehört. Hier wird definiert, dass der Typstring
ist.@foxthefox sagte in js-controller 3.3 jetzt im Latest:
State value to set for "fritzdect.0.DECT_grp5665DB-3A12B8E79.endperiod" has to be type "number" but received type "string"
Hier steht aber, dass das Objekt als Typ
number
definiert wurde, er aber einen String erhalten hat. Also passt die Objektdefinition (die oben in diesem Post) nicht zum Objekt, dessen State hier beschrieben wird. -
@doerk32 Schau mal ob du eine package-lock.json in deinem /opt/iobroker verzeichnis hast ... benenn die mal um bzw move die mal weg. Gehts dann? Aber wenn ja dann hat es das File corrupted ... also Filesystem prüfen!
-
@foxthefox WIe schreibst Du denn das Objekt? setObjectNotExists? Dann wird ja deine neue definition nicht übernommen weil Objekt schon da ist. Objekte bzw Instanz löschen, nach neu Schreiben sollten Sie da sein
-
ich habe im Log diverse Fehlermeldungen, kann mir da jemand weiterhelfen
2021-05-04 13:53:57.006 - [31merror[39m: javascript.0 (664) Error in callback: TypeError: Cannot read property 'common' of null 2021-05-04 13:53:57.006 - [31merror[39m: javascript.0 (664) at script.js.common.Ping:136:74 2021-05-04 13:53:57.006 - [31merror[39m: javascript.0 (664) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:801:29) 2021-05-04 13:53:57.006 - [31merror[39m: javascript.0 (664) at writeHTML (script.js.common.Ping:132:41) 2021-05-04 13:53:57.006 - [31merror[39m: javascript.0 (664) at Object.<anonymous> (script.js.common.Ping:191:2) 2021-05-04 13:53:57.006 - [31merror[39m: javascript.0 (664) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1301:34) 2021-05-04 13:53:57.007 - [31merror[39m: javascript.0 (664) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/schedule.js:173:10) 2021-05-04 13:53:57.007 - [31merror[39m: javascript.0 (664) at /opt/iobroker/node_modules/node-schedule/lib/schedule.js:552:11 2021-05-04 13:53:57.007 - [31merror[39m: javascript.0 (664) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/schedule.js:510:7) 2021-05-04 13:53:57.007 - [31merror[39m: javascript.0 (664) at listOnTimeout (internal/timers.js:554:17) 2021-05-04 13:53:57.007 - [31merror[39m: javascript.0 (664) at processTimers (internal/timers.js:497:7)
-
@heinzie Ist entweder was in deinem Skript oder im javascript Adapter. Andere Baustelle. Bitte eigenen Thread oder Issue im Javascript adapter
-
@apollon77
Ich habe jetzt über die Konsole mehrere Updates gemacht die plötztlich erschienen sind.
Hat alles auch geklappt bis auf eine Fehlermeldung:host.ioBroker-Server 2021-05-08 11:19:10.209 error Cannot move /opt/iobroker/iobroker-data/objects.json.new to /opt/iobroker/iobroker-data/objects.json: ENOENT: no such file or directory, stat '/opt/iobroker/iobroker-data/objects.json.new'. Try direct write as fallback
Hast du eine Idee wo ich suchen könnte?
-
@chaot sagte in js-controller 3.3 jetzt im Latest:
Cannot move /opt/iobroker/iobroker-data/objects.json.new to /opt/iobroker/iobroker-data/objects.json: ENOENT: no such file or directory, stat '/opt/iobroker/iobroker-data/objects.json.new'. Try direct write as fallback
Den Fehler hatte ich auch schon:
https://forum.iobroker.net/topic/43325/mini-howto-cannot-find-view-system-for-search-host/96
-
@chaot Kam davor noch eine Error-Meldung?
-
@foxriver76 Nö - Einzig und einsam diese Meldung.
Und auch nur ein einziges mal als ich die Updates gemacht habe. -
@chaot Welcher js-controller? 3.3.8?
-
@chaot mit Updates sind lediglich Adapter her meint oder auch Controller? Mit der aktuellen Version hatten wir gehofft, dass es nicht mehr vorkommt.
-
@foxriver76
@apollon77
Controller Version 3.3.8.
War aber schon vorher auf dieser Version.
Bei den Updates wurden nur Adapter (incl. Admin von 5.0.15 auf 5.0.18) abgearbeitet.
Da es über Nacht mehrere Adapter waren habe ich das bei gestoppten ioBroker über die Konsole ausgeführt. Das schien mir bequemer und schneller. -
@chaot wie hast Du denn die updates gemacht?
- iobroker lief oder nicht?
- nacheinander mit einzelnenbefehlen? massenupdate?
Mehr infos bitte
Und am besten auch das vollständigere Log
-
Das war genau der springende Punkt. Gemäß dem allgemeinen Regeln habe ich ......NotExists" verwendet und klar, damit wird nichts neu angelegt.
Hätte man auch drauf kommen können, aber manchmal steht man auf dem Schlauch.
SUPER. Danke.Gruß
Klaus -
@apollon77
Bei mehreren Updates mache ich das immer über die Konsole:iobroker stop iobroker update iobroker upgrade ... ... iobroker start (oder reboot, wenn ich vorher auch im System Updates hatte)
Die einzelnen Upgrades bestätige ich auch einzeln, weil ich trotzdem noch kurz nachschaue das da kein Mist verarbeitet wird.
Der Ablauf im Log:host.ioBroker 2021-05-08 11:37:00.565 info starting 65 instances host.ioBroker 2021-05-08 11:37:00.452 info 89 instances found host.ioBroker 2021-05-08 11:36:59.829 info added notifications configuration of host host.ioBroker 2021-05-08 11:36:59.803 info connected to Objects and States host.ioBroker 2021-05-08 11:36:58.815 info ip addresses: 192.168.8.50 fe80::88d5:5eff:fea2:9293 host.ioBroker 2021-05-08 11:36:58.814 info hostname: ioBroker, node: v12.22.1 host.ioBroker 2021-05-08 11:36:58.814 info Copyright (c) 2014-2021 bluefox, 2014 hobbyquaker host.ioBroker 2021-05-08 11:36:58.809 info iobroker.js-controller version 3.3.8 js-controller starting host.ioBroker-Server 2021-05-08 11:19:10.209 error Cannot move /opt/iobroker/iobroker-data/objects.json.new to /opt/iobroker/iobroker-data/objects.json: ENOENT: no such file or directory, stat '/opt/iobroker/iobroker-data/objects.json.new'. Try direct write as fallback host.ioBroker 2021-05-08 11:19:10.195 info terminated host.ioBroker 2021-05-08 11:19:09.015 info All instances are stopped.
-
@chaot Alll ok, also kam der Fehler beim beenden vom controller vor den Updates? Ok, habe mit @foxriver76 ne potentielle Stelle gefunden die das verursachen kann. Fixen wir im Controller 3.3.9
-
Edit: ich vermute ein issue beim Adapter. Beim Mqtt -Adapter hatte ich eben auch solche Meldungen. Und eben gab es dagegen ein neues Update, was diese Meldungen behoben hat.
Hab auf js-controller 3.3.8 geupdatet. Läuft soweit, nur viele Warnungen im log, z.B.
@foxriver76 bei mir klingt die Warnmeldung ähnlich, aber ich dachte es kommt ein number, dass er auch erwartet:
linkeddevices.0 2021-05-09 18:04:54.191 info (6897) State value to set for "linkeddevices.0.Go-e_ampere.ampere" has to be type "number" but received type "string"
Muss ich im raw manuell eintragen "number" bei number_unit?
"number_unit": "",
raw:
{ "_id": "go-e.0.ampere", "type": "state", "common": { "name": "Ampere for PWM (amp)", "type": "number", "role": "level.current", "read": true, "write": true, "unit": "A", "custom": { "influxdb.0": { "enabled": true, "changesOnly": true, "debounce": "1000", "retention": "31536000", "changesRelogInterval": "300", "changesMinDelta": 0, "storageType": "", "aliasId": "" }, "linkeddevices.0": { "enabled": true, "number_unit": "", "linkedId": "Go-e_ampere.ampere", "name": "Go-e_ampere", "role": "", "mergeSettingsOnRestart": false, "expertSettings": false, "number_convertTo": "", "number_maxDecimal": "", "number_min": "", "number_max": "", "number_calculation": "", "number_calculation_readOnly": "", "number_to_boolean_condition": "", "number_to_boolean_value_true": "", "number_to_boolean_value_false": "", "number_to_string_condition": "", "number_to_duration_convert_seconds": "", "number_to_duration_format": "", "number_to_datetime_convert_seconds": "", "number_to_datetime_format": "", "number_to_multi_condition": "", "boolean_convertTo": "", "boolean_to_string_value_true": "", "boolean_to_string_value_false": "", "string_convertTo": "", "string_prefix": "", "string_suffix": "", "string_to_boolean_value_true": "", "string_to_boolean_value_false": "", "string_to_number_unit": "", "string_to_number_maxDecimal": "", "string_to_number_calculation": "", "string_to_number_calculation_readOnly": "", "string_to_duration_format": "", "string_to_datetime_parser": "", "string_to_datetime_format": "" } } }, "from": "system.adapter.go-e.0", "ts": 1620460874282, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "user": "system.user.admin", "native": {} }