NEWS
Beta-Test js-controller 2.2.x GitHub
-
Aktuelle Test Version 2.2.1 Veröffentlichungsdatum 27.12.2019 Github Link npm install ioBroker/ioBroker.js-controller#2.2.x
Hallo in die Tester-Runde,
wie im neuen Release-Cycle für den js-controller geplant starten wir heute den Beta Test des neuen js-controller 2.1 (Releasename "Dina").
Das Release ist im grossen und ganzen ein weiterer Bugfix-Release zur 2.1.1 und behebt noch ein paar kleinere Probleme. Darüber hinaus gab es aber auch die nächsten Umbauarbeiten unter der Haube, die am Ende keine Auswirkungen auf die Funktionalität haben sollten. mehr dazu weiter unten und im Changelog.
Ich hoffe auch diesmal auf Eure tatkräftige Unterstützung, sodass der Latest-Release dann genau so reibungslos verläuft wie bei der 2.0!Der js-controller 2.0 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1 ist problemlos. Auch die minimale Node.js Version bleibt wie vom letzten Release bekannt bei 8.x, besser noch auf 10.x.
Installation
VOR der Installation
Wie bei jedem test dieser Art: Bitte macht ein Backup!iobroker backup
bzw kopieren desiobroker-data
Verzeichnisses reichen an sich aus. Bitte nicht das node_modules Verzeichnis einfach kopieren, da sonst symbolische Links kaputt gehen können, was zu größeren Problemen danach führt. Die alte Version des js-controller kann im Notfall einfach wieder pernpm install iobroker.js-controller@version
installiert werden und sollte alles wieder herstellen.Windows
Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden, darf der js-controller nicht mir npm aktualisiert werden. Es wird eine neue Version des Windows Installers geben, die das Update des js-controllers mit wenigen Mausklicks ermöglicht. Wir updaten dazu hier im Thread.
Linux
Für den Beta-Test muss der js-controller direkt per npm installiert werden. Dazu bitte den ioBroker auf dem Server beenden und dann in einer Shell in das ioBroker Verzeichnis wechseln. Dann mittels
npm install ioBroker/ioBroker.js-controller#2.2.x
den Controller manuell aktualisieren. Bevor ihr loslegt, lest aber bitte erst noch die folgenden Hinweise! Der zweite Post in diesem Thread ist für eine FAQ reserviert. Bitte schaut auch dort gern einmal rein.Achtung: Slave-Systeme zuerst!
Bei einem Multi-Host-System, welches auf js-controller 2.1 läuft ist es beim Update auf Version 2.0 empfohlen, zuerst die Slave-Systeme zu aktualisieren. Der Master wird als letztes aktualisiert!Bei Updates von Master/Slave-Systemen mit js-controller 1.5 oder früher auf die 2.2 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Die Slaves bleiben nach dem Update offline und werden erst wieder funktionieren wenn auch der Master auf die 2.2 aktualisiert wurde!
Nötige Adapter-Aktualisierungen
Bisher keine bekannt.Es wurde eine Methoden (lenMessage) in der Adapter-Klasse entfernt, welche schon seit der 1.5.x als "veraltet" gekennzeichnet war und auch Stand heute nicht genutzt werden.
Die Methode getMessage wird in js-controller 2.4 auch entferntFehler
Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer nutzen und die Installation wiederholen.curl -sL https://iobroker.net/fix.sh | bash -
Falls es auch danach noch Fehler gibt, bitte die Installation erneut mittels
sudo -H -u iobroker npm install ioBroker/ioBroker.js-controller#2.2.x
versuchen. Bitte berichtet solche Fälle hier im Thread.Nach der Installation
Nach der Installation den ioBroker wieder starten (z.B. mittelsiobroker start
).Wenn alles klappt merkt Ihr ausser der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt. Die großen Änderungen sind alle "Unter der Haube" versteckt.
Was hat sich geändert, was besonders ansehen/testen?
Neben einiger weiterer Bugfixes, die fast in eine 2.1.2 eingeflossen werden gibt es folgende Änderungen und fixes zu erwähnen:
- Logfiles sollten wieder sauber nach dem rotieren gelöscht werden. Logfiles werden jetzt beim Rotieren gepackt und ältere Files liegen daher aus .gz Files im Verzeichnis
- Restart von Instanzen funktioniert wirder zuverässig
- State und Object-Subscriptions des Systems und der eigentlichen Adapter-Logik werden nun getrennt ausgeführt. In der vergangenheit konnte es in Ausnahmefällen hier zu überschneidungen kommen, die dann Auswirkungen hatten. Diese Änderung sollte keinerlei Auswirkung auf Funktionen von Adaptern haben.
- Der Socket.io Kompatibilitätsschicht die in der 2.0/2.1 noch drin war um die Kommunikation von "neuen" Slaves mit einem "alten" Master zu erlauben wurde wie geplant entfernt.
Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:
Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!
Wie Fehler melden?
Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.
Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.
Wir wünschen allen viel Spaß beim Testen und vielen Dank für Eure Unterstützung!
-
In diesem Post werden wir FAQ-artig öfter vorgekommene Fragen, Antworten, Tips und Tricks sammeln ...
1. Wie lang soll der Beta-test laufen?
Wir peilen aktuell ca. 1 Wochen für den Beta Test an, je nachdem wie gross die Resonanz jetzt zwischen den Feiertagen ist, und wollen Anfang Januar den js-controller 2.2 gern im Latest Repository veröffentlichen.2. Ich bekomme nach dem Start von ioBroker einen Fehler im Log das pids.txt nicht geschrieben werden konnte. Was kann ich tun?
Der Fehler tritt auf wenn der Nutzer unter dem ioBroker gestartet wurde das genannte File nicht schreiben kann. Dies kann passieren wenn ioBroker aus Versehen als Root o.ä. gestartet wurde oder die Dateirechte dieser Datei verbogen sind. Die einfachste Abhilfe hier ist der Installation-Fixer (siehe oben im Text). Alternativ Bitte die Datei einfach löschen wenn ioBroker nicht läuft und dann sollte Sie beim nächsten Start korrekt angelegt werden. -
@apollon77 Na, dann wollen wir mal
-
@apollon77
Habe zufällig Gestern den js-controller einen update verpasst nach 2.1.1 ... Alles noch frisch im Kopf... mache auch mit... -
@apollon77 sagte in Beta-Test js-controller 2.2.x GitHub:
Falls es auch danach noch Fehler gibt, bitte die Installation erneut mittels sudo -H -u iobroker npm install ioBroker/ioBroker.js-controller versuchen. Bitte berichtet solche Fälle hier im Thread.
Hi, erster Slave geupdatet, läuft, allerdings nur nach der "sudo -H - Methode" - auch der Fixer wollte nicht fixen, was gefixt hätte werden sollen..
Hier mal das Log:
pi@berrymotion:/opt/iobroker $ npm install ioBroker/ioBroker.js-controller npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/readdirp npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/ws npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/chokidar npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/iobroker.js-controller/node_modules/yargs npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/iobroker.objects-redis npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/winston-daily-rotate-file npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/iobroker.js-controller npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/@types npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/iobroker.js-controller/node_modules npm ERR! code EACCES npm ERR! syscall access npm ERR! path /opt/iobroker/node_modules/readdirp npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, access '/opt/iobroker/node_modules/readdirp' npm ERR! { [Error: EACCES: permission denied, access '/opt/iobroker/node_modules/readdirp'] npm ERR! stack: npm ERR! 'Error: EACCES: permission denied, access \'/opt/iobroker/node_modules/readdirp\'', npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'access', npm ERR! path: '/opt/iobroker/node_modules/readdirp' } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator. npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2019-12-27T15_54_46_726Z-debug.log pi@berrymotion:/opt/iobroker $ curl -sL https://iobroker.net/fix.sh | bash - ========================================================================== Welcome to the ioBroker installation fixer! Script version: 2019-11-10 You might need to enter your password a couple of times. ========================================================================== ========================================================================== Installing prerequisites (1/3) ========================================================================== Get:1 http://archive.raspberrypi.org/debian stretch InRelease [25.4 kB] Get:2 http://raspbian.raspberrypi.org/raspbian stretch InRelease [15.0 kB] Get:3 https://deb.nodesource.com/node_10.x stretch InRelease [4,585 B] Get:4 http://raspbian.raspberrypi.org/raspbian stretch/main armhf Packages [11.7 MB] Get:5 https://deb.nodesource.com/node_10.x stretch/main armhf Packages [764 B] Fetched 11.7 MB in 37s (312 kB/s) Reading package lists... Done ========================================================================== Checking ioBroker user and directory permissions (2/3) ========================================================================== Created /etc/sudoers.d/iobroker Fixing directory permissions... ========================================================================== Checking autostart (3/3) ========================================================================== Enabling autostart... Autostart enabled! ========================================================================== Your installation was fixed successfully Run iobroker start to start ioBroker again! ========================================================================== pi@berrymotion:/opt/iobroker $ npm install ioBroker/ioBroker.js-controller npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/readdirp npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/ws npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/chokidar npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/iobroker.js-controller/node_modules/yargs npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/iobroker.objects-redis npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/winston-daily-rotate-file npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/iobroker.js-controller npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/@types npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/iobroker.js-controller/node_modules npm ERR! code EACCES npm ERR! syscall access npm ERR! path /opt/iobroker/node_modules/readdirp npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, access '/opt/iobroker/node_modules/readdirp' npm ERR! { [Error: EACCES: permission denied, access '/opt/iobroker/node_modules/readdirp'] npm ERR! stack: npm ERR! 'Error: EACCES: permission denied, access \'/opt/iobroker/node_modules/readdirp\'', npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'access', npm ERR! path: '/opt/iobroker/node_modules/readdirp' } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator. npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2019-12-27T15_58_12_257Z-debug.log pi@berrymotion:/opt/iobroker $ sudo -H -u iobroker npm install ioBroker/ioBroker.js-controller > iobroker.js-controller@2.2.0 preinstall /opt/iobroker/node_modules/iobroker.js-controller > node lib/preinstallCheck.js NPM version: 6.12.0 > iobroker.js-controller@2.2.0 install /opt/iobroker/node_modules/iobroker.js-controller > node iobroker.js setup first npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"}) + iobroker.js-controller@2.2.0 added 4 packages from 4 contributors, removed 33 packages and updated 21 packages in 181.41s ╭────────────────────────────────────────────────────────────────╮ │ │ │ New minor version of npm available! 6.12.0 → 6.13.1 │ │ Changelog: https://github.com/npm/cli/releases/tag/v6.13.1 │ │ Run npm install -g npm to update! │ │ │ ╰────────────────────────────────────────────────────────────────╯ pi@berrymotion:/opt/iobroker $ iobroker start
-
-
Für die 2.4 die Ende ärz kommt wird dann getMessage noch entfernt ... folgende Adapter können Probleme machen
- ...frankjoke mehrere
- ioBroker.discovery
- ioBroker.email ?
- ioBroker.hmm
- ioBroker.megad
- ioBroker.megadd
- ioBroker.megaesp
- ioBroker.mqtt
- ioBroker.node-red
- ioBroker.noolite
- ioBroker.opcua
- ioBroker.owfs
- ioBroker.ping
- ioBroker.pushover ?
- ioBroker.pushsafer
- ioBroker.sayit
- ioBroker.snips
- ioBroker.telegram
- ioBroker.wrapper
- ioBroker.zigbee
- ioBroker.zont
- iobroker.km200
-
@apollon77 jup. für telegram kann ich das schonmal bestäigen:
telegram.0 (1873) TypeError: adapter.getMessage is not a function
Edit: ioBroker.ping hast du auch in der Liste - der läuft hier ohne Fehlermeldung.
Telegram wirft die Meldung, sendet aber trotzdem.
-
@darkiop Telegram 1.4.7 auf GitHub ist kompatibel
-
Für Zigbee kann ich das auch bestätigen:
host.MyRasPi 2019-12-27 17:24:40.862 info Restart adapter system.adapter.zigbee.0 because enabled host.MyRasPi 2019-12-27 17:24:40.862 info instance system.adapter.zigbee.0 terminated with code 0 (NO_ERROR) host.MyRasPi 2019-12-27 17:24:40.861 error Caught by controller[0]: at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49) host.MyRasPi 2019-12-27 17:24:40.861 error Caught by controller[0]: at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23) host.MyRasPi 2019-12-27 17:24:40.860 error Caught by controller[0]: at client.keys (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:685:17) host.MyRasPi 2019-12-27 17:24:40.860 error Caught by controller[0]: at states.getKeys (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6783:25) host.MyRasPi 2019-12-27 17:24:40.859 error Caught by controller[0]: at initLogging (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:7086:22) host.MyRasPi 2019-12-27 17:24:40.859 error Caught by controller[0]: at Adapter.emit (events.js:208:7) host.MyRasPi 2019-12-27 17:24:40.858 error Caught by controller[0]: at emitNone (events.js:106:13) host.MyRasPi 2019-12-27 17:24:40.857 error Caught by controller[0]: at Adapter.adapter.on (/opt/iobroker/node_modules/iobroker.zigbee/main.js:171:31) host.MyRasPi 2019-12-27 17:24:40.856 error Caught by controller[0]: at main (/opt/iobroker/node_modules/iobroker.zigbee/main.js:1627:5) host.MyRasPi 2019-12-27 17:24:40.854 error Caught by controller[0]: at processMessages (/opt/iobroker/node_modules/iobroker.zigbee/main.js:177:13) host.MyRasPi 2019-12-27 17:24:40.851 error Caught by controller[0]: TypeError: adapter.getMessage is not a function zigbee.0 2019-12-27 17:24:40.277 info (22092) Terminated (NO_ERROR): Without reason zigbee.0 2019-12-27 17:24:40.275 info (22092) terminating zigbee.0 2019-12-27 17:24:40.141 error (22092) TypeError: adapter.getMessage is not a function at processMessages (/opt/iobroker/node_modules/iobroker.zigbee/main.js:177:13) at main (/opt/iobroker/node_modules/iobroker.zigbee/main. zigbee.0 2019-12-27 17:24:40.138 error (22092) uncaught exception: adapter.getMessage is not a function zigbee.0 2019-12-27 17:24:40.113 info (22092) Reset coordinator zigbee.0 2019-12-27 17:24:40.038 info (22092) Queue is: true zigbee.0 2019-12-27 17:24:40.037 info (22092) Start on port: /dev/ttyACM0 channel 11 zigbee.0 2019-12-27 17:24:39.954 info (22092) starting. Version 0.11.5 in /opt/iobroker/node_modules/iobroker.zigbee, node: v8.12.0 host.MyRasPi 2019-12-27 17:24:35.568 info instance system.adapter.zigbee.0 started with pid 22092 host.MyRasPi 2019-12-27 17:24:05.541 info Restart adapter system.adapter.zigbee.0 because enabled
-
Ok, dann installiert bitte mal neu von Github. Die 2.2.2 fügt die "getMessage" erstmal wieder hinzu. Wir werfen das in der 2.4 (nächstes Release Ende März) dann raus. Das sollte genug Zeit geben die Adapter vorzubereiten.
-
Yesssss Sir... Thank you very much..
zigbee.0 2019-12-27 17:54:40.100 info (10097) 1 (0x00158d0002792080): MFKZQ01LM - Xiaomi Mi/Aqara smart home cube (EndDevice) zigbee.0 2019-12-27 17:54:40.065 info (10097) Shepherd ready. {"state":"Coordinator","channel":"11","panId":6754,"extPanId":[221,221,221,221,221,221,221,221],"ieeeAddr":"0x00124b0018e1b30a","nwkAddr":0} zigbee.0 2019-12-27 17:54:40.062 info (10097) Zigbee-shepherd ready. Firmware version: 2.6.3 rev 20180815 zigbee.0 2019-12-27 17:54:40.036 info (10097) zigbee-shepherd started! zigbee.0 2019-12-27 17:54:38.207 info (10097) Reset coordinator zigbee.0 2019-12-27 17:54:38.133 info (10097) Queue is: true zigbee.0 2019-12-27 17:54:38.131 info (10097) Start on port: /dev/ttyACM0 channel 11 zigbee.0 2019-12-27 17:54:38.077 info (10097) starting. Version 0.11.5 in /opt/iobroker/node_modules/iobroker.zigbee, node: v8.12.0 host.MyRasPi 2019-12-27 17:54:34.278 info instance system.adapter.zigbee.0 started with pid 10097 host.MyRasPi 2019-12-27 17:54:34.245 info "system.adapter.zigbee.0" enabled
v2.2.2
-
Ok, zu testen ist bitte ob alles noch w´so tut wie bisher. Achtet mal auf die Logfiles das die jetzt wieder sauber rotiert werden und aufgeräumt werden.
Auch das History-Adapter (sql/Influxdb/history) noch tun, auch wenn es um Aktivieren/deaktivieren von Objekten geht. Auch iot hinzufügen von neuen Dingen und so generelle Dinge. Also alles was unter der Haube Objekte oder States subscribed ...
-
So die 2.2.2 ist drauf und alles läuft.
Einzig Node-Red hatte nach dem Start ein paar Warnungen im Log, die verschwinden aber von alleine, bevor ich sie kopieren konnte. Alles was ich in Node-Red drin habe läuft aber wie vorher auch.Zigbee ohne Probleme, war bei mir aber auch mit 2.2.1 nicht anders
-
@apollon77 said in Beta-Test js-controller 2.2.x GitHub:
Ok, dann installiert bitte mal neu von Github. Die 2.2.2 fügt die "getMessage" erstmal wieder hinzu. Wir werfen das in der 2.4 (nächstes Release Ende März) dann raus. Das sollte genug Zeit geben die Adapter vorzubereiten.
Vorschlag: im log einen entsprechenden Error ausgeben lassen. Dann nerven die User die Entwickler auch entsprechend.
-
@Jan1 Schau doch mal ins Logfile auf Platte (/opt/iobroker/log/...)
-
@Garfonso Gute Idee
-
2019-12-27 17:59:45.680 - [33mwarn[39m: node-red.0 (2019) TypeError: adapter.getMessage is not a function at processMessages (/opt/iobroker/node_modules/iobroker.node-red/main.js:141:13) at Adapter.<anonymous> (/opt/iobroker/node_modules/iobroker.node-red/main.js:33:5) at Adapter.emit (events.js:198:13) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4785:34) at Immediate.setImmediate [as _onImmediate] (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:227:41) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5)
-
@Jan1 Dann läuft nicht der js-controller 2.2.2 Vllt restrt vergessen oder so?
-
@apollon77
Der Beelink wurde rebootet, also mehr Restart geht nicht