IoBroker unter Docker auf der Synology DiskStation (bis v2)

Achtung! Mit dem aktuellen Stable Release v3.0.0 des Docker Images kann diese Anleitung nicht mehr 1:1 umgesetzt werden! Die Anleitung funktioniert nur bis zur Image-Version 2.0.0 vom 7. Dezember 2018. Aufgrund der Vielzahl der Änderungen am Image gibt es für die aktuelle Image-Version ein komplett neues Tutorial.

Nachdem meine ioBroker-Installation mit der Zeit immer weiter gewachsen ist und damit auch immer ressourcenhungriger wurde, reichten mir RaspberryPi und Cubietruck bald nicht mehr aus. Ich brauchte eine neue, leistungsfähigere Lösung.

Zum Glück hatte ich mir kurze Zeit vorher bereits eine DiskStation 1515+ von Synology zugelegt um meinen alten Linux-Server (mit all seinen Datei- und Medien-Diensten, sowie dem TV-Server) abzulösen. Also kurzerhand den Arbeitsspeicher der DS auf 6 GB aufgerüstet und… ja, Problem. In der neuen Version 6 des DSM war die Installation von VirtualBox (welches ich auf meinem Server genutzt hatte) nicht mehr möglich. Man konnte also keinen virtuellen ioBroker Server auf der DS laufen lassen. Das Aus für meinen Virtualisierungsplan? Nein.

Eine kurze Recherche mit den Stichworten “Virtualisierung” und “Synology” später stieß ich auf das Projekt Docker. Docker ist eine Virtualisierungsplattform, welche einen etwas anderen Ansatz verfolgt als vmWare, VirtualBox oder MS Hyper-V. Unter Docker werden nicht mehr ganze virtuelle Server erstellt, sondern lediglich sogenannte Container, die alle notwendigen Daten enthalten um eine einzelne Anwendung oder einen einzigen Dienst zum Laufen zu bekommen und zur Nutzung bereitzustellen. Diese Container werden, teilweise bereits fertig konfiguriert, als Images zum Download bereitgestellt.

Hinweis: Weitere Infos zu Docker hier (docker.com) oder hier (Wikipedia)

Also habe ich mich ein wenig in das Thema eingelesen und ein paar Tests gemacht. Ein ioBroker-Docker-Image gab es zwar schon, allerdings hatte ich hier einige Probleme benötigte Pakete für einzelne Container nach zu installieren. Ich wollte etwas was sich leichter administrieren lässt, also näher an einer virtuellen Maschine ist. Beim Durchwühlen verschiedenster Docker-Tutorials stolperte ich irgendwann über das Debian-Image. Einige Tests später stand fest: Es verhält sich in etwa so, wie eine Debian-Installation (z.B. Raspbian) auf dem RaspberryPi. Nachdem ich dann noch verstanden hatte, wie das mit dem Dockerfile funktioniert, dachte ich mir: So ein Image erstellen kannst du auch. Gesagt, getan. Hier probiert und da getestet und letztendlich das Resultat auf Github und im Docker Hub veröffentlicht.

Wer sich also für den Quellcode interessiert, der wird auf Github fündig. Wen nur das fertige Image interessiert, der ist im Docker Hub gut aufgehoben.

Nun Gut, da ich meine Bastelei nicht für mich behalten wollte, habe ich ein entsprechendes Thema im ioBroker-Forum erstellt. Leider ist so ein Thread nicht unbedingt zur Dokumentation einer solchen Lösung geeignet. Daher jetzt hier einmal die offizielle Anleitung zu meinem ioBroker-Docker-Image. Falls du Probleme hast, oder Unterstützung benötigst, nutze gerne die Kommentare oder den Thread im ioBroker-Forum. Ich lese beides. 🙂

Der Übersichtlichkeit halber habe ich meine Anleitung hier auf mehrere Seiten verteilt. Das Inhaltsverzeichnis befindet sich immer am Seitenanfang, aber das hast du ja sicher schon gesehen...

Achtung! Mit dem aktuellen Stable Release v3.0.0 des Docker Images kann diese Anleitung nicht mehr 1:1 umgesetzt werden! Die Anleitung funktioniert nur bis zur Image-Version 2.0.0 vom 7. Dezember 2018. Aufgrund der Vielzahl der Änderungen am Image gibt es für die aktuelle Image-Version ein komplett neues Tutorial.

Beginnen wir mit der einfachen Standardinstallation von ioBroker unter Docker. Warum Standardinstallation? Ganz einfach. Nach den folgenden Schritten hast du innerhalb kürzester Zeit eine funktionierende ioBroker Installation unter Docker auf deiner DiskStation (DS) laufen. Allerdings liegen in dieser Konstellation sämtliche Daten (auch Konfigurationsdaten) in dem erstellten Container. Wenn es also mal Probleme mit Docker auf der DS oder einfach mit dem Container gibt, kann es passieren, dass die komplette ioBroker Installation verloren ist. Außerdem lässt sich so ein Container nur umständlich aktualisieren/ ersetzen. Ich empfehle daher unbedingt noch einen Blick auf die nächste Seite zu werfen auf der es um die "Erweiterte Konfiguration" geht. Nun aber erstmal zur Standardinstallation.

# # # # #

Vorraussetzungen

Damit die folgenden Schritte erfolgreich absolviert werden können, benötigst du eine eingerichtete Synology DiskStation mit installiertem und gestartetem Docker-Paket und Internetzugang. Sollte im Paketzentrum deiner DS kein Docker-Paket zu finden sein, so kann es sein dass dein Modell die Ausführung von Docker nicht unterstützt. Näheres Dazu findest du in den Paketinformationen auf der Synology-Webseite.

Schritt 1: Image herunterladen

Öffne zuerst die Docker-Oberfläche innerhalb des Webinterface deiner DS und wechsle in den Bereich "Registrierung". Gib in das Suchfeld "iobroker" ein und markiere das Image "buanet/iobroker". Klicke anschließend auf den Download-Button. Im erscheinenden Auswahlfenster für die Version (Tag) wähle "latest". Dies ist die letzte stabile Version. Das Image wird nun auf deine DS herunter geladen.

Hinweis: Seit 10.12.2017 ist es möglich verschiedene Versionen des Docker Images herunter zu laden. Ich empfehle die Version "latest" zu verwenden (Das gesamte Tutorial basiert darauf!). Hierbei handelt es sich automatisch um die letzte stabile Version. Das Verwenden einer anderen Version empfehle ich nur erfahrenen Benutzern.

Schritt 2: Container aus Image erstellen

Wechsle in den Bereich "Abbild" in der Docker-Oberfläche. Hier sollte nun das Image "buanet/iobroker:latest" zur Verfügung stehen. Wähle das Image aus und klicke auf den Starten-Button.

Es öffnet sich ein Wizard zum Erstellen eines Containers. Vergebe einen Containernamen, z.B. "ioBroker", und klicke auf den Button "Erweiterte Einstellungen".

In den Erweiterten Einstellungen wähle das Kontrollkästchen "Automatischen Neustart aktivieren" aus um sicherzustellen, dass der Container sich im Fehlerfall selbstständig neu startet.

Unter Netzwerk wähle "Dasselbe Netzwerk wie Docker Host verwenden". Diese Einstellung sorgt dafür, dass siche ioBroker später "anfühlt" als würde es direkt auf der DiskStation laufen und vermeidet Probleme mit dem Hostnamen.

Schließe die Erweiterten Einstellungen mit OK, und klicke den Weiter-Button. In der Zusammenfassung sind nochmals alle Einstellungen aufgeführt. Klicke auf "Übernehmen".

Schritt 3: Container überprüfen

Öffne den Bereich "Container" in der Docker-Oberfläche. Hier sollte nun der erstellte Container erscheinen. Prüfe ob der Container eingeschaltet ist und sich im Status "Läuft" befindet.

Wähle den Container aus und klicke auf "Details".

Unter "Prozess" siehst du ob ioBroker erfolgreich gestartet ist. Falls dem so ist, sieht es ungefähr so aus:

Unter "Terminal" hast du direkten Zugriff auf die Kommandozeile des Containers (Terminal). Sollte die Kommandozeile leer sein, klicke in das große graue Feld und drücke Enter. Nun sollte es wie folgt aussehen:

Über die Kommandozeile kannst du nun z.B. optionale Softwarepakete nachinstallieren (manche Adapter/ Funktionen benötigen das) oder auch deine ioBroker-Installation steuern und ggf. Updates des js-controllers erledigen.

Hinweis: Seit Version 1.1.0 wird ioBroker im Docker Container nicht mehr als Dienst ausgeführt. Damit sind auch die bekannten Befehle "iobroker start" und "iobroker stop" nur noch begrenzt verwendbar. Mehr Infos zur Steuerung des ioBroker über die Kommandozeile gibt es in der Knowledge Base.

Schritt 4: ioBroker Weboberfläche öffnen

Wenn der Container ordnungsgemäß eingerichtet und gestartet ist, sollte deine neue ioBroker-Installation nun über das Webinterface erreichbar sein. Öffne dazu einfach den entsprechenden Pfad in einem Webbrowser:

http://[name_oder_ip_der_diskstation]:8081

Der Container ist damit eingerichtet. Wie oben aber bereits erläutert empfehle ich auf jeden Fall die "Erweiterte Konfiguration".

Achtung! Mit dem aktuellen Stable Release v3.0.0 des Docker Images kann diese Anleitung nicht mehr 1:1 umgesetzt werden! Die Anleitung funktioniert nur bis zur Image-Version 2.0.0 vom 7. Dezember 2018. Aufgrund der Vielzahl der Änderungen am Image gibt es für die aktuelle Image-Version ein komplett neues Tutorial.

So, wer sich vorab schon einmal mit Docker befasst hat wird bemerkt haben, dass die beschriebene "Standardinstallation" nicht unbedingt dem entspricht wofür das "Docker-Prinzip" steht. So ist es im aktuellen Zustand zum Beispiel nicht möglich den Container über ein neueres Image zu aktualisieren ohne die in ioBroker getätigten Konfigurationen und installierten Adapter zu verlieren. Außerdem gestaltet sich eine Datensicherung (welche ja unbedingt ausserhalb des Containers liegen sollte) sehr umständlich. Kurzum, unsere ioBroker-Konfigurationsdaten sind im Container "gefangen". Deshalb machen wir es jetzt besser. Ziel ist es, die Daten aus dem Container auf die DiskStation zu verschieben und so den Weg für eine einfache Datensicherung frei zu machen sowie eine Aktualisierungsmöglichkeit des Containers (ohne Datenverlust) zu schaffen.

# # # # #

ioBroker-Verzeichnis auf die DiskStation auslagern

Zum Verschieben des ioBroker-Verzeichnisses nutzen wir die Möglichkeit Verzeichnisse von der DiskStation in den Container durchzureichen, neudeutsch zu mounten. Wir benötigen dazu einerseits einen, nach Möglichkeit leeren, Ordner auf der DS, andererseits einen "Transfer-Ordner" im Container in den wir den DS-Ordner mounten können. Los geht's.

Das Anlegen eines Verzeichnisses auf der DiskStation sollte keine so große Hürde darstellen. Öffne dazu einfach die "Systemsteuerung" deiner DS und lege einen neuen "Gemeinsamen Ordner" mit dem Namen "docker" an (in meinem Fall auf volume1). Anschließend lege über die "File Station" innerhalb des Ordners einen weiteren Ordner mit dem Namen iobroker_mount an. Natürlich kannst du die Namen der Verzeichnisse frei wählen.

Das Anlegen des "Transfer-Verzeichnisses" im Container ist sogar noch einfacher. Hierzu reicht ein einziger Befehl im Terminal des Containers. Öffne also deine Docker-Oberfläche, wechsle in den Bereich Container, wähle den ioBroker Container und klicke auf Details. Wechsle ins Terminalfenster und gebe folgenden Befehl ein:

http://[name_oder_ip_der_diskstation]:8081

Nun kannst du das Verzeichnis auf der DS im Container einhängen (mounten). Dazu muss der Container ausgeschaltet sein. Schließe also die Container-Details und beende den Container über den Ausschalter.

Sobald der Container Angehalten ist, markiere ihn und klicke auf den "Bearbeiten"-Button. Unter "Volume" gilt es nun das Ordnerpaar zu hinterlegen. Klicke dazu auf "Ordner hinzufügen" und wähle deinen Ordnerpfad auf der DS. In meinem Beispiel: "/docker/iobroker_mount". Unter Mount-Pfad gib das Transfer-Verzeichnis innerhalb des Containers an. In meinem Beispiel: "/opt/transfer". Bestätige die Änderungen mit "OK" und starte den Container wieder.

Es wird nun Zeit die Daten zu kopieren. Öffne Dazu die Details deines Containers und wechsle ins Terminalfenster. Mit den folgenden Befehlen stoppst du ioBroker und kopierst das ioBroker-Verzeichnis in das gemountete Verzeichnis auf der DS:

cd /opt/iobroker
pkill io
cp -a /opt/iobroker/. /opt/transfer

