NEWS
js-controller 3.2 jetzt im STABLE!
-
@derrapf Die üblichen Dinge...
Root login, run level 5.
Bei Amazon ist heute irgendwas umgestellt worden. Gibt einen Thread dazu. -
Root login, run level 5.
Ägypten?
Ich habe nur den login als root. Anderen user/password habe ich nicht, kenne ich nicht. Das war schon so als ich das Image von hormoran für IObroker auf den Rock64 drauf gespielt habe.
Was ist run level 5?Bei Amazon ist heute irgendwas umgestellt worden. Gibt einen Thread dazu.
Den such ich mal..
-
Man richtet sich das System aber mit anderen usern ein. Solltest du nachholen.
Siehe auch die Armbian readme:How to login?
Login as root on console (HDMI / serial) or via SSH and use password 1234. You will be prompted to change this password at first login. You will then be asked to create a normal user account that is sudo enabled (beware of default QWERTY keyboard settings at this stage).
Genauso wie einen dauerhaften Betrieb im RunLevel 3 (Serverbetrieb ohne Desktop).
-
@thomas-braun Dann muss ich mich erst mal schlau machen wie das alles geht...
-
@derrapf Verzögerungen beim editieren in Vis liegen in deinem Browser weil das alles dort läuft. Da kann der Controller nix für.
Auch iot und Alexa ist iot Adapter und nichts mit Controller zu tun. Die skill Verknüpfung hält immer nur ein Jahr. Kann es sein das das rum ist? Einfach mal neu verbinden wenn er das sagt
-
@apollon77 sagte in js-controller 3.2 jetzt im STABLE!:
Die skill Verknüpfung hält immer nur ein Jahr. Kann es sein das das rum ist?
Kann sein.
Jetzt muss ich aber mal blöd fragen: Was heißt das genau, dass die Skill Verknüpfung nur ein Jahr hält? Was passiert da nach einem Jahr? Wird die dann schimmlig?
Muss ich quasi immer nach einem Jahr alles wieder von vorne einstellen? Warum ist das so? Kann man das irgendwie vermeiden?
Gruss Ralf -
@derrapf sagte in js-controller 3.2 jetzt im STABLE!:
Jetzt muss ich aber mal blöd fragen: Was heißt das genau, dass die Skill Verknüpfung nur ein Jahr hält? Was passiert da nach einem Jahr? Wird die dann schimmlig?
Muss ich quasi immer nach einem Jahr alles wieder von vorne einstellen? Warum ist das so? Kann man das irgendwie vermeiden?
Gruss RalfDIskutieren wir schon im anderen - etwas passenderen aber auch eigentlich falschem - thread
-
Vielen DAnk für das Update. Alles scheint zu laufen, bis auf die Anzeige und die Möglichkeit der Adapter-Updates:
Das Feld "Verfügbare Version" ist überall leer.
-
@jmyxa sagte in js-controller 3.2 jetzt im STABLE!:
Das Feld "Verfügbare Version" ist überall leer.
hast du (besser dein Server) Internet-Verbindung und funktionierendes DNS?
Seite oben links neu laden und im log nachsehen, wo es hängt -
Mal
iobroker update
in der Konsole probiert?
Und schau mal welches Repo da aktiv ist:iobroker repo list
-
Hallo,
habe das update gemacht und es kommen jetzt diese Meldungen.
Die verstehe ich zwar, nur kommen die von verschiedenen Adaptern und diese habe ich ja nicht selber angelegt. -
Kann es sein das Du in https://forum.iobroker.net/topic/44624/js-controller-3-3-jetzt-im-latest eher richtig bist als hier??
-
@apollon77 said in js-controller 3.2 jetzt im STABLE!:
Kann es sein das Du in https://forum.iobroker.net/topic/44624/js-controller-3-3-jetzt-im-latest eher richtig bist als hier??
oh ja :-)... Hatte nur in der INFO den Link kopiert und nicht direkt drauf geachtet.
DANKE -
@apollon77 sagte in js-controller 3.2 jetzt im STABLE!:
Developer relevant DEPRECATIONS/WARNINGS
(foxriver76) we warn if object not exists when setting a state via adapter.setState. Adjust your code that a state value is NOT set before the object is successfully created. If this deep check is NOT wanted for performance reasons the adapter needs to be initialized with strictObjectChecks = false!! (see DOCS LINK TODO)
@foxriver76 Habe versucht strictObjectChecks = false zu setzen, um folgende Warnings zu verhindern:
this.log.warn(`Object ${id} is invalid: ${e.message}`); this.log.warn('This object will not be created in future versions. Please report this to the developer.');
hat aber nichts gebracht.
function startAdapter(options) { options = options || {strictObjectChecks: false}; //KH Object.assign(options, { name: "gardena", install: adapter_install, unload: adapter_unload, objectChange: adapter_objectChange, stateChange: adapter_stateChange, ready: adapter_ready, message: adapter_message }); adapter = new utils.Adapter(options); return adapter; }
... oder habe ich da einen Anfängerfehler gemacht?
Anbei noch eine Frage: Dieses (see DOCS LINK TODO), wo finde ich das?
-
@klausiob Welchen Adapter entwickelst du denn? Und warum möchtest du das Flag setzen?
Ach so und
Id is invalid
hat nix mit den strictObjectChecks zu tun. Ist ein separater Check und sollte auf jeden Fall gefixt werden. -
@foxriver76 Ich versuche den alten Gardena-Adapter, der seit js-controller 3.2 nicht mehr richtig funktioniert erstmal für mich wieder zum Laufen zu bringen. Wollte mich nach 3 Jahren Javascript-Abstinenz mal wieder einarbeiten und etwas experimentieren. Bei dem Adapter gehen noch alle Statusabfragen, aber man kann keine Kommandos mehr absetzen. Qualitycode = [0x20].
Sorry, oder war es diese Fehlemeldung.2021-05-13 18:42:15.191 - warn: gardena.0 (9623) State "gardena.0.datapoints.xxx" has no existing object, this might lead to an error in future versions
Kannst Du mir trotzdem sagen, wo ich den Link finde (DOCS LINK TODO) aus dem 1. Beitrag?
-
@klausiob Also das mit dem invaliden Objekt, sollte ja eine Fehlermeldung ausgeben die relativ aussagekräftig ist. z. B
obj.type has to exist
dann fehlt dem Objekt bei Erstellung einfach das entsprechende Attribut. Dann schaust du kurz in die Doku, was du brauchst, meistens vermutlichstate
. Ist jetzt nur ein Beispiel, weiß ja nicht was für ein Fehler tatsächlich kommt. -
@klausiob sagte in js-controller 3.2 jetzt im STABLE!:
2021-05-13 18:42:15.191 - warn: gardena.0 (9623) State "gardena.0.datapoints.xxx" has no existing object, this might lead to an error in future versions
Kannst Du mir trotzdem sagen, wo ich den Link finde (DOCS LINK TODO) aus dem 1. Beitrag?
Ja das würde nicht geloggt werden mit
strictObjectChecks: false
. Ist allerdings sehr ungern gesehen, da dies an dieser Stelle so gefixt werden sollte, dass da ein Objekt zum State existiert. Sonst sieht ja auch kein User den State.Wenn du allerdings sagst
options = options || xy
dann wird
xy
nicht angezogen, wenn der Controller bereitsoptions
übergibt. Da ein Objekt immer truthy wäre und somit nicht der OR Part ausgeführt wird. Viel mehr müsstest du in denObject.assign
Teil alles übergeben, was immer ergänzt werden soll.Das sage ich dir jetzt aber eher um dir etwas logisch zu helfen und nicht damit du die
strictObjectChecks
ausschaltest.Häufig kommt der Fehler, da die States bereits gesetzt werden bevor die Objekte kreiert wurden, da Javascript asynchron ausgeführt wird. Sprich du solltest bevor States im Adapter gesetzt werden sicherstellen, dass die Objekte erstellt wurden. Hierfür empfehlen sich die Methoden welche ein Promise zurück liefern und somit via
async/await
genutzt werden können, wie z. B.extendObjectAsync
-
@foxriver76 sagte in js-controller 3.2 jetzt im STABLE!:
Da ein Objekt immer truthy wäre und somit nicht der OR Part ausgeführt wird. Viel mehr müsstest du in den Object.assign Teil alles übergeben, was immer ergänzt werden soll.
Ok, natürlich. Danke Dir. Man glaubt garnicht, was man in 3 Jahren vergisst. Nein ich will den Check nicht dauerhaft ausschalten, will nur gucken aus welcher Ecke welche Fehler/Warnings kommen. Hat ja bis js-controller 2 noch alles funktioniert. Habe erst vor Kurzem auf 3.2 upgedatet. Ich habe mir erstmal eine Entwicklungsumgebung mit node und Visual Studio Code aufgebaut. Kann noch nicht debuggen. (Habe früher mit eclipse gearbeitet).
2021-05-25 09:05:29.368 - warn: gardena.0 (14460) Object gardena.0.datapoints is invalid: obj.type has an invalid value () but has to be one of state, channel, device, enum, host, adapter, instance, meta, config, script, user, group, chart, folder 2021-05-25 09:05:29.369 - warn: gardena.0 (14460) This object will not be created in future versions. Please report this to the developer. 2021-05-25 09:05:29.373 - warn: gardena.0 (14460) Object gardena.0.locations is invalid: obj.type has an invalid value () but has to be one of state, channel, device, enum, host, adapter, instance, meta, config, script, user, group, chart, folder 2021-05-25 09:05:29.373 - warn: gardena.0 (14460) This object will not be created in future versions. Please report this to the developer. 2021-05-25 09:05:29.376 - warn: gardena.0 (14460) Object gardena.0.info.connection is invalid: obj.common.read has an invalid type! Expected "boolean", received "string" 2021-05-25 09:05:29.377 - warn: gardena.0 (14460) This object will not be created in future versions. Please report this to the developer. 2021-05-25 09:05:29.380 - warn: gardena.0 (14460) Object gardena.0.trigger_poll is invalid: obj.common.read has an invalid type! Expected "boolean", received "string" 2021-05-25 09:05:29.381 - warn: gardena.0 (14460) This object will not be created in future versions. Please report this to the developer.
Hier mal noch ein aktueller Ausschnitt von weiteren Warnings. Z.B.
"_id": "gardena.0.trigger_poll", "type": "state", "common": { "name": "poll", "desc": "Setting to true triggers a poll.", "type": "boolean", "def": "false", "read": "true", "write": "true", "role": "button" },
Hier ist das "" bei false und true das Problem.
-
@klausiob Ja,
common.read
undcommon.write
müssen einboolean
sein und nicht als String angegeben, ebenfalls an dem Beispiel direkt, dercommon.def
Wert muss auch einboolean
sein, da jacommon.type
hierboolean
ist.Wenn du weitere Fragen hast, bitte eigenen Thread eröfnen, da das hier nicht so ganz rein passt.