NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@ts020339 said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
ist das bei Dir eingetragene Modul "xmlhttprequest" relevant für den mihome-vacuum?
Beide im Javascript-Adapter eingetragenen Module sind nur dann notwendig, wenn du die Live-Karte über den Javascript-Adapter erstellen lassen willst. (siehe 4 Beiträge weiter oben)
Über den Mihome-Adapter hat das bei mir nicht funktioniert...da habe ich aber grade mal im Partner-Thread eine Anfrage gestartet.Wieso die Installation/upgrade bei dir scheitert kann ich mir nicht erklären.
Bei mir hatte es funktioniert - ich habe da aber auch viel rum gespielt, weil das mit der ENV-Variable vorerst nicht funktionierte. Scheinbar habe ich dann irgendwo unbewusst was richtig gemacht.
Letzten Endes funktionierte bei mir erst alles schlagartig auf Anhieb, nachdem die Pakete erfolgreich über die ENV-Variable installiert wurden.Hier muss ich passen.
Hoffentlich kann dir wer anders weiter helfen.(PS: Meine NPM-Version ist ebenfalls 6.13.4 und meine MiHome-vacuum-Version ist die 2.0.7
Ich hatte vorher keine alte Version des Adapters installiert...vielleicht bringt es stumpf was den Adapter über den Admin-Adapter nochmal komplett raus zu werfen und anschließend über den Admin-Adapter komplett in aktueller Version zu installieren?...sieht wenig vielversprechend aus, wäre aber einen schnellen Versuch wert) -
@FoodFighter said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Ich hatte vorher keine alte Version des Adapters installiert...vielleicht bringt es stumpf was den Adapter über den Admin-Adapter nochmal komplett raus zu werfen und anschließend über den Admin-Adapter komplett in aktueller Version zu installieren?...sieht wenig vielversprechend aus, wäre aber einen schnellen Versuch wert)
habs schnell mal ausprobiert, leider ohne Erfolg
... NUR... wie bekomme ich denn jetzt meine alte 1.1.5 zurück?? Die hat wenigstens funktioniert... Eine Auswahl der zu installierenden Version im Expertenmodus gibt es offenbar nur, wenn der Adapter selber installiert ist... habe ich gerade festgestellt... -
@andre said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Mit umgezogen sind natürlich auch die weiteren Container mit redis, mariadb, influxdb und grafana. Zum Glück alles ohne größere Probleme.
Jetzt hab ich endlich produktiv mal mit "Stack" im Portainer gearbeitet. Das schreit irgendwie nach nem neuen Tutorial...Ich habe auch noch andere Container mit umgezogen. Bei denen hat der Zugriff übers Netzwerk aber funktioniert, weil ich nur für iobroker MACVLAN nutze. Und das hat natürlich dann umso mehr dazu geführt, dass ich die Ursache beim Image gesehen habe
Die Stack Funktion in Portainer wollte ich in diesem Zuge auch mal ausprobieren, hat aber ebenfalls nicht funktioniert, wenn ich in dem yaml File noch eine Network config mit angegeben habe. Gab einen tollen Fehler "page not found" und dann habe ich wieder regulär docker-compose genutzt. Kann natürlich auch einfach am genannten Kernel Bug gelegen haben....
Generell ist diese Funktion in Portainer auch einfach schlecht bis gar nicht dokumentiert oder täuscht das? Lohnt es sich das Thema noch mal anzugehen?
@FoodFighter
Bei solchen absurden Fehlern ist es wirklich nur Glück ob man die Lösung findet oder nicht. Hätte ich nicht aus reiner Verzweiflung das mit dem Ping probiert, hätte ich ja nicht mal gewusst wonach ich googeln soll...
Aber auch irgendwie verwunderlich, dass ein solcher Bug seit Mitte Januar im Kernel ist und noch kein offizieller Patch veröffentlicht wurde. -
@andre Hi Andre, d.h. du hast jetzt eine docker-compose mit macvlan für den ioBroker? Würdest du diese mal zeigen?
-
@darkiop said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@andre Hi Andre, d.h. du hast jetzt eine docker-compose mit macvlan für den ioBroker? Würdest du diese mal zeigen?
Bin zwar nicht Andre, kann dir aber mal mein File zeigen:
version: '2.4' services: iobroker: image: buanet/iobroker:beta hostname: iobroker-docker networks: bridge: macvlan: ipv4_address: 192.168.178.162 #ports: # - "8081:8081" # - "8082:8082" volumes: - "./iobroker:/opt/iobroker" devices: - "/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00xxx-if00:/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00xxx-if00" restart: always depends_on: - fhem fhem: image: fhem/fhem:latest networks: - bridge ports: - "8083:8083" volumes: - "./fhem:/opt/fhem" devices: - "/dev/serial/by-id/usb-03eb_AT91USBSerial1-if00:/dev/serial/by-id/usb-03eb_AT91USBSerial1-if00" #environment: # FHEM_UID: 6061 # FHEM_GID: 6061 # TIMEOUT: 10 # RESTART: 1 # TELNETPORT: 7072 # TZ: Europe/Berlin restart: always networks: bridge: driver: bridge macvlan: external: name: macvlan0
Ergänzungen?
Das macvlan muss man in dem Fall per "docker networt create -d macvlan -..." erst noch erstellt werden. Soweit ich weiß kann man das aber komplett im compose File erledigen.
-
Ich habe hier mal ein Beispiel. Nur mit ioBroker-Container und den Netzwerken (MACVLAN + internes Bridge Netzwerk). Werde dazu auch noch ein Tutorial schreiben. Dann aber gleich zusammen mit einem Redis-Container. Dazu muss die aktuelle Beta aber erst zum "latest" werden (wegen der Möglichkeit gleich beim Setup Redis zu konfigurieren).
version: "2" services: iobroker: container_name: iobroker image: buanet/iobroker:latest hostname: iobroker restart: always networks: macvlan: ipv4_address: 192.168.0.73 bridge: ipv4_address: 172.18.0.2 environment: - PACKAGES=nano volumes: - /volume1/docker/iobroker_data:/opt/iobroker networks: macvlan: driver: macvlan driver_opts: parent: eth0 ipam: config: - subnet: 192.168.0.0/24 gateway: 192.168.0.1 ip_range: 192.168.0.72/29 aux_addresses: net-address: 192.168.0.72 # Reservierte Adresse, damit Docker nicht die Netzadresse vergibt. bridge: driver: bridge ipam: config: - subnet: 172.18.0.0/16 gateway: 172.18.0.1 ip_range: 172.18.0.1/24
MfG,
André -
@andr @Holzlenkrad Danke euch, das deckt sich fast mit meinen Versuchen.
-
Hallo,
André hat mich hierher verwiesen...ich hoffe, die Frage ist hier richtig, da zwar nicht Synologie, aber das Docker-Image von buanet auf dem Pi verwendet wird...Hakelig für Neulinge ist ja die Netzwerkkonfiguration des Containers. Ich habe folgendes Heimnetzwerk (FritzBox = 192.168.1.1):
Ich wollte (um möglichst nah an Andrés Anleitung zu bleiben) mit MACVLAN arbeiten. Wenn ich das richtig verstanden habe, dann sollte die ioBroker-Installation unter 192.168.1.250 ansprechbar sein für all die anderen Smart-Home-Geräte.
Die Konfiguration habe ich folglich (hoffentlich richtig) so erstellt:
Gegen Ende der Container-Erstellung habe ich von meiner Fritzbox dann auch die Mail bekommen mit der Heimnetzänderung:
Folgendes Problem nun: Ich kann .250 und .16 von meinem Windows-PC aus nicht anpingen (Zeitüberschreitung der Anforderung.) .16 verstehe ich auch nicht, da mein Raspi von der Fritzbox fix die 25 per DHCP zugewiesen bekommt (und darunter auch erreichbar ist). Nach einem Reboot des Raspis habe ich noch ne Mail bekommen, nun soll der Raspi auf .17 laufen, tut er aber nicht (fix auf 25 und ist dort erreichbar).
Hat jemand ne Idee, was ich da falsch mache? Habe ich das Konzept nicht verstanden? Die virtuelle IP von ioBroker (250) sollte doch im gleichen Netz wie alle anderen Geräte sein? Oder hätte ich da z.B. 192.168.2.x für alle Netzwerk-Angaben oben verwenden sollen? Aber dann würde ioBroker mit 192.168.2.250 ja nicht mit den Geräten in 192.168.1.x kommunizieren können, oder?
Viele Grüße, Steffen
-
@stevie77
Hast du gelesen, was "Holzlenkrad" diesbezüglich 14 Beiträge über deinem geschrieben hat?
Beitrag 1683 -
@stevie77 : was ist denn bei Deinem Raspi in den NEtzwerkeinstellungen eingestellt? Eine fixe IP-Adresse (z.B. die 192.168.1.16? ) oder dass er sich die IP von einem DHCP Server abholt?
Außerdem: Hängt Dein Raspi über WLAN oder LAN im Hausnetz?
Ich würde in Deinen Containereinstellungen auch für den iobroker Container mal eine fixe MAc-ADresse einstellen (z.B. die jetzt angezeigt). Bei mir war das z.B. sonst öfeters so, dass er bei ERstellung eines neuen Containers (z.B. wegen update) immer mal gern eine neue MAc-Adresse generiert hat und damit die Fritzbox-Einstellungen scheiterten.
Gruß,
Tim -
@FoodFighter Nee, ich bin irgendwie noch etwas überfordert mit der Erstellung und Darstellung der Beiträge in diesem Forum. Werde mir das aber gleich mal ansehen und versuchen zu verstehen...
-
@stevie77
Ansonsten einfach "sudo rpi-update" eingeben, Raspi neustarten und den Docker Container noch mal genau so erstellen (alten sicherheitshalber löschen; das macvlan-Netzwerk musst du nicht neu erstellen), wie du es bisher gemacht hast. Das war nämlich im Endeffekt sogar richtig. -
@ts020339 Der Raspi holt sich die IP per DHCP von der Fritzbox und bekommt dann immer die 25 zugewiesen. Er hängt per Kabel im Hausnetz. Die Fritzbox hat ja auch scheinbar erkannt, dass da jetzt ein neuer "PC" (vergebener Name PC-192-168-1-250) auf 250 liegt (zeigte ihn erst im Abschnitt Aktive Verbindungen an, danach irgendwann im Abschnitt Ungenutzte Verbindungen - wobei da viele Geräte angezeigt werden, die funktionieren).
-
@Holzlenkrad Nur zum Verständnis als Neueinsteiger: Ist die ganze Technik rund um Docker so unzuverlässig, dass man mehrere gleiche Versuche braucht bis es zufällig mal klappt? Oder was ist der Hintergrund dieses Ratschlags (fast alles wegwerfen und dann nochmals gleich machen)?
Mein Vorgehen und Verständnis des Ganzen ist also aber prinzipiell richtig wenn du schreibst, dass "es im Endeffekt sogar richtig" war? Es braucht eine IP (250 bei mir) im gleichen Subnetz (192.168.1.x bei mir) auf der die Heimnetzgeräte dann ioBroker ansprechen können und von ioBroker angesprochen werden, ja? Und als Gateway gibt man die Fritzbox an? -
@stevie77
Nein, Docker funktioniert so wie es soll.Aber der Linux Kernel hat seit Januar einen Bug und mit sudo rpi-update installierst du einfach einen neuen Kernel, ohne Fehler.
Der Vorschlag den Container zu löschen war nur, damit es danach auch sicher klappt. Aber wenn ich noch mal so darüber nachdenke, sollte es auch ohne den Docker Container zu löschen direkt funktionieren.
Wie gesagt, hast du den Kernel von Raspberry Pi schon aktualisiert? Es bringt dir nichts, wenn du jetzt deine Konfiguration hinterfragst, wenn das Problem an einer völlig anderen Stelle liegt...
-
Ich verstehe den ganzen Hype um das MACVLAN noch nicht so ganz recht.
Mag zwar schön und gut sein, dass der Container eine eigene IP bekommt. Jedoch bringt es den Nachteil mit sich, dass z.B. der InfluxDB- oder Mosquitto-Container auf dem gleichen Gerät (Rasppi) nicht mehr erreichbar ist für iobroker, weil beide über die gleiche Netzwerkkarte mit zwei IPs funken.
Grundlegend funktioniert das MACVLAN jetzt, dank dem Kernel-Update...
Ich persönlich sehe aber mehr Sinn in einem Bridge-Netzwerk mit entsprechenden Port-Freigaben.
Oder verdenke ich mich hier irgendwo? -
@FoodFighter Mich hat halt dazu in der Anleitung der Satz "Eine entsprechende (noch unvollständige) Liste der Ports habe ich in der Knowledgebase abgelegt." abgeschreckt. Das könnte für mich als Anfänger zu dem Szenario führen, dass ioBroker nicht ordentlich funktioniert, weil irgendwelche Ports vergessen wurden zu öffnen und ich werde u.U. nie rausbekommen, welche das sein könnten...
-
@FoodFighter said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Jedoch bringt es den Nachteil mit sich, dass z.B. der InfluxDB- oder Mosquitto-Container auf dem gleichen Gerät (Rasppi) nicht mehr erreichbar ist für iobroker, weil beide über die gleiche Netzwerkkarte mit zwei IPs funken.
Hat bei der der InfluxDB Container auch eine eigene IP-Adresse über macvlan? Oder nutzt du da einfach nur den Bridge Mode?
Dass die Docker Container mit macvlan nicht mit dem Host (und entsprechend den Container im Bridge Mode) kommunizieren können, ist ein bekanntes Problem. Das löst man, indem man eine zusätzliche virtuelle Netzwerkkarte auf dem Raspberry Pi erstellt und die mit der physischen verknüpft.
War mir aber zu kompliziert. Ich habe das jetzt so gelöst, dass bei mir iobroker sowohl das macvlan Interface hat, als auch das Bridge Interface zur Kommunikation mit den anderen Containern
-
@Holzlenkrad said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Hat bei der der InfluxDB Container auch eine eigene IP-Adresse über macvlan? Oder nutzt du da einfach nur den Bridge Mode?
InfluxDB, Mosquitto und Portainer laufen im Bridge-Mode. (iobroker im Moment auch noch/wieder)
Pihole läuft im Host-Mode.Das löst man, indem man eine zusätzliche virtuelle Netzwerkkarte auf dem Raspberry Pi erstellt und die mit der physischen verknüpft.
Das klingt mir persönlich auch nach viel zu viel Frickelei und nach unnötigen Fehlerquellen
Ich habe das jetzt so gelöst, dass bei mir iobroker sowohl das macvlan Interface hat, als auch das Bridge Interface zur Kommunikation mit den anderen Containern
DAS klingt nach der Lösung, die ich auch bevorzugen würde! Wie hast du dem Container denn zusätzlich zum macvlan noch das Bridge-Interface eingehängt?
Über Portainer hat man pro Container nur die Möglichkeit ein Netzwerk auszuwählen...oder ich übersehe den Punkt immer und immer wieder.Auf die Weise wär das ganz cool. IOBroker hätte seine eigene IP, Sachen wie COAP (Shellies) würden funktionieren, weil iobroker nicht im virtuellen Docker-Netzwerk versteckt ist, die Kommunikation zwischen den Containern würde funktionieren....Das klingt für mich nach dem ultimativen Masterplan
[edit]
oh...ich lese oben gerade - du hast das über ein docker-compose-yml gemacht.
Dann frage ich mal andersrum -> kann man das auch über Portainer machen? (rein aus Interesse)[edit-edit]
Ja, geht.
Container mit einem Netzwerk erstellen, danach den gestarteten Container anklicken (Übersicht) und dann unten auf "Join Network"Sau Geil...det freut mir - danke!
-
@FoodFighter said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
[edit]
oh...ich lese oben gerade - du hast das über ein docker-compose-yml gemacht.
Dann frage ich mal andersrum -> kann man das auch über Portainer machen? (rein aus Interesse)Hab gerade mal in Portainer rein geguckt, aber da auch keine Möglichkeit gefunden.
Ja genau, per docker-compose. Hat noch weitere Vorteile. Z.B. müssen Ports für den Zugriff auf die Datenbank gar nicht mehr gepublisht werden, wenn ohnehin nur Dienste, die unter Docker laufen in die Influx DB schreiben dürften, weil dann alles Docker-intern abläuft.
Das macht die ganze Sache natürlich noch mal komplexer. Aber wie gesagt, für mich funktioniert es so ganz gut und ich habe mit dem Setup bis jetzt zum Kernel Bug auch noch keine Probleme gehabt.
Edit: Ach super, dass du da im Portainer eine Möglichkeit gefunden hast. Noch besser. Ich nutze den eigentlich nur zum Monitoren meiner Container, also logfiles oder mal Consolenzugriff