Wenn alle Dateien Kopiert sind, schließe die Details des Containers und stoppe ihn wie oben beschrieben. Über die "File Station" kannst du schauen ob nun Dateien im Verzeichnis "/docker/iobroker_mount" liegen. Ist dies der Fall, so müssen wir nun nur noch den Mount-Pfad im Container anpassen. Öffne dazu den Bereich "Volume" im Bearbeiten-Dialog deines Containers und ändere den Mount-Pfad auf "/opt/iobroker". Wenn du nun deinen Container startest arbeitet er mit den Daten aus dem "iobroker_mount"-Verzeichnis auf deiner DS.

Aber wozu ist das nun gut? Ganz klar. Mit dem Verschieben des ioBroker-Verzeichnis liegen nun alle Konfigurationen, installierten Adapter und Nutzdaten auf deiner DS. Der Container ist nur noch die austauschbare Umgebung in der ioBroker gestartet wird. Dies bedeutet, der Container ist austauschbar. Zum Beispiel mit einer neueren Version.

Aktualisieren des Containers

Achtung! Mit dem Stichtag 05.12.2018 wurde die Node-Version im Docker-image von Node6 auf Node8 angehoben. Damit ioBroker nach dem Update des Containers wieder ordnungsgemäß läuft bitte unbedingt die Anmerkungen zum Wechsel der Node-Version aus der offiziellen ioBroker Dokumentation berücksichtigen!!!

Software wird immer schneller weiter entwickelt, es gibt Updates oder gar komplett neue Versionen. Dies trifft natürlich auch auf die Software und Bibliotheken innerhalb des Docker Containers zu, welche mit dem Image geladen worden sind. Es empfiehlt sich von Zeit zu Zeit diese Updates auch in den erstellten Container einfließen zu lassen. Mit den bis hier her getätigten Konfigurationen und dem Wissen, dass mein ioBroker-Image in der Regel jede Nacht automatisch aus den aktuellsten Paketquellen aktualieiert wird, wird diese Aufgabe zum Kinderspiel. Und so geht es:

Öffne die Dockeroberfläche auf der DS. Damit du deine Containereinstellungen nicht neu tätigen musst, wechsle in den Bereich "Container" und wähle unter Einstellungen den Punkt "Exprotieren". Wähle "Containereinstellungen Exportieren" und gebe ein Ziel für die Einstellungen an. Ich empfehle die Einstellungen in den Docker-Ordner auf der DS zu exportieren, dort können Sie anschließend auch liegen bleiben und ggf. wiederverwendet werden.

Sind die Einstellungen gesichert, stoppe den ioBroker-Container und lösche ihn. Wechsle in den Bereich "Abbild" und lösche auch das alte Image "buanet/iobroker:latest". Lade das Image anschließend unter Registrierung neu herunter, wie es auch in der Standardinstallation beschrieben ist. Unter Abbild sollte nun wieder ein Image mit dem Namen "buanet/iobroker:latest" zu finden sein.

Wechsle in den Bereich "Container" und klicke auf "Einstellungen > Importieren". Wähle die zuvor erstellte Exportdatei aus, überprüfe den Namen und klicke "OK". Der Container wird nun aus den zuvor gesicherten Einstellungen auf Basis des neu heruntergeladenen Images erstellt und befindet sich anschließend auf dem neusten Stand. Den neu erstellten Container noch starten und fertig.

Achtung! Wie es ausschaut hat sich innerhalb des Docker Pakets von Synology etwas in Bezug auf den Hostnamen geändert. Wurde bisher der Hostname der DS verwendet, so wird ab sofort im Container der Name des Containers verwendet. Da ioBroker auf den Hostnamen "geschlüsselt" ist, kann es sein dass nach dem Update des Containers die ioBroker Adapter nicht mehr starten. Um dies zu korrigieren reicht es folgende Schritte aus zu führen:
cd /opt/iobroker
pkill io
iobroker host this (bei multihostsystemen: iobroker host [hostname der ds])

Soweit, so gut. Nachdem wir die Daten nun nicht mehr im Container liegen haben, kann ein defekter Container uns nichts mehr anhaben, aber wie sieht es mit Problemen aus, die innerhalb des ioBroker-Verzeichnisses auftreten könnten? Wie sichert man sich gegen fehlgeschlagene Updates des ioBroker-Kerns oder der diversen Adapter ab? Was passiert wenn man aus Versehen seine Visualisierung löscht? Ganz klar, ein (regelmäßiges) Backup des ioBroker-Verzeichnisses muss her. Wie ich das gelöst habe, darüber auf der übernächsten Seite mehr. Auf der nächsten Seite widme ich mich erst einmal dem Umzug einer bestehenden ioBroker-Installation auf die DiskStation mit Docker. Wen dies nicht betrifft, der kann also gerne gleich eins weiter springen...

Achtung! Mit dem aktuellen Stable Release v3.0.0 des Docker Images kann diese Anleitung nicht mehr 1:1 umgesetzt werden! Die Anleitung funktioniert nur bis zur Image-Version 2.0.0 vom 7. Dezember 2018. Aufgrund der Vielzahl der Änderungen am Image gibt es für die aktuelle Image-Version ein komplett neues Tutorial.

Alles was wir bis hierher getan haben, bezog sich ausschließlich auf das Aufsetzen eines neuen frischen ioBrokers. Doch was ist mit bestehenden Installationen z.B. auf einem Raspberry oder einem Cubietruck? Kein Problem, sofern ioBroker vorher bereits auf einem Linuxsystem lief.

Vorüberlegungen

Zuerst einmal sei gesagt: Es gibt mehrere Wege einen ioBroker auf ein neues System umzuziehen. Doch für mich hat sich eigentlich nur ein Weg bewährt, und der führt über den Transfer des kompletten ioBroker-Ordners. (Gilt bei mir übrigens auch für das Backup, siehe nächste Seite)

Was habe ich also vor? Eigentlich ganz simpel. Ich sichere auf meinem Quellsystem (von wo ich umziehen möchte) den kompletten ioBroker-Ordner und bringe ihn auf meine DiskStation. Dort überschreibe ich dann alle Dateien in meinem (neuen) ioBroker-Verzeichnis mit den Daten aus dem Quellsystem. Anschließend, aufgrund der Änderung des Hostnamens, noch ein ioBroker-Kommando drüber laufen lassen und fertig. Klingt einfach, ist es auch. Wenn man den ein oder anderen Fallstrick kennt.

Hinweis: Ich baue an dieser Stelle auf dem auf, was auf den vorherigen Seiten beschrieben ist. Das bedeutet: Ich gehe von einer laufenden ioBroker-Installation aus, bei der das ioBroker-Verzeichnis auf der DS liegt und lediglich in den Container gemountet ist. Weiterhin setze ich voraus, dass ioBroker auf dem Quellsystem bereits unter Linux und, bei Verwendung des Docker-Images mit Download nach dem 05.12.2018, unter Node8 lief.

