Verwendung von OpenHab3 in Docker mit einer WQHD-Kamera
Q: Ich verwende OpenHab in Docker und habe versucht, meine Kamera mit der ipcamera binding hinzuzufügen. Aber ich kann weder auf den Videostream noch auf den Snapshot zugreifen. Auch wenn die Bindung zeigt, dass meine Kamera angeschlossen ist.
A: Wenn Sie Docker verwenden, um OpenHab auszuführen, empfehlen wir Ihnen, den Network Mode auf host
zu setzen. Auf diese Weise ist Ihr Container direkt mit Ihrem lokalen Netzwerk verbunden und kann mit Ihrer Kamera kommunizieren. Auf einem Linux-System können Sie zum Beispiel zuerst die Ordner erstellen, die Sie für die Speicherung der von OpenHab erzeugten Daten verwenden möchten:
mkdir /opt/openhab
Stellen Sie sicher, dass der Docker-Container in diesen Ordner schreiben darf!
Jetzt können Sie den Container mit - note dem --net=host
Flag starten:
docker run \
--name openhab \
--net=host \
--privileged \
--rm \
-v /etc/localtime:/etc/localtime:ro \
-v /opt/openhab/openhab_addons:/openhab/addons \
-v /opt/openhab/openhab_conf:/openhab/conf \
-v /opt/openhab/openhab_userdata:/openhab/userdata \
-d \
openhab/openhab
Wenn Sie sich bei OpenHab anmelden, werden Sie sehen, dass es die "falsche" Netzwerkschnittstelle verwendet. Der Streaming-Port ist an die interne Docker-Container-IP gebunden, die von Ihrem lokalen Netzwerk aus nicht erreichbar ist:
Öffnen Sie die Einstellungen von Network:
Und wählen Sie die Netzwerkschnittstelle Ihres lokalen Rechners:
Um OpenHab neu zu starten, müssen Sie den Container entfernen:
docker rm -f openhab
Starten Sie den Befehl docker run
von oben erneut, um ihn neu zu starten. Jetzt können Sie sehen, dass die Kamerabindung die richtige Netzwerkschnittstelle verwendet: