ioBroker: Neue Entwicklungen im Mai 2024

ioBroker: Neue Entwicklungen im Mai 2024

31. Mai 2024 2 Von Moritz Heusinger

Hallo zusammen,

dies ist die Fortsetzung der monatlichen "Neue Entwicklungen" Serie die einen subjektiven Überblick über die Entwicklungen rund um ioBroker gibt.

Da ich vermutlich einer der aktivsten Entwickler im ioBroker Umfeld bin und auch häufig Einblicke bekomme, welche nicht auf allen Kommunikationskanälen nach außen kommuniziert werden - ist es mir hoffentlich möglich sowohl für ioBroker Nutzer als auch Entwickler die eine oder andere interessante Neuigkeit jeden Monat vorstellen zu können.

Disclaimer

An dieser Stelle ein kleiner Disclaimer, dass meistens noch deutlich mehr passiert ist als die Dinge, die ich hier aufführe. Aufgrund der Masse an Entwicklern entstehen ständig neue Adapter und Adapter werden weiterentwickelt, was ich nicht immer mitbekomme oder ich auch aufgrund der Masse filtern möchte. Für solche Neuerungen möchte ich gerne auch auf den ioBroker-internen Blog auf verweisen.

Diesen Monat gab es aufgrund der Ferien und Urlaubssituation kein Dev-Meeting und somit fehlen mir viele Einblicke in die Arbeiten der anderen Entwickler, weshalb sich der Post diesmal ausschließlich auf Dinge beschränkt, an denen ich selbst gearbeitet habe.

Überblick

ioBroker Visu App mit Hintergrundsynchronisierung

Im letzten Beitrag war die App bereits mit der neuen Geofence Funktion im Fokus. Auch Anfang dieses Monats wurden hier noch Feinschliffe vorgenommen und es hat sich gezeigt, dass Geofence auf iOS sehr zuverlässig läuft. Mit Android, was auf einer Vielzahl unterschiedlicher Geräte läuft, hat sich das als nicht ganz so einfach herausgestellt. Häufig haben Hersteller hier spezielle Mechanismen, um Apps zu stoppen mit dem Ziel Akku zu sparen. Hier macht es Sinn sich sein Gerät in dieser Liste anzuschauen und entsprechend der Tipps zu konfigurieren. Die Seite haben wir auch in der App auf Android Geräten unter How-To verlinkt.

Neben dem Feinschliff für Geofence haben wir nun auch entschlossen, dass beim Senden der Geofences einige weitere Daten mitgesendet werden. Dies beinhaltet, ob man mit einem WLAN-Netzwerk verbunden ist und falls ja dessen Namen. Ebenfalls wird der Batterieladestand und die Information, ob es sich aktuell am Ladekabel befindet mit übertragen.

Weiterhin haben wir eine Übertragung im Hintergrund in der App eingebaut. Das heißt, auch wenn die App im Hintergrund ist versucht sie in mehr oder weniger regelmäßigen Abständen diese Daten an euren iot Adapter zu senden. Diese muss in den Einstellungen unter "Erweitert" aktiviert werden, falls diese von euch benötigt wird.

Hier fehlen uns leider noch Testberichte, da ich noch nicht dazu gekommen bin einen eigenen Test-Thread für dieses Feature zu starten. Ich kann nur sagen, dass man unter iOS keinen wirklichen Einfluss hat wie oft die Daten im Hintergrund gesendet werden, dies entscheidet iOS per App und somit gibt es keine Garantie, dass die Daten ankommen. Wenn die App im Vordergrund läuft, schaut dies natürlich besser aus. Ich werde probieren bis zum nächsten Monat Feedback zu bekommen.

Feinschliff js-controller Kiera

Da ich im letzten Beitrag bereits angekündigt habe, dass der js-controller Version 6 (Codename Kiera) aktiv entwickelt wird habe ich diesen Monat noch die letzten Feinschliffe gemacht.

Dies beinhaltete einige letzte kleinere Features wie die Möglichkeit in Zukunft beim Einsatz von Redis Datenbanken diese auch mittels SSL zu nutzen und die entsprechenden Zertifikate während des "setup" Prozesses zu konfigurieren.

Ebenfalls haben wir für Adapter vom Typ "schedule", welche zu regelmäßigen Zeitplänen laufen eine Funktion eingebaut, dass deren Start um bis zu 60 Sekunden zufällig pro User verschoben wird. Dies passiert allerdings nur für Adapter, die mit einer Cloud interagieren und hat das Ziel ungewollte DDos Attacken zu verhindern, wenn z. B. 20,000 Nutzer fast Millisekundengenau einen Clouddienst anfragen.

Weiterhin gab es noch einige Performance Optimierungen, wenn viele Aliase zusammen mit einer Nicht-Redis Datenbank (also aktuell JSONL oder File) genutzt werden.

Zur Auswertung der Gesamtperformance in unterschiedlichen Szenarien von Controller Version 5 (Jana) verglichen zu Version 6 (Kiera) habe ich bereits die Ergebnisse mittels des Benchmark-Adapters gesammelt. Allerdings wird die Visualisierung und Auswertung der Ergebnisse erst die nächsten Tage stattfinden und ihr könnt euch auf die Grafiken und Einblicke im nächsten Blog-Beitrag freuen.

Wie ihr seht, waren es wirklich nur noch ein Feinschliff und dann ging der Controller am 22. Mai auch schon in den Alpha Test mit fleißigen Testern aus dem Forum.