Schritt 1: Daten vom Quellsystem (alt) holen

In welcher Form man Daten vom Altsystem holt und in den ioBroker-Ordner kopiert ist letztendlich jedem selbst überlassen. Ich habe grundsätzlich gute Erfahrungen damit gemacht das Verzeichnis über den Linux-Befehl "tar" in ein Archiv zu packen, und am Ziel entsprechend wieder zu entpacken. Aus dem Forum weiß ich, dass es auch viele viele andere Wege gibt, die mehr oder weniger gut funktionieren. Vermeiden solltet ihr aber auf jeden Fall eine Zwischenstation auf einem Windows-Rechner. (Also etwa ioBroker-Verzeichnis des Quellsystems als Netzlaufwerk einbinden und Inhalt auf den eigenen PC kopieren) Hat was mit Dateisystemspezifikationen und Zugriffsrechten zu tun.

Gehen wir also mal davon aus wir haben einen Raspberry Pi als Quellsystem mit dem Verzeichnis /opt/iobroker als ioBroker-Verzeichnis. IoBroker selbst ist natürlich gestoppt. Zum (ver-)packen deines ioBroker-Verzeichnisses braucht es nur einen Befehl:

http://[name_oder_ip_der_diskstation]:8081
Achtung! Für den Befehl "tar" gibt es viele mögliche Parameter. Die hier aufgeführten Befehle funktionieren mitunter nur in der von mir beschriebenen Umgebung. Das heißt: ioBroker liegt sowohl auf dem Quell- als auch auf dem Zielsystem im Pfad /opt/iobroker. Es kann also sein dass ihr ggf. andere Parameter verwenden müsst/ könnt. Bitte informiert euch bei Bedarf daher selbstständig über den Befehl "tar". Danke.

Wenn alles geklappt hat, liegt jetzt auf dem Quellsystem im Verzeichnis "/opt" eine Datei mit dem Namen "iobroker_verzeichnis.tar". Diese Datei können wir jetzt problemlos (auch über Betriebssysteme bzw. Dateisysteme hinweg) kopieren.

Schritt 2: Sicherungsdatei in den Container kopieren und entpacken

Nachdem wir jetzt das tar-Archiv vom Quellsystem geholt haben, muss es nur noch in den Container um es dort über die Kommandozeile wieder zu entpacken. Das geht, wie bereits früher in diesem Tutorial erläutert, am besten über ein Transfer-Verzeichnis. Dazu empfiehlt es sich auf der DS neben dem ioBroker-Verzeichnis (/volume1/docker/iobroker_mount) noch ein weiteres Verzeichnis z.B. "iobroker_transfer" zu erstellen und parallel in den Container zu mounten (vgl. dazu die ersten Schritte unter "ioBroker-Verzeichnis auf die DiskStation auslagern" auf Seite 3 des Tutorials).

Anschließend das tar-Archiv in das Transfer-Verzeichnis kopieren und das Terminal des Containers über die Docker-Oberfläche öffnen. Die folgenden Befehle stoppen ioBroker im Container und entpacken das Archiv.

cd /opt/iobroker
pkill io
cd /opt/transfer
tar -xf iobroker_verzeichnis.tar -C /

Schritt 3: ioBroker für den Start auf neuem System vorbereiten und starten

An dieser Stelle ist ioBroker noch nicht lauffähig, da sich mit dem Umzug auf die DS in der Regel auch der Hostname geändert hat. Um ioBroker den neuen Hostname mit zu teilen reicht ein einfacher Befehl, ausgeführt im ioBroker-Verzeichnis über das Terminal des Docker-Containers:

cd /opt/iobroker
iobroker host this

Anschließend einfach den Container neu starten.

Hat alles geklappt? Schön, dann fehlt nur noch ein Thema: Datensicherung. Mehr dazu auf der nächsten Seite. Falls dein Umzug nicht geklappt haben sollte, dann nutze gerne die Kommentare auf der ersten Seite dieses Tutorials oder den angesprochenen Thread im ioBroker-Forum um Unterstützung aus der Community zu erhalten.

Achtung! Mit dem aktuellen Stable Release v3.0.0 des Docker Images kann diese Anleitung nicht mehr 1:1 umgesetzt werden! Die Anleitung funktioniert nur bis zur Image-Version 2.0.0 vom 7. Dezember 2018. Aufgrund der Vielzahl der Änderungen am Image gibt es für die aktuelle Image-Version ein komplett neues Tutorial.

Im Grunde haben wir im letzten Teil ja bereits ein Backup (auf dem Quellsystem) erstellt und anschließend daraus im Docker unsere Installation wieder hergestellt. Trotzdem gibt es in diesem Kapitel das Ganze noch einmal ein bisschen ausführlicher und am Ende vor allem automatisiert.

Auch zu diesem Thema gilt natürlich, dass es wieder viele Möglichkeiten gibt sein Ziel zu erreichen. Aber so habe ich es nun mal gemacht.

# # # # #

Überlegungen zu Backups

Zum Thema Backups gibt es viele Meinungen und ebenso viele Möglichkeiten. Ich persönlich habe stets die Anforderung, dass ein Backup sowohl vollständig automatisiert, als auch bei Bedarf durchführbar sein sollte. Des Weiteren bin ich, dank immer weiter wachsenden Speicherkapazitäten kein Fan von inkrementellen Backups. Für das Backup von ioBroker bedeutet dies: Ich lege Wert auf eine bestimmte Anzahl kompletter Backuparchive, welche bei Bedarf auch das Extrahieren von einzelnen Dateien erlauben.

Meine Backup-Strategie für den ioBroker-Container sieht daher wie folgt aus. Da der Container seit dem Auslagern des ioBroker-Verzeichnisses auf die DS nur noch eine leere Hülle ist, braucht hier normalerweise nichts gesichert werden. Ausnahme bildet dabei die Container-Konfiguration, welche sich aber leicht über die Docker-Oberfläche exportieren lässt. Da sich die Konfiguration des Containers in der Regel nicht ändert, braucht hier natürlich kein regelmäßiges Backup erfolgen. Außerdem wäre es ja jederzeit möglich anhand dieses Tutorials den Container neu zu erstellen.

Bleibt für ein Backup lediglich der ioBroker-Ordner auf der DS. Dieser lässt sich natürlich mit einer Reihe von Backup-Tools der DS jederzeit sichern, da aber ioBroker in der Regel immer läuft (und damit ja auch Dateien geöffnet bzw. gerade im Zugriff sind) habe ich da so meine Bedenken.

Also habe ich kurzerhand ein Script geschrieben welches diese Aufgabe ganz nach meinen Vorstellungen erledigen soll und werde hier kurz beschreiben wie man es korrekt einsetzt.

# # # # #

Vorbereitungen

