ioBroker Fix – Smart Home kaputt?

Veröffentlicht von Lukas am

In den vergangenen Monaten habe ich bei meiner ioBroker Installation bemerkt, dass das System immer wieder kleinere Probleme hatte. Kleinere Probleme, die teils wirklich große Auswirkungen hatten. Dabei kam ich schnell auf den Gedanken, ob es irgendwo einen ioBroker Fix gibt, der meine Probleme löst.

Schlussendlich war die Lösung meines Problems so naheliegend, dass ich Wochen gebraucht habe, um auf die richtige Idee zu kommen. Du kennst das sicherlich, man denkt um fünf verschiedene Ecken und sieht manchmal den Wald vor lauter Bäumen nicht mehr.

Damit es dir nicht genauso geht, möchte ich in diesem Artikel gerne meine eigenen Probleme mit ioBroker beschreiben und dir von vorneherein sagen, worauf du achten solltest. Es gibt außerdem von meiner Seite aus zwei ganz essenzielle Tipps, die du in deinem Smart Home unbedingt beherzigen solltest.

Doch der Reihe nach. Meine Ausgangssituation war eine bisher völlig unauffällige Installation von ioBroker, die in einer virtuellen Maschine auf meinen Heimservern betrieben wird. Ich nutze insgesamt 75 verschiedene Adapter und betreibe 82 Instanzen. Meinem ioBroker stehen dabei 8 CPU-Kerne mit jeweils 2,6 GHz und 16 GB RAM zur Verfügung.

Dazu gilt es zu sagen, dass der Server ein Zwei-Familien-Haus verwaltet und nicht mal im Ansatz so viel Leistung überhaupt in Anspruch nimmt. Doch warum er so viel Leistung zugewiesen bekommen hat, wirst du gleich erfahren.

Shelly in ioBroker
Datenpunkte in ioBroker

Schleichende Verschlimmerung

Zu Beginn lief mein ioBroker super flott und ich konnte damit nahezu alles umsetzen, was ich mir in meinem Smart Home vorgestellt habe. Irgendwann stieg dann die Anzahl der verwalteten Objekte und Zustände immer weiter an, während ich auch größere Änderungen am Smart Home vorgenommen habe. Zu Hochzeiten hat ioBroker um die 150.000 Objekte und Zustände verwaltet. Das zwang meine virtuelle Maschine stetig an ihr Kapazitätslimit. Zumindest war das mein Eindruck, weshalb ich der virtuellen Maschine mehr Ressourcen zur Verfügung gestellt habe.

Ich stellte dann noch auf Redis um und erhoffte mir dadurch, dass das System insgesamt wieder schneller werden würde. Und das ist auch passiert. Zumindest in einem begrenzten Umfang.

Wochen später wurde die Situation allerdings wieder deutlich schlimmer. Eine besonders große Katastrophe war es, dass es regelmäßig zu Abstürzen in der Admin gekommen ist, wenn man den Tab Objekte nicht vollständig hat laden lassen. Und die Ladezeit war enorm. Zu Spitzenzeiten betrug sie mehrere Minuten!

Da die Objekte in ioBroker jedoch eine zentrale Rolle spielen, wirkten sich diese Probleme auch auf den Bereich Skripte und auf die Visualisierung aus. Das System lief zwar und steuerte auch noch fleißig weiter, bedienen war allerdings eine große Katastrophe.

Es meldeten sich darüber hinaus unterschiedliche Warnungen im Protokoll, wie zum Beispiel die langsame Verbindung zur Objekte-Datenbank. Und ich war eine ganze Zeit wirklich sehr ratlos und habe nach einem ioBroker Fix gesucht.

Vertiefe dein Wissen:  ioBroker Datenpunkte anlegen - So geht's!

Das NodeJS-Upgrade

Ich hatte mich im ioBroker Forum häufiger mal umgesehen und nach einer Lösung für mein Problem gesucht. Allerdings ohne Erfolg. Mein Gedanke war, dass es wohl da draußen nicht so viele große Installationen gibt, die eine ähnliche Verhaltensweise zeigen.

