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.
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 . 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 .
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.
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?
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…”
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.
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”.
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.
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.
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.
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.
so, docker-git läuft endlich. Das war irgendwie doch nicht mit zwei Clicks erledigt… Jetzt pulled er gerade das Image . Nur leider muss ich erstmal los, ich werde es aber heute noch ausprobieren.
funktioniert ! Total super . 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.
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”?
So, ist hochgeladen unter sathya/homegear-0.5.24-3-armhf . 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.