Als erstes benötigen wir einen Speicherplatz für das Backup sowie einen sicheren Ort für das bereits erwähnte Backup Script. Wie wäre es mit einem "iobroker_backup"-Verzeichnis im Docker-Ordner auf der DS? Analog zu den bereits auf den vorherigen Seiten erstellten Verzeichnissen "mount" und "transfer". Damit wir eine Trennung zwischen Backuparchiven und dem Script haben, fügen wir noch einen Ordner "archiv" hinzu. Etwa so:

Wie im Screenshot zu sehen ist, liegen in meinem Ordner bereits zwei Dateien. Die Datei "iobroker.json" ist der Export der Containereinstellungen, den ich etwas weiter oben bereits angesprochen habe. Die Datei "backupscript.sh" ist das eigentliche Script. Wie es dorthin kommt, dafür gibt es wieder viele Wege. Einer wäre, dass du das Script mit dem folgenden Inhalt lokal erstellst und dann über die FileStation in den ordner lädst. Aber Achtung: Der Texteditor deiner Wahl sollte in der Lage sein, dein Script auch UNIX-kompatibel zu speichern. Mehr dazu verrät dir wie immer Google.

Das Script selbst findest du auf Github unter folgendem Link:

https://github.com/buanet/tutorials/blob/master/iobroker-unter-docker-auf-der-synology-diskstation/backupscript.sh

Hinweis: Die aktuelle Version des Scripts findest du immer hier auf Github. Bitte Beachte auch die Hinweise im Script. Solltest du andere Verzeichnisse nutzen oder deinen ioBroker-Container nicht "iobroker" genannt haben, passe die entsprechenden Werte bitte an bevor du die Datei auf die DS lädst.

# # # # #

Backup planen

Damit das Backup-Script regelmäßig automatisch ausgeführt wird, bedienen wir uns eines weiteren Bordmittels der DiskStation: Dem Aufgabenplaner. Über Ihn ist es möglich, neben vielen DiskStation-Aufgaben auch eigene Scripts automatisiert ausführen zu lassen. Den Aufgabenplaner findest du auf der DS unter "Systemsteuerung > System".

Dort angekommen erstellen wir eine neue geplante Aufgabe über "Erstellen > Geplante Aufgabe > Benutzerdefiniertes Script". Wir vergeben unter "Vorgang" einen aussagekräftigen Namen (z.B. ioBroker Backup) und erstellen einen Zeitplan. Ich persönlich lasse das Backup einmal wöchentlich laufen. Sollte ich zwischenzeitlich größere Änderungen machen wollen, stoße ich das Backup auch mal manuell an.

Im Register "Aufgabeneinstellungen" ist dann noch der Befehl anzugeben, der das Script ausführt. Hier reicht es den Pfad zum Script einzutragen. Etwa so:

http://[name_oder_ip_der_diskstation]:8081
  

Wenn du möchtest, hast du bei den "Aufgabeneinstellungen" auch noch die Möglichkeit dir die Scriptausgabe per E-Mail zusenden zu lassen. Das ist vielleicht ganz hilfreich wenn man das Script gerade neu implementiert hat und die Funktionalität überprüfen möchte.

Das war es dann eigentlich auch schon zum Backup. Wenn alles geklappt hat, dann liegt ab sofort nach jedem erfolgreichen Durchlauf des Backupscripts eine komplette, gepackte Version des ioBroker-Ordners unter dem im Script angegebenen Pfad.

Hinweis: Bitte berücksichtige, dass Backup-Archive die älter als 90 Tage sind standardmäßig beim Aufruf des Scripts automatisch ermittelt und gelöscht werden.

# # # # #

Wiederherstellung eines Backups

Nunja, eigentlich habe ich in diesem Tutorial schon alles zur Wiederherstellungsprozedur gesagt. Schau doch einfach nochmal auf Seite 3 an die Stelle, an der wir den ioBroker von unserem Rasperry Pi auf die DS umgezogen haben. Im Prinzip haben wir dort bereits (manuell) ein Backup angelegt und anschließend auf der DS wieder hergestellt.

Dennoch haben wir im Fall des über das Backup-Script erstellten Archivs eine etwas andere Ausgangslage. Während wir beim Umzug unseres ioBroker-Ordners sowohl das Erstellen, als auch das Entpacken des Archivs vom ioBroker-Host aus erledigt haben, so hat unser Backuparchiv jetzt jedoch der Aufgabenplaner und damit die Kommandozeile der DiskStation erstellt.

Für jemanden, der bereis Zugriff auf die Kommandozeile seiner DS hat, kein Problem. Einfach den Container stoppen, das Archiv wieder in den ioBroker-Ordner ("/volume1/docker/iobroker_mount") entpacken und Container wieder starten. Doch was wenn man sich, z.B. aus Sicherheitsgründen, nicht auf die Kommandozeile der DS verbinden möchte? Ganz einfach. Man nutzt die Kommandozeile des ioBroker-Containers.

Backuparchiv für den Container verfügbar machen

Unser Backuparchiv liegt ja nun in einem Ordner, auf den unser ioBroker-Container keinen Zugriff hat. In meinem Beispiel ist das folgender Pfad auf der DS:

http://[name_oder_ip_der_diskstation]:8081

Um das Archiv für den Container greifbar zu machen, müssen wir es entweder umkopieren oder den Pfad in den Container mounten. Ich entscheide mich für das Umkopieren. Warum haben wir wohl sonst einen Ordner "iobroker_transfer"?

Gesagt getan. Über die File Station navigiere ich in den Ordner in dem das Backup liegt (im Beispiel: docker > iobroker_backup > archiv) und klicke auf das gewünschte Archiv mit der rechten Maustaste. Im erscheinenden Menü wähle ich "Kopieren nach..." aus und kopiere mein Archiv in den ioBroker-Transfer-Ordner (im Beispiel: docker > iobroker_transfer). Weil ich meinen Transfer-Ordner noch im Container gemountet habe, habe ich jetzt über die Kommandozeile des Containers Zugriff auf mein Backuparchiv.

Backuparchiv über die Kommandozeile des Containers entpacken

Jetzt muss nur noch entpackt werden. Falls noch nicht geschehen empfiehlt es sich vorher ioBroker über die Kommandozeile des Containers zu beenden. Da wir das jetzt ja schon ein paar mal gemacht haben, gehe ich darauf mal nicht weiter ein.

Anschließend reichen die folgenden Kommandos um das Backup in den ioBroker Ordner zu entpacken:

cd /opt/iobroker
tar -xzf /opt/transfer/archivname.tar.gz

Anschließend einfach den Container neu starten.

# # # # #