Etwa zur gleichen Zeit meldete sich dann auch noch NodeJS und schlug ein Update auf eine neuere Version vor. Neugierig wie ich war, installierte ich NodeJS 16 anhand einer Anleitung, die ich schon zuvor für meine Arbeit genutzt habe. Was ich allerdings völlig ignoriert habe (Schande über mich!) war die offizielle Anleitung der Entwickler von ioBroker.

Es kam also, wie es kommen musste. Meine Installation war völlig schief und absolut kaputt. Es lief zwar irgendwie noch alles, aber so wirklich nutzbar war mein System gar nicht mehr. Es war die reinste Katastrophe und ich war kurz davor, die virtuelle Maschine komplett zu löschen.

Mit Mühe und ganz viel Zeit gelang es mir allerdings, dass ich meine Installation wieder entsprechend auf die alte Version von NodeJS downgraden konnte und den ursprünglichen Zustand wiederherstellen konnte. Das war eine schwierige Situation, denn Installationen wirken sich natürlich auch auf das Betriebssystem aus, welches dann erstmal wieder bereinigt werden musste.

Ganz entscheidend waren dabei meine Kenntnisse über Linux, da ich nicht nur durch ioBroker mit diesem System in Berührung gekommen bin. Ich konnte also auf ein gewisses Fachwissen zurückgreifen und es gelang mir schlussendlich (wie bereits erwähnt), alles wieder hinzubiegen.

Funfact am Rande: Im ioBroker Forum gab es bei einem Nutzer ähnliche Probleme und man hatte ihm zu einer kompletten Neuinstallation geraten, da seine Installation so kaputt war. Für mich kam das allerdings nicht in Frage. Ich wollte es unbedingt lösen. Vielleicht auch ein bisschen fürs eigene IT-Ego.

Langsames System, noch mehr Datenpunkte

Nach meiner katastrophalen Entscheidung, NodeJS falsch zu installieren und den darauffolgenden mühsamen Stunden, lies ich das System vorerst weiterlaufen. Es dauerte eine ganze Weile, ehe ich mich wieder an mein ursprüngliches Problem gewagt habe.

Der Auslöser war dann schlussendlich, dass die Objekte sich scheinbar grundlos immer weiter vermehrt haben. Und am vergangenen Wochenende ist mir dann innerlich der Kragen geplatzt. Während der Erstellung von Skripten luden scheinbar die Objekte nicht mehr richtig, das ganze System hat sich aufgehängt und die Admin musste jedes Mal und bei jedem Hänger manuell über die Konsole neu gestartet werden.

Das war für meinen Geschmack dann wirklich ein Problem und eine Sorge zu viel. Der Punkt war erreicht, zu dem ich das Problem entweder lösen oder ioBroker komplett in einer neuen Umgebung aufsetzen musste. Entsprechend viel Frust hat sich bei mir breit gemacht, obwohl ich in Sachen IT im Normalfall immer die Ruhe weg habe.

BackItUp Tab ioBroker
BackItUp macht Sicherungen deines ioBrokers

Ursachenforschung

Durch verschiedene Quellen im Internet wusste ich, dass man Redis genauer unter die Lupe nehmen kann. Mir war anhand der Auslastung und des Taskmanagers in Linux sofort klar, dass hier irgendwas nicht in Ordnung sein kann.

Ich schaute mir also an, welche Keys in Redis aktuell gespeichert sind und von ioBroker genutzt werden. Dazu loggte ich mich in Redis ein und lies mir alle Keys anzeigen.

redis-cli
KEYS *

Der erste Befehl startet eine Session zur Datenbank. Dort angekommen kann dann der zweite Befehl eingegeben werden. In meinem Fall hat sich die Ausgabe verzögert. Etwa 3 Minuten hat es gedauert, bis Redis mir alle Keys aufgelistet hatte.

Und dabei fiel mir ein Muster auf. Ein Muster, das es so nie hätte geben dürfen.

Es gab insgesamt mehrere zehntausend Keys, die zum Adapter Withings gehörten. Dem Gerät, das mir jeden Morgen beim Gang auf die Waage schon Kummer bereiten könnte. Genau dieses Gerät bereitet auch meinem Smart Home aktuell viel Kummer und Sorgen.

