Homegear als Docker Image?

Hallo,

nach meinem ersten positiven Erfahrungen mit Homegear bin ich gerade am Überlegen ob man Homegear “dockerizen” könnte? Die Vorstellung wäre z.B. ein Raspberry Pi2 mit einem Dockerimage für Homegear und einem zweiten mit ioBroker (und/oder Homematic-Manager).
Ich hatte mir das schon mal mit LXCCU (nutz den Vorläufer von Docker: LXC) überlegt, aber dies verletzt wohl einige Copyrights von EQ-3 (alias ELV?).
Über die Vorteile von Docker will ich jetzt gar nicht mal reden…wir wären dann vielleicht unabhängig von der Hardwareplattform. Hauptsache das OS kann Docker laufen lassen.

Fragen:

  • Würde dies technisch funktionieren? Wir haben ja doch sehr hardwarenahe Zugriffe auf die GPIO von Raspberry/Banana Pi im Fall von CC1101. Mit HM-CFG-LAN sähe es wohl besser aus…
  • Würde die Homegear Software dies mitmachen?
  • Haben wir bei Homegear auch EQ-3 Teile mit dabei? ==> Copyright?

Ich werde jetzt mal schauen ob:

  • Ob GPIO in Docker durchgereicht werden kann
  • Ob ausser ArchLinux noch andere Dockerfähige OS für Raspberry Pi2 gibt.

Bin schon auf Euer Feedback gespannt…

Steve

Hallo Steve,

die Idee finde ich klasse! Softwaretechnisch sollte es keine Probleme geben, da es sich ja nicht um eine echte virtuelle Maschine handelt - zumindest gehe ich mal davon aus, dass es keine Probleme gibt. Wie direkte Hardwarezugriffe möglich sind, weiß ich nicht. Ich habe noch nicht viel Erfahrung mit Docker :wink:. Urheberrechtlich problematisch sind zwei Dinge: Die HomeMatic-XML-Dateien und die Firmware-Updates. Beides müsste nach der Installation von der eQ-3-Seite nachgeladen werden. In Version 0.6 wird Homegear ein eigenes XML-Format bekommen und die eQ-3-Dateien werden überflüssig. Dann fällt zumindest ersterer Punkt weg.

Falls du irgendwelche Fragen hast oder etwas brauchst, sag sofort Bescheid! Meinst du, du bekommst das Image gebastelt? Falls ja, kommt das fertige Image natürlich gleich auf die Download-Seite :stuck_out_tongue:.

Liebe Grüße

Sathya

Hi Sathya,

bin gerade dabei, soll heissen:

  • Raspberry Pi2 hat ArchLinux schon drauf
  • Docker 1.4.1 läuft und ich habe ein Docker Image “https://registry.hub.docker.com/u/wirthual/rpi-webiopi/” gefunden.
  • Anscheinend ist das magische Schlüsselwort priviliged im Aufruf von “docker run -d -p 8000:8000 --privileged wirthual/rpi-webiopi webiopi” um auf die GPIO Hardware zu zu greifen.
  • Installiere gerade wiringPi im Docker Image, wenn das klappt dann kommt Homegear dran.

Drück’ die Daumen und auf Dein Hilfsangebot komme ich gerne zurück da Raspberry und Homegear “Neuland” für mich sind.

Steve

Morgen,

kurz mal die Ergebnisse:
* Habe ein fertiges Docker Image von “wirthual/rpi-garageopiner” hergenommen. Leider war es nicht so “fertig”, ich mußte “Tonnen” von Paketen nachinstallieren um dann zu merken das es Probleme mit /dev/spio.x gibt.

  • GPIO im Docker Image scheint zu gehen. Mittels “gpio readall” habe ich einen ersten Zugriff.
  • Das schwierigste Problem scheint mir aber ein Docker Fehler zu sein "The database file is locked: database is locked " siehe auch github.com/docker/docker/issues/9649.

Next Steps:

  • Dockers Locked Database lösen.
  • Eigenes Docker Image erzeugen.

@Sathya: Wegen des SPI Problems…was hat sich mit den Device Tree geändert?

Thx

Steve

Hallo,

ich werde erstmal die Fehlerbeseidigung bei Docker auf ArchLinux abwarten, der Workaround mit dem Löschen der Docker DB ist kontraproduktiv.
“I’ll be back…”

Bis dann

Steve

Hey Steve,

total cool, dass du da so viel Zeit reinsteckst! In der Device-Tree-Datei habe ich die neue CPU (BCM2836) eingefügt. Durch den Filter wurde der Device-Tree-Blob nur auf den alten RPIs geladen.

