[Archiv] ioBroker unter Docker auf der Synology DiskStation (bis v2)
Achtung
Mit dem 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.
Kurze Einleitung
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. 🙂
Standardinstallation von ioBroker
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.
Voraussetzungen
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_od
er_ip_der_diskstation]:8081
Der Container ist damit eingerichtet. Wie oben aber bereits erläutert empfehle ich auf jeden Fall die „Erweiterte Konfiguration“.
Erweiterte Konfiguration
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:
mkdir /opt/transfer
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…
Installation von anderem System umziehen
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:
tar -cf /opt/iobroker_verzeichnis.tar /opt/iobroker
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.
Datensicherung und Wiederherstellung
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:
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:
/volume1/docker/iobroker_backup/backupscript.sh
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:
/volume1/docker/iobroker_backup/archiv
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é
Änderungshistorie
2017-12-10
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.
2018-08-21
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.
2018-12-05
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.
2018-12-12
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!
2020-02-08
Anpassung des Beitrags an neues Tutorial Layout
2020-09-15
Umzug auf smarthome.buanet.de sowie Archivierung und Deaktivierung der Kommentarfunktion
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
– iobroker gestartet
– Homematic-Adaptern hm-rpc.# sarteten nicht. Die Adapter-Adresse 192.168.10.13 eingetragen; sie laufen jetzt.
– An der Homematic-Installation habe ich nichts verändert.
Was ist das Problem?
Das Homematic-Log liefert alle paar Sekunden Fehlermeldungen:
„XmlPpc transport error (firtst try, retrying)“
„XmlRpcClient error calling event({[methodName::“event“,params:{„hm-rpc1″,“JEQ#######:19,“WORKING“,false}]}) on http://192.168.10.2:2000/RPC2:“,
„XmlPpc transport error“
„sendbinrpc(192.168,10.2:8701) – write() Connection refused“
Offenbar kann zwar iobroker Homematic, nicht aber Hommematic iobroker mehr erreichen. Muss ich in der HM-Firewall etwas ändern oder in porttainer bei den access-Einstellungen? Muss HM die IP 192.168.10.13 ansprechen statt 192.168.10.2 – und wenn ja, wo stelle ich das ein?
Mit meinen Ausprobierereien komme ich jedenfalls nicht weiter und freue mich über Hilfe.
Viele Grüße,
Eckart
Hallo Eckart,
schau mal in die Einstellungen des hm-rpc Adapters. Auf welche ip-Adresse lauscht der denn (Adapter-Adresse)? Wenn du auf MACVLAN migriert bist, dann musst du in einigen Adaptern die Einstellungen anpassen…
MfG,
André
Hallo André,
das scheint es gewesen zu sein. Zwar war die Adapter IP richtig eingetragen, aber die „Adapter Callback Adresse“ stand noch auf der alten SynoNAS IP 192.168.10.2. Danke für den Hinweis.
Noch zwei Fragen zur Version.
Ich habe ja das Verzeichnis mit meiner alten V2 Installation jetzt über portainer verwendet. Bei „container details“ wird da auf folgendes image verwiesen: “ buanet/iobroker:latest@sha256:c9dc89fffa3bf2024b1af9eb07ca7d8007ee4c9d0c3fdf3ba1302ada78e86ad9″. Ist das deine V3? Oder noch die alte Version?
Und: Muss ich die gelegentlich mit „Recreate“ aktualisieren oder passiert das automatisch?
Viele Grüße, Eckart
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?
Hallo Stefan,
der js-controller muss manuell aktualiesiert werden. Das passiert, wie auf jedem anderen Linux System auch, über die Kommandozeile.
Nach zu lesen in der offiziellen ioBroker-Dokumentation oder auch hier: https://buanet.de/knowledge-base/steuerung-iob-ueber-kommandozeile/
MfG,
André
es hat jetzt klick gemacht bei mir…..dachte erst im iobroker ist das einzugeben….
man muss es aber ja im Terminal des Dockers eingeben und schon geht es 🙂
Wenn der iobroker an sich aktualisiert werden soll (V3), muss es wenn komplett neu aufgesetzt werden (mittels der neuen Anleitung) oder reicht es grundsätzlich die Installation mit der „alten“ Anleitung zu aktualisieren?
Weil Pakete usw. sind ja auch bei der „alten“ Version weiterhin aktuell gehalten und update fähig….
Hallo Stefan,
ich hoffe ich verstehe die Frage richtig…
Natürlich kannst du die Pakete innerhalb des alten Containers auch manuell aktuell halten oder auch Node upgraden. Allerdings bekommst du dann keine Updates für z.B. das Startup-Script und damit die Unterstützung der neuen Umgebungsvariablen. Daher ist meine Empfehlung generell immer den Container, bzw. das Image updaten. Über den „Recreate-Button“ im Portainer geht das sogar mit zwei Klicks…
MfG,
André
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
Hallo Steven,
danke für den Hinweis, aber so würde ich es nicht machen. Habe zu diesem Zweck bereits eine neue Umgebungsvariable „USBDEVICES“ (derzeit nur in der aktuellen Beta-Version verfügbar) eingebaut. Setzt man diese werden die entsprechenden Berechtigungen innerhalb des Containers gesetzt.
Deine Variante mag zwar auch funktionieren, allerdings würde ich die Rechte des Devices auf der Synology nicht verändern wollen. Ziel ist es ja, den Container unabhängig vom Host zu machen…
MfG,
André
Hi André,
wegen den Risiken und neben Wirkungen bin ich mir bewusst. Danke das du es nochmal aufgedröselt hast.
Kann man deine Beta-Version Testen und wenn ja wo?
Info: Ich habe deine V3 seit 9 Monate Installiert, bin anscheint in die falsche Diskussion gegangen.
Mfg
Steven
Hallo Steven,
die Beta-Version bekommst du wie die Latest-Version auch über den Docker-Hub. Beim Laden des Images einfach statt „buanet/iobroker:latest“ den Tag „buanet/iobroker:beta“ verwenden.
Die aktuelle Beta ist allerdings eine V4. Wenn du Upgradest solltest du daran denken, dass beim Wechsel von V3 auf V4 auch die Node-Version im Container von v8 auf v10 wechselt. Mehr Infos dazu in der readme.md auf Github.
MfG,
André
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?
Vielleicht noch ein paar Infos. Ich bin jetzt zurück auf V3.1.0, da hier zumindest alle Adapter wieder starten. Und: Das hostname Problem ist auch weg. Evtl. ein Fehler in V4?
Hallo Daniel,
einen Fehler in der V4 schließe ich aus. Ich gehe mal davon aus, dass du das Netzwerk im Host-Modus benutzt. Da gibt es einen bekannten Bug der daraus resultiert, dass der DSM mit einer veralteten Kernel-Version läuft. Dadurch ist es nicht möglich sudo innerhalb des Containers zu verwenden. Für den „normalen“ Gebrauch habe ich einen Workaround geschaffen bei dem zumindest für den ioBroker sudo mit gosu ersetzt wird. Das klappt soweit auch.
Du könntest versuchen einen temporären Container im Bridge-Mode zu erstellen um deine ioBroker-Installation mit „npm rebuild“ fit für Node 10 zu machen und anschließend den Ordner wieder in einen Container im Host-Mode zu betreiben. Das wäre das Einzige was mir dazu jetzt einfällt… Frag gerne nochmal im Forum-Threat. Da lesen einige User mit, die auch schon vor diesem Problem standen. Vielleicht hat da noch jemand eine andere Idee.
MfG,
André
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 Umstieg auf MACVLAN umgehst – wie gesagt, bei mir läuft es auch ohne MACVLAN echt super.
Danke
Christof
Hallo Christof,
dazu wurde im Forum und auch in den Kommentaren des neuen Tutorials schon eine Menge diskutiert. MACVLAN war eine notwendige Zwischenlösung da es Probleme mit dem Host-Modus gab. In der aktuellen Image-Version sollte aber wieder beides möglich sein. Nichts desto trotz ist MACVLAN für mich eine saubere Lösung. Der ioBroker nutzt schon eine ganze Menge Ports, da ist die Wahrscheinlichkeit dass sich DS und ioBroker im Host Modus in die Quere kommen relativ hoch…
Falls du dir Sorgen machst, dass du keine Kommunikation mehr zwischen Host und ioBroker haben könntest ist das unbegründet. Du kannst deinem ioBroker Container neben dem MACVLAN noch ein zweites, interne Bridge-Netzwerk zuweisen. Über dieses Netzwerk ist dann auch die Kommunikation zwischen DS uns ioBroker-Container möglich (natürlich unter der Verwendung der IP-Adressen im Bridge Netzwerk). Einfach mal ausprobieren. In meinem Test hat das einwandfrei funktioniert…
MfG,
André
Danke für die prompte Antwort – werde mich daran versuchen. Das schöne an Docker ist ja, dass man es „mal eben“ probieren kann.
Bis bald
Christof
Hallo André, erst einmal vielen vielen Dank für deine super Arbeit und Beschreibungen. Das hat mir schon sehr viel geholfen!
Bzgl. deinem Kommentar hier, ich nutze MACVLAN und würde es gerne wie du konfigurieren, also mit zusätzlichem Bridge-Netzwerk zur Kommunikation mit der Maria DB, die bei mir auf der Synology direkt läuft. Ich finde aber nicht bei dir im Tutorial, wie ich dem ioBroker-Container nun das zweite Bridge-Netzwerk zuordne. Hast du einen Tipp für mich?
Hallo David,
in den Details des laufenden Containers kannst du im Portainer ganz unten unter „Connected networks“ > „Join a network“ auch ein zusätzliches Netzwerk hinzufügen.
MfG,
André
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
Hallo Marcel,
was bedeutet „Ich sehe keine anderen Adapter“? Kommst du auf die Admin Oberfläche? Falls du den Admin erreichst und nur die Adapter-Liste leer ist, such mal nach deinem Problem im Forum.
Viel Erfolg!
MfG,
André
Ja genau.. Admin Oberfläche erreiche ich aber die Adapterliste ist halt leer. Außer dem Admin Adapter und zwei anderen… mfg
Das hat vermutlich nichts mit dem Docker-Container zu tun. Schau mal im Forum. Entweder du guckst an der falschen Stelle 😉 oder irgendwas stimmt mit dem Abruf der Adapterinformationen/ -versionen aus dem Internet nicht.
MfG,
André
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?
Hallo Nico,
sorry, für diese Art von Support bist du sicher im ioBroker-Forum besser aufgehoben. Bitte beschreibe dort am Besten einmal ausführlich was du gemacht hast und poste das Log deines Containers. Auch eine Suche im Forum oder in der offiziellen Doku bringt meist gute Tips. Zum Beispiel wie man bei ioBroker feststellen kann ob der Admin-Adapter überhaupt läuft.
Viel Erfolg!
MfG,
André
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: dial unix /var/run/docker.sock: connect: permission denied
Container in Docker gestoppt.
######################################################
Der Ordner /volume1/docker/iobroker_data wird gesichert…
Sicherung des Ordners erstellt.
######################################################
Entfernen alter Backups aus dem Verzeichnis /volume1/docker/iobroker_backup/komplett…
Alte Backups wurden entfernt.
######################################################
Der ioBroker-Container (iobroker) in Docker wird gestartet…
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/start: dial unix /var/run/docker.sock: connect: permission denied
Error: failed to start containers: iobroker
Container in Docker gestartet.
################### Script Ende ######################
Wäre super wenn du einen Tipp für mich hast hättest 🙂
Hallo Wolfgang,
wer führt denn dein Backup-Script aus? Scheint als hätte der entsprechende Benutzer keine Berechtigung auf den Docker-Dienst zu zu greifen. Lass das Script mal als root laufen, das sollte eigentlich klappen…
MfG,
André
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…
Hallo Enrico,
nein, einen Trick gibt es eigentlich nicht. Welches Netzwerk hast du denn gewählt? Wenn du ein bridged-Netz benutzt, musst du die Ports noch öffnen. Laufen die Adapter im ioBroker denn schon?
MfG,
André
Ja, die Adapter laufen alle. Wie und wo kann ich den Port 8082 öffnen. Docker weist nur 8081 aus.
VG
Benutzt du das Bridged oder das Host Netzwerk? Beim Host-Netzwerk werden die Ports automatisch geöffnet. Bei Bridge musst du es beim Container Erstellen unter „Port-Einstellungen“ konfigurieren.
Hast du auch mal in das Tutorial v3 geschaut? Dieses Tutorial funktioniert nur mit den Docker Images bis v2.0.0…
ohh, dann bin ich hier wohl im falschen Forum. Habe die V3mit portainer unter Docker installiert.
habe jetzt den port 8082 freigegeben und erhalte folgende meldung:
main/vis-views.json no exists.
jetzt läuft der vis und web aber auf einmal…
Also alles gut bei dir jetzt? Freut mich. Was die Fehlermeldung angeht, solltest du was im ioBroker-Forum finden. Das ist dann kein Docker-spezifisches Thema mehr.
MfG,
André
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 Module._compile (module.js:653:30)
host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at Object. (/opt/iobroker/node_modules/node-dtls-client/build/lib/AEADCrypto.js:54:47)
host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at require (internal/module.js:11:18)
host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at Module.require (module.js:597:17)
host.Raz3rNAS 2019-05-03 20:52:50.455 error Caught by controller[0]: at Function.Module._load (module.js:475:25)
host.Raz3rNAS 2019-05-03 20:52:50.455 error Caught by controller[0]: at Function.Module._resolveFilename (module.js:548:15)
host.Raz3rNAS 2019-05-03 20:52:50.455 error Caught by controller[0]: Error: Cannot find module ’node-aead-crypto‘
host.Raz3rNAS 2019-05-03 20:52:50.455 error Caught by controller[0]: ^
host.Raz3rNAS 2019-05-03 20:52:50.455 error Caught by controller[0]: throw err;
host.Raz3rNAS 2019-05-03 20:52:50.455 error Caught by controller[0]: module.js:550
host.Raz3rNAS 2019-05-03 20:52:50.362 info instance system.adapter.tradfri.0 started with pid 517
host.Raz3rNAS 2019-05-03 20:51:50.253 info Restart adapter system.adapter.tradfri.0 because enabled
Grüße und Danke
Habe node aktualisiert, jetzt läuft es.
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 gefunden. Es muss also irgendwie mit der Synology bzw. dem Docker oder etwas in dieser Richtung zusammen hängen. Hat jemand einen Lösungsvorschlag?
Hallo,
wie hast du denn das Netzwerk des ioBroker Containers konfiguriert? Host, Bridge oder MacVLAN? Vermute dass ist ein Broadcast/ multicast Problem. Kann man in dem Adapter den Hub nicht manuell einrichten? So per IP-Adresse und Port z.B.?
MfG,
André
Hallo Andre,
ich habe keine besondere Konfiguration vorgenommen, ich habe es 1 zu 1 nach dieser Anleitung gemacht. Wenn das geht sag mir auf welchen Reiter ich in der Synology nach bestimmten Einstellungen gucken soll, dann können wir diese abgleichen?
Oder wenn wir von diesem Multicast Problem ausgehen, könnte ich den Container löschen und nochmal neu konfigurieren – mit bestimmten Einstellungen?
Ja man kann im Harmony Adapter die IP Adresse des Hubs eingeben, hatte bei mir aber leider nichts gebracht.
LG
Hallo,
ich kann da leider nicht viel unterstützen. Wenn du es wie in der Anleitung gemacht hast, dann sollte dein Container „das selbe Netzwerk wie host“ verwenden. Da ich keinen Harmony Hub habe kann ich nicht ausprobieren ob es bei mir geht.
Hast du mal im ioBroker-Forum um Rat gefragt. Wenn ich da mal die Suche bemühe finde ich das ein oder andere Thema was sich damit beschäftigt. Vielleicht kannst du dich da dran hängen und jemand der die Erfahrung schon mal gemacht hat meldet sich. Sorry.
MfG,
André
@André
Danke dir, ich meine den Punkt selbes Netzwerk wie Host angewählt zu haben – Möglicherweise ist dort dennoch etwas schief gelaufen… ich werde bei Gelegenheit mal den Container vom Docker löschen und neu einrichten… Ja ich bin bereits mit einigen Leuten im ioBroker Forum einige Punkte durchgegangen – hatte leider nix zu einem positiven Ergebnis geführt.
LG
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!
Hallo Matthias,
ich würde dir gerne helfen, aber deine Angaben reichen leider nicht aus um sich ein Bild zu machen.
Welches Images nutzt du denn? Beta oder Latest? Falls Latest, da gab es schon länger kein Update mehr. Würde mich auch wundern wenn das Image die Ursache für deine Probleme ist. Scheint mir eher ein Problem mit Docker selbst. Wo läuft denn Docker? Auf eine Synology Disk Station? Wenn ja, welche Versionen (DSM, Docker)? Nutzt du vielleicht auch Portainer?
Alles in Allem sehr seltsam deine Beschreibungen. Vielleicht kannst du noch etwas genauer werden.
MfG,
André
Hallo Andre,
vielen Dank das du mir helfen möchtest!
Hier die näheren Infos:
– Das Image ist „latest“
– Docker läuft auf einer Synology DS 918+
– Ich verwende DSM 6.2.1-23824 Update 6 (habe automatische Updates aktiviert)
– Docker hat die Version 17.05.0-0400
– Portier wird nicht verwendet
Iobroker lief am Vortag noch einwandfrei, was mich wundert ist, dass der Container in der Dockeroberfläche gar nicht angezeigt wird. Versuche ich dann mit Hilfe des Images einen neuen Container „iobroker“ zu erstellen bekomme ich die Fehlermeldung, dass dieser schon existiere!
Hast du eine Idee, wie man evtl. über die Konsole an die Container kommt? (Ich bin linuxmäßig leider nur Laie)
Gruß
Matthias
Hallo Matthias,
das latest-Image wurde seit 21. Januar nicht verändert. Daran kann es also nicht liegen.
Docker- und DSM-Version sind bei mir identisch.
Hast du die DS schon mal neu gestartet, oder zumindest das Docker-Paket gestoppt und neu gestartet? Vielleicht hängt es einfach nur irgendwo?
Ansonsten kannst du Docker auch über die Kommandozeile der DS steuern und dir die Container anzeigen lassen. Hier kannst du zum Beispiel was dazu finden. Mit „docker container ls -a“ z.B. kannst du dir über die Kommandozeile alle erstellten container anzeigen lassen.
Ist schon seltsam dass nichts angezeigt wird. Hast du auch mal einen anderen Browser für die DSM-Oberfläche ausprobiert? Oder zumindest den „Incognito-Modus“ verwendet? Vielleicht ist auch der Browser Cache schuld.
Vielleicht schaust du dir auch mal mein Tutorial zu Portainer an. Ist auch eine Webobefläche zur Bedienung von Docker. Vielleicht werden die Container dort angezeigt?
MfG,
André
Hallo Andre,
ich hatte die DS mehrfach neu gestartet.
Das Docker-Paket ließ sich nicht stoppen! Das hat mich stutzig gemacht. Habe die DS dann nochmals neu gestartet und dabei festgestellt, dass die DS einfach an bleibt und gar nicht neu startete. Auch das Herunterfahren der DS hat nicht funktioniert.
Nach einem Kaltstart klappt nun alles wieder (einen Kaltstart mache ich gar nicht gerne, aber zum Glück ist es gut gegangen)
Danke für deine Hilfe!
Gruß
Matthias
Hallo Andre,
ich dachte eigentlich das Problem sei mit dem harten Neustart erledigt.
Jetzt habe ich das gleiche Problem erneut! Scheinbar funktioniert Docker nach dem automatischen Backup nicht mehr. Das Backup (immer Montagmorgen um 04:00 Uhr) schlägt fehl, anschließend hängt sich Docker auf…
Könntest du mir bitte nochmal helfen?
Das Backup empfinde ich als sehr sinnvolle Sache und möchte dieses gerne beibehalten.
Gruß
Matthias
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 Caught by controller[0]: at tryModuleLoad (module.js:506:12)
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..node (module.js:682:18)
host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: the module (for instance, using
npm rebuild
ornpm install
).host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
host.ioBroker 2019-04-11 11:17:48.911 error Caught by controller[0]: NODE_MODULE_VERSION 48. This version of Node.js requires
host.ioBroker 2019-04-11 11:17:48.911 error Caught by controller[0]: was compiled against a different Node.js version using
host.ioBroker 2019-04-11 11:17:48.911 error Caught by controller[0]: Error: The module ‚/opt/iobroker/node_modules/mmmagic/build/Release/magic.node‘
host.ioBroker 2019-04-11 11:17:48.911 error Caught by controller[0]: ^
host.ioBroker 2019-04-11 11:17:48.911 error Caught by controller[0]: return process.dlopen(module, path._makeLong(filename));
host.ioBroker 2019-04-11 11:17:48.911 error Caught by controller[0]: module.js:682
Nochmal hallo Oliver,
ich bin gerade etwas enttäuscht. Schau mal den Kommentar von Marc, direkt unter deinem! Dein Fehler mit dem SQL-Adapter hat sehr wahrscheinlich nichts mit Docker zu tun. Wie du den Meldungen entnehmen kannst: „Please try re-compiling or re-installing“, „This version of Node.js requires“, „was compiled against a different Node.js version using“ (auch wenn da was zu fehlen scheint) liegt das Problem wohl an der Node-Version. Versuch mal die zu aktualisieren oder nutze das ioBroker-Beta Image… Was bei solchen Problemen auch immer gut hilft ist eine Suche nach teilen der Meldungen im ioBroker-Forum.
MfG,
André
Ich habe ebenfalls node aktualisiert und den Adapter gelöscht und neu installiert. Das Problem bleibt leider bestehen. Kann es sein das der sql-adapter (noch) nicht mit der neuen node (v8.15.0) funktioniert?
Problem habe ich gerade gelöst indem ich den SQL-History-Adapter in einer nierdrigeren Version (1.9.2) installiert habe obwohl eigentlich die Version 1.9.4 die aktuellste ist, aber leider nicht funktioniert.
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 &
Hallo Oliver,
ich glaube das habe ich ausführlich genug beschrieben. Befehle gibt man in der Regel in der Kommandozeile bzw. im Terminal ein. Schau mal bitte Seite 2, der letzte Screenshot über dem Video.
MfG,
André
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
Hallo Marc,
nein, mir sind keine Probleme mit dem SQL Adapter bekannt. Bei mir läuft er sauber und auch in meiner Testumgebung konnte ich den Adapter eben ohne Probleme installieren und starten. Hast du mal im ioBroker-Forum nach deiner Fehlermeldung gesucht? Da sich der Error auf node-module bezieht würde ich mal davon ausgehen, dass es sich hierbei nicht um ein docker- oder image-spezifisches Problem handelt.
MfG,
André
Danke für die schnelle Antwort. Ich habe node ein update gegönnt und dann den Adapter gelöscht und wieder neu installiert, jetzt läuft wieder alles.
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“)
Hallo Benny,
zu welcher Datenbank willst du dich denn verbinden? Im ioBroker Container ist von Haus aus keine DB enthalten und auch nicht vorgesehen. Falls du eine MariaDB für den SQL-Adapter nutzen willst, lege einen MariaDB-Container an und lasse den Adapter sich dahin verbinden. Ich rate dir davon ab, die DB im selben Container zu installieren.
MfG,
André
Danke Andre für deine schnelle Antwort. Ich beschäftige mich erst seit kurzen mit Containern, wollte vor einigen Jahren meine FHEM Installation als Container haben, aber bin irgendwie daran gescheitert. Seitdem ich meine Synology NAS habe ist das Thema Docker und Iobroker wieder sehr präsent. Vielen Dank für deinen Hinweis mit dem mariaDB Container, ich werde diese Variante mal probieren.
Hallo Andrè!
Ich finde nirgends das Verzeichnis /root/.npm/_logs/
Ist dies im Docker wo versteckt?
Danke
Sorry, keine Ahnung. Ich habe es aber auch nicht.
MfG,
André
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 8081 nicht mehr. Ich habe diverses Probiert aber leider keinen Erflog gehabt den Admin wieder zum laufen zu bringen. Hast du noch eine Idee ? System ist 1817+
Habe es selber lösen können..
iobroker del admin.0
iobroker add admin 0
war die Lösung !
Hallo Glenn,
danke dass du deine Lösung hier teilst. Was ich mir allerdings nicht erklären kann ist, wie es zu dem Fehler gekommen ist. Dieses Phänomen konnte ich bei mir noch nicht beobachten.
MfG,
André
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?
Hallo Sascha,
ich gehe mal davon aus, dass du aus dem Container heraus auf den Stick zugreifen möchtest. Falls dem so ist, musst du den Container mit „erweiterten Rechten“ (privileged Mode) ausführen. Andernfalls kannst du aus dem Container heraus nicht auf angeschlossene USB-Geräte zugreifen. Dazu habe ich kürzlich auch schon etwas in meiner neuen Knowledgebase veröffentlicht: USB-Devices an Diskstation
MfG,
André
Hallo Andre, das mit dem privileged Mode habe ich so schon im iobroker Container eingestellt, aber mir ist nicht ganz klar wie ich die Treiber von dem Stick in die Synology bekomme. Muss ich da ein extra Container mit irgend einem Linux installieren und darin die Treiber laufen lassen oder wie kann ich das anstellen? Für ein Tipp währe ich sehr dankbar. Gruß Sascha
Hallo Sascha,
nein, einen extra Container benötigst du in der Regel nicht. Falls du für den Stick Treiber benötigst solltest du sie in deinem ioBroker-Container installieren, sofern du dort schon das USB-Device sehen kannst (Stichwort: lsusb). Falls nicht, klappt irgendwas nicht mit der USB-Verbindung zur DS. Dann müsstest du auf der DS schauen ob die den Stick überhaupt irgendwie erkennt.
Ich weiß nicht ob du das schon gelesen hast, ich habe schon mehrfach darüber berichtet wie ich es mit Hardware am ioBroker handhabe. Da mein DiskStation-Standort nicht optimal für (bei mir) Bluetooth und Rflink ist, habe ich einen Raspberry Pi als Mulltihost Slave aufgesetzt. Dieser hängt jetzt zentral im Haus unter der Treppe und kommuniziert fleißig mit dem ioBroker auf der DS. Auf dem Slave laufen nur die Adapter für die Anbindung der Hardware. Das schafft der ohne Probleme. Vielleicht wäre das ja auch eine geeignete Lösung für dich.
MfG,
André
Vielen Dank für deine Tipps, finde ich echt klasse das du dir so viel Zeit nimmst um zu antworten. Werde das gleich heute Abend mal ausprobieren, vielleicht klappt es ja. Und wenn nicht ist es wahrscheinlich wirklich besser das über den Raspberry zu machen. Ich werde dann nochmal berichten ob es funktioniert hat 👍
VG Sascha
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
Hallo Christian,
das Verhalten habe ich bei mir so noch nicht gesehen. Hast du mal auf der Kommandozeile überprüft ob du im Container den Hostnamen auflösen kannst? Also z.B. ein „ping ioBroker“?
Falls das nicht geht ist das der Fehler. Du kannst dann über die hosts-Datei im Container die Auflösung des Namens auch manuell machen. Dann sollte der Fehler weg sein.
MfG,
André
Danke!
Wo finde ich die Host-Datei?
Hallo Christian,
die Datei befindet sich am üblichen Linux-Pfad: /etc/hosts. Einfach mit dem Editor deiner Wahl zu bearbeiten.
MfG,
André
Danke, habs gefunden!
schaut bei mir so aus:
127.0.0.1 localhost
::1 localhost
127.0.0.1 Synology_Nega_3
::1 Synology_Nega_3
ändere ich das dann auf:
127.0.0.1 localhost
::1 localhost
10.0.1.22 Synology_Nega_3
::1 Synology_Nega_3
10.0.1.22 ist die IP meiner Synology
Passt das so?
Hallo Christian,
ja, oder einfach die Zeile „10.0.1.22 Synology_Nega_3“ hinzufügen.
MfG,
André
Hallo André!
Ich habe die Zeile hinzugefügt und gespeichert.
Funktioniert beim 1. Befehl (zB sudo iobroker update) gemacht wird.
Beim 2. Befehl kommt dann aber schonwieder
sudo: Hostname ioBroker kann nicht aufgelöst werden
schau ich dann in /etc die hosts an, fehlt die zuvor eingefügte Zeile wieder!
Kannst du dir denken an was das liegen kann?
PS: in der Datei hostname in /etc/ steht
ioBroker
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 ?
Hallo Frank,
ist doch eigentlich klar oder? Wenn Docker läuft hat die DS immer zu tun (Zugriffe auf die HDDs). Daher geht sie nicht mehr (bzw. die Platten) in den Ruhezustand. Und mal ganz ehrlich 20 Watt (wie bei mir) ist doch nicht schlecht? Da laufen 5 Platten und die eierlegende Wollmilchsau. Alle Services inkl. Nextcloud, Plex, Surveillance Station, Webserver und ioBroker unter Docker. Zeig mir einen (VMware)Server der das schafft. 🙂
MfG,
André
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 lief. Danach waren noch kleine Anpassungen nötig. Derzeit habe ich noch Probleme einige Adapter mit einem Update zu versorgen. ich habe das im Terminal versucht und auch über die Admin Oberfläche – leider ohne Erfolgt. Das mit dem Backup habe ich mir noch nicht genau durchgelesen – aber ich denke hier sollte reichen über Backup die Anwendung Docker, der Rest wird bei mir sowieso gesichert.
Hallo Frank,
lief auf deinem Cubie vorher vielleicht Node 6 und im Container jetzt Node 8? Könnte eine Ursache für die Update-Probleme sein.
MfG,
André
Hallo André, danke das war es. Ich habe das Verzeichnis allerdings vorher auch vollständig gelöscht. Update usw. klappt.
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?
Hallo,
mit dem Bridged Network wird das leider nix. Allerdings kannst du wohl die MACVLAN-Variante dazu benutzen. Dabei bekommt der Container eine IP-Adresse aus dem Heimnetz wobei die IP als zusätzliche IP auf der Netzwerkschnittstelle sitzt.
MfG,
André
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
—————————————————————–
z.B.
pkill io
npm install iobroker.js-controller –production
node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
mein ablauf:
> iobroker.js-controller@1.5.7 preinstall /opt/iobroker/node_modules/iobroker.js
-controller
> node lib/preinstallCheck.js
NPM version: 6.4.1
npm version >= 5: disabling package-lock
> iobroker.js-controller@1.5.7 install /opt/iobroker/node_modules/iobroker.js-co
ntroller
> node iobroker.js setup first
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: xpc-connection@0.1.4 (node_modul
es/xpc-connection):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for xpc-conne
ction@0.1.4: wanted {„os“:“darwin“,“arch“:“any“} (current: {„os“:“linux“,“arch“:
„x64“})
+ iobroker.js-controller@1.5.7
updated 1 package in 39.596s
root@iobroker:/opt/iobroker# node node_modules/iobroker.js-controller/controller
.js >/opt/scripts/docker_iobroker-log.txt 2>&1 &
[1] 650
root@iobroker:/opt/iobroker#
——————————–
z.B.
/opt/iobroker $ npm i https://github.com/ioBroker/ioBroker.admin/tarball/master
/opt/iobroker $ cd node_modules/iobroker.admin
/opt/iobroker/node_modules/iobroker.admin $ npm install
/opt/iobroker/node_modules/iobroker.admin $ npm run prepublish
Wenn jemand eine Idee hat, ich werde es mal probieren.
Danke
Hallo Steven,
bevor du wild Befehle los schießt, solltes du erstmal klären ob es nicht eine andere Ursache gibt.
Du schreibst „nicht mehr“. Bedeutet das, dass der Admin in deinem Container schon lief? Was ist passiert? Neustart? Updates? Welchen Auslöser gab es, dass er es jetzt nicht mehr tut?
Dann schreibst du „er arbeitet im Hintergrund noch“. Woran machst du das fest? Ich habe bisher von dir weder Protokoll noch eine Auflistung der laufenden Prozesse gesehen. Das sollte das erste sein was du lieferst wenn du nach Hilfe suchst…
Und zuletzt, wie kommst du auf die Idee irgendwas per „npm i http…“ zu installieren? Wenn du Adapter neu installieren/ updaten oder Instanzen hinzufügen willst, nutze doch bitte das „iobroker“-Kommando (LINK).
MfG,
André
Ich wollte nur alle Möglichkeiten angehen und versuchen. Und um nicht auf sachen angesprochen zu werden die ich schon versucht habe, hab ich meine Karten offen gelegt.
Ich kann es ja immer wieder zurück setzen.
<<>>
>Auf den admin kam ich direkt nach dem Image einspielen. Nur wenn ich mein Backup rüber gezogen habe war es nicht mehr möglich.
<<>>
>Alexa, schalte licht im bad ein. (Licht an) shelly-Aktoren sind verbaut
<<>>
>#netstat -n -a -p TCP
cp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::8082 :::* LISTEN
963/io.web.0
tcp6 0 0 :::8088 :::* LISTEN
949/io.terminal.0
tcp6 0 0 :::38008 :::* LISTEN
ich weis ja nicht welche den Programmierer gefallen. Aber hier 1 Bsp.
<<>>
>Hilfe rufen ist übertrieben…um Rat nach neuen Ideen
<<>>
>aus den info von „iobroker“-Kommando, bisschen was ausprobiert.
Tut mir leid wenn man dich mit so einer Anfrage Nervt und das „nicht mehr schreiben“ ist ja nicht mit Absicht aber alle 5min guckt man da auch nicht rein.
Aber Danke trozdem
Hab es gelöst.
Hallo Steven,
schön dass es geklappt hat.
Aber mal zurück zu deinem letzten Kommentar. Irgendwie haben wir aneinander vorbei geredet. Mich nerven die Anfragen nicht. Ich unterstütze gerne wo ich kann. Bei deiner Anfrage, wie auch bei mittlerweile immer mehr Anfragen (auch im Forum), ist es einfach unmöglich ohne eine funktionierende Kristallkugel qualifizierte Unterstützung zu leisten.
Es fehlen einfach die wichtigsten Angaben. Neben den Gegebenheiten bei deiner Installation (Version des Images, Art der Netzwerkanbindung, usw…) interessieren auch die Schritte die unter Umständen zum Problem geführt haben. Das hier: „Auf den admin kam ich direkt nach dem Image einspielen. Nur wenn ich mein Backup rüber gezogen habe war es nicht mehr möglich.“ gehört also zwingend mit in die erste Anfrage.
MfG,
André
PS: Deinen letzten Satz verstehe ich nicht. Ich habe nicht gemeint, dass du nicht mehr schreibst. 🙂 Ich habe gemeint du schreibst komme „nicht mehr“ auf den Admin. Heißt für mich es ging schon mal. Da du aber nichts explizit dazu geschrieben hattest, habe ich es lieber hinterfragt bevor ich von falsche Gegebenheiten ausgehe…
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 ausgeführt.
Die Meldung in der Mail lautet wie folgt 🙁
…
Aufgabe: iobroker backup
Startzeit: Mon, 18 Feb 2019 13:33:20 GMT
Stoppzeit: Mon, 18 Feb 2019 13:33:20 GMT
Aktueller Status: 126
Standardausgabe/Fehler:
sh: /volume1/docker/iobroker_backup/backupscript.sh: /bin/bash^M: bad interpreter: No such file or directory
…
Die Ordnernamen habe ich von Deiner Anleitung übernommen. Es gibt den Ordner docker mit den Unterordnern _backup, _mount und _transfer
Hallo Ingo,
bitte bei Problemen immer erst einmal selbst auf die Suche gehen. Der Forum Thread hat mittlerweile über 700 Antworten, ich behapte dass 80% der auftretenden Probleme dort schon behandelt wurden. Wenn du das nicht alles lesen willst kannst du dort auch gezielt suchen. Und ohne das jetzt zu prüfen, bin ich der Meinung, dassich das hier in den Kommentaren auch schon beantwortet habe…
Ich beantworte gerne jede Frage, aber wenn ich Sie dann mehrfach beantworten muss wird der Zeitverlust echt groß… Schau mal hier: LINK oder der erste Treffer wenn ich „/bin/bash^M: bad interpreter“ bei Google eintippe: LINK
MfG,
André
Super André, vielen Dank, dass Du Dir trotzdem die Mühe gemacht hast. Hast natürlich Recht….SORRY. Ich bin nicht auf den Suchbegriff gekommen und für mich ist das alles neu.
Und noch nochmal herzlichen Dank für den Link. Mit gedit und speichern unter hat es funktioniert.
Weiß nicht, ob ich das ohne den Tip geschafft hätte 🙂
Hallo Andre,
deine Anleitung ist super und hat mir im vergangenen Jahr perfekt geholfen um meinen ioBroker vom PI in den Docker Container umzuziehen. Nun würde ich gerne auf die Version 2 umsteigen, damit einige neue Adapter damit laufen. Leider klappt das nicht so wie gewünscht. Ich habe schon versucht aus den einzelnen Seiten meine Infos zu entnehmen, aber eine echte „Upgrade“ Anleitung wäre da sehr hilfreich. Gerade auf die Basis deiner Grundinstallation bezogen. Ich denke da werden einige danach suchen.
Gruß
Daniel
Hallo Daniel,
hier die Upgrade Anleitung: ioBroker-Verzeichnis sichern – Alten Container löschen – Neuen Container aus neuem Image erstellen – reinstall.sh ausführen (siehe ioBroker Doku).
Best-Practice-Tipp: Als Sicherung des ioBroker-Verzeichnisses einfach den Ordner duplizieren und das neue Image nicht als „latest“ sondern als Version „2.0.0“ herunterladen. Dann kann nämlich der Alte ioB-Container so bleiben wie er ist und muss nur gestoppt werden. Den neuen Container aus dem Image V2 identisch dem alten erzeugen (ausgenommen natürlich der Pfad zum ioB-Verzeichnis, dafür einfach das Duplikat verwenden!) und reinstall.sh ausführen.
MfG,
André
Dann hab ich es eigentlich richtig gemacht. Allerdings erhalte ich bei einigen Adaptern auf der Einstellungsseite die Meldung „File Index.html not found“
Hast du mal im Forum dazu gesucht? Eventuell ist dein reinstall.sh nicht sauber durchgelaufen?
Klingt für mich eher wie ein ioBroker-Problem. Poste das mal im Forum-Thread zu meinem Tutorial, da lesen viele Profis mit die auch migriert haben. Eventuell kennt das Problem einer.
MfG,
André
PS: Noch ein Einfall, hast du mal versucht einen solchen Adaper neu/ drüber zu installieren? Oder ein Adapter upload gemacht?
Warum auch immer: Ich hatte den Admin 2.0.9 drauf, obwohl ich den Container neu aufgesetzt hatte. Mit iobroker upgrade ging es jetzt. Danke trotzdem!
Hallo André,
ich habe Deine Update-Anleitung befolgt, jedoch wird mir, trotz der Installation des aktuellen Images 2.0.0 im ioB angezeigt, ich hätte Host-Version 1.4.2 installiert und 1.5.7 wäre verfügbar.
Liegt es vielleicht daran, dass ich reinstall.sh noch nicht ausgeführt habe?
Das Problem dabei ist:
root@iobroker:/opt/iobroker# ./reinstall.sh
bash: ./reinstall.sh: /bin/bash^M: Defekter Interpreter: Datei oder Verzeichnis nicht gefunden
Was mache ich falsch? (pkill io hatte ich vorher schon abgeschickt)
Gruß Michael
Hallo Michael,
ich gehe mal davon aus, dass du eine bestehende Installation upgradest bei der der ioBroker-Ordner vom Host in den Container gemountet ist.
In diesem Fall wird ein Container-Update weder Adapter noch js-controller aktualisieren. Diese Daten liegen im gemounteten Verzeichnis und werden beim Update des Containers nicht angefasst.
Updates für Adapter und js-controller müssen immer separat gemacht werden.
Das Ausführen des reinstall.sh Scripts ist nur dann notwendig, wenn du mit dem Container Upgrade die Master-Node-Version änderst (Node ist Teil des Containers). Hat dein altes System also node 6 gehabt und du aktualisierst den Container auf v2 dann musst du es ausführen da im Container v2 node 8 läuft.
Die Fehlermeldung, die du beschreibst bezieht sich auf ein falsches Zeilenende im Script. Schau mal hier http://www.iobroker.net/docu/?page_id=8323&lang=de#Upgrade_von_nodejs_und_npm fast ganz unten… da steht wie du das Script prüfst und korrigierst.
MfG,
André
Hallo André,
es ist genau so, wie Du vermutest.
Wie kann ich denn diese Updates für Adapter und js-controller separat durchführen? (Ich weiß ja noch nicht einmal, was js-controller ist).
Das Korrigieren des Skripts gemäß Deines Links gelingt mir leider nicht.
Bei der Abfrage „ls -l reinstall.sh“ wird (anstatt z.B. -rwxrwxrwx 1 root root 655 Apr 19 13:23 reinstall.sh) Folgendes angezeigt:
-rwxr-xr-x 1 1026 users 709 Jun 1 2018 reinstall.sh
Wenn ich über den Terminal des Containers dann (innerhalb /opt/iobroker) „sudo mv reinstall.sh reinstall.dos“ auszuführen versuche, erscheint:
sudo: Die Audit-Nachricht kann nicht gesendet werden: Unbekannter Fehler -1
sudo: pam_open_session: Systemfehler
sudo: Regelwerks-Plugin konnte Sitzung nicht initialisieren
Ich tüftele jetzt schon ein paar Stündchen rum und wollte dann besonders schlau sein, indem ich mir stattdessen einen neuen Container von ioBroker parallel installierte und die neue reinstall.sh dann einfach in den alten gemounteten Ordner kopierte. Das hatte dann den „Erfolg“, dass bis zum Wiederherstellen eines Backups, mein ioBroker gar nicht mehr startete und ich mir danach auch erstmal einen neuen Admin.1 installieren musste, um wieder Zugriff zu bekommen, da der Admin.0 gestorben war. Vermutlich hat die (abwechselnd gestartete) Parallel-Installation irgendwelche Ports blockiert? Naja egal, es läuft wieder alles, aber mein Host meckert noch immer über das ausstehende Update.
Gruß Michael
Hallo Michael,
lasse mal sudo weg. Im aktuellen latest-Image wird noch nicht mit Benutzern gearbeitet. Du solltest in der Konsole als „root@“ arbeiten.
Was den neuen Container angeht, da hast du sicherlich Probleme mit dem Namen bekommen. Der Container hat ja sicher einen anderen Namen bekommen wenn er parallel aufgesetzt wurde, diesen Namen verwendet iobroker intern. Wenn du sowas machst musst du, wie beim umziehen einer Installation, die Namen mit „iobroker host this“ korrigieren.
Meine Empfehlung ist bei sowas immer eine Kopie von vom ioBroker-Ordner auf der DS erstellen (etwa iobroker_mount_1) und mit diesem arbeiten. So kannst du den noch funktionierenden ioBroker belassen wie er ist und nur stoppen. Wenn du zurück willst, einfach nur den originalen Ordner wieder einbinden.
MfG,
André
Hallo André,
Danke, ohne sudo konnte ich die Zeilen jetzt zur Anwendung bringen.
./reinstall.sh ist durchgelaufen und der Host ist nun aktuell.
Den Container hatte ich wie den Alten benannt, um keine Probleme mit dem geänderten Namen zu bekommen. Den Alten hatte ich vorher verschoben.
Läuft wieder super, vielen Dank nochmal.
Gruß Michael
Hallo André!
Ein Tutorial zum Update auf V2 ist derzeit noch nicht geplant?
Hallo Erich,
in meiner Antwort an Daniel steht alles drin. Ein Tutorial zum Update auf V2 ist weder geplant noch wird es eines geben. Das ist keine Zauberei. Wie man den Container aktualisiert habe ich im Tutorial beschrieben (Seite 2). Ebenso ist der Hinweis auf den Wechsel der Node-Version von 6 auf 8 drin… Mehr braucht es nicht… Ich investiere meine knappe Zeit lieber in die Arbeit an V3…
MfG,
André
Erstmal LOB! Sieht nach einem gut gepflegten repo aus. werde iobroker mal testen und wollte es in docker realisieren. wechsel von fhem, mal schauen was das taugt.
Test: wird auf nen Raspberry erfolgen.
werde berichten
Grüße DIrk
Hallo Dirk,
ich gebe mir Mühe. 🙂 Viel Erfolg bei deinem Vorhaben.
Allerdings solltest du dir das mit ioBroker und Docker auf nem Raspi nochmal überlegen. Sowohl meine Erfahrungen als auch viele Berichte von Usern zeigen, dass der Raspi einfach zu schnell an seine Grenzen kommt. Ich würde dir empfehlen auf dem Raspi zum Ausprobieren eine normale Installation zu machen, denn viel mehr kannst du da zeitgleich sowieso nicht laufen lassen.
MfG,
André
Hallo Andre,
danke für die Ausführliche Anleitung.
Ich habe ein Problem mit dem Backup.
Dieses wird erstellt aber die Archiv Datei ist leer.
Das Script wird auch ohne Fehler abgearbeitet.
Hast du eine Idee?
Gruß Nils
Hallo Nils,
da gibt es viele Möglichkeiten wo etwas schief gehen kann. Lass dir doch mal das Ergebnis des Scripts per Mail zusenden oder rufe das Backupscript per Kommandozeile auf der DS auf. Eventuell gibt dir die Ausgabe weitere Hinweise/ Fehlermeldungen.
MfG,
André
Hallo, wollte auch ein Backup machen nach deiner Anleitung. Folgende Fehlermeldung bekomme ich:
Aufgabe: iobroker-backup
Startzeit: Fri, 15 Nov 2019 22:58:37 GMT
Stoppzeit: Fri, 15 Nov 2019 22:58:37 GMT
Aktueller Status: 2 (Unterbrochen)
Standardausgabe/Fehler:
/volume1/docker/iobroker_backup/backupscript.sh: line 2: $’\302\240′: command not found
/volume1/docker/iobroker_backup/backupscript.sh: line 15: $’\302\240′: command not found
/volume1/docker/iobroker_backup/backupscript.sh: line 16: $’\302\240′: command not found
/volume1/docker/iobroker_backup/backupscript.sh: line 18: $’\302\240′: command not found
/volume1/docker/iobroker_backup/backupscript.sh: line 65: unexpected EOF while looking for matching `“
/volume1/docker/iobroker_backup/backupscript.sh: line 85: syntax error: unexpected end of file
Was ist das Problem? Kannst du mir da helfen?
Hallo Christian,
aus den Infos lässt sich leider nichts heraus lesen. Am besten du postest deine Konfiguration mal im Forum Thread. Also das Script, die Aufgabe und die Ausgabe bei Ausführung auf der Kommandozeile. Dann kann ich schauen wo was schief läuft.
MfG,
André
Habs schon gefunden, hatte ein Anführungszeichen zu viel gelöscht 🤦♂️
Danke, jetzt läuft s
Vielen Dank auch für das teilen der vielen Informationen, das hilft enorm wenn man wenig plan hat und sich den erst erarbeiten muss.
Hallo Andre,
ich habe dein Tutorial durchgearbeitet. Alles klappt super. Tolle Arbeit !!!!
Mir bleibt eine Frage zur Backupwiederherstellung offen. Ich habe in deinem Tutorial den Part mit dem Umzug auf ein neues System ausgelassen, weil ich das nicht brauchte. Warum soll der weg des BAckup-Wiederherstellens so „umständlich“ sein.
Erst in den Transferordner dann in den Zielorder entpacken , das noch über Kommandozeile….
Denke ich gerade falsch oder kann ich nicht „einfach“ direkt in der Filestation vom Backup Order in den ioBroker Ordner entpacken (den wir ja auf die DS „ausgelagert“ haben) ?
Danke und Gruß!
Sascha
Hallo Sascha,
natürlich gibt es immer mehr als einen Weg zum Ziel. Ich habe es so gemacht, weil ich bereits vorher (Umzug des Systems) den Weg über die Kommandozeile beschrieben habe und sich die Prozedur sehr ähnelt. Wollte nicht noch eine weitere Option mit „klicke hier“ und „klicke da“ beschreiben und damit vielleicht einen nicht so bewanderten User durcheinander bringen. Letztendlich habe ich das Tutorial so geschrieben wie ich es getestet und es bei mir funktioniert hat.
Theoretisch kannst du das Archiv aber auch über die FileStation entpacken. Ob das praktisch auch so gut, oder sogar besser/ einfacher klappt kann ich nicht mit Sicherheit sagen. Falls du dahingehend Erfahrungen gesammelt hast, würde ich mich freuen wenn du sie nicht für dich behältst. 🙂
MfG,
André
Hallo,
ich habe eine eigentlich generelle Frage. Ich habe eine DS1817+ mit 8GB und dort ist standardmäßig schon der Synology Virtual Machine Manager installiert, in dem ich auch eine WinVM laufen habe. Nun meine eigentliche Frage: Kann ich das Image für Docker auch direkt in die VM einbinden ? Ist die Synology VMM eine neuere Version von Docker, oder ist es etwas komplett anderes ?
Hallo Marc,
nein, VMM und Docker sind zwei unterschiedliche paar Schuhe. Das Einzige was beide verbindet ist, dass es Virtualisierungsumgebungen sind. Während beim VMM jedoch noch herkömmlich das gesamte Betriebssystem virtualisiert wird (siehe deine WinVM) so wird bei Docker nur noch eine einzelne Anwendung mit dem was sie zum Laufen benötigt virtualisiert.
MfG,
André
Danke dir für die schnelle Antwort …
Also muss ich weiter in einer VMM Linux mit iobroker laufen lassen.
Hi André, habe IoBroker auf einer DS2413+ laufen (2GB RAM). Das läuft total langsam und hängt sich ab und an auf. Gibt es eine Beschränkung was die Anzahl Prozesse/Instanzen angeht? Habe ich auf der DS was falsch konfiguriert?
Viele Grüße Micha
Hallo Micha,
eine Beschränkung gib es nicht, aber 2GB ist schon relativ knapp. Kann mir gut vorstellen dass es da schnell eng wird… Musst halt bedenken, dass die DS bzw. der DSM auch selbst RAM benötigt, du hast für den ioBroker also auch entsprechend weniger verfügbar.
MfG,
André
Hallo André, Du hattest Recht! Das war die Ursache! Mit 2 weiteren GB RAM ist die gewohnte Performance wieder hergestellt:
Gesamte RAM-Nutzung: 1528 MB / Frei 20% =797 MB [Host: iobroker 24 Prozesse]
DANKE!
Kurze Frage :
Wenn ich zur Auswahl hätte (bzw. habe) den iobroker neu zu installieren, auf der DS216 oder dem raspi2. Wo würde es am ehesten machen? Was würdet ihr empfehlen?
Vorkenntnisse zu iobroker sind leider keine vorhanden. Minimale Kenntnisse zu dashui vorhanden.
Besten Dank im Voraus
Pahan
Hallo Pahan,
zum ioBroker Ausprobieren und erste Schritte machen ist der Raspberry Pi meines Erachtens die am einfachsten und am besten beschriebene Möglichkeit. Wenn du mehr vor hast als nur „Ausprobieren“ und „Ein paar Lampen schalten“, dann kommt der Pi allerdings schnell an seine Leistungsgrenzen. Eine DS216 ist allerdings leistungsmäßig auch nicht gerade der Bringer. Wenn ich recht erinnere, dann bringt Sie nur 512MB RAM mit. Das wäre definitiv zu wenig. Docker wird hier auch gar nicht erst unterstützt. Willst du Docker auf einer DS nutzen empfehle ich mindestens 2GB RAM und natürlich ein hier aufgeführtes und damit unterstütztes Modell.
MfG,
André
Hallo André,
vielen Dank für deine Antwort. Ich war zu voreilig, dies auf der DS216 installieren zu wollen. Habe erst später gesehen, dass diese gar nicht unterstützzt wird. Eine Neuanschaffung kommt aktuell nicht in Frage, die DS tut Ihren Dienst ausgezichnet. In Bezug auf den iobroker wird es wohl erstmal der raspi sein.
Viele Grüße
Pahan
Hi,
Dein Docker Container läuft nun seit Monaten super!
Ich habe noch eine Frage zu Deinem Update: Welchen Vorteil bietet das Update auf node8?
Danke
Christof
Hallo Christof,
schön dass du zufrieden bist. 🙂 Das Update auf node8 ist eigentlich nur erforderlich wenn du einen Adapter oder eine Funktion benutzt, der dies voraus setzt. Habe mir auch lange damit Zeit gelassen node8 zu implementieren. Nichts desto trotz ist es ja nie verkehrt auf einem aktuellen Stand zu sein, denn meist ist es ja so, dass alte Software irgendwann nicht mehr weiter entwickelt oder unterstützt wird.
Auf lange Sicht würde ich also das Update empfehlen, auch wenn du als Anwender wahrscheinlich keinen wirklichen Unterschied bemerken wirst. 🙂
MfG,
André
Für diejeningen, die in Kombination mit IoBroker und Synology auch Homematic betreiben:
Damit die Homematic-Adapter über IOBroker angesprochen werden können, muss bei den hm-rpc-Instanzen als Adapter Callback Adresse die IP der Synology eingetragen werden… außerdem müssen die Ports, über die die Homematic-Adapter laufen (2002 und 2010) ggf. in der Firewall der Synology erlaubt sein.
(Hat mich leider nen ganzen Tag gekostet, bis ich drauf gekommen bin, dass es nicht an der CCU liegt)
Hallo Matze,
danke für den Hinweis. Zumindest das Firewall Thema betrifft aber nur DiskStations auf denen die Firewall aktiviert wurde. Im Standard ist diese ja deaktiviert. Trotzdem danke fürs Feedback. Werde die Ports auch bei nächster Gelegenheit mit in die Liste im Troubleshooting aufnehmen.
MfG,
André
Hallo André, danke für deine tolle Dokumentation. Habe mittlerweile einen laufenden ioBroker Container auf meiner DS918+. Jetzt war die Datensicherung an der Reihe, Skript erstellt kopiert und gestartet. Leider wurde der Container nicht gestoppt und erneut gestartet. Der Log ergab „permission denied „. Mit Sudo ging es, leider aber nur mit PW Eingabe.
Hast evtl. einen Tipp für mich wie ich das ändern könnte, da so ein automatiesiertes Backupnicht möglich ist.
Danke und schönes WE.
Martin
Hinweis: sudo usermod -a -G docker $USER –> command not found
Hallo Martin,
bei mir läuft das Backupscript über den Aufgabenplaner als root. Ich vermute mal, dass das bei dir nicht der Fall ist. Vielleicht solltest du das mal probieren.
MfG,
André
Hallo André,
hatte einen Nutzer mit root Rechten genutzt. Mit dem Nutzer root ging es dann… 👍🏼
Bin gerade nur am überlegen ob das beenden des Containers mit laufendem Iobroker so gut ist? Oder ob ich ggf. den Backitup Adapter installieren soll und dort ein Full backup machen. Dann könnte ich alle 4 Wichen den ganzen Ordner mit deinem Skript sichern und davor händisch iobroker beenden.
Gruss Martin
Hallo Martin,
ich glaube da musst du dir keine Sorgen machen. Bei mir läuft das Script seit fast 2 Jahren, jeden Montagmorgen. Bisher habe ich nie Probleme gehabt, und falls es doch mal soweit sein sollte, dann habe ich ein Backup von vor einer Woche… 🙂
MfG,
André
Hallo André,
wirklich tolle Anleitungen hier! Ich bin total begeistert, da Du alles wirklich anschaulich und einleuchtend erklärst. Danke schon mal dafür!!
Gerade habe ich ioBroker im Docker installiert, da ich mit meiner noch kleinen Hausautomatisierung von FHEM auf einem Raspi jetzt auf ioB auf meine Diskstation (ds218+ mit 10GB RAM / 10TB HDD) umziehen möchte. Jetzt habe ich allerdings ein weiteres Problem. Ich möchte meinen Eigenbau nanoCUL für die Steuerung einiger 433MHz Steckdosen nutzen. Wenn ich diesen der DS in USB einstecke wird er (natürlich?!) nicht erkannt. Was kann ich tun, damit der nanoCUL im ioB über USB einen seriellen Port zugewiesen bekommt? Ich hoffe, Du kannst mir helfen, denn die Sonoff RF Bridge funktioniert nicht wirklich zuverlässig.
Gruß
Claas
Hallo Claas,
hast du mal auf die letzte Seite („Troubleshooting“) geschaut. Unter Punkt „Fehlerbild: Zugriff auf USB-Devices an der DS nicht möglich“ solltest du finden was du suchst.
MfG,
André
Hallo Claas,
schau mal hier im Troubleshooting „Fehlerbild: Zugriff auf USB-Devices an der DS nicht möglich“
hat bei mir auch geholfen damals. Mache dies aber nun anders ich habe eine Pi als Slave gemacht in den ich den Cul von Homematic und Bluetooth verwenden konnte. Passt auch besser mit reichweit da meine NAS im Keller steht.
Mfg
Hallo André,
vielen Dank für die Anleitung … der Umzug von Raspi auf Synology Docker war einwandfrei.
Ein Problem das ich jetzt noch habe… ich hab ein Multihost-System. Der „Slave“ wird im Admin als Offline angezeigt.
Auch sind die entsprechenden Adapter nicht „grün“.
Kannst du mir sagen was ich noch tun muss, damit der Slave wieder läuft?
gruß Ronald
Hallo Ronald,
schön dass es im Großen und Ganzen auch bei dir geklappt hat.
Für den Umzug eines bestehenden Multihost-Systems habe ich allerdings keine eigenen Erfahrungswerte. Ich habe Multihost nämlich erst nachträglich aktiviert.
Du könntest mal versuchen Multihost zu deaktivieren/ entfernen und neu einzurichten. Mit dem Umzug der Installation auf die DS hat sich ja sicherlich auch die IP, bzw. der Name des ioBroker-Master geändert. Vielleicht liegt genau da das Problem.
Viel Erfolg.
MfG,
André
Vielen Dank für die ausführliche Anleitung! Schön, dass du dir dafür die Zeit nimmst und es uns Neulingen so unglaublich einfach machst! Danke für deinen kontinuierlichen Einsatz! Frohe Weihnachten.
Kleine Anmerkung: Bei meiner 412+ musste ich in der Firewall die Ports noch hinterlegen. Ansonsten konnte ich die Weboberfläche nicht öffnen. Zum Testen einfach die FW kurz ausschalten und versuchen. Ging, anschließend die Port Regel bearbeitet und 8081 hinzugefügt. Da sollte jeder entscheiden, welche Sicherheitseinstellungen er wählt. Bei mir ist sie derzeit nur aus dem lokalen Netz zugänglich, sollte reichen.
Hallo Henning,
vielen Dank für dein Feedback. Sicher müssen beim Nutzen der Firewall auf der DS auch die entsprechenden Ports freigegeben werden, das ist ja im Allgemeinen ja auch die Funktion einer FW. 😉 Im Übrigen gilt das auch nicht nur für den Admin-Port 8081, sondern für alle entsprechend verwendeten Ports.
Aber alle Eventualitäten kann ich mit meinem Tutorial leider nicht abfangen, und da die FW meines Wissen im Standard deaktiviert ist, habe ich das Thema bisher komplett außen vor gelassen und einfach mal unterstellt, dass jemand der der FW aktiviert dann entsprechend tief in der Materie steckt…
Habe mir das Thema aber mal auf den Troubleshooting-Zettel notiert. Eventuell macht es Sinn es an geeigneter Stelle zumindest einmal zu erwähnen.
MfG,
André
Ein riesiges Lob für diese tolle, ausführliche und vor Allem aktuelle Anleitung. Absolut top. Vielen Dank dafür.
Ich habe ioBroker bisher auf einem selbst aufgesetzten und konfigurierten OMV Rechner laufen gehabt und brauchte mich nie wirklich darum kümmern, was mich dann doch jetzt vorgestern eingeholt hat. Die Dienste um OMV haben nicht mehr das getan, was sie tun sollten und nachdem ich fast ein Woche vergeblich versucht hatte ein paar wichtige Pakete zum Laufen zu bekommen, hab ich kurzerhand eine Synology gekauft. Ohne weiter darüber nachzudenken, was mit ioBroker danach passieren sollte.
Auf diese Anleitung gestoßen und mir den notwendigen Input für Docker geholt und was soll ich sagen….ein Kinderspiel mit dieser Anleitung. Ein zwei Ungereimtheiten gibt es (die sind aber so banal, dass ich sie bereits vergessen habe – eins war glaube ich der Docker-Ordner auf der Synology. Der existiert nach Installation von Docker bereits und muss nicht erst angelegt werden), aber das ist definitiv keinerlei Beschwerde, auch nicht auf höchstem Niveau wert. 🙂
Vielen herzlichen Dank für die Arbeit und die Bereitstellung dieses Ausnahme-Tutorials. Es gibt sicherlich gute Anleitungen im Netz, aber entweder sind die thematisch immer auseinandergerissen, Vor- und Nacharbeiten sind dann in extra Videos oder Artikeln untergebracht, oder sie behandeln die Themen so speziell, dass man sich Extrainfos aus anderen Quellen holen muss, etc.pp Der Umzug und auch der Restore von ioBroker in Docker wird hier bis ins Kleinste auf den Punkt beschrieben. Exakt daran halten, dann geht für diesen Vorgang überhaupt nichts schief. Die Probleme fingen dann erst in ioBroker und den neuen Funktionen an, die so dürftig dokumentiert und umgesetzt sind und im Forum kaum bis gar nicht behandelt werden. Dafür kann die Anleitung aber hier nix. Wer eine laufende Instanz von ioBroker unter der angegebenen node und npm Version hat, der bekommt sie von jeder Plattform in Docker auf die Synology. Einfach perfekt.
5 ***** mit Plus. 😉
Hallo David,
danke für das Feedback und dein Lob. Freut mich dass alles soweit geklappt hat. 🙂
Schöne Feiertage.
MfG,
André
Für das Tutorial und auch die Vorarbeit, das ioBroker im Container zum Download kann man nur ein Lob aussprechen. Alles andere wäre nicht richtig. 🙂
Dir und Deiner Familie (der Avatar täuscht da hoffentlich nicht) auch ein frohes Fest und ein paar besinnliche Tage.
Gruß
David
Hallo,
ich würde gerne nach deiner Anleitung vorgehen, jedoch scheitert es bereits am Zugang zu iobroker…
Ich habe alles so gemacht wie du beschrieben hast, aber der zugriff via ip:8081 ist nicht möglich (Fehler: Verbindung fehlgeschlagen)
Habe ich irgendetwas grundlegendes vergessen/übersehen?
Ach, ich habe auf der DS2415+ alle Updates von DSM installiert sowie die aktuelle Version von Docker.
Gruß
Stefan
Hallo Stefan,
keine Panik. Wann hast du das Image geladen? Ich hatte gestern (05./06.12.) ein Faules Image im Docker Hub.
Weil sich die Installationsroutine von ioBroker geändert hat wurde das Image nicht korrekt generiert. Seit gestern ca. 23 Uhr sollte jetzt wieder ein funktionierendes Image bereit stehen. Lösche mal bitte dein heruntergeladenes Image unter „Abbild“ und lade es unter „Registrierung“ neu runter…
MfG,
André
Hatte es vorhin eigentlich nochmal neu geladen…knapp über 900mb
Teste es aber gleich nochmal 🙂
Node hab ich auch die aktuellste installiert oder wird das als extra Paket gar nicht benötigt?
Also hab mal alles gelöscht, Docker usw.
Dann alles neu installiert und es ist noch das Gleiche, es läuft zwar laut Docker, aber ich kann es über das Netzwerk nicht erreichen
Also auf der DS benötigst du nur das Docker-Paket. Node und alle weiteren benötigten Softwarepakete befinden sich im Image.
Was steht denn im Containerprotokoll? Welche Prozesse laufen im Container und was ergibt ein „ls“ im Terminal?
Eventuell kannst du die Antwort darauf im ioBroker-Forum posten. Die Kommentarfunktion eignet sich ja nur begrenzt für Support…
MfG,
André
ok alles klar 🙂
https://forum.iobroker.net/viewtopic.php?f=17&t=5089&p=200994#p200994
Hallo. Ich habe auch das Problem, dass ich keinen Zugriff bekomme 🙁
Alles läuft, Ports sind auch frei, aber ich kriege einfach keinen Zugriff. Habe gerade eben auf der SYNO installiert …
Hallo Marco,
schau doch mal im ioBroker-Forum vorbei. Bisher haben wir es glaub ich bei jedem zum Laufen gebracht.
Poste dort einfach ein paar Details (Logs, Screenshots) und was du schon probiert hast und dann schauen wir mal.
MfG,
André
Hi,
ich nutze den Docker-Container in dem abschotten Modus (siehe „ioBroker-Container vom Netzwerk abschotten“). Nun kann man im ioBroker ein Login einrichten und hierfür ist ein „let’s encrypt zertifikat“ notwendig. Weist du wie ich das auf der Synology einrichte? Ich meine es sollte über die „Reverse Proxy“ Funktion der Synology gehen, kenne mich damit aber nicht aus. Dabei habe ich mir vorgestellt den ioBroker über „subsub.sub.domain.de“ zu erreichen.
Wenn du das weist, könntest du dein Tutorial hierfür ergänzen?
P.S. Wie man ein „let’s encrypt zertifikat“ für die Synology einrichtet weiß ich. Mir geht es darum wie ich das Zertifikat auf dem ioBroker-Container einrichte und es über z.B. https://iobroker.zuhause.meine-domain.de erreiche. Also das verschlüsselte Signal bis zum ioBroker weitergereicht wird.
Gruß Willi
Hallo Willi,
eines gleich vorweg, dieses Tutorial werde ich um die Sicherheitsgeschichte nicht erweitern. Das ist schlicht zu viel. 🙂
Allerdings habe ich seit März einen Entwurf liegen, der dieses Thema behandeln soll. Ich komme aber einfach nicht dazu das Ganze ausgiebig zu testen und fertig zu stellen.
Ich habe das auch ein wenig anders gelöst. Ich habe meiner DS eine eigene (Internet-)Domain gewidmet. Z.B. ds.domain.de. Diese Domain lasse ich im Normalfall von den DNS-Servern im Netz auf eine lokale IP auflösen. Für die Generierung des lets encrypt Zertifikats schlüssel ich die DS-Domain auf meine Externe IP um und leite temporär den port 80 auf meine DS durch (das benötigt lets encrypt zur Authentifizierung einer Domain). Mit diesem Trick generiere ich über die DS regelmäßig das neue Zertifikat. Anschließend wird im DNS wieder die lokale IP aufgelöst (mein Domainprovider unterstützt die manuelle Eingabe einer IP im DNS) und die mit der DS generierten Schlüssel im ioBroker eingetragen. Mit dem Effekt, dass ich aus meinem Heimnetz den ioBroker per „https://ds.domain.de:8081“ aufrufen kann, ein trusted Zertifikat habe und so meine ioBroker mit Nutzername und Passwort effektiv schützen kann. Ist relativ aufwändig, aber für mich, der ohne Cloud auskommen will, die beste Lösung.
Ich glaube ich muss an das Thema mal wieder ran. Sorry, dass ich es bisher noch nicht geschafft habe… 🙂
MfG,
André
PS: Wenn der Container „abgeschottet“ arbeitet, sollte das kein Problem sein. Hürde ist dabei m. E. nur, die entsprechenden Ports frei zu haben und in den Container weiter zu leiten…
Hallo & Danke für die bisherige Anleitung. Ich habe dank dieser, bis jetzt alles super hinbekommen.
Soeben habe ich aber auf Version 2.0 geupdated. Leider gab es hier Probleme mit dem Recompilling für Node8. Hier war es leider nicht möglich Befehle, wie „reboot“ abzusetzen. Auch „sudo chmod +x reinstall.sh und ./reinstall.sh“ liefen mit der Meldung, dass diese Datei nicht vorhanden ist. Hierdurch funktioniert augenscheinlich der HomeMatic ReGaHSS Adapter nicht mehr.
Kannst du mir hier bitte eine kurze Hilfestellung geben, was hier schief gelaufen ist.
Lieben Dank für Dein bisheriges Engagement.
Viele Grüße
Enrico
Hallo Enrico,
wo bitte brauchst du denn ein „reboot“? Das funktioniert im Container natürlich nicht, weil das keine vollständige virtuelle Maschine ist. Falls du eine reboot benötigst, dann bitte einfach den Container neu starten.
Für das „reinstall“ schau mal bitte hier. Ziemlich weit unten ab „Bei einer bestehenden ioBroker-Installation…“. Die reinstall.sh sollte eigentlich immer da sein. Falls dies nicht der Fall ist, dann würde ich ggf. die Datei manuell anlegen. Schau doch mal im /opt/iobroker mit „ls“ nach ob die Datei dort liegt.
MfG,
André
Hallo André, du hast recht. Das „reboot“ benötige ich wirklich nicht. Ich bin etwas zu hoch gerutscht in den Anweisungen. Eine reinstall.sh war nicht vorhanden. Ich habe sie aus einem alten Backup wieder eingefügt. Nun funktioniert alles. Vielen Dank!
Viele Grüße
Enrico
Hallo Andre,
vielen Dank für deine Mühen ein tolles Image für Synology bereitzustellen! Da ich mit meiner bisherigen Installation einpaar Schwierigkeiten habe, wollte ich einen neuen iobroker aufsetzen. Habe die aktualisierte Anleitung (meiner Meinung nach) beachtet, allerdings startet der Adminadapter nicht auch wird der Befehl iobroker nicht gefunden. Hast du eine Idee woran das liegen könnte?
Vielen Dank und Gruß Carsten
Hallo Carsten,
schau mal in meine Antwort auf Giuseppes Kommentar. Ich vermute du hast auch heute oder gestern das Image geladen. Leider ist das Image gerade fehlerhaft…
MfG,
André
Hallo Andre, danke für diesen Container. Leider habe ich Startschwierigkeiten. Habe ein Ubuntu System und will alle größeren Software Pakete auf Docker umziehen.
Wenn ich dein Image starte ist /opt/iobroker ziemlich leer. Die Binary ioBroker ist zumindest nicht vorhanden und wird mir auch so im Log angezeigt: Das startup_script findet die Datei nicht.
Was mache ich falsch? Muss ich speziell etwas beachten wenn ich es nicht auf einer Diskstation nutze? Für die Konfiguration nutze ich Portainer, was mir die selben Möglichkeiten bietet wie die DS.
Danke & Gruß,
Giuseppe
Hallo Giuseppe,
ich kenne leider nur die Docker-Oberfläche der Disk Station. Dein /opt/iobroker im Container ist leer? Mountest du beim Start schon ein Verzeichnis dahin? Falls ja, starte mal den Container ohne gemountetes Verzeichnis. Was Anderes fällt mir dazu erstmal nicht ein. Sorry.
Welches Image hast du geladen? latest? beta? und vorallem wann hast du es gezogen? Nicht das was mit dem gestrigen Update faul ist…
MfG,
André
Ich glaube ich habe den Fehler gefunden. Offensichtlich funktioniert die Setup-Routine im Container nicht mehr. Die Jungs von ioBroker haben da was geändert. Resultat: Im Image latest, beta und 2.0.0 ist ioBroker nicht ordnungsgemäß installiert. Schaue mir das heute Abend mal genauer an.
MfG,
André
Geht klar, danke für deine Mühen.
Der Build läuft gerade. In etwa einer Stunde sollte das neue, korrigierte Image zum Download bereit stehen. Also gerne nochmal testen. Danke.
MfG,
André
Hallo, erstmal Danke für die Klasse Anleitung.
Es scheint auch alles zu funktionieren. Datensicherung wird auch angelegt.
Jedoch bekomme ich immer eine Fehlermeldung, das in ein Fehler im Skript währe.
…
Standardausgabe/Fehler:
/volume1/docker/Backup-ioBroker.sh: line 1: #!/bin/bash: No such file or directory #####################################################
############## Backupscript gestartet. ############## #####################################################
Der ioBroker-Container (ioBroker) in Docker wird
…
Woran kann das liegen? Was mache ich falsch?
Netten Gruß
Jan
Hallo Jan,
schön dass fast alles funktioniert.
Schaut so aus als ob bei dir was mit der Scriptdatei nicht stimmt. Einfach mit der Fehlermeldung „/bin/bash: No such file or directory“
mal Google anschmeißen, erster Treffer: https://unix.stackexchange.com/questions/27054/bin-bash-no-such-file-or-directory.
MfG,
André
Hallo
Habe alles soweit hinbekommen.
Danke dafür!
Nur beim automatischen Backup scheitere ich.
Wenn ich das Backup starte, bekomme ich folgende Fehlermeldung per Mail.
Standardausgabe/Fehler:
sh: /volume1/docker/iobroker_backup/backupscript.sh: /bin/bash^M: bad interpreter: No such file or directory
Könntest du mir bitte weiterhelfen?
Danke
Hallo Christian,
schön dass alles soweit geklappt hat.
Sei mir bitte nicht böse wenn ich dich mit deinem Problem an Google verweise. Suche mal nach „/bin/bash^M“.
Das ist ein Problem mit den Zeilenenden in der Script Datei. Tritt z.B. auf wenn du das Script unter Windows mit dem Editor erstellst und dann auf eine Linux-Maschine kopierst.
Vielleicht sollte ich den Fehler mal im Troubleshooting ergänzen…
MfG,
André
Danke für den Tipp!
Jetzt funktioniert es. Hab es mit dos2unix geschafft!
Hi André!
Muss mich doch nochmal melden.
Es funktioniert doch noch nicht so wie es soll.
Kannst du bitte kurz über das Log schaun?
Danke
Aufgabenplaner hat eine geplante Aufgabe abgeschlossen.
Aufgabe: ioBroker Backup
Startzeit: Thu, 29 Nov 2018 17:17:31 GMT
Stoppzeit: Thu, 29 Nov 2018 17:17:46 GMT Aktueller Status: 0 (Normal)
Standardausgabe/Fehler:
#####################################################
############## 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: dial unix /var/run/docker.sock: connect: permission denied Container in Docker gestoppt.
######################################################
Der Ordner /volume1/docker/iobroker_mount wird gesichert…
tar: .: Cannot stat: Permission denied
tar: Exiting with failure status due to previous errors Sicherung des Ordners erstellt.
######################################################
Entfernen alter Backups aus dem Verzeichnis /volume1/docker/iobroker_backup/archiv…
Alte Backups wurden entfernt.
######################################################
Der ioBroker-Container (ioBroker) in Docker wird gestartet…
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/start: dial unix /var/run/docker.sock: connect: permission denied
Error: failed to start containers: ioBroker Container in Docker gestartet.
################### Script Ende ######################
Hallo Christian,
sieht nach Berechtigung aus. Unter welchem User wird das Script aufgerufen? Ich meine das muss unter root, weil Docker unter root läuft…
MfG,
André
Hi,
mir dieser super Anleitung habe ich es auch geschafft, auf meiner DS218+ den ioBroker container zu installieren.
Nun wollte ich mich an das Backup machen und sehe im Backupskript, dass ioBroker vorher idealerweise gestoppt werden sollte.
Da dachte ich mir, automatisier das doch über crontab.
Zu meiner Überraschung habe ich festgestellt, dass es crontab nicht gibt – nur cron.daily.
Ist es entweder unkritisch, ioBroker „abzuschießen“ oder gibt es eine andere pfiffige Idee?
Und vielen
Dank nochmal für die Anleitung
Christof
Hallo Christof,
schön das die Anleitung funktioniert hat. Das hört man gerne.
Im Prinzip sollte es keine Probleme geben, wenn man den Container einfach stoppt. Da ist eigentlich nichts was kaputt gehen kann.
Ich selbst mache es so, dass ich kurz vor der wöchentlichen Backup-Zeit den ioBroker aus einem Javascript heraus selbst beende (In einem Javascript im ioBroker wird ein lokales Shutdown-Script aufgerufen). Aber eigentlich kann man sich das auch sparen…
MfG,
André
Hallo André,
vielen Dank für die Mühe mit der Anleitung, sie hat mich immerhin schon mal meinem Vorhaben weitergebracht ioBroker auf meinem Qnap Hs 251 NAS laufen zu lassen. An einer Installation in einer VM bin ich schon vor Monaten gescheitert, da Laie. Iobroker läuft mit Hilfe Deiner Anleitung, funktioniert aber nicht. Vielleicht brauche ich nur einen kleinen Anfängerschubs, damit ich mich selbst einarbeiten kann. Ich hatte gehofft Dir fällt dazu etwas ein.
Schöne Grüße Joerg
Ich konnte iobroker.admin 3.4.7 installieren und starten.
Qnap HS-251 2GB Firmware 4.3.5.0728
Container Station Version 1.9.3527 (2018/09/26)
Image buanet/iobroker (latest) vom 27.10.2018
Netzwerk Bridge Modus, static IP 192.168.0.210, Netmask 255.255.255.0 Gateway 192.168.0.1 (IP der Fritzbox)
Zugriff auf IOBroker auf http://192.168.0.210:8081 funktioniert
Container Station Log:
Info 2018/10/29 11:46:20 Container admin Start container (docker, cdeee4089b31, iobroker-2)
Info 2018/10/29 11:46:09 Container admin Stop container (docker, cdeee4089b31, iobroker-2)
Übersicht Info (ioBroker):
Platform: linux
Architecture: x64
CPUs: 2
Speed: 2408 MHz
Model: Intel(R) Celeron(R) CPU J1800 @ 2.41GHz
RAM: 1.8 GB
System uptime: 1 T. 14:27:33
Node.js: v6.14.4
adapters count: 0
NPM: v3.10.10
Uptime: 00:07:09
Meldung beim Start in der Console:
root@iobroker-2:/opt/iobroker#
root@iobroker-2:/opt/iobroker#
root@iobroker-2:/opt/iobroker#
root@iobroker-2:/opt/iobroker# rm: das Entfernen von ‚/var/run/dbus/pid‘ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
Failed to start message bus: Failed to bind socket „/var/run/dbus/system_bus_socket“: Address already in use
[ ok ] Stopping Avahi mDNS/DNS-SD Daemon: avahi-daemon.
[FAIL] Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon failed!
root@iobroker-2:/opt/iobroker#
Log nach starten von ioBroker:
admin.0 2018-10-29 11:46:51.476 info Repository received successfully.
host.iobroker-2 2018-10-29 11:46:51.442 warn warning: Cannot read „http://download.iobroker.net/sources-dist.json“
discovery.0 2018-10-29 11:46:41.783 info starting. Version 1.2.1 in /opt/iobroker/node_modules/iobroker.discovery, node: v6.14.4
host.iobroker-2 2018-10-29 11:46:41.311 info Update repository „default“ under „http://download.iobroker.net/sources-dist.json“
Meldung nach dem Versuch „alle Adapter upgraden“:
Fertig mit Fehler: /opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupUpgrade.js:143 if (adapter.indexOf(‚@‘) !== -1) { ^ TypeError: Cannot read property ‚indexOf‘ of undefined at Upgrade.upgradeAdapter (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupUpgrade.js:143:20) at Upgrade.upgradeAdapterHelper (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupUpgrade.js:32:14) at /opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:1392:41 at Socket.(/opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:2984:33) at Socket.onack (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:319:9) at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:244:12) at Manager.(/opt/iobroker/node_modules/component-bind/index.js:21:15) at Manager.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20) at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:345:8) at Decoder.(/opt/iobroker/node_modules/component-bind/index.js:21:15)
Hallo Jörg,
schwierig dazu eine Diagnose zu geben, vor allem weil ich keine Ahnung habe wie sich die Konfiguration auf QNAP darstellt.
Vielleicht bist du mit den Fehlermeldungen im ioBroker-Forum besser aufgehoben. Scheint mir jetzt nicht zwingend ein Docker-Problem zu sein.
Viel Erfolg!
MfG,
André
Hallo, die Anleitung ist sehr gut geschrieben, vielen Dank dafür.
Leider hat sie bei mir nicht funktioniert, obwohl ich genau die gleiche Hardwarekonstellation vorzuliegen habe.
Der Umzug soll von einem Raspi3 auf eine DS218+ erfolgen. Das gepackte Archiv habe ich via Filezilla in das Transferverzeichnis schieben können. Das Entpacken erfolgte jedoch nicht in das richtige Zielverzeichnis „/“, sondern es landete im Transferverzeichnis. Von dort konnte ich es via „cp -a…“ in das /-Verzeichnis kopieren.
Nun funktionierte aber das „host this“ nicht. Es erscheint: „No connection to states 127.0.0.1:6379[redis]“
Was kann ich bitte tun?
Hallo Anni,
die Fehlermeldung sagt es schon. Keine Verbindung zur Redis-States-DB. Offenbar hast du deine Installation irgendwann mal auf Redis als States-DB umgestellt. Lies mal hier. Wenn du wieder eine States-DB einrichtest sollte es funktionieren. Andernfalls nochmal „iobroker setup custom“ aufrufen. Viel Erfolg.
MfG,
André
Vielen Dank für die extrem schnelle Hilfe. Bin bisher ein reiner Windowsanwender gewesen und mache nun meine ersten Linuxschritte. Sorry daher für die vielleicht dummen Fragen.
Eine Umstellung auf Redis habe ich nie durchgeführt. Evtl. war das bereits Bestandteil des Raspi-Images. Daher wieß ich auch nicht wie ich das wieder zurückdrehe. Aus deinem interessanten Redis-Tutorial kann ich es auch nicht im Umkehrschluss herausfinden.
Ich habe daher dein Tip „iobroker setup custom“ ausprobiert. Es erscheinen dann jedoch viele Fragen nach Port und DB-Typ von Objekten und States. Gibt es dafür Standardeinstellungen die ich verwenden kann?
Hi, ich hatte das gleiche Problem und habe auch die DS218+ obwohl es mit dem Problem nichts zu tun hat. Ich habe einen Docker Redis erstellt (ankreuzt – für das gleiche Netzwerk) und dann lief es.
Hi,
erstmal will ich mich bei Dir bedanken. Ich nutze Deinen Docker Container und bin sehr zufrieden. Das einzige was ich aktuell nicht zum laufen kriege, ist der firetv adapter. Da muss man adb einbauen und ich habe die plattform-tools von android entpackt und den pfad eingebunden. Hier meine Fehlerbeschreibung: https://github.com/soef/ioBroker.firetv/issues/18
Gruss
Hallo,
ich habe es gerade mal getestet. Ich bekomme den FireTV Adapter zum Laufen. ADB und Fastboot müssen dazu installiert sein. Werde ich dem Image hinzufügen.
Hast du mal versucht adb connect aus dem Terminal im Container zu machen?
MfG,
André
Hallo Andre,
danke erstmal für das Docker Image – es läuft sehr gut auf meiner 916+.
Derzeit kämpfe ich aber damit, dass das IOBroker zum MI Gateway keine Verbindung aufbaut.
Netzwerkadresse und Key habe ich geprüft, die Lokale LAN Kommunikation erlaubt ( Mi APP ) – Port 9898 und 4321 UDP habe ich geöffnet .. es kommt aber trotzdem keine Verbindung zu Stande. Ich habe schon alles probiert.
Kann es mit der AES Encryption zu tun haben? – fehlt eventuell im Image eine Modul dazu?
Wäre für jeden Hinweis dankbar.
Viele Grüße und Danke,
Karl
Hallo Karl,
da kann ich dir leider nicht weiterhelfen. Mangels Mi-Produkten habe ich den Adapter nicht im Einsatz. Soweit ich das hier aber recherchieren konnte sind keine zusätzlichen packages erforderlich. Ich denke mit deiner Frage bist du im ioBroker-Forum besser aufgehoben.
Falls du etwas in Erfahrung bringst oder doch ein zusätzliches packet benötigt wird, lass es mich wissen.
Danke.
MfG,
André
Hallo Andre‘
danke für die Antwort. Da ich mit IOBroker nicht weitergekommen bin, habe ich die Einbindung des Gateways mit FHEM versucht ( ebenfalls über einen Docker Container ) – und da klappe es auf Anhieb.
Hier mussten aber zuvor ( wahrscheinlich auch wegen FHEM / Perl ) folgende Module installiert werden:
JSON
MULTICAST
CBC (for AES encryption)
CPAN Crypt::Cipher::AES (for AES encryption)
Ich habe nun das Problem im IOBroker Forum platziert – mal schauen, ob es hier weitergeht.
Viele Grüße und ich gebe dir gerne Rückmeldung.
Karl
Hi,
Habe nun schon seit mehreren Monaten den Iobroker auf dem Docker ohne Probleme am laufen.
Meine Frage wäre noch ob es eine Möglichkeit gibt ein USB Stick z.B. cc 2531 für das Zigbee Protokoll mit auf dem Docker und Iobroker laufen zu lassen?
Hallo Matze,
ja die Möglichkeit gibt es. Wurde auch schon mehrfach im Forum gefragt und beantwortet. Schau mal bitte in den Support-Thread (in der Anleitung verlinkt).
Ich persönlich habe meine Adapter mit USB-Hardware (Bluetooth und RFLINK) übrigens auf einem, per Multihost angebundenen, separaten Einplatinencomputer ausgelagert. Möchte einfach die Hardware nicht an der DS haben.
MfG,
André
Hallo,
kannst Du mir einen Tipp geben, wo ich den Support-Thread genau finde???
Suche mich dämlich im Forum und finde leider nix 🙁
Vielen Dank!!!
Grüße,
Homer
Hallo Homer,
ist auf der ersten Seite auch verlinkt, fast ganz unten: Thema im ioBroker-Forum
MfG,
André
Hallo André,
ich habe vor Docker auf einen Intel NUC laufen zu lassen. Kann ich dein Docker Image dafür auch nutzen oder ist es nur für die Synology gedacht?
Wo ist der Unterschied zu diesem Docker hier: https://github.com/ioBroker/ioBroker.docker oder diesem hier: https://github.com/Locke/docker-iobroker
Danke und Gruss
Alex
Hallo Alex,
das Docker-Image sowie die Anleitung sind natürlich ganz klar für den Betrieb auf der DiskStation optimiert. Trotzdem sollte es auch möglich sein, das Image auf anderen Plattformen zu verwenden. Im Forum habe ich gelesen, dass es auch Nutzer gibt, die das Image auf einem QNAP-NAS verwenden… Andere verwenden es unter Debian in einer virtuellen Maschine… Die Möglichkeiten sind vielfältig.
Wenn du dich mit Docker auskennst, dann sollte es also klappen…
Was den Unterschied zu anderen Images angeht, habe ich mein Image so entwickelt, dass es sich möglichst leicht administrieren lässt und von Adaptern ggf. benötigte Pakete leicht nachinstalliert werden können. Mein Image ist vielleicht etwas größer als andere, dafür fühlt es sich in der Kommandozeile ähnlich an wie ein normales Debian-basierendes System. Also praktisch wie ein virtueller Raspberry.
MfG,
André
Hallo André,
meine Synology ist etwas älter und kann leider noch kein Docker. Ich fange erst gerade mit dem ganzem Thema (Docker, SmartHome usw.) erst an. Danke für die schnelle Antwort.
Gruss
Alex
Moin André,
echt – geile Sache! Der Umzug vor Monaten von einem Pi auf die Diskstation mit Deinem Image und Deiner Anleitung klappte genau so reibungslos wie seitdem mehrere Updates des Containers.
Vielen Dank für Deine Mühe!!
Gruß, Jan
Ich hab leider Probleme, ne Verbindung aufzubauen. Im iobroker Forum gibts (bisher) keine Hilfe. Glaub ich hab dir schon ne mail geschickt – evt. kannst du helfen?!
nx.0 2018-07-06 09:36:12.330 info STATE_NOT_CONNECTED : Try to connect / reconnect : STATE_CONNECT_REQUEST(3) to STATE_NOT_CONNECTED(0).
knx.0 2018-07-06 09:36:12.330 info … not able to close connection, because already closed
knx.0 2018-07-06 09:36:12.329 info Connection persists…..closing now
knx.0 2018-07-06 09:36:10.828 info Send : UDP Connection Request : 06 10 02 05 00 1a 08 01 ac 11 00 01 ae 8a 08 01 ac 11 00 01 ae 8a 04 04 02 00 sent to 192.168.178.43:3671
knx.0 2018-07-06 09:36:10.828 info Connected – local UDP Server listening on 172.17.0.1:44682
knx.0 2018-07-06 09:36:10.827 info Event : UDP – listening
knx.0 2018-07-06 09:36:10.826 info Using UDP with local IP: 172.17.0.1
knx.0 2018-07-06 09:36:06.822 info STATE_NOT_CONNECTED : Try to connect / reconnect : STATE_CONNECT_REQUEST(3) to STATE_NOT_CONNECTED(0).
knx.0 2018-07-06 09:36:06.822 info … not able to close connection, because already closed
knx.0 2018-07-06 09:36:06.821 info Connection persists…..closing now
knx.0 2018-07-06 09:36:05.317 info Send : UDP Connection Request : 06 10 02 05 00 1a 08 01 ac 11 00 01 e2 44 08 01 ac 11 00 01 e2 44 04 04 02 00 sent to 192.168.178.43:3671
knx.0 2018-07-06 09:36:05.314 info Connected – local UDP Server listening on 172.17.0.1:57924
knx.0 2018-07-06 09:36:05.311 info Event : UDP – listening
knx.0 2018-07-06 09:36:05.305 info Debuglevel: 2 3
knx.0 2018-07-06 09:36:05.292 info Connecting to knx GW: 192.168.178.43:3671 with phy. Adr: 1.1.248
knx.0 2018-07-06 09:36:05.288 info knx license is OK.
knx.0 2018-07-06 09:36:05.106 info starting. Version 1.0.13 in /opt/iobroker/node_modules/iobroker.knx, node: v6.14.3
Hallo Daniel,
auf deine E-Mail habe ich gerade geantwortet. 🙂 Habe dein Problem auch schon im Forum gelesen. Leider kann ich dazu nicht viel sagen. So wie ich das sehe lauscht der lokale „UDP Server“ auf die Docker-interne IP-Adresse. Kann man im Adapter vielleicht irgendwas konfigurieren?
Sorry, da muss wohl ein KNX-Profi ran oder du postest mal einen Issue auf github (https://github.com/ioBroker/ioBroker.knx). Vielleicht meldet sich ja ein Entwickler.
Frage: Läuft dein Docker Container im Hostnetzwerk oder als bridged?
MfG,
André
Also ich hab deine Anleitung penibel befolgt. Sprich das is dann glaub ich host ^^
Werde mal den KNX-Adapter-Menschen versuchen zu erreichen und im KNX- sowie im Synology-Forum fragen ob jemand helfen kann. Danke
Hallo Andre,
danke! bei mir läuft dank dieser Anleitung nun iobroker auf der DS718+ .
Grüße Andreas
Hallo Andre,
Danke für den Docker und die tolle Dokumentation!
Ich habe auf den Docker auf einer DS218+ installiert und eine bestehende Installation übernommen.
Meine Erfahrungen:
1. Es scheint, dass einige Adapter besser neu instanziiert werden sollten, weil sonst die alte IP der ursprüngliches System da noch herumspukt.
2. Call Back Adresse für die CCU (Homematic) hatte sich natürlich geändert. Das vergisst man leicht und mir ist bis heute nicht klar, warum der Adapter diese Adresse überhaupt abfragt.
3. Ich hatte Schwierigkeiten mit der Text to Sound (sayit) Adapter und dem Ausgabegerät „Browser“. Wenn ich im Browser statt des Servernamens die feste IP der Synology angegeben habe, funktionierte es dann schließlich.
4. bei den Sonoff Schaltern musste ich (natürlich) eine neue IP in den WebUIs der Sonoff Schalter unter den MQTT Settings eingeben.
Alles in allem Kleinigkeiten.
– Der gesamte Transfer hat ca. 3 h Stunden gedauert.
– Die CPU Last liegt bei 1,25% für den Docker
– Erstaunlicherweise ist die Reaktionsgeschwindigkeit des ioBroker Admins nicht besser geworden als vorher auf meinem Raspi 3. Das hatte ich eigentlich erwartet, weil ja jetzt wesentlich mehr Serverpower vorhanden ist. Aber vermutlich wird die Performance doch sehr stark von dem Browser des Clients bestimmt.
Kleine Info noch… Unter den Einstellungen vom Container/Umwelt muss man die Zeitzone Einstellung ansonsten stimmen die Logs nicht.
Variable = TZ
Wert = Europe/Berlin
Gruß
MM
Hallo Michael,
vielen Dank für die Info. Die Variable habe ich bereits vor einiger Zeit mit in das Image aufgenommen. Die Version 1.1.2 ist allerdings noch Beta. Siehe hier: https://github.com/buanet/docker-iobroker
MfG,
André
Hallo Andre, tolle Anleitung ich habe mal einen Zeit lang dieses Homebridge Docker File am laufen gehabt. Da gab es keine Probleme mit dem Homekit. Vielleicht kannst Du ja erkennen dort anders ist: https://hub.docker.com/r/marcoraddatz/homebridge/
Hallo, vielen dank für die super Anleitung. Ich habe ioBroker damit ohne Probleme ans laufen bekommen. Einzig den Discovery Dienst muss ich deaktivieren. Solange der läuft, bekommen meine 2 normalen Amazon Echos keine Verbindung mehr nach draußen. Die Amazon Echo Plus läuft aber ohne Einschränkungen.
Cooler Docker Container und klasse Anleitung! Vielleicht für Andere von Interesse. Um den ioBroker Docker Container im gleichen Subnet wie die NAS zu starten, kann man das wie folgt tun:
https://forum.iobroker.net/viewtopic.php?f=8&t=13814&p=146708#p146708
Das hat den Vorteil, wenn man Apple Homekit mit iobroker.yahka nutzt, dass der Bonjour Dienst auf der NAS parallel laufen darf und kann. Auch sind mehrere ioBroker Instanzen damit abbildbar.
Hallo Stübi,
guter Hinweis. Die Lösung ist aber auf jeden Fall eher was für fortgeschrittene User. 🙂 Aktuell sammle ich Themen für ein Troubleshooting/ Best Practices. Darf ich dich da verlinken? Würde den von dir verlinkten Beitrag im Forum nehmen. Oder hast du es noch woanders gepublished?
MfG,
André
Klar darfst Du das verlinken!
Hi,
klasse Hinweis, danke!
Ich bin zwar als IT’ler grundsätzlich Putty, Konsolenzugang etc. gewohnt, versuche aber, mir mögliche Support-Aufwände durch Updates, die so etwas dann ggfs. wieder zerstören, zuhause zu vermeiden. Das reicht mir schon beim VPN-Server (Anleitung: https://www.synology-forum.de/archive/index.html/t-49661.html ) – da muss die Konfig nach jedem Update des VPN Server Pakets wieder angepasst werden 🙁
Gruß, Jan
Moin!
Tolle Anleitung, danke erstmal! Eine Ergänzung: Nutzt man innerhalb des ioBrokers YAHKA als Adapter, so muss auf der Diskstation in DSM der Bonjour-Dienst deaktiviert werden, sonst findet Apple Home die YAHKA Instanz nicht. Das könnte auch mit anderen Apple Homekit Connectors so sein.
Gruß, Jan
Hi André,
hab mal noch eine Frage an dich, hast du vielleicht auch eine funktionierende Beschreibung für die Installation einer Homebridge alles was ich jetzt so versucht habe ging nicht konnte mich mit keiner Lösung verbinden.
Grüße Steffen
Hallo Steffen,
da bist du bei mir leider an der völlig falschen Adresse. 🙂 Ich nutze generell keine Apfel-Produkte. Habe ein uraltes iPad hier rum liegen, aber das bekommt schon ewig keine Updates mehr, sodass ich, auch wenn ich wollte, keinerlei Anleitungen oder Unterstützung in diese Richtung bieten kann… Sorry…
MfG,
André
Hi André war ein Versuch.
Schönes Osterfest.
Grüße Steffen
Moin Steffen!
Ich hatte ein ähnliches Phänomen mit dem YAHKA-Adapter – schalt mal auf der DS den Bonjour-Dienst komplett aus, der verhinderte bei mir das Auffinden der Instanz des ioBrokers.
Ich habe das auch bereits als „normalen Kommentar“ hier gepostet, der muss aber noch von Andre freigeschaltet werden.
Gruß, Jan
Hi ich nochmal hab im ioBroker Terminal den Befehl ausgeführt dpkg-reconfigure tzdata die Zeit angepasst jetzt funktioniert es.
Grüße Steffen
Hallo Steffen,
das wäre auch meine Antwort gewesen. Falsche Zeit deutet eigentlich immer auf eine fehlerhafte Zeitzoneneinstellung im Container hin. Hatten wir auch schon mal im Forum-Thread, meine ich. Schön dass du es lösen konntest. Viel Spaß mit deiner ioBroker Installation.
MfG,
André
Hallo Andre,
hab erfolgreich den ioBroker an Hand deiner Anleitung am laufen, ich habe jetzt nur 1 Problem wenn ich im Explorer auf den iobroker zugreife und schaue ins Log geht die Uhrzeit richtig gehe ich raus also schließe den Explorer dann geht die Zeit im Log 2 Stunden nach und so schalten dann natürlich auch meine Scripte.
Stelle ich die Zeit auf meiner 1517+ 2 Stunden vor geht es ohne den Explorer richtig,
greife ich jetzt wieder über den Explorer auf ioBroker zu geht die Zeit dann natürlich 2 Stunden vor.
Ich hoffe du kannst mir hier helfen.
Wo und was ich hier vielleicht noch umstellen muss.
Grüße Steffen
Erst einmal vielen Dank für das klasse Tutorial, das bei mir gleich eine Frage aufgeworfen hat. Im Moment berteibe ich ioBroker auf einem Pi 3. Für Temp.- und Feuchtemessung ist ein Jeelink am USB-Anschluss des Pi vorhanden. Wie ist es dann beim ioBroker unter Docker auf der DiskStation? Wird der Jeelink einfach an einen der USB-Ports des NAS angeschlossen und fertig?
Hallo,
wenn du den Container mit „erweiterten Rechten“ ausführst, dann ist ein Zugriff auf USB-Geräte in der Regel problemlos möglich. Ich persönlich habe dafür einen Multihost-Slave laufen an dem die USB-Devices hängen (möchte die nicht an der DS haben). Für weitere Informationen schau mal im Forum Thread. Da war das auch schon Thema.
MfG,
André
Besten Dank für die Anleitung!
Damit bin ich erfolgreich vom RasPi auf die Synology umgezogen!
Nur beim Backupscript bekomme ich die Fehlermeldung:
#####################################################
############## 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: dial unix /var/run/docker.sock: connect: permission denied
Container in Docker gestoppt.
######################################################
Der Ordner /volume1/docker/iobroker/transfer wird gesichert…
Sicherung des Ordners erstellt.
######################################################
Entfernen alter Backups aus dem Verzeichnis /volume1/docker/docker_backups/archiv…
Alte Backups wurden entfernt.
######################################################
Der ioBroker-Container (iobroker) in Docker wird gestartet…
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/start: dial unix /var/run/docker.sock: connect: permission denied
Error: failed to start containers: iobroker
Container in Docker gestartet.
################### Script Ende ######################
Gibt’s einen Tip um das zu vermeiden?
Hallo Wolfgang,
unter welchem Benutzer wird das Backup-Script ausgeführt? Root? Scheint ein Berechtigungsproblem zu sein. Mehr Ideen hätte ich da jetzt so nicht…
MfG,
André
Das war das Problem! Falsche Benutzer! Vielen Dank für den Hinweis!
Seltsam. Ich habe als Benutzer „root“, jedoch kommt als Ausgabe im Aufgabenplaner immer:
sh: /volume1/Backup/iobroker_backup/backupscript.sh: Permission denied
Und es wird kein Archiv erstellt
Wenn ich das Script über Putty so starte
„sudo sh /volume1/Backup/iobroker_backup/backupscript.sh“
funktioniert es ohne Problem:
Hallo!
Ich habe über das KNX Forum ioBroker kennen gelernt. Das Christkind hat eine Alexa vorbei gebracht. Im Haus verwende ich einen Gira Home Server. Stinknormale (noch) Visualisierung! Natürlich kommt relativ bald die Idee, Alexa in die Steuerung einzubinden.
ioBroker auf meiner Synology RS812+ nach deinen Angaben aufgesetzt; hat auf Anhieb funktioniert. Instanzen geladen und nach Forenangaben eingestellt.
Allerdings auf iobroker.net (App Keys installiert!) wird mir bei den Anwendungen nichts angezeigt. Laut Forum stimmt da etwas mit den Einstellungen bei den Instanzen nicht.
Meine Frage, bevor ich mich bei ioBroker „verliere“: Kann es sein, dass ich am Synolody Server in der Firewall eine Regel dazu erstellen muss?
Danke im Voraus!
LG
Hallo Andreas,
sorry für die späte Rückmeldung. Bis jetzt habe ich noch keine Probleme mit der Synology Firewall gehabt, geschweige denn irgendetwas konfigurieren müssen. Ich nutze den Cloud-Adapter zwar aktuell nicht, hatte ihn aber kurzzeitig in Betrieb. Kann mich nicht erinnern dass ich da separat etwas konfigurieren musste. Wenn du in deinem Container den Haken für „Dasselbe Netzwerk wie Docker host verwenden“ gesetzt hast, dann werden deine Ports an der Synology automatisch frei geschaltet. Eventuell kann/ konnte dir jemand im ioBroker-Forum helfen?
MfG,
André
Hi, vielen Dank für die tolle Anleitung.
Ich habe nun erfolgreich Docker / IoBroker auf meiner Synology laufen.
Was mich jetzt nur noch stört (ein bisschen), dass die Synology nicht mehr in den Standby Modus geht und somit etwa 20 Watt zieht. Gibt es eine Möglichkeit das IOBroker Verzeichnis oder das Dockerverzeichnis auf einen USB Stick zu schieben. Vielleicht gehen dann wenigstens die Festplatten in den Standby. Oder gibt es hier eine weitere Idee zum Stromsparen ?
Vielen Dank
Hallo,
zum Thema Strom sparen kann ich leider nicht so viel sagen. Meine DS hat eine Menge Aufgaben, unter anderem auch eine Owncloud-Instanz die die ganze Familie nutzt und einen Media-Streaming Server sowie einen TV-Server. Damit läuft das Ding sowieso 24/7. Was das Auslagern auf einen USB-Stick angeht, bin ich mir nicht sicher ob das so klappen kann. Kommt vielleicht auf ein Test an. Weiß aber nicht ob Standby der Platten dann funktioniert…
MfG,
André
Hi Jack, habe das bei mir auch auf einer Syn laufen und die geht problemlos in den Stand-by
Hallo André,
vielen Dank für deine tolle Anleitung hier. Ich möchte gerne 2 Container parallel laufen lassen. Die Admin Oberflächen würde ich dabei gerne über verscheidene Port ansprechen. Ist das möglich?
Hintergrund der Frage ist, dass meine „alte“ Installation zunehmend Probleme macht, die ich nicht in den Grifff bekomme. So ist mein Gedanke parallel zunächst die neue Installation zum laufen zu bekommen und die Daten neu einzupflegen bevor ich die alte abschalte.
Danke für dein Mühe
Gruß Sven
Hallo Sven,
grundsätzlich ist das natürlich möglich. Allerdings musst du dann selbst mit deinen Ports haushalten. Nach meiner Anleitung ist es ja so, dass durch das Häkchen bei „Selbes Netzwerk verwenden“ einfach alle Ports 1zu1 vom Container zur DS durchgereicht werden. Wenn du das Häkchen weg lässt musst du alle Ports die ioBroker verwendet selbst mappen. Das heißt du musst sagen welcher Port im Container über welchen Port der DS erreichbar ist. Da z.B der Port 8081 auf der DS vom ioBroker in deinem alten Container bereits verwendet wird müsstest du im neuen Container den Port 8081 z.B. manuell auf den Port 9091 mappen (in den Containereinstellungen).
Ich hoffe das hilft dir so kurz umrissen weiter. Viel Erfolg.
MfG,
André
Hallo André
vielen Dank, das war die Lösung die ich brauchte. Mach weiter so 🙂
Gruß Sven
Hallo André,
danke erstmal für Deine Antwort und Hilfe. Du hast schon im besagten Thread im ioBroker Forum geantwortet.
Alles klar. Hatte es dann doch schnell gefunden. 🙂
Ich wollte/habe gerade Dein Paket installiert, kann es aber nicht über 8081 erreichen. Im ioBroker Forum gibt es auch schon eine Meldung dazu. Kannst Du Dir das Problem bitte mal anschauen.
Hallo Heiko,
sorry für die Umstände. Ich hatte einen Fehler im Startscript. 🙁 ist mir nicht aufgefallen, weil er nur bei Neuinstallationen greift. Bin gerade dabei ein neues Image zu erstellen und anschließend zu testen. Damit sollte dann eigentlich auch die Admin-Oberfläche bei einer Neuinstallation wieder erreichbar sein.
Welche Meldung im Forum meinst du? Nur damit ich da ggf. auch drauf antworten kann…
MfG,
André
Neues Image getestet, Fehler scheint behoben.
Habe Dein Paket heute installiert, kann aber auch die Oberfläche mit…:8081 erreichen.
Was könnte der Fehler sein. Bin bei der Installation komplett deiner Anleitung gefolgt.
Hallo Holger,
ich gehe mal davon aus, dass du die Oberfläche nicht erreichen kannst. Das kann viele Ursachen haben. In Bezug auf Docker auf der Synology könnte es sein, dass der Port bereits von einem anderen Dienst/ Paket auf der DiskStation verwendet wird.
Wie du prüfen kannst ob iobroker bzw. der Admin-Adapter überhaupt läuft, dazu findet man im Forum reichlich Themen.
MfG,
André
Hallo, klasse Anleitung! Was kann ich machen wenn das Terminal Fenster im Docker nichts anzeigt. Rein klicken bringst leider nichts. ich bekomme keine Rückmeldung aus dem Terminal Fenster.
Hallo Marco,
habe ich heute auch festgestellt. Ist ein Bug der durch die letzten Änderungen entstanden ist. Du kannst aber über den Button „Erstellen“ einfach eine weitere Terminal Session starten. Einen Fix für das Verhalten habe ich gerade gemacht. Kommt mit dem nächsten automatischen Image Build heute Nacht…
MfG,
André
Habe eine DS916+ hier als Basis für das Docker Image genutzt… Leider startet Dienst ioBroker nicht zuverlässig.
Habe im Startupscript die Sleeptime auf 20 erhöht, meine ersten Test zeigen, dass der ioBroker nach dem Backup nun wieder gestartet wird. Vielleicht hilfts ja auch anderen
Gruß Koggel
Ups, da ist ja noch ein Kommentar. 🙂 Bei dir greift also eine größere Pause im Startscript. Werde das mal testen. Allerdings kann es durchaus vorkommen, dass der Fehler nicht bei jedem Starten vorkommt (bei mir zum Beispiel nur sehr selten).
MfG,
André
Hallo Andre,
tolle Anleitung, damit waren die erste Schritte mit ioBroker echt leicht. Habe mich denke ich komplett an die Anleitung gehalten. Aber nach Erstellung des Backups, wird der Docker gestartet aber der iobroker läuft nicht und muss manuell über den Terminal gestartet werden. Habe ich was vergessen? Oder kann man das irgendwie ändern?
Gruß Koggel
Hallo Koggel,
danke für das Feedback. Ich vermute du erstellst dein Backup mit dem von mir zur Verfügung gestellten Script? Am Ende des Scripts wird der Container automatisch neu gestartet. Aktuell gibt es einen Bug der bei einigen Benutzern verhindert dass nach dem Neustart des Containers ioBroker sauber anläuft. Im Log steht dann sowas wie „iobroker daemon already running“. Ich arbeite aktuell an einem Fix. Hoffe dass ich das bald in den Griff bekomme. Sorry.
MfG,
André
Hallo und erstmal Danke für die Anleitung!
Scheint alles soweit zu klappen mit der Installation von Docker und ioBroker, aber die Admin Oberfläche über Port 8081 lässt sich nicht erreichen.
Im Protokoll erscheinen Fehler die irgendwie mit (module.js:471 throw err) zusammenhängen?
Habe auch mal ein anderes Docker-ioBroker Image (von bluefox) installiert, in der ich die Admin Oberfläche mit 8081 erreichen kann.
Mit freundlichen Grüßen
Dirk
Hallo Dirk,
tut mir leid dass es bei dir nicht klappt. Leider kann ich mit der Fehlermeldung allein nicht viel anfangen. Welche Schritte der Anleitung hast du ausgeführt? Hast du Daten wiederhergestellt? Läuft ioBroker wenn du ausschließlich die unter „Standardinstallation“ beschriebenen Schritte ausführst?
Da sich die Kommentare hier nicht wirklich für ausführlichen Support eignen schlage ich vor dass du dich mal im ioBroker-Forum Thread meldest und dann am Besten einmal ausführlich beschreibst an welchem Punkt es hängt. Ausführliche Logs sind auch immer sehr hilfreich (Protokoll vom Container und/ oder Ausgabe wenn man manuell versucht iobroker zu starten).
MfG,
André
Hallo
sehr toll gemacht das Tutorial. Ich bekomme beim Backup mit dem Skript ein Problem.
Sehr geehrter Benutzer,
Aufgabenplaner hat eine geplante Aufgabe abgeschlossen.
Aufgabe: ioBroker Backup
Startzeit: Thu, 09 Nov 2017 10:36:46 GMT
Stoppzeit: Thu, 09 Nov 2017 10:36:46 GMT Aktueller Status: 126
Standardausgabe/Fehler:
sh: /volume1/docker/iobroker_backup/backupscript.sh: /bin/bash^M: bad interpreter: No such file or directory
Mit freundlichen Grüßen
Synology DiskStation
Woran kan das liegen? Sorry bin blutiger Anfänger 🙂
Liebe Grüße Christian
Hallo Christian,
ich vermute du hast deine Scriptdatei unter Windows erstellt? Falls ja, dann könnte die Ursache sein, dass die Datei nicht im Unix-Format erstellt wurde. Versuche mal die Scriptdatei mit z.B. notepad++ zu erstellen und achte dabei darauf, dass die Datei im Unix-Format erzeugt wird. Unterstützung dazu findest du auch zu Hauf bei Google.
Hier mehr Infos…
MfG,
André
Hallo Andre,
bei Seite 4 und dem Schritt 2 wo mit dem Befehl „tar -xf iobroker_verzeichnis.tar“ das Verzeichnis wieder hergestellt werden soll, kam bei mir die Meldung „Entferne führende „/“ von Elementnamen“ und das Verzeichnis wurde in meinem Transfer-Ordner wieder hergestellt, nicht in „/opt/iobroker“. Ich hab den Befehl mit „tar -xPf …“ dann ausgeführt und der Parameter „P“ hat das dann korrekt gemacht.
Vielleicht solltest du das bei deiner super Anleitung hier anpassen. Vielen Dank und Gruß AlGu
Hallo AlGu,
danke für den Hinweis. Schau mal in die Hinweisbox zum „verpacken“ des Ordners. Hast du mit „tar -cPf …“ gepackt? Falls ja, meine ich, dass man beim Entpacken die Option nicht mehr benötigt. Ich werde das aber nochmal testen und dann ggf. das Tutorial anpassen.
MfG,
André
Hallo
Ich hab das mit dem Paramter tar -xPF auch nun sauber entpacken können.
VIelen Dank für den Hinweis
Aber leider startet mir der ioBroker nicht mehr korrekt
root@ioBroker:/opt/iobroker# pkill io
root@ioBroker:/opt/iobroker# cd /opt/transfer/
root@ioBroker:/opt/transfer# ls
iobrokerbackup.tar
root@ioBroker:/opt/transfer# tar -xPf iobrokerbackup.tar
root@ioBroker:/opt/transfer# cd /opt/iobroker/
root@ioBroker:/opt/iobroker# iobroker host this
No connection to states 127.0.0.1:6379[redis]
root@ioBroker:/opt/iobroker#
root@ioBroker:/opt/iobroker# node node_modules/iobroker.js-controller/controller
.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
[1] 100
root@ioBroker:/opt/iobroker#
Kann mir jemand ev. sagen was hier flasch gelaufen ist ?
Kann ich das noch irgenwie reparieren ?
Danke schon mal für eure Hinweise und danke für die tolle Anleitung hier.
Christian
Hallo Christian,
das lässt sich beheben. Offensichtlich lief dein iobroker vor dem Umzug mit redis als states db. Redis ist aber nicht im Container enthalten. Du hast jetzt verschiedene Möglichkeiten. Entweder du installierst redis über die Synology Paketverwaltung (so läuft es bei mir), oder du lädst redis für Docker und startest daraus einen weiteren Container, oder (nicht empfohlen!) installierst redis über die Kommandozeile im iobroker Container. Willst du auf redis verzichten kannst du mit „iobroker setup custom“ (denke es war so, such aber am besten nochmal im Forum dazu) in der Kommandozeile redis auch wieder ganz deaktivieren.
MfG,
André
PS: Deine Frage kommt etwas zu früh. Meine nächste Anleitung wird Redis und Multihost zum Thema haben… Wann ich veröffentliche kann ich aber noch nicht absehen 🙁
Hallo Andre,
Vielen herzlichen Dank.
Genau das war das Problem. Ich habe jetzt redis in Docker laufen und sofort hat mein ioBroker gestartet. Bin total happy das das so super funktioniert hat.
Vielen lieben Dank nochmals für deine tolle und schnelle Hilfe.
LG
Christian
Hallo,
ich habe das ganze nach deiner Anleitung gemacht. Leider hab ich im javascript-Adapter einen merkwürdigen Fehler:
.toLocaleTimeString() liefert mir die falsche Uhrzeit – sie ist um zwei Stunden versetzt. Koordinaten sind korrekt eingetragen. Auf dem raspi hatte ich bei gleichem Script das Problem nicht. Gebe ich im Terminal des Dockers date ein, wird mir die korrekte Uhrzeit angezeigt.
Eine Idee?
Hallo Daniel,
bin ich bis jetzt noch nicht drüber gestolpert. Die locales im Container werden bei dir ja offensichtlich richtig gesetzt (passiert beim Build des Images automatisch). Habe allerdings aktuell keine Zeit das mal bei mir zu testen. Hast du im ioBroker-Forum mal danach gefragt? Eventuell kann dir einer von den Java-Profis eine mögliche Ursache nennen. Sorry.
MfG,
André
Hallo Andre,
das muss ich mal testen.
Mir ist aufgefallen, dass sich jedoch der Container 1x am Tag „unerwartet“ beendet.
Zeitlich ist das der Raum wo das Script läuft, das passt soweit auch.
Der Container wird dann danach wieder gestartet, jedoch nicht der Dienst iobroker.
Anscheinend müsste das Script noch so erweitert werden, dass nach dem Start des Containers nochmal der Dienst gestartet wird. (Falls dieser schon laufen sollte, wäre das ja kein Problem, aber eine zusätzliche Absicherung).
Gruß
Jan
Hallo Jan,
das ist so aber nicht richtig. Der Container und auch ioBroker sollten durch laufen. Bei mir ist das zumindest so.
Gibt es Einträge im Protokoll? Oder legt sich deine DS zufällig schlafen? Im Forum habe ich auch jemanden, der Probleme mit dem Aufwecken der DS hat. Normalerweise sollte das Script bei jedem Start des Containers ausgeführt werden. Allerdings habe ich auch schon erlebt, dass der Container sich nicht sauber beendet und beim erneuten Starten dann ioBroker nicht korrekt mit startet. Habe aber noch keine Idee wie ich das im Script abfangen könnte…
MfG,
André
Habe heute mein ioBroker-System vom Raspi auf eine DS1515+ umgezogen.
Der Grund dafür war ganz einfach… Auch wenn der Raspi selbst sehr stabil läuft, ist er Leistungsmässig spätestens beim RAM limitiert. Die Synology ist da mit aktuell 6GB schon deutlich besser bedient.
Weiterhin ist mir einmal eine ioBroker-Installation kaputt gegangen, nachdem die SD-Karte durch zu viele Schreib/Lesevorgänge von heute auf morgen den Geist aufgegeben hat.
Durch den „ausgelagerten“ Container wird ein Backup nun viel einfacher. Mit dem Script von dir sogar noch einfacher!
Zusätzlich sicher ich übrigens mit Hyperbackup das ganze NAS nochmal verschlüsselt bei Amazon in die Cloud. (Kostet mit Amazon Prime aktuell in DE noch 70€ im Jahr für unlimited Space!)
Dank deiner sehr ausführlichen Anleitung habe ich nun eine extrem schnelle ioBroker Installation welche zudem noch deutlich besser gegen Ausfälle geschützt ist.
Eine Anmerkung jedoch noch:
Bei der erweiterten Einrichtung tust du den ioBroker Dienst stoppen.
Eine Info dass dieser natürlich auch wieder gestartet werden muss wäre nicht schlecht. Denn nachdem ich die Machine gestoppt/gestartet hatte wurde der Dienst dort bei der Einrichtung nicht von selbst neu gestartet.
Vielen Dank nochmal für die Mühe!
Jan
Hallo Jan,
danke für dein ausführliches Feedback.
Bin mir jetzt gerade nicht sicher ob ich die richtige Stelle in der Anleitung gefunden habe, aber generell sollte ioBroker jedes Mal wenn du den Container stoppst und startest automatisch gestartet werden. Dafür sorgt eigentlich das Script „startup.sh“. Und da du nach der Anpassung des Mount-Pfades ja den Container startest sollte ein separates starten von iobroker nicht nötig sein.
Was sagt denn das Protokoll vom Container dazu? Gibt es dort eine entsprechende Meldung? Wie sieht es jetzt aus wenn du den Container stoppst und startest? Startet ioBroker automatisch?
MfG,
André
Hallo,
Danke für die super Anleitung.
Hat alles wunderbar geklappt.
Nur der letzte Schritt bzgl. der Änderun des Hostnamens nicht.
Bei mir kommt eine Meldung
No connection to states 127.0.0.1:6379[redis]
Was muss ich tun?
Grüße
Thomas
Hallo Thomas,
danke für deine Feedback.
Die Meldung sieht für mich aus, alsob deine ursprüngliche Installation mit der redis Datenbank für die States gearbeitet hat.
Entweder du stellst über „iobroker setup custom“ (http://www.iobroker.net/docu/?page_id=3068〈=de) zurück auf file als verwendete db oder du installierst eine Redis Instanz. Du kannst dabei auch den Redis Server aus dem Paketzentrum der Diskstation nehmen (so habe ich es gemacht). Gucken ob der Port stimmt uns los gehts. Alternativ ist auch denkbar Redis im Container zu installieren… Halte ich persönlich aber nicht viel von 😉
MfG,
André