Homegear als Docker Image?

Hallo Sathya,

funktioniert…also ich denke noch leichter geht es nicht:

  • Archlinux installieren und dann nur noch “docker pull sathya/homegear-0.5.24-3-armhf”

Was meinst Du? Wie könnte man mit Docker sinnvoll weitermachen?
:slight_smile:

Steve

Hallo Steve,

ja, das ist schon echt cool… Also auf jeden Fall schon einmal einen Riesendank an dich!!! Ich würde sagen, wir basteln einfach ein paar Images für unterschiedliche Konfigurationen (vielleicht auch mit Zusatzsoftware - z. B. Node-RED, openHAB, …?) und stellen die Image-Namen auf einen separaten Tab der Download-Seite (ich gebe dir da auch gerne Zugriff).

Außerdem sollte vielleicht aus Performancegründen für jeden CPU-Typ ein Docker-Image verfügbar sein?

Liebe Grüße

Sathya

Morgen Sathya,

können wir gerne machen. Was hältst du davon:

  • Neuer Tab mit Hinweisen wie man Archlinux, Docker und unser Docker Image installiert (Hast Du ja schon vorgeschlagen).
  • Und wir schauen mal wie sich das entwickelt, bei positiver Resonanz könnte man andere Plattformen mit aufnehmen.
    Obwohl, auf der anderen Seite könnten solche Docker Images auch ein Erleichterung für Dich sein (Testen, Delployen etc.).
    Das führt zu der Frage was wollen wir adressieren? Leichtere Verfügbarkeit/Installation für Homegear User und/oder breitere Unterstützung von HW Plattformen?
  • Werde später mal schauen wie man einen generischen Docker Account erzeugt. Wäre “homegear” ein Account Name? Ja, ja sehr originell. :slight_smile:

Wie gesagt, ich bin ein grosser Fan von Virtualisierung und Docker ist genau “mein Ding” :slight_smile:. Was sollte man sonst mit 4-8 Core ARM Devices anfangen?

BTW, ich bin momentan über ein “pairen” von HM Devices nicht hinausgekommen. Muss mir mal anschauen wie es dann weitergeht.
Kannst du mir da noch einen Tip bzw. Link geben? Ich würde gerne in ioBroker sehen wie die aktuelle Temp ist…die dann von einem mit Homegear verbunden Thermostat kommt.
Arbeitest Du mit (auch) mit ioBroker?

Danke

Steve

…als “homegear” Docker Account existiert. Wie kann ich das Passwort dir zukommen lassen?

Steve

Hallo Steve,

super :smiley:. Schick mir das Kennwort per E-Mail - das ist sicherheitstechnisch denke ich vertretbar. Auf die anderen Punkte antworte ich morgen - ich bin gerade etwas unter Zeitdruck! Aber echt klasse, dass du das Konto schon einmal angelegt hast!

Liebe Grüße

Sathya

Also:

Da das (meiner Meinung nach) etwas kompliziert ist, ist es vermutlich einfacher, wir stellen ein fertiges RPI-Image mit Docker zur Verfügung? Ich habe gerade mal eines erstellt und uploade es. Sobald der Upload fertig ist, ist es unter “http://homegear.eu/downloads/rpi_archlinux_docker_20150217.zip” zu finden.

Sehe ich auch so. Ich denke, die ARM-Images reichen erst einmal.

Sind sie auch und zwar eine riesige.

Ganz wichtig in diesem Zusammenhang: Homegear ist sehr timing-sensitiv. D. h. es lohnt sich, leistungshungrige Prozesse (node.js, openHAB, …) auf einen Kern zu verbannen, damit Homegear und vor allem die Kernel-Prozesse ungestört laufen können. Das lässt sich natürlich auch in Verbindung mit Docker realisieren :wink:.

Ich habe auch gerade mal ein neues Raspbian-base-Image erzeugt, welches ich in den generischen Account hochladen werde.

Weiter geht es mit der Einrichtung irgendeiner Logikschicht. Am simpelsten über Skripte in /var/lib/homegear/scripts. Oder halt über Programme wie ioBroker, openHAB, etc.

[quote]Ich würde gerne in ioBroker sehen wie die aktuelle Temp ist…die dann von einem mit Homegear verbunden Thermostat kommt.
Arbeitest Du mit (auch) mit ioBroker?[/quote]