Soooo, das sollte es dann auch erstmal gewesen sein. Mit Hilfe meines, dann doch recht ausführlich gewordenen, Tutorials sollte es nun jedem möglich sein, eine ioBroker Instanz unter Docker auf einer unterstützten Synology Disk Station in Betrieb zu nehmen und zu warten.

Bei Fragen und Anregungen zum Tutorial freue ich mich auf eure Kommentare. Bitte berücksichtigt, dass ich keinen individuellen Support per E-Mail leisten kann. Nutzt also bitte die öffentlichen Kanäle wie Kommentare, Foren oder Social Media. Gerne könnt ihr mich bei Bedarf auch per E-Mail oder Direktnachricht auf einen Post/ Thread/ Kommentar aufmerksam machen. Danke.

MfG, André

Überarbeitung am 10.12.2017

Aufgrund kleinerer Probleme mit dem Docker Image musste ich einige Änderungen vornehmen. Hierdurch hat sich auch das Tutorial geringfügig geändert. So sind zum Beispiel die Befehle "iobroker stop" und "iobroker start" nur noch begrenzt nutzbar. Weiterhin ist es ab sofort möglich verschiedene Versionen des Docker Images herunter zu laden. Entsprechende Hinweise zu den Veränderungen finden sich an der jeweiligen Stelle im Tutorial.

Überarbeitung am 21.08.2018

Aus den bisherigen Diskussionen und Kommentaren habe ich einen kleinen Troubleshooting-Guide erstellt der neben häufig auftretenden Fehlerbildern auch wichtiges Basiswissen zu ioBroker, Docker & Co beinhaltet. Das Troubleshooting habe ich als zusätzliche Seite an den Artikel angehängt und werde es bei Bedarf entsprechend erweitern.

Überarbeitung am 05.12.2018

Mit dem heutigen Update des Docker-Container-Images auf Version 2 wurde die verwendete Node-Version auf node8 angehoben. Auf Neuinstallationen hat dies keine Auswirkungen, wohl aber auf Updates bestehender Installationen von vor dem 05.12.2018. Nach dem Wechsel der Node-Version muss nämlich innerhalb des ioBrokers das Script "reinstall.sh" ausgeführt werden, um die Installierten Adapter mit Node8 verwenden zu können. Mehr Informationen dazu gibt es in der offiziellen ioBroker Dokumentation.

Überarbeitung am 12.12.2018

Nachdem es in der Vergangenheit häufiger Verwirrung um den "tar"-Befehl gab, habe ich heute den entsprechenden Abschnitt einmal überarbeitet und den bösen Parameter "-P" aus dem Spiel genommen. 🙂 Leider hat es mir dabei ein bisschen mein Beitragslayout zerschossen. Wer also seltsame Sonderzeichen an Stellen findet, wo diese nicht hin gehören, darf sich gerne mal bei mir melden. Danke!

Überarbeitung am 18.02.2020

Anpassung des Beitrags an neues Tutorial Layout

About the author: André

André
Familienvater und bekennender Technik-Nerd. Beruflich unterwegs als Fachinformatiker für Systemintegration bei einem deutschen IT-Dienstleister. In der Freizeit begeisterter "Home-Automatisierer" bzw. "Smarthome-Bastler" und (zumindest bei schönem Wetter) gerne mit der Familie in verschiedenen Outdooraktivitäten unterwegs.

253
Hinterlasse einen Kommentar

avatar
10000
81 Kommentare
172 Antworten
15 Abonnenten
 
Meiste Antworten
Beliebtester Kommentar
79 Kommentatoren
EckartAndréStefanStevenDaniel Letzte Kommentatoren
  Abonnieren  
Benachrichtige mich zu:
Eckart
Gast
Eckart

Guten Tag, André seit einem Jahr habe ich als Linux-Laie mit Deiner perfekten Anleitung V2 iobroker auf einer Syno 218+ betrieben. Das hat bisher alles wunderbar funktioniert. Jetzt wollte ich auf V3 mit portainer aktualisieren und stecke in einer Sackgasse: Die Kommunikation mit Homematic geht nur noch in einer Richtung. Was habe ich gemacht? – in der bisherigen Installation js-controller auf 2.x Node.js auf 10.x aktualisiert – Portainer installiert und eingerichtet lt. Anleitung (MACVLAN-Variante). Syno-IP 192.168.10.2 – Docker-Container iobroker erstellt (IP 192.168.10.13) – Bei „volume mapping“ Pfad mein bisheriges Verzeichnis „/volume1/docker/iobroker_mount“ (statt, wie in der Anleitung vorgeschlagen „/volume1/docker/iobroker_data“) writable eingetragen… Mehr lesen »

Stefan
Gast
Stefan

Hi,
der ioBroker läuft bei mir seit einer längeren Zeit, mit der V2 Anleitung….

Jetzt kann ich leider Admin und noch 2 andere Adapter nicht mehr updaten weil ich erst den js controller updaten muss….

Kann ich den irgendwie noch updaten oder muss ich erst den kompletten ioBroker mit der V3 Anleitung komplett neu installieren?

Falls das geht, wie muss ich das genau machen, steh da etwas auf dem Schlauch?

Steven
Gast
Steven

Hi Nico, André und viele andere die ihre USB (Ziggbee-Sticks) direkt an die Synology klemmen wollen.
Ihr müsste den USB dev Berechtigungen geben.

Ich habe es vor 9 Monaten eingerichtet und es läuft gut, eine Ausnahme gibt es bei Updates z.B. werden die Rechte wieder weggenommen also neu vergeben.
Oder über den Aufgabenplaner Automatisieren.

1. Container ausmachen
2. über putty auf die Synology und dann „sudo chmod -R 0777 /dev/ttyACM0“ freigeben
3. Container an
4. im ioBroker Adapter starten

fertig.

mfg Steven .ps danke André für deine Tutorials

Daniel
Gast
Daniel

Hallo, ich habe auf die aktuelle Version mit Portainer aktualisiert. Da sich ja node auf Version 10 geändert hab, startet jetzt z.B. der sql Adapter nicht mehr. Ich soll die Adapter neu bauen mit npm rebuild. Allerdings läuft npm nicht:

root@iobroker:/opt/iobroker# npm rebuild
sudo: Hostname iobroker kann nicht aufgelöst werden
sudo: Die Audit-Nachricht kann nicht gesendet werden: Unbekannter Fehler -1
sudo: pam_open_session: Systemfehler
sudo: Regelwerks-Plugin konnte Sitzung nicht initialisieren

Kannst du mir weiterhelfen?

Christof
Gast
Christof

Hi, ich nutze schon seit ca. einem Jahr erfolgreich Deinen Container – echt klasse, danke für Deine Arbeit!!! Nun habe ich gelesen, dass Dein Container jetzt über MACVLAN ans Netzwerk angebunden wird. Ich sehe den Vorteil wie z.B. eine eigene IP Adresse. Ein Nachteil ist aber, dass man über MACVLAN den Host (also die DS) nicht mehr erreichen kann. Auf der DS läuft bei mir ein OpenVpn docker container als VPN server. Bekomme ich dann nicht das Problem, dass ich über VPN nicht mehr auf meine ioBroker Instanz zugreifen kann? Kannst Du noch kurz sagen, welche Probleme Du durch den… Mehr lesen »

Marcel
Gast
Marcel

Hallo, erstmal tolle Anleitung. Habs auf meiner Ds918+ installiert. Der Iobroker läuft auch, aber ich sehe keine anderen Adapter. Was mache ich falsch ? ps. hat das mit dem macvlan Netzwerkeinrichtung gemacht. mfg

Nico
Gast
Nico

Moin,

leider habe ich mein iobroker kaputt gemacht. Ich habe Biobroker seid gut 3 Monaten ohne Probleme laufen gehabt. Jetzt wollte ich einen CC2531 an eine DS216+ anschließen. Da ich den Adapter nicht auf grün bekommen habe ich vieles versucht. Jetzt ist es so das ich die Weboberflächer mit ip:8081 nicht mehr erreichen kann. In Docker steht das Biobroker läuft. Habe iobroker schon komplett gelöscht und neu installiert. Abe ich komme nicht mehr auf die weboberfläche. kannst du mir dabei helfen?

Wolfgang
Gast
Wolfgang

Guten Morgen André, Super für Anfänger erklärtes Tutorial, Respekt 🙂 Ich hab es Dank deiner (neuen) Anleitung geschafft ioBroker auf meiner 918+ im Docker laufern zulassen, und kann nun meinen IntelNuc ablösen. Jetzt bin ich gerade dabei das Backup einzurichten, auch das hat geklappt, jedoch erhalte ich beim Ausführen des Scripts ein paar Fehlermeldungen bzgl. fehlender Rechte, ist das so in Ordnung? (Ich kopier die Ausgabe einfach mal rein) xxx@DiskStation918:~$ /volume1/docker/iobroker_backup/backupscript.sh ##################################################### ############## Backupscript gestartet. ############## ##################################################### Der ioBroker-Container (iobroker) in Docker wird gestoppt… Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.29/containers/iobroker/stop:… Mehr lesen »

Enrico
Gast
Enrico

Hallo Andre, ich bekomme VIS bzw. web.0 auf keinem browser zum laufen. Gibt´s da irgendeinen Trick?
Bin auch ehrlich gesagt, ein Anfängernerd…

Raz3r
Gast
Raz3r

Hi, ich nutze Deine tolle Arbeit unter OMV und bin sehr zufrieden damit. Leider bringe ich partout den TRADFRI-Adapter nicht zum Laufen. Hast Du eine Idee, wo das Problem liegen könnte? Zeit host.Raz3rNAS 2019-05-03 20:52:50.456 info Restart adapter system.adapter.tradfri.0 because enabled host.Raz3rNAS 2019-05-03 20:52:50.456 error instance system.adapter.tradfri.0 terminated with code 1 () host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at Function.Module._load (module.js:498:3) host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at tryModuleLoad (module.js:506:12) host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at Module.load (module.js:566:32) host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at Object.Module._extensions..js (module.js:664:10) host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at… Mehr lesen »

smartmood
Gast
smartmood

Hallo zusammen, ich bin ziemlich neu in der ioBroker Welt. Habe bei mir ioBroker nach dieser Standartinstallationsanleitung auf meiner Synology DS 415+ (aktuellste DSM) erfolgreich installiert und auch die ersten Adapter zum Laufen gebracht. Probleme habe ich mit dem Logitech Harmony Adapter, dieser wird zwar grün angezeigt – findet jedoch den Hub nicht. Im Io-Broker Forum habe bin ich mit ein paar Leuten einige Punkte wie Firewall usw. durchgegangen, konnten jedoch keine Ursache bzw. Lösung finden. Zum testen habe ich nun ioBroker auf einem Raspbbery Pi installiert – dort läuft der Harmony Adapter einwandfrei und der Hub wurde auch sofort… Mehr lesen »

Matthias
Gast
Matthias

Hallo zusammen,

leider wird mein iobroker-Container unter Docker nicht mehr angezeigt. iobroker läuft logischer Weise auch nicht.

Habe dann versucht einen neuen Container „iobroker2“ anzulegen. Zunächst hat Docker beim Erstellen des neuen Containers gemeckert, weil man noch einen „Startbefehl“ eingeben muss. Habe dann dort einfach mal „Start“ eingegeben. Der Container „iobroker2“ wurde angelegt, aber ebenfalls nicht unter Container angezeigt!
Kann es sein, dass es ein Problem mit dem Image gibt?
Oder gab es ein Update das Probleme bereitet?

Falls nein…kann mir jemand sagen, wie ich mir die Container „iobroker“ und „iobroker2“ wieder anzeigen lassen und starten bzw. löschen kann?!

Danke für eure Hilfe!

Oliver
Gast
Oliver

Auch mein SQL-Adapter läuft nicht. kann jemend helfen und mir sagen was zu tun ist? host.ioBroker 2019-04-11 11:17:48.912 error instance system.adapter.sql.0 terminated with code 1 () host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at Module.load (module.js:566:32) host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at Object.Module._extensions..js (module.js:664:10) host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at Module._compile (module.js:653:30) host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at Object. (/opt/iobroker/node_modules/mmmagic/lib/index.js:1:75) host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at require (internal/module.js:11:18) host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at Module.require (module.js:597:17) host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at Function.Module._load (module.js:498:3) host.ioBroker 2019-04-11 11:17:48.912 error… Mehr lesen »

Oliver
Gast
Oliver

Wo werden die Befehle ausgeführt? Ich habe keine Ahnung wo ich diese eingeben soll.

cd /opt/iobroker
pkill io
iobroker host this (bei multihostsystemen: iobroker host [hostname der ds])
node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &

Marc
Gast
Marc

Hallo Andre,
irgendwie ist es nicht möglich den SQL-Adapter zu starten, ist das Problem bekannt? Mein LOG zeigt folgendes an:
host.iobroker 2019-04-02 19:50:08.987 error instance system.adapter.sql.0 terminated with code 1 ()
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Module.load (module.js:566:32)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Object.Module._extensions..js (module.js:664:10)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Module._compile (module.js:653:30)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Object. (/opt/iobroker/node_modules/mmmagic/lib/index.js:1:75)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at require (internal/module.js:11:18)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Module.require (module.js:597:17)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Function.Module._load (module.js:498:3)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at tryModuleLoad (module.js:506:12)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Module.load (module.js:566:32)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Object.Module._extensions..node (module.js:682:18)
Caught 2019-04-02 19:50:08.987 error by controller[0]: Error: /opt/iobroker/node_modules/mmmagic/build/Release/magic.node: wrong ELF class: ELFCLASS32
Caught 2019-04-02 19:50:08.987 error by controller[0]: ^
Caught 2019-04-02 19:50:08.987 error by controller[0]: return process.dlopen(module, path._makeLong(filename));
Caught 2019-04-02 19:50:08.986 error by controller[0]: module.js:682