Während des Alpha Tests haben sich einige kleinere Fehler gezeigt, die wir schnell fixen konnten sowie eine größere Geschichte wegen inkompatiblen Versionen einer Abhängigkeit auf das für Adapter essentielle Paket "@iobroker/adapter-core". Nach einigem Hin und Her konnten wir dies durch ein Refactoring im js-controller lösen, welches wir langfristig sowieso angedacht hatten.

Somit scheint der neue js-controller knapp eine Woche nach dem ersten Alpha Test schon zeitnah bereit für das offizielle Beta-Repository zu sein. Allerdings warten wir hier lieber eine Woche länger, ob noch Probleme aufkommen, um vermeidbare Probleme nicht an die breite Masse auszuliefern.

Den vollständigen Changelog findet ihr hier.

Admin node.js Update und Upgrade Policy

Im Zuge von Controller Kiera sind wie im letzten Blogbeitrag erwähnt und im Changelog zu sehen ist auch einige neue Features hinzu gekommen, welche eine Anpassung im Admin benötigen. Die gezeigten Features werden erst mit einer Nachfolgeversion von "6.17.14" verfügbar sein.

So habe ich diesen Monat auf der Übersichtsseite von Admin einen Button implementiert mit welchem die "node.js" Version auf diejenige aktualisiert wird, welche in den jeweiligen "apt" Quellen verfügbar ist. Dies entspricht aktuell nicht zwingend der die im Admin angezeigt wird, da Admin immer die neuste lt. Informationen von "node.js" aus dem Web zieht. Hier wird man noch etwas iterieren dürfen, wie die Anzeige am besten Sinn ergibt, die Interaktion mit dem Controller ist jedenfalls schon implementiert.

Weiterhin gibt es mit Kiera die Möglichkeit Adapter automatisch zu aktualisieren. Hierfür kann man die Funktion erst mal je Repository in den Systemeinstellungen des Admins aktivieren.

Man muss also explizit das Auto-Upgrade für ein Repository erlauben. Für Beta ist dies vermutlich nicht zu empfehlen und erzeugt auch entsprechend einen Hinweis. Ebenfalls könnt ihr eine Fallback Policy einstellen, d. h. nach welchem Schema Adapter automatisch aktualisiert werden, für die ihr keine individuelle Konfiguration hinterlegt habt. Hier ist "none" zu empfehlen.

Falls euch der Hintergrund zu den Semver Angaben fehlen, könnt ihr dies hier nachlesen. Kurz zusammengefasst:

  • "patch" - Nur Bugfixes
  • "minor" - Features ohne Inkompatibilitäten
  • "major" - Features mit Inkompatibilitäten

Je Adapter könnt ihr dann auf einem Adapter Tile auf die drei Punkte im blauen Kreis klicken und anschließend seht ihr den neuen Button.

Dieser öffnet dann den Dialog für einen einzelnen Adapter.

Weiterhin wird der Admin-Adapter technisch derzeit von Bluefox in großen Teilen auf TypeScript migriert. Die große Umstrukturierung hat zur Folge, dass es temporär in den Beta-Versionen vermehrt zu Fehlern kommen kann. Jedoch führt dies langfristig zu einer stark erhöhten Stabilität und unsere Vision ist es langfristig eine Stabilität und Wartbarkeit ähnlich des Controllers zu erzielen.

Puppeteer Start Argumente

Nachdem ich die letzten Monate weniger Zeit hatte mich um meine Adapter-Flotte abseits von Kompatibilität zu kümmern, gab es mal wieder ein kleines Feature im Puppeteer Adapter mit der Version 0.3.0. Dieser hat nun eine Konfigurationsseite, in welcher insbesondere Power-User dem Browser jegliche Startargumente mitgeben können.

Community Events

Erinnerung: In wenigen Tagen startet der Vorverkauf für das Jubiläumsevent am 9. November 2024 in Solingen. Sobald der Kartenverkauf startet wird auch die erste Agenda veröffentlicht.
Nähere Informationen findet ihr hier.

Weiterhin rückt das Smart City Forum am 28.09.2024 in Solingen ebenfalls näher, an welchem viele Mitglieder der Entwickler-Community ebenfalls vor Ort sein werden.
Nähere Informationen findet ihr auch im vorhergehenden Blogbeitrag.

Schlusswort

Wenn euch der Artikel gefallen hat, freue ich mich über einen Kommentar.

Falls ihr das ioBroker Projekt unterstützen möchtet, denkt gerne darüber nach eine Cloud Lizenz zu erwerben - neben der Unterstützung des Projektes genießt ihr dadurch viele Vorteile wie eine unlimitierte Anzahl an Alexa & Google Home Anfragen, die Möglichkeit per Fernzugriff sicher auf euer System zuzugreifen, die Möglichkeit eure Anwesenheitssteuerung einfach mittels der ioBroker Visu App zu realisieren und zukünftig weitere Vorteile. Die Einnahmen durch Lizenzeverkäufe fließen maßgeblich zurück in das Projekt und fördern die aktive Weiterentwicklung und Wartung des ioBroker Ökosytems.

Ebenso könnt ihr diesen Blog und meine persönliche Arbeit gerne unterstützen, indem ihr über meinen Amazon Affiliate-Link einkauft oder mir eine Spende zukommen lasst.

Bis zum nächsten mal

Moritz