ioBroker habe ich kurz angetestet. Ich warte vor allem auf die UI :wink:. Aktuell nutze ich noch IP-Symcon. Über kurz oder lang werde ich aber auf etwas anderes umstellen. Da Homegear jetzt auch WebSockets [1] kann, wäre es sogar kinderleicht z. B. mit Bootstrap eine eigene Seite zu basteln. Wie genau du das ioBroker UI einrichtest, kann ich dir aus dem Stehgreif nicht sagen. Für das Anzeigen der Temperatur musst du aber irgendwo die Seriennummer des Gerätes, den Kanal und den Variablennamen angeben. Die Seriennummer findest du in Homegears CLI, Kanal und Variblennamen in der Datenpunktübersicht von eQ3 (such einfach nach “CCU2 Datenpunkte”).

Liebe Grüße

Sathya

[1] https://github.com/Homegear/HomegearWS

Hi Sathya,

wo soll ich anfangen?
:slight_smile:

Docker:
Also Homegear als Docker Image funktionert, wenn man den Port 2001 freigibt! Hatte ich vergessen, daher auch keine Anbindung in ioBroker.
Aufruf wäre also “docker run -it --privileged -p 2001:2001 sathya/homegear-0.5.24-3-armhf bash”.

Timing:
Wie kann ich z.B. nodejs einem Core zuordnen?

ioBroker:
Macht sich immer besser! Hatte auch schon ein Docker Image für ioBroker erzeugt. Aber die Installation ist sehr einfach mit “npm install iobroker.js-controller” erledigt und fast täglich gibt es neue Versionen.

Docker Image
Wäre ein Installation Image/Zip für andere Plattformen wie Odroid, Cube etc. wünschenswert?
Wäre unser Docker Image “homegear-0.5.24-3-armhf” auch dort ausführbar? Ich denke schon…allerdings wohl nicht mit CC1101 (andere GPIO)

Bis dann
Steve

Hey Steve,

Ich würde mit dem Kernel-Parameter “isolcpus” erst einmal alle von node.js nicht genutzten Kerne isolieren. Dann kannst du mit “taskset” den node.js auf den in “isolcpus” nicht spezifizierten Kern sperren. Siehe auch [1].

Generell auf allen Einplatinencomputern, auf denen Docker nicht direkt und einfach installierbar ist.

Na klar. Auf allen Rechnern, die den ARM-Hardfloat-Befehlssatz unterstützen. Auch auf anderen, aber dann muss ARM emuliert werden, was elendig langsam ist.

Liebe Grüße

Sathya

[1] http://xmodulo.com/run-program-process-specific-cpu-cores-linux.html

Morgen Sathya,

Vorschläge:

  • Sollten wir/Du im Download Bereich “Docker Tab” noch dazu schreiben wie man das Docker Image installiert bzw. geladen werden kann mittels “docker run -it --privileged -p 2001:2001 sathya/homegear-0.5.24-3-armhf bash” (ein “docker pull…” sollte nicht notwendig sein).
  • Ausserdem wäre ein Hinweis wichtig, dass Änderungen im Homegear Docker Image scheinbar weg sind (wenn man es neu startet). Sonst sind Benutzer gleich frustriert wenn “stundenlange” Konfiguration im Homegear Image bei einem Neustart (scheinbar) verloren sind. Wenn Du willst kann ich dazu etwas aufsetzen.
  • Ein weiterer Hinweis wie"homegear-0.5.24-3-armhf läuft nur auf ARM Devices" wäre nützlich?
  • Macht es wirklich Sinn ein eigenes ZIP File mit Archlinux und Docker anzubieten? Bei mir ging die Installation mit “pacman -S docker” ohne grosse Probleme durch. Ausserdem gibt es auch bei Archlinux ständig neue Versionen. Ich würde gerne die Zeit in die eigentlichen Homegear Docker Images stecken.
  • Ich werde in den nächsten Tagen/Stunden das Homegear Docker Image in unser Homegear Repository auf Docker.com hochladen…oder hast du schon ein Neueres? Dann könnte man “docker run -it --privileged -p 2001:2001 homegear/homegear-0.5.24-3-armhf bash” nutzen.
  • Im “Homegear Docker Image” steht in homegear.err dass das ulimit mit “ulimit -r 100” gesetzt werden soll.
  • Sollte man unser Docker Image in “homegear-0.5.24-3-armhf-cc1101” (oder so) umbenennen?