Benny
Gast
Benny

Hallo Andre,
sehr gutes Projekt. Leider habe ich bei der Konfiguration von mariaDB ein Problem. Leider weiß ich nicht warum er über den falschen Pfad schimpft und wie ich es lösen kann. Hast du eine Idee?

root@buanet-iobroker1:~# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‚/var/run
/mysqld/mysqld.sock‘ (2 „No such file or directory“)

Christian Wimmer
Gast
Christian Wimmer

Hallo Andrè!
Ich finde nirgends das Verzeichnis /root/.npm/_logs/
Ist dies im Docker wo versteckt?
Danke

Glenn
Gast
Glenn

Hallo ! Leider habe ich jetzt schon zum zweiten mal das ich erst den IOBroker super zum laufen bekommen habe. Ich installiere Adapter und nach und nach richte ich das System ein. Er stelle mit dem Editor eine Test seite die dann auch gut läuft. Dann pötzlich komme ich nicht mehr den Admin zum laufen. Meistens wenn ich mit dem Editor rumspiele und der dann nicht mehr reagiert. Das System wird furchbar langsam. Ich starte im Docker den Container neu und danach ist der Admin nicht mehr zu ereichen. WEB VIS und EDITOR sind noch erreichbar. Nur der admin über… Mehr lesen »

Sascha Wallenkewitz
Gast
Sascha Wallenkewitz

Hallo den Iobroker habe ich schon mal zum laufen gebracht. Jetzt möchte ich den Conbee Stick von Dresden Elektronik auch in einem Container installieren, komme da aber nicht wirklich weiter. Hat vielleicht jemand eine Idee wie ich das bewerkstelligen kann?

Christian Wimmer
Gast
Christian Wimmer

Hallo

Ich wollte gerade über das Terminal einen Adapter Upload machen.
Bekomm aber den Fehler dass der Hostname ioBroker nicht aufgelöst werden kann.

Kannst du mir bitte weiterhelfen?

PS: installiert hab ich ioBroker genau nach deimen tollen Tutorial.

PPS:
root@ioBroker:/opt/iobroker# iobroker upload javascript
sudo: Hostname ioBroker kann nicht aufgelöst werden
module.js:478
throw err;
^
Error: Cannot find module ‚/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js‘
at Function.Module._resolveFilename (module.js:476:15)
at Function.Module._load (module.js:424:25)
at Module.runMain (module.js:611:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:160:9)
at bootstrap_node.js:507:3

Frank
Gast
Frank

Stromverbrauch – Hat jemand Erfahrung ? Ich habe eine DS218+ (+ Extra Ram) und Messe bei Belastung > 18 Watt was im normalen Bereich liegt. MIt dem iobroker Docker (Historian loggt mit) – habe ich einen kontinuierlichen Verbrauch von 17 Watt, die Ds218+ geht nicht mehr in den Ruhestand – wenn ich den Iobroker Docker rausnehme, dann komme ich auf 9 Watt (etwas hoch, aber ok). Das gleiche passiert übrigens wenn ich von meinem alten System mit dem Synolgy Adapter die Werte abfrage. Hat jemand das schon mal beobachtet ?

Frank
Gast
Frank

Hi, vielen Dank für die tolle Anleitung. Ich bin von einem Cubietruck auf die DS218+ umgezogen (10 GB Ram). Im Prinzip bin ich der Anleitung gefolgt. Ich habe das Verzeichnis aus dem Docker ausgelagert, komplett gelöscht und mit Filezilla (SFTP) das gesamt Verzeichnis /opt/iobroker von meinem Cubietruck hochgeladen (beim einfachen überschreiben hatte ich Probleme). Dann habe ich die Fehlermeldung bekommen, dass keine Verbindung zum Redis Server möglich ist – ich habe das zunächst im Iobroker Docker mit apt-get install redis-server versucht, aber die Installation hat kein Erfolg gebracht. In einem neuen Docker habe ich Redis installiert – gestartet und es… Mehr lesen »

Fugazzy
Gast
Fugazzy

Hallo, vielen Dank für die Pflege dieses tollen Docker-Containers.
Ich habe gerade gelesen, dass nur noch bridged Netzwerke unterstützt werden, aber extra für yahm auch avari eingebaut wird.
So wie ich es bisher verstanden habe, muss man für HomeKit/Homebridge zwingend das host-Netz verwenden?
Ich nutze in meinem iobroker den HAM-Adapter, um meine Homebridge mit einzubinden.
Funktioniert das nun noch?

Steven
Gast
Steven

Hi André, ich bin deiner Anleitung auch wunderbar gefolgt und folgen können:) Erstmal zum Problem, ich komme nicht mehr auf mein iobroker.admin rauf. Er arbeitet im Hintergrund noch nur die Web-Oberfläche lässt sich nicht mehr auf rufen. Bin bei Google auch schon alle Möglichkeiten die zu finden sind durch gegangen. —————————————————- z.B. cd /opt/iobroker npm i https://github.com/ioBroker/ioBroker.admin cd node_modules/iobroker.admin npm i gulp gulp node_modules/.bin/gulp und hier wollte er „npm i gulp“ nicht ausführen (Kommando nicht gefunden) dann habe ich npm i https://github.com/ioBroker/ioBroker.admin npm i https://github.com/ioBroker/ioBroker.admin/tarball/master ls -la node_modules/iobroker.admin cd node_modules/iobroker.admin npm i gulp node_modules/.bin/gulp (ging nicht richtig) npm install node_modules/.bin/gulp… Mehr lesen »

Ingo
Gast
Ingo

Hallo André, vielen Dank für die Anleitung. 1. Ich habe mit scripts keine Erfahrung. 2. Ich habe den Docker manuell auf meiner 416play installiert. 3. Die Installation bis zur Übertragung auf die DS hat funktioniert. Ich kann den iobroker über IP:8081 öffnen. 4. Aus- und wieder Einschalten zeigt eine Änderung des Logs in der file station der DS. Ich denke also das passt so weit? 5. Das backup funktioniert leider nicht. Was mache ich da falsch. 6. Ich habe das script in note++ kopiert und als backupscript.sh gespeichert. 7. Dann über den Aufgabenplaner einen task erstellt und diesen zum Test… Mehr lesen »