LG Sathya

Moin, Moin,

also gute Nachricht:

  • Docker wurde upgedatet auf Version 1.5 in ArchLinux.
  • Es funktioniert wieder und ich konnte schon das erste Image mit homegear und wiringPi erstellen.

Fragen:

  • Welches Raspi OS ist für Homegear am besten?
  • Ich habe nach wie vor “SPI Anfänger”- Probleme, soll heissen sie sind nicht da unter /dev/s… Die üblichen Hinweise für Raspi
    mit Kernelmodul laden und entsprechende Confdateien setzen kenne ich schon.
  • Kann es am neuen Pi2 liegen?

Hoffe am WOE ein erstes Docker Image mit Homegear und CC1101 zu haben. Eine Installation wäre dann nur noch “docker pull steve/arm-homegear”.

cu

Steve

Moin Steve,

ich freue mich schon auf das Image :smiley:.

Tja. Ich würde sagen, Raspbian oder Arch Linux. Mit letzterem habe ich allerdings wenig Erfahrung.

[quote]* Ich habe nach wie vor “SPI Anfänger”- Probleme, soll heissen sie sind nicht da unter /dev/s… Die üblichen Hinweise für Raspi
mit Kernelmodul laden und entsprechende Confdateien setzen kenne ich schon.[/quote]

Unter Raspbian? Falls ja, gibt es denn einen passenden Device Tree Blob in /boot/overlays, welcher in /boot/config.txt angegeben ist? Falls es daran liegen sollte, findest du einen passenden Blob anbei.

Jein - nur wenn du noch alte DTBs irgendwo her hast, ja (wie im Homegear-Image). Der aktuelle Kernel braucht auf allen RPIs einen DTB, sonst geht SPI nicht. Ich vermute mal, gleiches gilt für Arch Linux.

Liebe Grüße

Sathya
dtb.tar.gz (342 Bytes)

Hi,

also kurz mal ein Status Update…

  • Habe in Archlinux die /boot/config.txt die Zeile device_tree_param=spi=on eingebunden.
  • Nach reboot habe ich /dev/spidev0.0 und /dev/spidev0.1
  • Im Docker Image sehe ich auch beide /dev/spidev0.0 und /dev/spidev0.1
  • Homegear entsprechend konfiguriert

==>Geht momentan leider nicht, wäre ja auch zu einfach! Beim Start mittels /etc/init.d/homegear start beendet sich Homegear gleich wieder.

Fragen:

  • Kann es sein das /dev/spidev0.0 im Archlinux Kernel nicht komplett implementiert ist? Woran könnte ich es erkennen?
  • Im /boot/overlay gibt es nur:

-rwxr-xr-x 1 root root 409 Feb 8 17:29 ds1307-rtc-overlay.dtb -rwxr-xr-x 1 root root 779 Feb 8 17:29 hifiberry-amp-overlay.dtb -rwxr-xr-x 1 root root 655 Feb 8 17:29 hifiberry-dac-overlay.dtb -rwxr-xr-x 1 root root 783 Feb 8 17:29 hifiberry-dacplus-overlay.dtb -rwxr-xr-x 1 root root 783 Feb 8 17:29 hifiberry-digi-overlay.dtb -rwxr-xr-x 1 root root 775 Feb 8 17:29 iqaudio-dac-overlay.dtb -rwxr-xr-x 1 root root 775 Feb 8 17:29 iqaudio-dacplus-overlay.dtb -rwxr-xr-x 1 root root 1428 Feb 8 17:29 lirc-rpi-overlay.dtb -rwxr-xr-x 1 root root 405 Feb 8 17:29 pcf2127-rtc-overlay.dtb -rwxr-xr-x 1 root root 405 Feb 8 17:29 pcf8523-rtc-overlay.dtb -rwxr-xr-x 1 root root 1003 Feb 8 17:29 pps-gpio-overlay.dtb -rwxr-xr-x 1 root root 1124 Feb 8 17:29 w1-gpio-overlay.dtb -rwxr-xr-x 1 root root 1291 Feb 8 17:29 w1-gpio-pullup-overlay.dtb

  • Wirklich Dein DTB einspielen?

Bin gerade dabei die Homegear Logs durchzuarbeiten…
[Update:] Anscheinend bekomme ich auch einen Coredump durch Homegear. Wenn ich “coredumpctl info” eingeben kommt:

