ich wünsche euch einen schönen Start ins Wochenende.
Es gibt ab sofort eine neue App für iOS & Android, diese ist als eigenständige App auf beiden Plattformen unter ioBroker Visu im Store zu finden.
Für die Android App haben wir schon einige Testiterationen hinter uns gebracht in https://forum.iobroker.net/topic/63026/iobroker-android-app-2023/202 - vielen lieben Dank an alle Tester. Die iOS App ist zwar inhaltlich zu großen Teilen identisch, allerdings kann es durchaus sein, dass sich im Detail das Verhalten unterscheidet. Hier bin ich auf euer Feedback angewiesen.
Überblick der Funktionen:
Settings
Local
Host IP:PORT: Specify the local vis url + port e.g. 192.168.144.4:8082 (you can also add https:// prefix here)
Username: Local username if specified login is performed
Password: Password to corresponding username
External
Type: Choose how you want to connect if outside of given WLAN SSIDs, if you choose url, you can provide same information as
under Local
Username: The ioBroker Pro username, often an E-Mail address, if given, the App connects to the Pro Cloud if not
connected with a SSID listed under General
Password: The corresponding password
WLAN SSIDs: allows to set Wi-Fi SSID (comma-separated), if the current connected SSID is equal to one listed here, we use the local vis
General
Application: choose between vis, material and other adapters, just changes the uri of the WebView
Project: Value will be added behind url:port/vis/index.html# (only for vis)
Instance ID: used to e.g. change vis views or detect active views on device via vis.0.control
(it will be synchronized to vis.0 if at least one sync option is active)
Functionalities & Appearance
Multi-Project Support: You can set up multiple projects (current limit is 2), these can be launched via Quick Actions.
Starting the App without Quick Action will always launch the default project. When a specific project is launched,
the app cannot change to another project until restarted. Long press on the app icon to launch a Quick Action.
Allow Zoom: If false, Zoom is deactivated in the WebView
Allow Scrolling: If false, Scrolling is deactivated in the WebView
Send battery to vis.0: If true, battery level and state are sent to vis.0 via JS injection using servConn
Keep display awake: If true, screen will never go to sleep on WebView
Status Bar Active: If true, the status bar is shown
Light Status Bar Text: If true, white color is used for status bar text
Status bar color: Specify the color of the status bar as css color property
Orientation: Force orientation of screen
Zoom (Portrait): Initial Zoom for Portrait mode (0 - 5)
Zoom (Landscape): Initial Zoom for Landscape mode (0 - 5)
Reload on orientation change: should be activated if problems on orientation change occur
Show Pro Logo: If true, a pro logo will be used in the upper right corner to indicate a pro connection
Auto Zoom: Sets width=device-width to meta.content
Force Fullscreen: Sets viewport-fit=cover to meta.content
Synchronize Brightness to vis.0: The brightness of the device will be set in vis.0 changing the state will change the brightness (only works with vis)
Device name: Device name used for states in vis.0
Show Navigation Bar (Android only) if true, the Navigation bar is permanently shown, else immersive
Dim after seconds: Dim display after x seconds of inactivity (no tap) set 0 to disable
Dim to level: Value in % to dim to if Dim after seconds triggers. On next tap, it is dimmed up to previous value
Reload if app gets active: Forces a hard reload if app goes from background to foreground (default: true on iOS, false on Android)
URL Postfix: this text will be appended to the URL, e.g. to specify a start view #customStartView
Back to start page after X seconds: The app navigates back to the start page after X seconds of inactivity (0 to disable)
Protect app start: The first app start will be protected by devices biometric authentication (affects all projects)
Protect settings: Every call to settings will be protected by devices biometric authentication (affects all projects)
Known behaviors
Settings can be opened via a triple tap (3 fingers touching the screen at the same time)
Force reload via 2 finger double tap on screen on Android and Pull to refresh on iOS (on Android the Component is remounted)
Status bar settings are also applied to the settings screen, but only after changing to runtime and back or reopening app
Reconnection Handling for vis: It is known, that vis has problems reconnecting to the socket, thus the App detects
socket disconnection of vis and if it is not reconnected after 30 seconds, it will reload the page
If on page load an error occurs, a popup is shown where you can reload or go to settings
If app goes from background to foreground, the NavBar on Android is ensured to be in the right state and for
vis and material a socket reconnect is triggered, to avoid 10 seconds timeout screen (android detects background more than 1 second as being in background)
If the "Keep screen awake" functionality is deactivated via vis, you should not change the view afterwards, else it is activated again
Whenever the user is not in a Wi-Fi and using a VPN and has an external connection configured, he can decide if he wants to access local url or external
Wermutstropfen: Bzgl. der VPN Option, welche in der vorherigen iOS App besteht, ist aktuell aufgrund von technischen Limitationen keine Option geplant, insgeheim hoffe ich hier, dass Apple mal in die Pötte kommt und VPN Steuerung per Automation zulässt. Wer darauf angewiesen ist, ist für mobile Zwecke mit der aktuellen App evtl. besser beraten, ansonsten bietet sich von unterwegs natürlich der Pro Zugang an.
ich habe mich dazu entschlossen ein mal im Monat ein kleines Recap zu schreiben, an was ich so gearbeitet habe oder was ich mitbekommen habe an dem gearbeitet wurde im ioBroker Umfeld.
Ziel ist es für mich selbst zu reflektieren ob es in die richtige Richtung geht oder wir uns irgendwo im Kreis drehen. Und natürlich Nutzern und Entwicklern die nicht so eng an der Thematik sind Einblicke zu geben was auf Entwicklungsseite passiert ist. Da fehlt natürlich immer einiges an neuen Adaptern oder Adapter-Updates, da ist es mir gar nicht möglich einen Anspruch an Vollständigkeit zu haben.
Da das jetzt der erste Beitrag aus der Reihe ist, sind auch Entwicklungen aus dem März teilweise mit eingeflossen.
Ihr findet den Beitrag für die ersten male mindestens auf meinem eigenen Blog. Villt. wechselt das später mal in den offiziellen ioBroker Blog - wir werde sehen.
Heute möchten wir Euch den js-controller 5.0 endlich auch im STABLE Repository zur Verfügung stellen. Dieser Post enthält alle wichtigen Infos. Bitte unbedingt lesen!!
Wir bedanken uns bei allen Usern die bisher die neue Version bereits als Alpha oder Beta getestet und Feedback gegeben haben.
Node.js Versions-Anforderungen
In diesem Release entfällt Node.js 12.x welches seit April letztem Jahr nicht mehr gepflegt wird und Node.js 14.x welches seit April diesem Jahres EOL ist. Node.js 18.x ist dazugekommen. Die unterstützten Node.js Versionen sind: 16.4.0+ und 18.x und nach aktuellem Stand Node.js 20.x, wobei hier noch erfahrungen fehlen. Die empfohlene Node.js Version für ioBroker haben wir vor kurzem auf 18.x angehoben. Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/topic/64032/update-nodejs-best-practise-supported-14-16-und-18 !
Informationen zur Version
Es gibt EINIGE Adapter die aktualisiert werden müssen!! Bitte weiter unten lesen!
In dieser Version wurde die Umstellung des Quellcodes auf TypeScript sehr stark vorangetrieben (inzwischen bei 88%), wodurch am Ende die Stabilität weiter steigt weil viele Code-Fehler nicht mehr auftreten können. Natürlich sind neben Optimierungen und Fehlerbehebungen auch ein paar neue Features hinzugekommen. Auch wenn mit dieser Version keine neuen Prüfungen hinzukommen, die zu Log-Ausgaben bei Adaptern führen, meldet aktuelle Logausgaben bitte weiterhin bei den Adaptern.
Detailliertere Informationen zu allen Änderungen und Features findet Ihr weiter unten und im Changelog.
Für die aktive Mitarbeit an dieser Version des js-controller bedanke mich diesmal wieder besonders bei Apollon77, AlCalzone und natürlich Bluefox und auch ein paar weiteren Entwicklern!
ACHTUNG backups inkompatibel bei Downgrades!!
Neben der Node.js Version gibt es eine wichtige Inkompatibilität: Backups die mit der 5.0 des js-controller erstellt wurden lassen sich nicht mit einem js-controller 4 oder kleiner wieder restoren!
Darüber hinaus ist der js-controller 5.0 generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2/3.x ist problemlos möglich. Wir empfehlen allerings vor dem Update auf die 5.0 idealerweise ein Update auf die 4.0 und vorher auf 3.3.x durchzuführen, da ein Downgrade nach einem erfolgten Update nur auf eine 3.3.x möglich ist (siehe FAQ)! Nur die Node.js Version muss weiterhin mindestens 16.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen
Aufgrund einiger internen Umstellungen brauchen wieder einige Adapter Updates. Diese sollten am besten VOR dem Update installiert werden!
Bitte dazu die Informationen weiter unten beachten!
Installation
VOR der Installation
Wie bei jedem Upgrade dieser Art: Bitte macht ein Backup! iobroker backup bzw kopieren des iobroker-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. Eine alte 4.0.x-Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version ("version" durch die gewünschte Versionsnummer ersetzen) installiert werden und sollte alles wieder herstellen (Vorheriger Stable Stand ist die 4.0.24)
Nötige Adapter-Aktualisierungen
Am besten dennoch VOR dem js-controller Update alle verfügbaren Adapter-Updates prüfen und alle Updates installieren, die im Changelog auf Optimierungen oder Anpassungen für den js-controller 4.0 oder höher hinweisen.
Diesmal sind doch einige Adapter auf der Liste die man updaten muss -falls installiert! Siehe Spoiler!
Bei einem Multi-Host-System, welches auf js-controller 2.2, 3.x oder 4.0.x läuft, ist es beim Update auf Version 5.0 empfohlen, zuerst das Master-System zu aktualisieren. Der Master muss dann wieder gestartet werden. Die Slaves werden danach aktualisiert!
Bei Updates von Master/Slave-Systemen mit js-controller 1.5 oder früher Bitte die jeweiligen Update Threads der empfohlenen Zwischenversionen prüfen.
Windows
Generell muss das Update manuell via npm installiert werden.
Hierzu im ioBroker-Verzeichnis nach stoppen des ioBroker den Befehl iob upgrade self ausführen.
Linux
ioBroker stoppen (iobroker stop)
Prüfen das keine Prozesse (Adapter, Backups) mehr laufen (ps auxww|grep io und auch ps auxww|grep backup ). Es passiert manchmal das trotz dem Stoppen noch Zombies zurückbleiben
cd /opt/iobroker
Das Update erfolgt via iob upgrade self
ioBroker starten (iobroker start)
Bei Fehlern:
Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix wer schon einen js-controller 2.x oder höher hat, alternativ weiterhin manuell via curl -sL https://iobroker.net/fix.sh | bash -) nutzen und die Installation wiederholen.
Falls es auch danach noch Fehler gibt, bitte die Installation erneut mittels sudo -H -u iobroker npm install iobroker.js-controller versuchen. Bitte berichtet solche Fälle hier im Thread.
NACH der Installation
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.
Falls im Log Warn-Meldungen auftauchen mit dem Hinweis diese an den Entwickler zu senden, dann bitte schauen welcher Adapter es ist und entsprechend dort Issues bitte anlegen!
Was hat sich geändert, was besonders ansehen/beachten?
Neben einiger weiterer Bugfixes gibt es folgende Änderungen und Fixes zu erwähnen:
generell siehe Changelog, speziell auch für die Features
generell bitte im CLI und auch sonst überall drüber schauen. Die Typescript Umstellungen haben sehr viel Code angefasst.
Falls jemand sporadisch Alias Fehler im Log hatte bitte versuchen diese mit der neuen version wieder zu provoziere und rückmelden
Speziell die Entwickler sollten bitte die genannten Deprecations und neuen Features anschauen und beachten.
Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:
5.0. Release Jana
BREAKING CHANGES
Support for Node.js 12 and 14 is dropped! Supported are Node.js 16.4.0+ and 18.x and hopefully 20.x
Backups created with the new js-controller version cannot be restored on hosts with lower js-controller version!
Update recommended npm version to 8
Deprecate binary states, Adapters will change to use Files instead!
Features
(foxriver76) Show npm error message on failing adapter installations and update also without debug parameter
(foxriver76) Introduce iobroker setting (dnsResolution) to choose between verbatim and ipv4 first dns resolution order
(foxriver76) Add support for windows for iob fix
(bluefox) Added CLI option to restart/start/stop all instances of an adapter (e.g. iob stop admin now also works)
(foxriver76) Allow to use iob host oldname command when new host already exists but has no instances
(foxriver76) Added an admin notification if redis is misconfigured and info how to fix it
(foxriver76) Enable upgrade of js-controller via Admin UI (Linux only)
Optimizations and Fixes
(foxriver76) Speedup "getStates" calls with many IDs often used by visualizations: JSONL 17 times faster, Redis 23 times faster
(foxriver76) significantly reduce backup size
(foxriver76) Enhance CLI help for list command to show all possible types to list
(foxriver76) Also stop instances before updating from GitHub
(foxriver76) Conversion of big parts of the js-controller codebase to typeScript and address all found issues
(Apollon77) Only log error on "enable/disable via .alive" if there is an error
(foxriver76) Optimize adapter unload and stop handling for edge cases
(AlCalzone) Carefully normalize jsonlOptions
(bluefox) Do not show warning on a requested adapter stop/termination
(bluefox) Make sure that the first log line is not missing in Admin
(foxriver76) Fix wrong formatting of cli get binary state if no encoding is passed
(foxriver76) Fix restoring backups from pre js-controller 4.x which were created without config.system
(foxriver76) Preserve tier setting on adapter upload
(foxriver76) update apt sources before installing os dependencies
(foxriver76) Only skip erase on upload if opted out explicitly to always cleanup unneeded files
(foxriver76) Try to fix strange alias errors, inform us if it happens again!
(foxriver76) Remove windows bat files completely, installer will create them when needed
(AlCalzone/Apollon77) Update jsonl db to prevent locking issues
(foxriver76) Fixes iob file sync not working for jsonl
(foxriver76) Do not crash if we cannot initialize db backup directory on start
(foxriver76) Fixed issue with certificate validity on leap years
(Apollon77/foxriver76) Make sure that all relevant files are removed when eraseOnUpload is used
(foxriver76) fix wrong hostname after backup restore
(bluefox) allow CLI vendor update without explicitly specifying vendor file (default file is used)
(Apollon77, foxriver76, bluefox, AlCalzone) Several fixes and refactorings to prevent potential crash cases reported by Sentry and other sources
Developer relevant DEPRECATIONS/WARNINGS
Deprecate binary states, Migrate your adapters to use Files instead!
Parameter that contain patterns (e.g. mqtt.*) are now checked for allowed characters and general correctness!
Developer relevant new Features
(bluefox) Added options to subscribe to file changes: subscribeForeignFiles, unsubscribeForeignFiles, onAdapterFileChanged (event contains id, fileName, size and not the whole content of the file!)
(foxriver76) Introduce on("install") handler for adapter which is automatically called when adapter process is started with --install
(foxriver76) Introduce io-package flag common.nodeProcessParams to allow to pass adapter specific nodejs process parameters (disables compact mode for the adapter!)
(foxriver76) Respect dns resolution (ipv4/ipv6 first) from config internally and provide relevant methods via adapter-core
(foxriver76) Add JSON-Schema for iobroker.json
(bluefox) Allowed export of password.js (to be used with adapter-core)
(bluefox) Added _design/chart to the system designs
(foxriver76) Added (foreign)objectExists to adapter methods
(bluefox) Extend getSuitableLicenses to look for other licenses
(buefox/foxriver76) Added new category for notifications: blocked and respect js-controller common.blockedVersions to block versions from starting
(bluefox) Added new system view "custom-full" to return the full objects for objects with a custom part and not only the custom details
(foxriver76) Added support for getForeignObjects with an array of strings as pattern
(AlCalzone) Preparations to allow js-controller Dev version to be used with dev-server
(foxriver76) Validate max timeout value (max 32bit max number) on setTimeout/setInterval and throw on error to prevent issues
(foxriver76) new io-package flag common.supportedMessages to replace messagebox and other messagebox-related properties
(foxriver76) adapter.sendTo now accepts an optional timeout argument
Developer relevant Optimizations and Fixes
(foxriver76) Ensure setObjectNotExists returns id on success
(foxriver76) Fix Typings for sendTo/sendToHost
(Bluefox) Add User permission check to requireLog
(foxriver76) added nonEdit property of objects to types and document functionality
(foxriver76) introduced constants for state quality
(foxriver76) subscribeStates now also accepts an array of ids
general dependency updates
code style optimizations and streamline code
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.
Bitte postet auch die Ausgabe von iob diag mit rein.
Wir wünschen allen viel Spaß mit dem neuen Controller und vielen Dank für Eure Unterstützung!
ich habe in der letzten Woche intensiv an einer neuen ioBroker App gearbeitet. Die App wird grundsätzlich sowohl auf iOS als auch auf Android lauffähig sein, da es allerdings komplizierter ist Apple Apps zum Testen raus zu geben, möchte ich gerne Feedback für die Android Version einholen.
Die App ist zum Testen vorerst als apk installierbar. Hierfür müsst ihr die Installation unbekannter Apps erlauben.
Host IP:PORT: Specify the local vis url + port e.g. 192.168.144.4:8082 (you can also add https:// prefix here)
Username: Local username if specified login is performed
Password: Password to corresponding username
Pro
Username: The ioBroker Pro username, often an E-Mail address, if given, the App connects to the Pro Cloud if not
connected with a SSID listed under General
Password: The corresponding password
WLAN SSIDs: allows to set Wi-Fi SSID (comma-separated), if the current connected SSID is equal to one listed here, we use the local vis
General
Application: choose between vis, material and other adapters, just changes the uri of the WebView
Project: Value will be added behind url:port/vis/index.html# (only for vis)
Instance ID: used to e.g. change vis views or detect active views on device via vis.0.control
(it will be synchronized to vis.0 if at least one sync option is active)
Functionalities & Appearance
Allow Zoom: If false, Zoom is deactivated in the WebView
Allow Scrolling: If false, Scrolling is deactivated in the WebView
Send battery to vis.0: If true, battery level and state are sent to vis.0 via JS injection using servConn
Keep display awake: If true, screen will never go to sleep on WebView
Status Bar Active: If true, the status bar is shown
Light Status Bar Text: If true, white color is used for status bar text
Status bar color: Specify the color of the status bar as css color property
Orientation: Force orientation of screen
Zoom (Portrait): Initial Zoom for Portrait mode (0 - 5)
Zoom (Landscape): Initial Zoom for Landscape mode (0 - 5)
Reload on orientation change: should be activated if problems on orientation change occur
Show Pro Logo: If true, a pro logo will be used in the upper right corner to indicate a pro connection
Auto Zoom: Sets width=device-width to meta.content
Force Fullscreen: Sets viewport-fit=cover to meta.content
Synchronize Brightness to vis.0: The brightness of the device will be set in vis.0 changing the state will change the brightness (only works with vis)
Device name: Device name used for states in vis.0
Show Navigation Bar (Android only) if true, the Navigation bar is permanently shown, else immersive
Known behaviors
Settings can be opened via a triple tap (3 fingers touching the screen at the same time)
Force reload via 2 finger double tap on screen
Status bar settings are also applied to the settings screen, but only after changing to runtime and back or reopening app
Dark mode in settings is not updating instantly, updated in same fashion as status bar
Reconnection Handling for vis: It is known, that vis has problems reconnecting to the socket, thus the App detects
socket disconnection of vis and if it is not reconnected after 30 seconds, it will reload the page
If on page load an error occurs, a popup is shown where you can reload or go to settings
zeitnah wird Controller 5.0.12 erscheinen, nichts weltbewegendes dabei, da es langsam alles recht stabil zu laufen scheint.
Änderungen
DNS Warnung bei Erstinstallation wird nicht mehr unbegründet angezeigt
Methode für Entwickler updateConfig berücksichtigt nun Auto Encryption und stellt sicher, dass die aktuellste Config genutzt wird
Webserver (UI Upgrade) schließt alle Verbindungen direkt, nachdem die finale Information geliefert wurde und vermeidet so unnötige Downtime des Controllers bei Folgeanfragen
Methoden für Entwickler: Neue Methoden für Client-Push (Infos an die UI pushen bzw. Pub/Sub System hierfür - Beispielimplementierung folgt demnächst)
Backup-Restore Problem behoben, bei dem bei Restore eines Backups die Daten in die falsche DB geschrieben wurden, falls sich die von Backup und aktueller Installation unterschieden hatten
Backup Optimierungen: Falsches Logging im Fehlerfall behoben und Backups sind nun ca. 30 % kleiner
Ab heute wird der js-controller v6 im stable Repository verfügbar sein.
Vorab Danke an alle fleißigen Alpha und Beta Tester.
Node.js Versions-Anforderungen
In diesem Release entfällt Node.js 14.x und 16.x. Die unterstützten Node.js Versionen sind: 18.x, 20.x und voraussichtlich 22.x. Die empfohlene Node.js Version für ioBroker haben wir vor kurzem auf 20.x angehoben.
Bitte beachtet weiterhin bei Node.js Updates die Anleitung im Forum unter https://forum.iobroker.net/topic/64032/update-nodejs-best-practise-supported-14-16-und-18 !
Informationen zur Version
In dieser Version wurde die Umstellung des Quellcodes auf TypeScript nochmal vorangetrieben (5.X 76%, mit 6.X 90% der Codebase), wodurch am Ende die Stabilität weiter steigt weil viele Code-Fehler nicht mehr auftreten können.
Ebenfalls läuft der Controller nun komplett als ESM Modul, was uns technisch alle Möglichkeiten offen hält und auch Adapter nun komplett als ESM Module laufen können und somit keine Einschränkungen mehr haben falls Dependencies nur für ESM verfügbar sind.
Weiterhin sind auch einige neue Features unter anderem die Möglichkeit des automatisierten Adapter-Upgrades (Admin Funktionalität wird zeitnah implementiert), Informationen über das System Management (neue Pakete, restart nötig, ...) sowie das Management von geblockten Adapter-Versionen hinzugefügt.
Auch wenn mit dieser Version keine neuen relevanten Prüfungen hinzukommen, die zu Log-Ausgaben bei Adaptern führen, meldet aktuelle Logausgaben bitte weiterhin bei den Adaptern.
Detailliertere Informationen zu allen Änderungen und Features findet Ihr weiter unten und im Changelog.
Für die aktive Mitarbeit an dieser Version des js-controller bedanke mich diesmal wieder besonders bei Apollon77, AlCalzone und natürlich Bluefox und auch ein paar weiteren Entwicklern!
Darüber hinaus ist der js-controller 6.0 generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der Version 5.x ist problemlos möglich.
Ansonsten empfehlen wir ein schrittweises Update auf die 6.0 (3.3.x -> 4.0 -> 5.0).
Installation
VOR der Installation
Wie bei jedem Upgrade dieser Art: Bitte macht ein Backup! iobroker backup bzw kopieren des iobroker-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.
Eine alte 5.0.x-Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version ("version" durch die gewünschte Versionsnummer ersetzen) installiert werden und sollte alles wieder herstellen (Letzter Stable Stand ist die 5.0.19)
Nötige Adapter-Aktualisierungen
Am besten VOR dem js-controller Update alle verfügbaren Adapter-Updates (vorallem den javascript Adapter) prüfen und alle Updates installieren, die im Changelog auf Optimierungen oder Anpassungen für den js-controller 5.0 oder höher hinweisen.
Mit den stable Versionen der jeweiligen Adapter sollten keine Probleme auftreten, falls doch bitte hier melden.
Bei einem Multi-Host-System, welches auf js-controller 5.0.x läuft, ist es beim Update auf Version 6.0 empfohlen, zuerst das Master-System zu aktualisieren. Der Master muss dann wieder gestartet werden. Die Slaves werden danach aktualisiert!
Bei Updates von Master/Slave-Systemen mit js-controller 4.x oder früher Bitte die jeweiligen Update Threads der empfohlenen Zwischenversionen prüfen.
Windows
Es wird empfohlen einmalig bei bestehenden Installationen den fixer auszuführen und falls noch vorhanden die iobroker.bat zu löschen.
Entweder den GUI installationsprozess im Admin nutzen oder
ioBroker stoppen (iobroker stop)
Prüfen das keine Prozesse (Adapter, Backups) mehr laufen (ps auxww|grep io und auch ps auxww|grep backup). Es passiert manchmal das trotz dem Stoppen noch Zombies zurückbleiben
cd /opt/iobroker
Das Update erfolgt via iob upgrade self
ioBroker starten (iobroker start)
Bei Fehlern:
Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix wer schon einen js-controller 2.x oder höher hat, alternativ weiterhin manuell via curl -sL https://iobroker.net/fix.sh | bash -) nutzen und die Installation wiederholen.
Falls es auch danach noch Fehler gibt, bitte die Installation erneut mittels iob upgrade self versuchen. Bitte berichtet solche Fälle hier im Thread.
NACH der Installation
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.
Falls im Log Warn-Meldungen auftauchen mit dem Hinweis diese an den Entwickler zu senden, dann bitte schauen welcher Adapter es ist und entsprechend dort Issues bitte anlegen!
Was hat sich geändert, was besonders ansehen/beachten?
Neben einiger weiterer Bugfixes gibt es folgende Änderungen und Fixes zu erwähnen:
generell siehe Changelog, speziell auch für die Features
generell bitte im CLI und auch sonst überall drüber schauen. Die Typescript und ESM Umstellungen haben sehr viel Code angefasst.
Speziell die Entwickler sollten bitte die genannten Deprecations und neuen Features anschauen und beachten.
Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:
(foxriver76) deprecated ioPack common.license which is replaced by the new object common.licenseInfo
(foxriver76) ioPack mode subscribe has been removed as you can achieve the same with mode once and setting system.adapter.xy.alive state (also removed common.wakeup and common.subscribe because of this)
Developer relevant new features
(foxriver76) js-controller (and thus the whole ioBroker) is now running as an ESM module internally while staying a 100 % backward compatible to adapters written in cjs
(foxriver76) adapters can now be written as ESM modules having full support (including compact mode)
(foxriver76) we provide all exports as ESM and as CJS to allow adapter developers to choose what to use
(foxriver76) allow to specify reason and exit code on adapter.stop
(foxriver76) if you blocklist a version in your io-package.json the controller won't start it anymore and will generate a notification
(foxriver76) for adapters of type schedule and connectionType set to cloud the schedule will be automatically delayed by up to 60 seconds randomly per user if the CRON does not contain a seconds argument, this is to prevent DDoS attacks
Developer relevant optimizations and fixes
(foxriver76) fixed crash case if an malformed object was defined in ioPack instanceObjects
(foxriver76) when interacting with aliases we no longer check permissions of the alias and the original object, we now only check the alias
(foxriver76) if getState is called on a non-existing or non-linked alias we return null like for all other non-existing states
(foxriver76/bluefox) multiple improvements on type level
Wir wünschen allen viel Spaß mit dem neuen Controller!
ich wünsche euch einen schönen Start ins Wochenende.
Da js-controller v5 stable immer näher rückt, möchten wir gerne noch die aktuellen Versionen der Adapter web, socketio und ws ins stable bringen. Diese werden die nächsten Tage dort erscheinen.
Falls ihr mehrere der Adapter installiert habt, upgraded diese bitte direkt hintereinander, so dass keine unerwarteten Wechselwirkungen entstehen. Solltet ihr plötzlich auftretende Probleme haben, probiert im web Adapter die Option bei reine Websockets verwenden zu ändern. Sollte es trotzdem Probleme geben, bitte erst mal hier melden, dass wir entscheiden können wo etwas gefixt werden sollte/Issues erstellt werden sollen.
habe einen Adapter geschrieben, der die Bring! Einkaufslisten App ausliest. Der Adapter ist aktuell in der ersten Version verfügbar.
Der Adapter erstellt für jede Liste einen Channel und darunter ein paar States. Der State Content, beinhaltet die aktuelle Liste als JSON und mit dem removeItem State könnt ihr ein Item von der Liste entfernen, bzw. mit moveToRecentContent zur kürzlich hinzugefügt Liste verschieben sowie mit dem saveItem State ein Item zur Liste hinzufügen.
Wenn ihr in den saveItem State ein Komma macht, wird alles nach dem ersten Komma als Spezifikation des Items gewertet und in der App unter dem Item angezeigt.
Die polling-Zeit für alle Listen ist hart auf 90 Sekunden fest gelegt und nach einem stateChange (z. B. hinzufügen eines Items mittels ioB) wird innerhalb von ca. 1 Sekunde die zugehörige Liste gepollt.
Ebenfalls bringt der Adapter ein Widget mit:
Konfiguration des Widgets:
Vor 1.6.0:
Ab 1.6.0:
Es müssen die entsprechenden States gewählt werden, wie im Screenshot zu sehen. WICHTIG:
Es muss ab Version 1.6.0 nur noch ein State gewählt werden. Und zwar die ListenId, also der Channel der Liste. Auch wurde die Möglichkeit die recent Liste von der Höhe zu beschränken über die Zeit abgehschafft (da sie unter der Annahme einer potentiell sehr langen Liste eingeführt wurde, die API allerdings maximal 12 Artikel liefert)
Platzhalter --> repräsentiert den Text, der oben im Eingabefeld eingeblendet wird.
Breite und Höhe der Artikel in px --> Kann zum skalieren der Kacheln verwendet werden, falls leer gelassen --> 116px
@thomas-braun Ja da der Update Prozess versucht wird als systemd Dienst zu starten könnte ich mir sehr gut vorstellen dass da was nicht ganz passt an dem User der ioBroker ausfuehrt. Denn auf einem stinknormalen Debian sollte der Prozess mittlerweile gut etabliert sein den wir verwenden.
@feuersturm man kann checken ob nach dem Update (ohne fixer danach ausgeführt zu haben) u. a. die Dateien in /opt/iobroker/node_modules/iobroker.js-controller noch dem user iobroker gehören und nicht root.
@martinp hm danke, sobald ich ein Gerät anlege und eine valide IP-Adresse eingebe oder auch paste verschwindet die Zeile sofort, Speichern nach wie vor disabled.
Habe den Adapter nun auch mal konfiguriert, in den Main settings schreibt er "Aufzeichnung läuft" sowie "FritzBox unterstützt Filterfunktion".
Im Tab Adressen kann ich meine Geräte anwählen, kann diese Selektion allerdings nicht Speichern, da Speichern Button inaktiv und bei neu aufrufen der Einstellungen ohne Speichern ist wieder alles abgewählt. Falls das schon bekannt ist - sorry.
@glitzi dann änder mal die Zeile 38 von Buffer.from(obj.result, 'binary'), zu Buffer.from(Object.values(obj.result), 'binary'), aber ja da hat puppeteer wohl was intent verändert..