Ich ging also weiter auf Ursachenforschung und fand heraus, dass der Adapter für Withings aktuell das Problem hat, dass gefühlt endlos Datenpunkte angelegt werden, die nahezu jedes System irgendwann zu Fall bringen. Der Übeltäter war also gefunden!

Mein ioBroker Fix

Nachdem nun alle Fakten auf dem Tisch lagen und ich mir sicher sein konnte, dass es nicht direkt an ioBroker gelegen hatte, begann ich mit der Säuberung des Systems.

Im ersten Schritt habe ich dazu die Instanz entfernt und im Anschluss daran den Adapter gelöscht. Übrig geblieben sind dann noch Datenpunkte, die so einfach nicht verschwinden wollten. Doch auch das ging nach ein paar Versuchen und so war das System schlagartig um etwa 130.000 Datenpunkte ärmer.

130.000 Datenpunkte für einen einzigen Adapter! Das muss man sich mal genau vor Augen führen.

Selbstverständlich gab es dann als Belohnung für das Smart Home noch einen ordentlichen Neustart, so dass auch die letzten Reste aus dem System geputzt waren.

Mein eigener ioBroker Fix bestand also im Grunde nur darin, den Adapter zu löschen und die Datenpunkte entfernen zu lassen. Plötzlich lief alles wieder rund. Die Objekte werden super schnell geladen, das System fühlt sich insgesamt geschmeidiger an und auch das Bedienen macht wieder richtig viel Freude.

Doch wie konnte es überhaupt dazu kommen?

Vertiefe dein Wissen:  ioBroker reparieren - Geht das denn?

Wichtiges missachtet

Vor meinem inneren Auge sehe ich schon, wie sich mindestens eine Person gleich denken wird, warum ich das überhaupt getan habe. Warum ich einen wichtigen Grundsatz missachtet habe und damit auf die Nase gefallen bin. Und die Frage kann ich nur beantworten mit einem „Ich dachte, ich bekomme das hin und habe da keine Probleme“. Tut weh, sich das einzugestehen, gehört aber in der IT für jeden mal dazu.

Der Withings-Adapter ist aktuell (ich glaube es ist noch so?) nur über GitHub installierbar. Ich bin also hergegangen und habe diesen direkt aus dem entsprechenden Repository installiert und eingerichtet. Er funktioniert soweit auch gut und ich konnte praktisch meine Waage ins Smart Home integrieren.

Was allerdings auch ich völlig missachtet habe war an dieser Stelle, dass es sich um einen Stand handelt, der noch in der Entwicklung ist. Ein Stand des Adapters, der nicht final ist und am besten nicht in produktiven System eingesetzt werden sollte. Ebenso habe ich mich nicht darüber informiert, ob es vielleicht bekannte Probleme gibt.

Das Peinliche daran ist nun, dass gerade ich als Softwareentwickler es hätte besser wissen müssen! Und vermutlich wusste ich es auch besser, habe mich in diesem Fall aber scheinbar völlig überschätzt.

Selbst als die Anzahl der Objekte im System immer weiter gestiegen ist, bin ich nicht aktiv auf Ursachenforschung gegangen. Ich habe das System wirklich eskalieren lassen. Anstatt den Grund für die Einschränkungen zu suchen, hat die Maschine mehr Leistung bekommen. Der denkbar schlechteste Weg, wie man in der IT agieren kann.

Und ich habe zu viel auf einmal getan. Redis-Umstellung, NodeJS-Update und ein nicht-stabiler Adapter für mein System. So konnte man den Grund nicht mehr gezielt herausfinden. Es ist in zu kurzer Zeit einfach viel zu viel passiert.

ioBroker Objekte
ioBroker listet Objekte normalerweise sehr schnell

Was wir daraus alle lernen (sollten)

Nun, da die Fakten auf dem Tisch liegen und ich mich öffentlich aus meiner Komfortzone bewegen musste, sprechen wir über Vorsichtsmaßnahmen. Diese Maßnahmen sind es, die uns schlussendlich davon abhalten sollten, dumme Entscheidungen zu treffen und unser Smart Home zu gefährden.

