Comme j'ai commencé à jouer avec docker pour mon serveur nextcloud, autant continuer et tenter de l'utiliser aussi pour installer openhab.
Ça complexifie un peu la mise en route la première fois, mais sur le long terme, ça devrait rendre la maintenance bien plus simple, puisqu'il suffira de relancer le fichier YML détaillant le déploiement des containers.
Du coup, mes serveurs OpenHab et PostgreSQL seront contenus dans des containers Docker.
Bah ouais, quitte à tout réinstaller, autant partir sur la dernière version en date. Donc au revoir 2.5.X et bonjour 3.X (version milestone et pas stable parce que je suis un taré, un ouf, un déglingo !).
Pas mal de choses ont bougés pour cette nouvelle version :
J'en oublie plus que certainement, mais j'ai listé avant tout ce qui semble essentiel pour mon utilisation personnelle.
Du coup, j'ai regardé comment les autres faisaient et j'ai repompé sans aucune vergogne les code docker-compose. Faut dire qu'ayant juste deux containers à déployer pour faire tourner, ça va assez vite.
version: '3.7' services: openhab: image: "openhab/openhab:milestone" container_name: "openhab" restart: always networks: openhabnet: aliases: - openhab ports: - "8080:8080" - "8443:8443" - "8101:8101" volumes: - "/etc/localtime:/etc/localtime:ro" - "/etc/timezone:/etc/timezone:ro" - "/home/pi/docker/openhab/conf:/openhab/conf" - "/home/pi/docker/openhab/userdata:/openhab/userdata" - "/home/pi/docker/openhab/addons:/openhab/addons" - "/home/pi/docker/openhab/.java:/openhab/.java" environment: OPENHAB_HTTP_PORT: "8080" OPENHAB_HTTPS_PORT: "8443" EXTRA_JAVA_OPTS: "-Duser.timezone=Europe/Paris" USER_ID: "${OH_UID}" GROUP_ID: "${OH_GID}" devices: - "/dev/USBzwave:/dev/USBzwave:rwm" - "/dev/USBzigbee:/dev/USBzigbee:rwm" - "/dev/USBrfxcom:/dev/USBrfxcom:rwm" postgres: image: postgres container_name: "postgres" restart: always networks: openhabnet: aliases: - postgres ports: - "5432:5432" volumes: - "/home/pi/docker/postgres/data:/data/postgres" - "/home/pi/docker/postgres/conf/postgresql.conf:/etc/postgresql/postgresql.conf" environment: POSTGRES_USER: "${POSTGRES_USER:-Admin}" POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:-changeme}" PGDATA: "/data/postgres" networks: openhabnet: driver: bridge ipam: config: - subnet: [yourIPrange]/24
Et lancer la ligne de commande avec les bons arguments :
CURRENT_UID=$(id -u) CURRENT_GID=$(id -g) OH_UID=$(id -u openhab) OH_GID=$(id -g openhab) docker-compose up -d
Bien entendu ça a été précédé par la création et l'attribution de divers droits au nouvel user openhab, ainsi que l'ajout de règles pour attribuer aux différents sticks usb des noms tty stables et facile d'usage.
L'interface post installation d'OpenHab m'a demandé de créer un compte administrateur et proposé quelques options de config et l'installation de plugins (binding, ui et autres).
Une fois ces formalités réglées, il était temps de commencer à apprivoiser la nouvelle interface. Heureusement, elle conserve de nombreux points communs avec les anciennes interfaces ce qui permet de ne pas être trop perdu. J'ai facilement pu ajouter les Things pour mes sticks usb et récupérer les capteurs et actionneurs de mon installation.
Le plus surprenant est la nouveau “modèle sémantique” qui remplace complètement l'ancien sitemap (même pour l'UI basic). Je n'ai fait qu'effleurer les possibilités offertes par ce système, mais il semble permettre de générer une interface sympa pour gérer ses appareils domotiques.
A l'heure actuelle, le stick zigbee refuse de fonctionner, mais l'appel de la procrastination se faisant sentir, je vais temporairement m'en passer. Et plutôt me concentrer sur le reste avant d'être repris de flemmingite aigüe.
Avec le RFXcom et le Z-Wave, je couvre déjà 80% des appareils installés. Le RFXcom pour les volets et des capteurs t°/humidité, le Z-Wave pour des capteurs divers et des micro modules planqués dans les interrupteurs. Le zigbee capricieux fait qu'il manque deux capteurs de t°/humidité et deux rubans de leds d'ambiance.
J'en ai profité pour mettre à jour le firmware du stick Z-Wave, les deux autres étant encore à jour.
Quasi plus rien ne fonctionne… Ça commence à bien faire, on vire tout et on essaye autre chose!