PID: 196 (homegear) UID: 101 (101) GID: 104 (104) Signal: 4 (ILL) Timestamp: Wed 2015-02-11 16:46:05 CET (14h ago) Boot ID: 75a8ac81074841ffa9208856db68641c Machine ID: df56097b9c6f43f6910343608fb1b507 Hostname: alarmpi Coredump: /var/lib/systemd/coredump/core.homegear.101.75a8ac81074841ffa9208856db68641c.196.1423669565000000.lz4 Message: Process 196 (homegear) of user 101 dumped core.

Steve

Hallo Steve,

ich kann dir nicht sicher sagen, ob SPI in Archlinux vollständig implementiert ist. Mein DTB würde ich nicht verwenden - ich weiß nicht ob die Raspbian DTBs mit den Archlinux DTBs kompatibel sind. Wenn die SPI-Geräte sichtbar sind, scheint das Kernelmodul aber ja geladen zu werden.

Wenn ein Coredump direkt beim Start von Homegear auftritt, spricht das für irgendwelche Bibliotheksinkompatibilitäten. Kannst du mir irgendwie eine aktuelle Version des Docker-Images zukommen lassen? Dann kann ich mal schauen, wo das Problem liegt.

Liebe Grüße

Sathya

Hallo Sathya,

kein Problem, wenn es Dir recht ist würde ich es auf docker.com hochladen und jeder kann es dann mit “docker pull…” laden.
Hast du ein “dockerfähiges” Gerät am laufen? Am besten einen Raspi 2 mit Archlinux. Ich habe auf meinem BLOG eine Beschreibung dazu.

Steve

Hey Steve,

jupp, hab ich hier. Das Image kannst du gerne auf docker.com hochladen. Hehe - freu mich schon :stuck_out_tongue:

LG Sathya

Hallo Sathya,

also, gute Information über Docker findest du auf clmpractice.org/2015/02/11/creat … berry-pi2/.

Das Image heisst stefsign/arm_homegear_0524 sollte mit “docker pull stefsign/arm_homegear_0524” sich automatisch installieren.

Sag mir bitte bescheid ob es klappt.

Danke

Steve

Wird jetzt gleich ausprobiert :smiley: . Ich melde mich!

…es werden noch Wetten angenommen :slight_smile:

Aber im Ernst, bin gespannt was rauskommt.

Steve

Hey,

so, docker-git läuft endlich. Das war irgendwie doch nicht mit zwei Clicks erledigt… Jetzt pulled er gerade das Image :wink:. Nur leider muss ich erstmal los, ich werde es aber heute noch ausprobieren.

LG Sathya

Hey Steve,

funktioniert :smiley:! Total super :stuck_out_tongue:. Ich habe Homegear im Image einmal neu kompiliert, dann lief es. Mit CUL klappt es, SPI habe ich nicht getestet. Ich muss mal schauen, warum das Debian-Image nicht läuft. “Illegal instruction” heißt binär inkompatibel, kompiliert ist es aber für armhf - komisch. Muss ich mir anschauen.

Liebe Grüße

Sathya

Hi Sathya,

na klingt ja super!!!
Anscheinend muss ich auch bei mir die Homegear Sourcen im Docker Image neu kompilieren?
Oder besser…
…kannst du Dein Image auf docker.com “pushen”? Dafür müßte Du vorher aus Deinem Änderung ein lokales, neues Docker Image erzeugt werden und wahrscheinlich brauchst du einen Account auf docker.com. Vielleicht könnte man einen “generischen” Account erzeugen und somit das Homegear Image
leichter “sharen”.
Mit diesen Homegear Docker Images könnte man leichter die verschiedenen Hardwarekonstellation testen. Ich habe gesehen das bei Jolokia dies schon so gemacht wird.

BTW, funktioniert cc1101 damit? Oder meintest du dies mit “SPI noch testen”?

Steve

Hallo Steve,

Mach ich.

Würdest du das übernehmen? Du kannst gerne einen allgemeinen Account für Homegear erzeugen. Die Image-Namen können dann auch auf die Download-Seite.

Den CC1101 habe ich nicht ausprobiert. Das teste ich gleich noch schnell und pushe dann das Image.

Liebe Grüße

Sathya

So, ist hochgeladen unter sathya/homegear-0.5.24-3-armhf :wink:. Der CC1101 über SPI funktioniert. Am Image selbst ist dafür nichts zu tun, nur im Hostsystem muss das Kernelmodul geladen und die SPI-devices unter “/dev” verfügbar sein.

Liebe Grüße

Sathya