Ich weiß natürlich, dass diese Maßnahmen immer und immer wieder gepredigt werden. Wir kennen sie alle, aber wir wissen es alle oftmals auch angeblich besser. Nimm daher mein konkretes Beispiel für ein beinahe zerstörtes System, um die nachfolgenden Punkte besser verstehen zu können.

Und was mir noch viel wichtiger ist: Bitte beherzige Tipps, die dir gegeben werden. Insbesondere von denjenigen, die sich sehr intensiv mit diesem System befassen. Dann brauchst du definitiv keinen ioBroker Fix, da dein System immer stabil bleiben wird.

#1: Mach Backups, Backups, Backups!

Ich hatte in meinem Fall Snapshots gemacht, die ich zur Wiederherstellung hätte nutzen können. Da sie aber zwischenzeitlich überschrieben wurden, half mir auch das in der konkreten Situation nicht weiter. Das bedeutet nun, dass es zwar immer schön ist etwas parat zu haben, doch hast du es wirklich in solch einer Situation?

Gerade komplexe Systeme, eigene Dateien und vielleicht sogar der komplette PC müssen von dir behandelt werden, wie ein Schatz. Dazu gehört es, dass in regelmäßigen Abständen Backups gemacht werden, die dir im Zweifelsfall wirklich den Tag retten können.

In ioBroker gibt es hierzu die Möglichkeit, den BackItUp-Adapter zu verwenden (absolute Empfehlung!). Darüber hinaus solltest du dir aber auch Gedanken machen, wie du das darunterliegende System schützen und sichern kannst.

Handelt es sich zum Beispiel um eine virtuelle Maschine in Proxmox? Mach ein vollständiges Backup und nutze die Funktion von Snapshots!

Ist es ein eigener kleiner PC oder ein Raspberry Pi? Super, dann mach regelmäßig ein Image von deinem Server!

#2: Installiere nicht alles!

Auch wenn es manchmal verlockend erscheint, sollte man nicht unbedingt alles installieren, was man so im Internet findet. Das gilt nicht nur für ioBroker, sondern generell für alle PCs.

Doch gerade bei ioBroker finde ich es fast noch wichtiger. Gerade als Laie weiß man oft gar nicht, was es mit GitHub und den ganzen Repositories überhaupt auf sich hat. Man ist einfach etwas geblendet von den Möglichkeiten und genau den Adaptern, die man doch schon immer so sehnsüchtig erwartet hat.

Genau die Ungeduld spielt hier eine große Rolle in meinen Augen. Man möchte nicht auf die offizielle Freigabe warten und probiert sich eben schon mal vorher durch. Aber das kann ganz böse ins Auge gehen.

Wenn du etwas von GitHub direkt installierst, umgehst du verschiedene Sicherheitsmechanismen, die ioBroker stark machen. Zum Beispiel ein Review der Adapter durch andere Entwickler. Du kannst dir also nie sicher sein, ob du einen problembehafteten Adapter installierst oder sogar schädlichen Code in dein System lässt. Im dümmsten Fall legt es wirklich jemand darauf an, dein System zu zerstören und du bittest ihn mit einem Download auch noch freundlich herein.

Das wäre quasi genauso, wie wenn du einem Einbrecher nach dem Klingeln die Tür öffnest und ihm noch erklärst, wo er was genau findet.

#3: Du kontrollierst das System!

Ebenfalls wichtig zu beachten ist, dass du derjenige bist, der die Oberhand über das System hat. Natürlich gibt es Foren, Blogs und Co. Doch schlussendlich bist du alleine für dein System verantwortlich. Nur du weißt, was du wann getan hast und welche Auswirkung es gehabt hat.

Du musst dir selbst somit zumindest die Zeit einräumen, das System kennenzulernen und zu verstehen.

Darüber hinaus ist es wichtig, dass du dein Smart Home nicht einmal einrichtest und dann einfach laufen lässt. Du musst dich regelmäßig darum kümmern, Updates installieren und auch die Belastung des Systems im Auge behalten. Reichen deine Ressourcen noch aus? Was machen die Objekte?

