OpenHAB 3 Home Automation in Docker
- Ziehen des Docker-Images
- Vorbereiten des Systems
- Betrieb des Containers
- Automatisieren der OpenHAB-Einrichtung mit Ansible
- Wartung der Installation
Ziehen des Docker-Images
Das OpenHAB 3-Image ist im Docker Hub verfügbar:
docker pull openhab/openhab:3.1.0-snapshot-alpine
Vorbereiten des Systems
groupadd -g 9001 openhab
useradd -g 9001 openhab
usermod -a -G openhab myownuser
mkdir -p /opt/openhab/{openhab_addons,openhab_conf,openhab_userdata}
chmod -R 775 /opt/openhab
Betrieb des Containers
Von Ihrer Befehlszeile aus:
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:3.1.0-snapshot-alpine
In docker-compose:
version: "3.8"
services:
openhab:
image: "openhab/openhab:3.1.0-snapshot-alpine"
restart: always
network_mode: host
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "/etc/timezone:/etc/timezone:ro"
- "/opt/openhab/openhab_addons:/openhab/addons"
- "/opt/openhab/openhab_conf:/openhab/conf"
- "/opt/openhab/openhab_userdata:/openhab/userdata"
environment:
OPENHAB_HTTP_PORT: "8181"
OPENHAB_HTTPS_PORT: "8443"
EXTRA_JAVA_OPTS: "-Duser.timezone=Europe/Berlin"
Ich habe den HTTP-Port von 8080 auf 8181 geändert - da ich bereits den Standard-Port 8080 für einen anderen Dienst verwende. Stellen Sie sicher, dass der Port von Ihrem LAN aus erreichbar ist: z.B.
ufw allow 8181/tcp
.
Automatisieren der OpenHAB-Einrichtung mit Ansible
Sie können es testen, indem Sie das folgende Playbook ausführen:
ansible-playbook -i mycontainerhost, -t openhab run-containers.yml
- name: OpenHAB v3 Container
hosts: test
gather_facts: no
tasks:
- name: Run OpenHab Container
tags: openhab
docker_container:
name: openhab
image: openhab/openhab:3.1.0-snapshot-alpine
state: started
detach: yes
interactive: yes
tty: yes
ports:
- 8181:8080
- 8101:8101
- 5007:5007
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /opt/openhab/addons:/openhab/addons
- /opt/openhab/conf:/openhab/conf
- /opt/openhab/userdata:/openhab/userdata
keep_volumes: yes
hostname: openhab.localnet
memory: 512m
pull: true
restart_policy: unless-stopped
env:
EXTRA_JAVA_OPTS="-Duser.timezone=Europe/Berlin"
Führen Sie das Playbook aus und besuchen Sie die IP-Adresse Ihres Servers auf Port 8181:
Wählen Sie die Bindings aus, die installieren möchten:
Wartung der Installation
Aufräumen, wenn etwas schief geht
Löschen Sie den Inhalt von /opt/openhab/userdata/cache
und /opt/openhab/userdata/tmp
.
rm -rf /opt/openhab/userdata/cache
rm -rf /opt/openhab/userdata/tmp
OpenHAB CLI
Greifen Sie von Ihrem Hostsystem aus auf das OpenHAB-Befehlszeile innerhalb des Docker-Containers zu:
docker exec -it openhab /openhab/runtime/bin/client
Logging in as openhab
Password: PASSWORD IS habopen
_ _ _ ____
___ ___ ___ ___ | | | | / \ | __ )
/ _ \ / _ \ / _ \ / _ \ | |_| | / _ \ | _ \
| (_) | (_) | __/| | | || _ | / ___ \ | |_) )
\___/| __/ \___/|_| |_||_| |_|/_/ \_\|____/
|_| 3.1.0-SNAPSHOT - Build #2099
Use '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
To exit, use '<ctrl-d>' or 'logout'.
openhab>
Zugriff auf die OpenHab-Protokolle über die CLI:
openhab> log:tail