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:

Verwendung von OpenHab3 in Docker mit einer WQHD-Kamera

Öffnen Sie die Einstellungen von Network:

Verwendung von OpenHab3 in Docker mit einer WQHD-Kamera

Und wählen Sie die Netzwerkschnittstelle Ihres lokalen Rechners:

Verwendung von OpenHab3 in Docker mit einer WQHD-Kamera

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:

Verwendung von OpenHab3 in Docker mit einer WQHD-Kamera