Ebenfalls sehr wichtig ist, dass du dein System (und das ist vielleicht der beste ioBroker Fix) regelmäßig aufräumst. Smart Home ist so lebendig wie das Leben selbst. Aus diesem Grund verändern sich Bedürfnisse und ihre Auswirkungen auf das Zuhause. Dein System wächst zwar immer weiter, doch was passiert mit alten Datenpunkten oder nicht mehr genutzten Instanzen etc.?

Nimm dir wirklich die Zeit und schaue regelmäßig nach deinem Smart Home. Die Pflege ist oft schon die halbe Miete.

#4: Zielstrebig, aber ruhig

Sollte es nun trotz allen Maßnahmen mal zu einem Problem kommen, musst du ruhig bleiben.

Wir Menschen treffen in Stresssituationen oft nicht die besten Entscheidungen und machen dabei mehr Fehler, als eigentlich vorher da gewesen sind. Daher gilt es unbedingt zielstrebig zu sein, die Situation genau zu analysieren und keine Aktion zu überstürzen. Denk lieber einmal zu viel an alle Eventualitäten, als dass du vorschnell handelst.

Ich zum Beispiel gehe in der Regel jedes Problem mit viel Ruhe an. Ich atme tief durch, schnappe vielleicht nochmal kurz frische Luft und schaue dann ganz genau. Du musst immer herausfinden, was passiert ist und warum es passiert ist. Das sind die wesentlichen Fragen.

Das Was hilft dir dabei, den Fehler einzugrenzen. Und das Warum beantwortet die Frage, welcher Teil zu diesem Problem geführt hat. Daraus ergibt sich ein Lösungsansatz, den man verfolgen kann.

#5: Ein Testsystem nutzen

Ein weiterer sinnvoller Tipp ist der Einsatz eines Testsystems. Hier kannst du nach Belieben verändern, ausprobieren und auch zerstören. Denn es betrifft nicht dein produktives System.

Oft genügt es dabei, wenn das eigene Testsystem kleiner dimensioniert ist und nur eine kleine Anzahl an Adaptern und Geräten verwalten kann. So hast du eine Umgebung in der du zumindest die grundlegenden Änderung ausprobieren kannst und Fehler schon erkennst, bevor dein eigentliches System davon betroffen ist.

Gerade für Anfänger ist es auch super, dass sie sich so dem Thema NodeJS besser widmen können. Denn wenn etwas schiefläuft, kannst du ein Backup einspielen oder im Falle einer virtuellen Maschine einen Snapshot laden. Einfacher geht es kaum noch.

Vertiefe dein Wissen:  Warum ioBroker nicht einfach ist - und wie es leichter wird

Was sind deine Erfahrungen?

Ich habe dir nun in diesem ausführlichen Artikel einen guten Überblick darüber gegeben, wie ich mein Smart Home beinahe zerstört hätte. Und das alles nur, weil ich unvorsichtig war und gedacht habe, ich könnte mit den Risiken umgehen.

Ein klassischer Fall von Fehleinschätzung.

Doch was ist mit dir? Hast du auch schon mal dein Smart Home an den Abgrund getrieben? Und wenn ja, wie bist du damit umgegangen?

Schreib mir deine Erfahrungen gerne mal unten in die Kommentare und lass andere an deinen Erkenntnissen teilhaben. Ich bin jedenfalls sehr gespannt darauf!

Kategorien: ioBroker

Avatar-Foto

Lukas

Als Softwareentwickler und Projektmanager mit einem Master of Science in Wirtschaftsinformatik weiß ich genau, wie die Dinge in der IT zu funktionieren haben. In meinem Blog kombiniere ich seit mehr als 7 Jahren mein Wissen mit meiner Neugier im Bereich Smart Home. Transparenz und Praxisnähe stehen für mich dabei im Vordergrund. Mein Fokus liegt vor allem auf der Software ioBroker, da ich mein eigenes Smart Home damit betreibe. Meine Beiträge basieren somit nicht nur auf theoretischem Know-how, sondern auch auf praktischen Erfahrungen aus meinem vernetzten Zuhause. Mein persönliches Ziel ist es, dir Einblicke in das Smart Home zu geben, die dich wirklich voranbringen.

2 Kommentare

Avatar-Foto

Stepahn · 16. Oktober 2022 um 00:51

