Tester les logiciels domotique à l'aide de Docker sur Windows, macOS ou Linux (Jeedom, Domoticz, Home Assistant…) • Domotique et objets connectés à faire soi-même

Vous ne savez pas quel logiciel domotique choisir pour créer votre installation, Docker est un bon moyen de les tester facilement et rapidement sans avoir à configurer une machine à chaque fois. Nous allons voir comment faire pour tester Jeedom, Domoticz, openHAB et Home Assistant. Dans cet article, nous allons utiliser Kitematic (inclus dans le Docker Toolbox) qui ajoute une interface graphique à Docker pour Windows ou MAC OS X macOS.

Pour ceux qui ne connaissent pas encore Docker

Nous n’allons pas faire une présentation détaillée de Docker dans cet article, il y a déjà énormément d’articles qui traitent très bien du sujet sur internet. En voici quelques uns :

Vous pouvez également commencer par regarder cette vidéo de Grafikart qui présente comment utiliser Docker sur Windows.

Docker offre de nombreux avantages par rapport à la virtualisation classique :

  • Moins de ressources nécessaires. Docker utilise les ressources de la machine hôte (sous linux) ou démarre un Linux léger (sur PC et Mac).
  • Gestion très souple des containers. On peut démarrer, arrêter très rapidement un container (quelques secondes)
  • Conception très simple des machines. Un simple fichier texte suffit à décrire la machine à construire.
  • On peut lier des containers entre eux.

Et c’est juste un début. Voyons comment Docker peut maintenant nous aider à tester simplement plusieurs logiciels domestique sans avoir à monopoliser une machine.

Configuration nécessaire

Docker fonctionne sur de nombreuses plateformes (pour ne pas dire toutes). Linux tout naturellement mais maintenant Windows et macOS. Dans ce cas Docker démarre dans une petite machine virtuelle qui fait fonctionner un système Linux très léger. Docker fonctionne aussi sur NAS et Raspberry Pi.

Pour tester Docker à l’aide de la Toolbox (qui contient Kitematic), vous devrez disposer d’un PC de moins de 8 ans équipé de Windows 10 64bit. La Toolbox fonctionne sur les versions Pro, Enterprise ou Education.

Si vous possédez un Mac, celui-ci devra répondre au critères suivants pour que Docker puissent fonctionner :

  • Modèle datant de 2010 au minimum pour pouvoir disposer du jeu d’instruction MMU (Memory Management Unit) des processeurs Intel.
  • macOS 10.10.3 Yosemite ou plus récent
  • Au moins 4GB de RAM.

Pour cet article, j’ai utilisé un Mac Mini 2012 équipé d’un processeur  intel i7 et 8Go de RAM.

Logiciel : Kitematic, une interface graphique pour Docker

Comme nous ne sommes pas tous des barbus, je vous propose donc d’utiliser Kitematic qui ajoute une interface graphique à Docker. Téléchargez et installez la Docker Toolbox qui contient Kitematic depuis cette page en fonction de votre environnement (Mac ou Windows). Kitematic n’est disponible qu’en Anglais mais son utilisation est très simple.

Tester le Docker Jeedom

Pour tester Jeedom, nous allons devoir installer deux containers. Je n’en connais pas la raison (probablement par manque de temps), mais il faut au préalable disposer d’une base de données mysql fonctionnelle. Commençons par l’installer.

Installation de la base de données mysql

Cliquez sur + NEW puis saisissez mysql dans le champ de recherche ou cliquez sur Recommended. Terminez la création en choisissant l’image officielle.

Si vous démarrez la machine mysql, vous aurez le message d’erreur suivant. C’est normal, il faut définir au moins un mot de passe à mysql.

Avant de démarrer l’image, allez dans l’onglet Settings -> General. Allez à la fin de la liste de variables d’environnement (Environment Variables) puis ajouter une clé MYSQL_ROOT_PASSWORD. Dans le champ Value, indiquez le mot de passe de la base de données. Nous en aurons besoin pour configurer Jeedom et pourquoi pas aller voir ce qui se passe dans la base de données ultérieurement. N’oubliez pas de sauvegarder la configuration en appuyant sur Save.

Vous pouvez maintenant démarrer mysql. Au premier lancement, mysql va terminer l’installation et la configuration de l’environnement. Sur la première page de la machine (Home), vous trouvez son adresse ip qui sera nécessaire pour Jeedom. Dans mon cas, elle est 192.168.99.100. Le port 3306 de mysql est déplacé sur le port 32795. Le port est attribué de manière aléatoire au premier lancement, mais vous pouvez le définir vous même.

C’est terminé pour mysql, allons-y pour Jeedom.

Installation d’une machine Jeedom

En faisant une recherche sur le mot Jeedom, on trouve de plusieurs images. L’image officielle est publiée par l’équipe Jeedom. Comme vous pouvez le voir, il existe des images avec un préfixe rpi. Elles sont destinées pour fonctionner avec la version Raspberry de Docker.

Créez un container à partir de l’image maintenue pas l’équipe de développement. Au premier démarrage, Jeedom termine l’installation et récupère les derniers paquets. Soyez patient, c’est un peu long la première fois. Lorsque vous voyez apparaitre l’interface de Jeedom dans l’onglet Web Preview, cliquez sur l’icône d’ouverture du navigateur par accéder à Jeedom.

Ca commence mal ! Il nous reste un peu de travail à faire avec la version 2.3 de cette image.

Retournez sur Kitematic et ouvrez le Terminal en cliquant sur le bouton Exec.

Exécutez cette première commande

sudo su -
echo "root ALL=(ALL) NOPASSWD: ALL" | (EDITOR="tee -a" visudo)

Puis celle ci

sudo su -
croncmd="su --shell=/bin/bash - root -c '/usr/bin/php /var/www/html/core/php/jeeCron.php' >> /dev/null 2>&1"
cronjob="* * * * * $croncmd"
( crontab -l | grep -v "$croncmd" ; echo "$cronjob" ) | crontab -

Actualisez la page. Si tout s’est bien passé, il n’y a plus d’erreur et vous devriez arriver sur la page de configuration de la connexion à la base de données mysql. Si les erreurs sont toujours présentent, essayez de redémarrer la machine depuis Kitematic.

Remplissez les champs en fonction de votre configuration :

  • Database hostname : remplacez localhost par l’adresse ip de la machine mysql précédemment créée
  • Database port : le port attribué par Docker ou celui choisi. Dans mon cas, ce sera 32795.
  • Database username : laisser root
  • Database password : celui que vous avez choisi pour la clé MYSQL_ROOT_PASSWORD
  • Database name : jeedom

Cliquez sur Proceed pour terminer.

Jeedom termine son installation.

Suivez le lien Click here pour accéder à la page de connexion de Jeedom. Par défaut, un utilisateur admin avec le mot de passe admin a été créé.

Et voilà, vous êtes prêt à tester Jeedom très facilement. Petit bémol toutefois, le script d’installation exécuté à chaque démarrage est assez long.

Tester le Docker Domoticz

Cliquez sur + NEW puis saisissez domoticz dans le champ de recherche. Au moment de la rédaction de cet article, l’image sdesbure (la plus installée) présente une erreur d’installation (sur macOS du moins). J’ai donc opté pour celle de cyrilix. L’installation peut être assez longue (tout dépend de votre connexion internet), puisque l’image pèse 540Mo.

Une fois l’image récupérée, démarrez la en appuyant sur Start puis ouvrez le navigateur comme pour Jeedom.

C’est déjà terminé !

Tester le Docker OpenHAB

Installez l’image officielle d’OpenHAB. 

Ouvrez le navigateur depuis Kitematic et ajouter ?sitemap=demo à la fin de l’url puis actualisez la page. La démo OpenHAB est installée dans l’image Docker.

openHAB2

Il est tellement simple d’installer une application avec Docker u’il serait dommage de ne pas en profiter pour tester la  version 2 d’OpenHAB qui est en cours de développement.

Les images sont assez nombreuses. Par ma part, j’ai testé celle de wetware (434 MB). Une fois démarré, accédez à l’interface d’OpenHAB2 comme d’habitude depuis Kitematic. Vous pouvez tester l’interface de la démo dans le mode classique (Classic UI) ou dans le nouveau mode (Paper UI).

Cette nouvelle version apporte une interface plus actuelle et la possibilité de configurer directement OpenHAB depuis le navigateur. Pour le moment, n’espérez pas utiliser la version 2 au quotidien, il a encore trop peu de matériels et services supportés :

Tester le Docker Home Assistant

Enfin, le dernier logiciel domotique que je vous propose d’installer et Home Assistant.

Une fois installé et démarré, le mieux est de déplacer le répertoire des données sur la machine hôte. Pour cela, cliquez sur le le chemin du volume (/config) et validez. La machine redémarre et HA recréé une nouvelle configuration.

Avant de pouvoir tester Home Assistant, il nous faut encore configurer une redirection de port (qui n’est pas faite dans le dockerfile). Allez dans les Settings du container à l’onglet Ports. Dans le champ Docker Port, saisissez 8123 et 8123 (ou un autre) dans le champ MAC IP:PORT. Cliquez sur le + puis Save.

Maintenant dans un navigateur saisissez l’adresse suivante

http://IP_DE_VOTRE_PI:8123/states

Vous pouvez tester Home Assistant !

Il ne vous reste plus qu’à jouer avec le fichier configuration.yaml à l’aide d’un simple éditeur de texte sur votre Mac ou PC. Les mises à jour ne sont pas prises en compte en temps réel, redémarrez simplement le container pour les prendre en compte.

Et vous, quel logiciel domotique Open Source (ou pas) utilisez-vous ? Avez-vous aimé cet article ?