BTW, ich bin momentan sehr, sehr zufrieden mit dem Erreichtem! Ebenfalls danke für Deine Unterstützung, alleine wäre man nicht so weit gekommen!
:slight_smile:

Bis dann

Steve

Guten Morgen,

Jupp. Das “run -it” finde ich gut :stuck_out_tongue: - ist mir noch gar nicht aufgefallen, dass es sich so schreiben lässt :wink:.

Stimmt, schreibe ich auch rein.

Stimmt ja so eigentlich nicht, auf meinem Rechner läuft es auch wunderbar - nur halt emuliert. Aber ich werde noch einen Satz unter die Überschrift für ARM CPUs setzen.

Mal sehen, ob ich das aufrecht erhalte. “pacman -S docker” läuft zwar durch (nachdem man herausgefunden hat, dass erst ein Systemupgrade mit “pacman -Syu” durchzuführen hat, aber danach läuft es nicht auf Anhieb. Autostart ist deaktiviert und das “bridge”-Kernelmodul muss noch geladen werden. Von daher nicht ganz so einfach, wie es sein könnte - so mancher Linuxanfänger mag da schon frustriert sein…

Warte noch, ich habe nämlich ein neues Base-Image, welches ich gerne hochladen würde und vor allem gerne testen würde, ob damit das Jessie-Paket auf Anhieb funktioniert. Ich brauche nur das korrekte Kennwort (siehe private Nachricht) :stuck_out_tongue:.

Ja, das sollte rein.

Ich würde vorschlagen, wir machen das mit Tags. Das Image heißt nur “homegear” und alles Andere wird als Tag hinzugefügt (siehe auch zum Beispiel https://registry.hub.docker.com/_/php/tags/manage/). In diesem Fall beispielsweise: “homegear:0.5.24-3-armhf-cc1101” und auch “homegear:latest-armhf-cc1101”. Was meinst du?

[quote]
BTW, ich bin momentan sehr, sehr zufrieden mit dem Erreichtem! Ebenfalls danke für Deine Unterstützung, alleine wäre man nicht so weit gekommen![/quote]

Dir auch vielen Dank. Ohne dich würde es jetzt gar keine Docker-Images geben :smiley: !

Liebe Grüße

Sathya

Hi Sathya,

Password habe ich dir schon gesendet…per email. Hat es geklappt?

Mit den Docker Tags habe ich noch gar nicht probiert. Hm, wir hätten somit ein Homegear Basis Image… würden dann jeweils neue Homegear Images für CC1101 oder CUL etc. erzeugen und entsprechend “labeln” also taggen?
Vielleicht sollten wir auch mal “dockerfiles” zum builden benutzen? Damit könnten man die Arbeitsschritte, die du erwähnt hast (pacman update, docker install, bridge Modul laden), in einem Textfile ablegen und “reusen”.

Wenn Du ein neues Image erzeugst kannst du noch die ulimit Einstellung mit reinnehmen?

Dankääää

cu

Steve

Hallo Steve,

ja, du hast mir das Kennwort gesendet, es funktioniert nur nicht :stuck_out_tongue:.

Dockerfiles habe ich für die Basisabbilder verwendet. Wie ließe sich damit denn Docker installieren? Ich dachte die sind nur zum Erstellen von Abbildern?

Genau.

Ist drin :wink:.

Liebe Grüße

Sathya

Hi Sathya,

Homegear Image:
nur mal kurz eine Frage…wo ist den nun das Homegear Docker Image? :slight_smile:
Ein “docker run -it --privileged -p 2001:2001 sathya/homegear-0.5.24-3-armhf bash” geht nun nicht mehr.
:frowning:

Docker Zugang:
Kannst du nochmals den Docker Zugang mittels homegear probieren. Jetzt müßte es gehen.

Raspi2 Zip mit Docker:
Haben mal das ZIP File ausprobiert und es klappt prima. Schon gekauft…
:slight_smile:

cu

Steve

Hey Steve,

Das habe ich gelöscht, damit wir es noch einmal mit Hilfe des neuen Basisabbildes erstellen können. Dann ist alles aus unserer Hand :wink:. Die Basisabbilder lade ich gerade hoch. Ich muss jetzt aber erst einmal Weg. Spätestens morgen gibt’s aber wieder in Image :smiley:. Ich werde auch gleich mal ein 0.6.0-Image mit Node-RED basteln :smiley:. Docker ist super :stuck_out_tongue:.

Jupp, klappt :smiley:. Siehe private Nachricht. Da gibt’s bald viele Abbilder, weil auch auch die ganzen Build-Images mit Docker erstellen werde.

Liebe Grüße

Sathya

N’ Abend,

dann bis morgen…

Ich befürchte das “Raspberry Pi Image with Docker” ist zu klein, es fehlt auf der Partition der Platz für Downloads von Docker Images.
Habe gestern noch versucht die SD Card zu “resizen” (fdisk) und dabei alles erstmal geschrottet. Werde heute mal gparted ausprobieren.

ToDo:(für mich)
[ul]NodeRed bin ich auch am probieren und es ist auch in ioBroker enthalten.
Ausserdem steht noch Arduino mit MQTT an.
Und Homegear Sockets…ebenfalls eine tolle Sache, man müßte einfach mehr Zeit haben.[/ul]
:slight_smile:

Steve

Hallo Steve,

ich habe das Image jetzt so geändert, dass mit dem ersten Start die root-Partition automatisch an die SD-Kartengröße angepasst wird :wink:.

Jetzt sind auch schon ein paar Images online :wink:. Ein Image zusammen mit Node-RED folgt morgen. Du lad natürlich auch alles an Images hoch, wozu du Lust hast :wink:.

Liebe Grüße

Sathya

Hallo Sathya,

klasse Arbeit…Respekt!
:slight_smile:
Werde es mir am WOE anschauen und mal Docker mit mehreren Images auf einem Raspi 2 ausprobieren.
Wegen der Docker Images…macht es Sinn die “Dienste” Homegear, NodeRed, ioBroker etc. in ein Image zu packen oder separate Images zu nutzen?
Ich tendiere eigentlich zu einzelnen Docker Images auf einem ARM Device. Es ist nur eine Frage der Zeit wann die ersten 64 bit ARM Devices kommen mit >4 GB RAM und dann macht Virtualisierung (Docker) immer mehr Sinn.

cu

Steve

Hallo Steve,

Das habe ich mich auch schon gefragt. Das Problem dann nur ist, dass die Kommunikation über den Docker-Proxy laufen muss. Ich muss mal schauen, ob die Dienste damit irgendwie einfach konfigurierbar sind.

Liebe Grüße

Sathya

Morgen Sathya,

je mehr ich mir die Docker Situation überlege desto mehr bin ich überzeugt mit mehreren Docker Images zu arbeiten. Und ja, Du hast Recht…die Kommunikation zwischen Docker Images und auch nach “Aussen” ist noch offen. Ich stelle mir dies vor wie bei VMWare.

Folgende Vorteile sehe ich (korrigier mich falls ich falsch liege):

  • Saubere Trennung der verschiedenen Dienste
  • Man könnte später einige Dienste in die Cloud schieben oder auf leistungsfähigere Hardware
  • Könnten Probleme besser einkreisen.
  • Lastenverteilung auf einem ARM Device wie Raspi2 müßte auch gehen, soll heissen ein ARM Core kümmert sich um ein bestimmtes Docker Image.
  • Wir könnten verschiedene (LINUX) OS auf der selben Hardware laufen lassen, nach dem Motto “dies läuft besser auf Raspian oder dies auf Archlinux”

BTW, kommen wir jetzt ein bisschen von Homegear Thema weg?
:slight_smile:

Steve

Hallo Steve,

für den Produktionsbetrieb macht das absolut Sinn. Das Problem ist, dass die IP-Adressen zu konfigurieren wären, oder? Schön wäre natürlich, wenn alles auf Anhieb laufen würde. Ich spiele mal ein bisschen rum. Erst einmal gibt’s gleich ein Docker-Image mit Homegear 0.6 und eines mit node.js.

Liebe Grüße

Sathya