Hallo Lukas 🙂 , ich bin kein IT-Spezialist aber seit über 40 Jahren mit der Anwendung von µ-Controllern in der Automatisierungstechnik beschäftigt, wenn auch mehr von der Hardwareseite. Klar ist das SmartHome neben dem Interesse an „Tools“ für Hobby und Handwerk (3D- Drucker, CNC-Maschinen) auch privat da quasie ein magnetischer Punkt der mich anzieht. Wenn man all die Restriktionen und preisintensiven Vorgaben der kommerziellen Lösungen vergleicht kommt man früher oder später nicht am IO-Broker vorbei 😉 Insbesondere die Möglichkeit mittels µ-Controllern mit „Tasmota-Software“ und dem MQTT-Protokoll eine schier unendliche Möglichkeit eigene Sensoren und Aktoren (mit attraktiven Kosten) zu kreieren ohne spezielle „Programierkenntnisse“ zu haben lässt das Herz höher schlagen 🙂 Nicht zuletzt die unermüdliche Community mit all ihren Adaptern lässt wohl die meisten anderen „Plattformen“ verblassen, wo kann ich sonst z.B. die aktuellen Corona-Daten mit dem Benzinpreis (m)einer örtlichen Tankstelle und der Temperatur in meinem Heizungsraum verknüpfen um damit das Licht auf dem stillen Örtchen in der Helligkeit steuern, auch wenn ich vielleicht gerade woanders bin 😉 Braucht man wahrscheinlich nicht, aber man kann !!!
Im aktuellen Fall (m)einer (neuen) Wärmepumpe bin ich angenehm überrrascht, welche Daten ich dem System entlocken kann die der Hersteller ansonsten für sich behält 🙂
Und genau hier stimme ich mit dir überein Lukas! Mein IOBroker läuft auf einem NUK mit Proxmox und Debian für den IObroker. Die RasPi4 Variante ging schnell an ihre Grenzen und war irgendwie auch nicht zuverlässig, trotz SSD(?)
Aber all die Punkte zum Thema Datensicherheit ( fehlendes bzw. nicht funktionierendes BackUp!!!) und das Installieren neuer scheinbar interessanter Adapter habe ich auch durch und als nicht IT’ler und mangelnden Linux-Kenntnissen viel Erfurcht davor! Zum Glück haben „wichtige“ UpDate’s irgendwie fast immer geholfen(?) aber allein das „vergessene “ PW für Proxmox macht mir schon sorgen hier im Ernstfall alles zu verlieren!!! 🙁 🙁
Da sind deine Tipps zur „Vorsorge“ sicher recht hilfreich und auch wenn es trivial erscheint manches kann man gar nicht oft genug sagen 😉
Mit besten Grüßen 🙂

    Avatar-Foto

    Lukas · 16. Oktober 2022 um 09:37

    Hallo Stephan,

    danke für deinen ausführlichen Kommentar zu meinem Artikel.

    Ja, ioBroker ist für das Smart Home ein wahrer Segen. Mit dem System lässt sich sehr vieles realisieren, was bei kommerziellen Systemen oft ein wenig eingeschränkt ist. Nicht zuletzt wegen der großen Community.
    Bezüglich deinem Backup: ioBroker selbst kann mit dem BackItUp-Adapter eine Sicherung auf ein NAS oder in einen Cloud-Dienst erstellen. Das funktioniert sehr zuverlässig, vielleicht wirfst du da mal einen Blick drauf.
    Und es gibt ja auch in Proxmox noch die Möglichkeit, ein Backup der gesamten VM zu machen oder mit Snapshots zu arbeiten. Diesen Ansatz wähle ich in Kombination mit dem BackItUp-Adapter.

    Meine Passwörter bewahre ich in Bitwarden auf. So habe ich keine Sorge, dass ich mal ein wichtiges Passwort vergessen könnte (https://hobbyblogging.de/bitwarden-self-hosting).
    Aber natürlich gibt es gewisse Informationen im Smart Home, die man immer griffbereit haben sollte. Der richtige Umgang mit diesen Informationen ist sehr wichtig und wird glaube ich auch von vielen Menschen etwas unterschätzt.

    Smarte Grüße

Schreibe einen Kommentar

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert