7 min read

Prise en main d'openHAB (2019)

Prise en main de la solution domotique openHAB 2 comme point de départ de notre installation domotique.
Illustration de l'article Prise en main d'OpenHAB
L'article ayant été rédigé il y a plusieurs années de ça, il est possible que certaines informations soient aujourd'hui incorrectes et/ou incomplètes.

openHAB (pour Open Home Automation Bus) est une plateforme open-source dédiée à l'automatisation de la maison, concurrente à Home Assistant. Elle permet d'intégrer divers appareils et systèmes domotiques issus de marques différentes, offrant ainsi une interface unique pour contrôler et automatiser la maison. Avec openHAB, les utilisateurs peuvent créer des règles personnalisées, surveiller leurs dispositifs en temps réel et gérer leur logement à distance via des applications mobiles ou des interfaces web. La flexibilité et l'évolutivité de cette solution en font un choix populaire parmi les passionnés de domotique.

Installation d'openHAB 2

openHAB est un logiciel écrit en Java, ce qui signifie qu'il peut fonctionner aussi bien sous Windows que sous Linux, en conteneurs Docker ou encore sur les NAS Synology. Il existe également une image prête à l'emploi pour Raspberry Pi.

Dans cet article, nous expliciterons son installation sur Linux (Debian/Ubuntu). Si vous souhaitez l'installer sur une autre plate-forme, nous vous invitons à lire la documentation officielle qui est très bien fournie. De plus, nous ne détaillerons pas l'installation d'un système Linux dans cet article.

Pré-requis

Nous allons commencer par installer Java 8 sur notre système Linux. La documentation déconseille d'utiliser OpenJDK (l'implémentation libre de Java) à cause d'un problème de performance. Nous allons donc installer l'implémentation officielle Oracle. Problème : celle-ci n'est pas disponible sur les dépôts Debian.

Nous commençons par ajouter un nouveau dépôt en créant un nouveau fichier e configuration dans APT (utilisez sudo si vous n'êtes pas root) :
$ sudo nano /etc/apt/sources.list.d/java-8-debian.list et on colle les lignes ci-dessous dans le fichier :
deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main
deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main
  1. On va ensuite importer la clé GPG du dépôt pour valider les paquets :
    $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
  2. Finalement on mets à jour la liste des paquets et on installe Java :
    $ sudo apt-get update
    $ sudo apt-get install oracle-java8-installer
  3. On termine par vérifier l'installation :
    $ java -version
    java version "1.8.0_201" Java(TM) SE Runtime Environment (build 1.8.0_201-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

Installation

  1. Comme précédemment, on commence par ajouter la clé du dépôt pour pouvoir installer le paquet openhab2 :
    $ wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add -
  2. On installe le paquet apt-transport-https pour ajouter le support du HTTPS à APT :
    $ sudo apt-get install apt-transport-https
  3. On ajoute un nouveau dépôt à APT :
    $ echo 'deb https://dl.bintray.com/openhab/apt-repo2 stable main' | sudo tee /etc/apt/sources.list.d/openhab2.list
  4. Finalement on mets à jour la liste des paquets et on installe openHAB :
    $ sudo apt-get update
    $ sudo apt-get install openhab2

Note sur la sécurité

Nous partons du principe que vous effectuez l'installation sur une machine de votre réseau local, à votre domicile. De ce fait, vous n'exposez pas votre installation d'openHAB sur internet et pouvez y accéder uniquement depuis votre réseau. Nous vous déconseillons d'exposer publiquement votre installation sans mettre en place certains mécanismes de sécurité comme une connexion VPN (ce que nous faisons à nos domiciles et que nous vous conseillons de faire).

Vocabulaire et concepts

Maintenant que nous avons mis en place notre openHAB, il est temps de vous parler de son fonctionnement.

Tout au long de cette article, nous allons parler de "vue physique" et de "vue fonctionnelle".

  • vue physique : la plus simple à appréhender. Il s'agit tout simplement des produits que vous intégrez à votre solution domotique. Ce sont les objets que vous pouvez physiquement toucher -(oui, oui, essayez !)-. Vous pourriez les représenter sous la forme d'un plan de maison annoté par exemple.
  • vue fonctionnelle : la nouvelle venue. On s'intéresse ici à comment les informations sur les objets, les connexions, etc. sont présentés à l'utilisateur et comment celui-ci peut interagir avec.
Pour caricaturer, nous pourrons dire que la vue physique représente le monde réel et que la vue fonctionnelle représente le monde logiciel.

La vue fonctionnelle d'openHAB est constitué de plusieurs éléments qui, associés, permettent à l'utilisateur d'interagir avec ses objets pas trop intelligent. Nous pouvons la schématiser comme ci-dessous :

Vue fonctionelle d'openHAB
Dans ce premier article, nous nous limiterons aux termes Things, Channels, Items et Bindings. Nous traiterons la partie interface utilisateur et automatisme dans un prochain article.

Les Things (ou "choses")

Derrière ce terme se range tous vos objets connectés, que ce soit des prises, des ampoules, votre télé ou même des services en ligne (pour obtenir la météo par exemple). Ce sont des éléments avec lesquels openHAB sera en mesure de communiquer pour récupérer une valeur ou demander une action.

Quelques objets intégrables à la solution openHAB
Si l'on prend l'exemple de l'ampoule, nous souhaitons récupérer son état (on/off), sa luminosité ou encore, sa couleur (si RGB). Dans le cas de la télé nous pourrions récupérer son état mais également définir la chaîne souhaitée.

Les Channels (ou "canaux")

Avoir un objet connecté, c'est sympa, pouvoir interagir avec, c'est mieux ! Normalement, chaque objet que vous ajouterez dans openHAB disposera d'un ou plusieurs canaux (sinon à quoi sert votre objet ?). Ce sont par le biais de ces canaux que vous pourrez lire la température de votre sonde ou définir la couleur.

Illustration des canaux sur une ampoule RGB
Il existe également un type de canal particulier nommé triggerChannel. Nous en reparleront plus tard, notamment dans la partie sur les scénarios.

Les Bindings (ou "mappages")

Tout cela est bien gentil, mais comment openHAB peut-il interagir avec tout ça ? Grâce aux bindings ! Ce sont en réalité des plugins qui lui permettent de dialoguer avec des objets étrangers. Développés par des personnes tierces ou non, il en existe des centaines pour chaque gamme de produit connectés.

Capture d'écran de la liste des bindings d'openHAB

On retrouvera par exemple un binding pour la gamme Philips Hue, un binding pour la gamme Xiaomi Aqara, etc. Ainsi grâce à ces petits bouts de code, il est possible d'étendre les fonctionnalités d'openHAB et d'inclure de nouveaux objets connectés.

Les Items (ou "élément")

Dernier terme de cet article, et non des moindres, les items. Il s'agit des éléments les plus importants dans la configuration d'openHAB. Les Items sont la représentation virtuelle de l'état d'un objet au sein de l'application, par exemple si une ampoule est allumée ou non, et sont généralement lié à un Channel de Thing. Néanmoins, ceux-ci peuvent être indépendant des Things pour contenir une valeur ou une configuration par exemple.

Ces Items peuvent être de différents types. La capture d'écran ci-dessus vous présentent différents types tels que un interrupteur ou un sélecteur de couleur. Mais il en existe d'autres, comme listé sur la capture ci-dessous :

Liste non exhaustive de différents types d'Items dans openHAB

Ces Items vous permettront de réaliser facilement et rapidement votre interface utilisateur et votre tableau de bord. Nous en reparlerons dans un futur article dédié à ces interfaces.

Petite aparté sur le type Group. Celui-ci vous permet de regrouper ensemble plusieurs Items, de type différent ou non. Si tout les membres du groupe sont du même type, vous pourrez alors tous les modifier en même temps.

Découverte de la solution

Alors ça y est. Vous avez installé votre openHAB et avez assimilé vos premiers termes techniques ? Il est maintenant temps de bidouiller un peu !

Avant toute chose, votre installation d'openHAB est accessible à l'adresse suivant : http://<IP>:8080<IP> est remplacé par l'adresse IP de votre machine hébergeant votre installation. Si vous ne la connaissez pas, pas d'inquiétude. Vous pouvez la récupérer de deux manières différentes :

  • soit vous avez accès à un terminal sur votre machine Linux, auquel cas vous pouvez utiliser la commande ifconfig (paquet net-tools) ou ip a (paquet iproute2). L'adresse IP des interfaces réseaux de votre machine s'affichera alors. Généralement, cette IP prendra la forme suivant 192.168.1.X.
  • soit vous n'avez pas accès à votre machine mais avez accès à l'interface d’administration de votre box internet, généralement accessible à l'adresse IP 192.168.1.1 ou 192.168.1.254 en fonction de votre opérateur, d'où vous pourrez visualiser toutes les adresses des machines de votre réseau local.

Si tout se passe bien, vous devrez arriver sur cet écran ci-dessous :

Capture d'écran de la configuration initiale

L'assistant de première configuration vous propose 4 configuration plus ou moins différentes avec chacun son lot de paquet/application disponible :

  • Demo : comme son nom l'indique, ce mode créera pour vous une configuration généraliste afin de faire la démonstration des possibilités d'openHAB. Nous retrouverons les paquets suivants : interface d'administration, interface utilisateur 2.X, tableau de bord et quelques bindings.
  • Expert : permet aux utilisateurs de la première version de retrouver les mêmes fonctionnalités et le même fonctionnement qu'auparavant. Nous retrouverons les paquets suivants : interface d'administration 2.X et 1.X, interface utilisateur 2.X et 1.X, tableau de bord et REST API.
  • Simple : encore en développement, cette configuration vous propose de configurer votre installation uniquement via l'interface d'administration. Nous retrouverons les paquets suivants : interface d'administration 2.X, tableau de bord et outil de création de règle d'automatisation.
  • Standard : contient les paquets recommandés pour un utilisateur normal tels que : interface d'administration 2.X, interface utilisateur 2.X, tableau de bord et un générateur de configuration pour votre maison.

Pour notre usage, nous choisirons la configuration standard qui nous propose tout les paquets nécessaires pour nos premiers pas en domotique.