Hm, aber eigentlich sollte Homegear ja auch komplett in nem Docker-Container laufen. Wenn ich die Tage mal etwas Luft hab, schau ich mir das mal an … bin jetzt allerdings auch nicht der Docker-Profi
– Micha
Hm, aber eigentlich sollte Homegear ja auch komplett in nem Docker-Container laufen. Wenn ich die Tage mal etwas Luft hab, schau ich mir das mal an … bin jetzt allerdings auch nicht der Docker-Profi
– Micha
Ich hab das Installationsskript jetzt in die run.sh
statt in das Dockerfile gepackt. Das ist zwar uneffizient, aber funktioniert zumindest
Korrigiere, funktioniert doch nicht - Ich hab echt keine Ahnung was Homegear gegen Docker hat. Exakt das gleiche Installationsskript funktioniert ohne Docker.
Das ist der komplette Docker Code:
Dockerfile:
#Downgrade to 16.04 --> https://forum.homegear.eu/t/varlibdpkginfohomegear-influxdbpostinst-line-31-insserv-command-not-found/3159
ARG BUILD_FROM=homeassistant/base-ubuntu:16.04
FROM ${BUILD_FROM}
# Homegear installation - https://homegear.eu/downloads.html
COPY run.sh /run.sh
RUN chmod +x /run.sh
ENTRYPOINT ["/bin/bash", "-c", "/run.sh"]
run.sh:
#!/bin/bash
#Homegear installation - https://homegear.eu/downloads.html
echo "[INFO] Install Homegear"
apt update
apt install -y apt-transport-https
curl https://apt.homegear.eu/Release.key | apt-key add -
echo 'deb https://apt.homegear.eu/Ubuntu/ xenial/' > /etc/apt/sources.list.d/homegear.list
apt update
apt install -y homegear homegear-management homegear-adminui homegear-nodes-core homegear-nodes-extra homegear-homematicbidcos \
homegear-homematicwired homegear-insteon homegear-max homegear-philipshue homegear-sonos homegear-kodi \
homegear-ipcam homegear-beckhoff homegear-knx homegear-enocean homegear-intertechno homegear-nanoleaf \
homegear-ccu homegear-mbus homegear-influxdb
echo "[INFO] Start Homegear"
service homegear start
service homegear-management start
service homegear-influxdb start
tail -f /var/log/homegear/homegear.log
Vielleicht hilft folgende Info schon einmal weiter: Homegear Management kommuniziert mit Homegear über IPC. Die Socketdatei ist standardmäßig /run/homegear/homegearIPC.sock
. Auf diese Datei muss das Programm homegear-management
zugreifen dürfen. Da letzteres mit Rootberechtigungen läuft (laufen muss, damit es seine Funktion erfüllen kann), sollte es im Normalfall keine Berechtigungsprobleme geben. Interessant wäre der Inhalt der homegear-management.log
. Ich schaue mal, ob ich etwas Zeit finde, das Problem zu reproduzieren.
Viele Grüße
Sathya
Hallo @tringler,
mit dem Homegear-Dockerimage scheint schon einmal alles zu funktionieren. Ich habe leider auf homeassistant/base-ubuntu:16.04
keinen Zugriff. Kannst du mir das nicht funktionierende Dockerimage irgendwie zur Verfügung stellen?
Viele Grüße
Sathya
Hallo @tringler,
lösch mal beim Starten des Dockerimages die Datei /var/lib/homegear/homegear_updated
. Diese sorgt dafür, dass homegear-management
Homegear und sich selbst neustartet - was im Container nicht korrekt funktionert. Hilft das?
Viele Grüße
Sathya
Nachtrag: Symptomatik ist, der erste Containerstart klappt nicht. Wenn /var/lib/homegear
extern liegt, klappt dann aber der zweite Containerstart. Weiterhin laufen die Prozesse homegear
und homegear-management
beim ersten Containerstart doppelt (ps -ejH -1
).
Hallo @sathya,
das Image homeassistant/base-ubuntu:16.04
an sich funktioniert ja ohne Probleme, weil wenn ich es starte und die Installation manuell durchführe, habe ich kein Problem - Also einfach per Console die Installation starten:
#Homegear installation - https://homegear.eu/downloads.html
echo "[INFO] Install Homegear"
apt update
apt install -y apt-transport-https
curl https://apt.homegear.eu/Release.key | apt-key add -
echo 'deb https://apt.homegear.eu/Ubuntu/ xenial/' > /etc/apt/sources.list.d/homegear.list
apt update
apt install -y homegear homegear-management homegear-adminui homegear-nodes-core homegear-nodes-extra homegear-homematicbidcos \
homegear-homematicwired homegear-insteon homegear-max homegear-philipshue homegear-sonos homegear-kodi \
homegear-ipcam homegear-beckhoff homegear-knx homegear-enocean homegear-intertechno homegear-nanoleaf \
homegear-ccu homegear-mbus homegear-influxdb
und danach die Homegear Services starten.
Die gleiche Installation führe ich per Skript durch und bekomme den 500er Error. Siehe: https://github.com/tringler/hassio-ubuntu-base
Ich sehe auch folg. Fehler im Log: Error: Server could not start listening on port 2000: Cannot assign requested address
- Könnte das mit dem Problem zusammenhängen?
Danke! /var/lib/homegear/homegear_updated
vor dem Start der Daemons zu removen, scheint tatsächlich die Lösung zu sein :-o
Perfekt, das wäre ja super. Auf längere Sicht muss init
auch weg aus den Images (der Übeltäter hier). Zumindest für die Umstellung auf Debian Buster (und vermutlich auch neuere Ubuntu-Versionen) muss init
eh weichen, da es meines Wissens in den Repositories nicht mehr verfügbar ist. Und systemd in den Containern ist keine Option.
Viele Grüße
Sathya
Hallo,
entschuldigt, wenn ich dieses Thema wieder aufrolle.
Habe mir die Nightly mit Docker heruntergeladen. Homegear läuft auch und meine bestehende Konfiguration, wurde auch übernommen. Leider komme ich nicht in die Admin ui und kriege Server Error 500. Habe in .env “dev” aktiviert. kriege folgende Ausgabe:
Außerdem 2 ellenlange Stacktraces.
Habt ihr eine Idee, woran es liegen könnte?
Die Datei “Homegear_updated” gibt es bei mir gar nicht.
ErrorException:
Notice: Undefined variable: interfaces
at src/Controller/Admin/DashboardController.php:93
at App\Controller\Admin\DashboardController->getIpAddresses()
(vendor/symfony/http-kernel/HttpKernel.php:158)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 2)
(vendor/symfony/http-kernel/HttpKernel.php:80)
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 2, false)
(vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php:85)
at Symfony\Component\HttpKernel\HttpCache\SubRequestHandler::handle(object(HttpKernel), object(Request), 2, false)
(vendor/symfony/http-kernel/Fragment/InlineFragmentRenderer.php:81)
at Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer->render(’/admin/_fragment?_path=_format%3Dhtml%26_locale%3Dde-DE%26_controller%3DApp%255CController%255CAdmin%255CDashboardController%253A%253AgetIpAddresses’, object(Request), array(‘ignore_errors’ => false))
(vendor/symfony/http-kernel/Fragment/FragmentHandler.php:85)
at Symfony\Component\HttpKernel\Fragment\FragmentHandler->render(object(ControllerReference), ‘inline’, array(‘ignore_errors’ => false))
(vendor/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php:45)
at Symfony\Component\HttpKernel\DependencyInjection\LazyLoadingFragmentHandler->render(object(ControllerReference), ‘inline’, array())
(vendor/symfony/twig-bridge/Extension/HttpKernelRuntime.php:48)
at Symfony\Bridge\Twig\Extension\HttpKernelRuntime->renderFragment(object(ControllerReference))
(/var/lib/homegear/tmp/admin-ui/cache/dev/twig/cd/cdafbcfb363f3baa1d449fafe90313c261fc468e0b09b8a3e245400a3e06d0af.php:140)
at __TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d->block_content(array(‘sect’ => ‘dashboard’, ‘app’ => object(AppVariable), ‘myHost’ => object(Utils), ‘supported_locales’ => array(‘de-DE’, ‘en-US’), ‘default_locale’ => ‘en-US’, ‘host’ => ‘192.168.19.56:2001’, ‘isOSS’ => true, ‘theme’ => ‘light’, ‘osUpdateRunning’ => -1, ‘sidebarCollapsed’ => null), array(‘title’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_title’), ‘stylesheets’ => array(object(__TwigTemplate_bbc13339ea1a052dd9bef6e546c7005e1ded2560e611e4dc41021a044b160abe), ‘block_stylesheets’), ‘pagetitle’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_pagetitle’), ‘content’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_content’), ‘javascripts’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_javascripts’)))
(vendor/twig/twig/src/Template.php:173)
at Twig\Template->displayBlock(‘content’, array(‘sect’ => ‘dashboard’, ‘app’ => object(AppVariable), ‘myHost’ => object(Utils), ‘supported_locales’ => array(‘de-DE’, ‘en-US’), ‘default_locale’ => ‘en-US’, ‘host’ => ‘192.168.19.56:2001’, ‘isOSS’ => true, ‘theme’ => ‘light’, ‘osUpdateRunning’ => -1, ‘sidebarCollapsed’ => null), array(‘title’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_title’), ‘stylesheets’ => array(object(__TwigTemplate_bbc13339ea1a052dd9bef6e546c7005e1ded2560e611e4dc41021a044b160abe), ‘block_stylesheets’), ‘pagetitle’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_pagetitle’), ‘content’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_content’), ‘javascripts’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_javascripts’)))
(/var/lib/homegear/tmp/admin-ui/cache/dev/twig/f7/f7eea2ce21b8391aac5cf305d8e4db39bb02b9ef72d25f2b58204dc57d60f67e.php:145)
at __TwigTemplate_bbc13339ea1a052dd9bef6e546c7005e1ded2560e611e4dc41021a044b160abe->doDisplay(array(‘sect’ => ‘dashboard’, ‘app’ => object(AppVariable), ‘myHost’ => object(Utils), ‘supported_locales’ => array(‘de-DE’, ‘en-US’), ‘default_locale’ => ‘en-US’, ‘host’ => ‘192.168.19.56:2001’, ‘isOSS’ => true, ‘theme’ => ‘light’, ‘osUpdateRunning’ => -1, ‘sidebarCollapsed’ => null), array(‘title’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_title’), ‘stylesheets’ => array(object(__TwigTemplate_bbc13339ea1a052dd9bef6e546c7005e1ded2560e611e4dc41021a044b160abe), ‘block_stylesheets’), ‘pagetitle’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_pagetitle’), ‘content’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_content’), ‘javascripts’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_javascripts’)))
(vendor/twig/twig/src/Template.php:396)
at Twig\Template->displayWithErrorHandling(array(‘sect’ => ‘dashboard’, ‘app’ => object(AppVariable), ‘myHost’ => object(Utils), ‘supported_locales’ => array(‘de-DE’, ‘en-US’), ‘default_locale’ => ‘en-US’), array(‘title’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_title’), ‘stylesheets’ => array(object(__TwigTemplate_bbc13339ea1a052dd9bef6e546c7005e1ded2560e611e4dc41021a044b160abe), ‘block_stylesheets’), ‘pagetitle’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_pagetitle’), ‘content’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_content’), ‘javascripts’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_javascripts’)))
(vendor/twig/twig/src/Template.php:369)
at Twig\Template->display(array(‘sect’ => ‘dashboard’, ‘app’ => object(AppVariable), ‘myHost’ => object(Utils), ‘supported_locales’ => array(‘de-DE’, ‘en-US’), ‘default_locale’ => ‘en-US’), array(‘title’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_title’), ‘pagetitle’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_pagetitle’), ‘content’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_content’), ‘javascripts’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_javascripts’)))
(/var/lib/homegear/tmp/admin-ui/cache/dev/twig/cd/cdafbcfb363f3baa1d449fafe90313c261fc468e0b09b8a3e245400a3e06d0af.php:51)
at __TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d->doDisplay(array(‘sect’ => ‘dashboard’, ‘app’ => object(AppVariable), ‘myHost’ => object(Utils), ‘supported_locales’ => array(‘de-DE’, ‘en-US’), ‘default_locale’ => ‘en-US’), array(‘title’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_title’), ‘pagetitle’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_pagetitle’), ‘content’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_content’), ‘javascripts’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_javascripts’)))
(vendor/twig/twig/src/Template.php:396)
at Twig\Template->displayWithErrorHandling(array(‘sect’ => ‘dashboard’, ‘app’ => object(AppVariable), ‘myHost’ => object(Utils), ‘supported_locales’ => array(‘de-DE’, ‘en-US’), ‘default_locale’ => ‘en-US’), array(‘title’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_title’), ‘pagetitle’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_pagetitle’), ‘content’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_content’), ‘javascripts’ => array(object(__TwigTemplate_b6de2fc1624f09864455b5b8d3b89f1e563028628ab5daea2a2437fd7387c22d), ‘block_javascripts’)))
(vendor/twig/twig/src/Template.php:369)
at Twig\Template->display(array(‘sect’ => ‘dashboard’))
(vendor/twig/twig/src/Template.php:381)
at Twig\Template->render(array(‘sect’ => ‘dashboard’), array())
(vendor/twig/twig/src/TemplateWrapper.php:40)
at Twig\TemplateWrapper->render(array(‘sect’ => ‘dashboard’))
(vendor/twig/twig/src/Environment.php:277)
at Twig\Environment->render(‘Admin/Dashboard/dashboard.html.twig’, array(‘sect’ => ‘dashboard’))
(vendor/symfony/framework-bundle/Controller/ControllerTrait.php:235)
at Symfony\Bundle\FrameworkBundle\Controller\Controller->render(‘Admin/Dashboard/dashboard.html.twig’, array(‘sect’ => ‘dashboard’))
(src/Controller/Admin/DashboardController.php:42)
at App\Controller\Admin\DashboardController->indexAction(object(Request))
(vendor/symfony/http-kernel/HttpKernel.php:158)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
(vendor/symfony/http-kernel/HttpKernel.php:80)
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
(vendor/symfony/http-kernel/Kernel.php:201)
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
(public/index.php:85)
vielen Dank schon mal im Voraus!
Hi @horst23666,
danke fuer den Trace!
Es sieht so aus als koenne die UI die aktuelle IP-Adresse nicht auslesen. Warum kann ich dir so aus’m Stand nicht sagen, ich schaus mir an.
– Micha
Hi Micha,
großartig. Danke schon mal!
Das ganze läuft übrigens in Virtual Station auf einer Qnap mit Ubuntu 18.4. und mit Docker version 19.03.8. und kriegt über Bridge eine eigene IP im lokalen Netz.
Hi @horst23666,
oha … ob ich das 1:1 abbilden kann weiss ich nicht
Kannst du mir evtl. sagen wie der Name des Netzwerkinterfaces innerhalb des Containers lautet?
– Micha
Moin,
wenn du meinst “ifconfig” im Container dann:
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.3 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:ac:11:00:03 txqueuelen 0 (Ethernet)
RX packets 35032 bytes 12687723 (12.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 61531 bytes 14032404 (13.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Sehr strange.
Ich kann nicht sagen ob dir zukuenftig das Interface angezeigt wird, aber der 500er sollte behoben sein. Wenn ich es schaffe, pushe ich den Fix heute noch.
– Micha
Mega!
Vielen Dank, gebe dir dann Rückmeldung.
äähh das ist jetzt wirklich seltsam.
Gerade habe ich die Admin ui noch mal aufgerufen. Habe wirklich kein neues Image gezogen. Nun geht das Interface. Kein Fehler mehr. Das ist wirklich weird. Habe auch kein watchdog laufen. Container wurde nicht neu erstellt. docker ps ergab:
NAMES
f6cb0551f0d3 homegear/homegear:nightly "/bin/bash -c /start…" 24 hours ago Up 23 hours 0.0.0.0:2001-2003->2001-2
Das ist tatsaechlich strange
Ich hab die Anpassungen eben trotzdem gepushed
– Micha
Habe nun das neue image gezogen. “dev” ist nach wie vor in .env aktiviert.
Der Fehler taucht leider auch immer noch auf, aber nur wenn die /admin/ aufrufe. Wenn ich :2001/admin/inventory/devices aufrufe, gibt es keinen 500er Fehler.
Vielleicht hilft dir das ja weiter.
Hey @horst23666,
ich hab heute nachmittag erst gepushed, bis das neue Image inkl. der Aenderungen online ist wird es glaub noch etwas dauern
– Micha