Bien démarrer avec Home Assistant

Home Assistant est une très bonne solution pour gérer votre domotique. L’objectif de cet article n’est pas de vous expliquer comment installer home assistant (il y a déjà de nombreux articles là dessus, notamment sur le site officiel) mais plutôt de vous aider dans la première prise en main de l’outil.

Les différentes fonctions de home assistant

Une fois votre serveur installé (sur un raspberry pi, sur votre NAS, sur un serveur dedié, un conteneur docker etc…); vous ouvrez pour la première fois la page d’accueil sur votre navigateur web préféré, et maintenant ?

Les intégrations

Premièrement, home assistant (abrégé HA pour la suite) a besoin de savoir discuter avec vos différents systèmes domotique. Pour cela, il faut les « intégrer ». Il y a lorsque j’écris cet article, plus de 1800 intégrations disponibles nativement. C’est à dire qu’il vous suffit de cliquer sur quelques boutons dans l’interface, et cela va fonctionner.

D’ailleurs lorsque vous avez démarré HA pour la première fois, vous avez certainement reçu des notifications (dans le menu de gauche avec une petite pastille), vous indiquant que HA a directement détecté un composant chez vous qu’il sait gérer ! Vous êtes ensuite invité à installer et à auto configurer l’intégration correspondante.

N’hésitez pas à fouiller dans les intégrations disponibles, elles sont nombreuses et parfois plusieurs intégrations sont possibles pour le même besoin. C’est par exemple le cas du zwave, ou du zigbee. Pour faire votre choix, le plus simple est de regarder si une intégration est dépréciée (cad plus maintenue) ou de regarder le nombre d’installations dans les outils d’analitics qui sont fournis.

Les modules complémentaires (ou add-ons)

Quelles est la différences entre un add-on est une intégration ?

Une intégration est une interface qui permet de discuter avec un autre système. Cela permet à HA de parler la langue de l’autre système. Par exemple, vous avez des lampes Philips Hue chez vous. Vous pouvez interagir avec vos lampes à l’aide de l’application mobile philips, ou des boutons que vous avez positionné chez vous. Dans HA, les lampes sont définies d’une certaines façon, avec des boutons de type lampes. L’intégration Philips Hue dans HA permet de manipuler les lampes Philips Hue avec le vocabulaire et les boutons de HA. Cela permet ainsi de manipuler depuis HA n’importe quelle lampe de la même manière, que ce soit une Philips Hue, une lifX, une Ikea TRÅDFRI ou n’importe quelle autre.

Parfois, vous avez besoin de faire tourner un logiciel en plus sur votre serveur HA afin de fournir un service, c’est ce qui s’appelle un add-on. Par exemple, vous branchez une clef USB bluetooth, zibgee ou zwave. Vous allez avoir besoin d’un serveur qui dialogue avec la clef USB afin d’échanger avec vos périphériques. HA propose des add-ons pour cela.

De même que pour les intégrations, il existe une sorte de « store d’applications » (tous gratuits!) qui permet d’installer des add-ons directement depuis votre HA. Vous noterez que suite à l’installation de l’add-on, on vous suggère l’intégration correspondante à configurer. Hé bien oui, l’add-on est en fait un sous système comme un autre qui doit s’interfacer avec HA à l’aide d’une intégration ☺️

Pour les personnes qui viennent d’un jeedom, cela peut être un peu déroutant, car dans jeedom ces deux notions sont indistinctement regroupées sous la fonction de « plugin » dont certains ont en plus des « démons » en plus, qui correspondent aux add-ons de HA.

Ce qui est intégré de base

Home assistant arrive avec des fonctions qui sont fournies de base comme par exemple la gestion de différentes personnes et de leur présence où non dans le domicile. Pour cela, home assistant propose un système de device_tracker, ainsi par exemple si votre téléphone est sur le réseau wifi, ou si votre montre connectée est détectée en bluetooth, vous serez identifiés comme étant à la maison. Notez qu’il y a pleins d’autres méthodes de détections.

Il y a pleins d’autres fonctions fournies de base, comme une application mobile, du geofencing, la gestion de l’historique des valeurs, la prise en charge de balise NFC, des backups, etc … Je ne vais pas tout détailler ici pour ne passe faire un article trop long 🙂

Les appareils (devices), les entités (entities) et les états (states) …

Je me rappelle m’être perdu entre ces différentes notions à mes débuts. Un schéma valant milles mots, en voici un :

devices vs entity vs state

Un device est un appareil qui regroupe un ensemble de 1 ou N entities. Chaque entity est dans un état unique particulier à un instant T.

Prenons un exemple, vous branchez votre cafetière sur un module interrupteur prise disposant d’une mesure consommation instantanée, cela aura donc cette forme :

Le device « prise cafetière » dispose de 3 entités qui ont chacune un état :

  • interrupteur qui est actuellement l’état « ON »
  • consommation qui est actuellement à 200 (avec l’unité W qui lui est associée)
  • indicateur de surcharge qui est actuellement « OK »
  • vous constaterez qu’il y a également d’autres entites qui sont rattachés à votre device, notamment des éléments « techniques » comme par exemple la qualité du signal vers l’appareil, l’état de la batterie, etc

Vous noterez que chaque entity et chaque state est typé nativement, cela simplifie fortement l’interaction et l’intégration dans le système. Dans l’exemple ci-dessous, l’interrupteur ON/OFF sera du type switch, et la consommation sera un sensor de type power. Ils seront ainsi représenté avec une icone de prise électrique et un petit éclair représentant une consommation électrique.

Les automatisations (automations)

Aussi appelées « routines » ou « scénarios » dans d’autres produits, les automations sont ce qui va vous permettre d’automatiser (comme son nom l’indique!) ce que vous voulez dans votre domicile.

Quelques exemples :

  • allumer la lumière tous les jours à 19h00
  • éteindre toutes les lumières quand il n’y a personne à la maison
  • recevoir une notification lorsque la machine à laver est terminée
  • fermer les volets quand il fait nuit
  • allumer le radiateur quand il fait froid

Tous ces exemples sont facilement mis en œuvre dans des automations.

Point d’attention : toutes les automations sont décrites à l’aide de syntaxe yaml. Il s’agit d’un pseudo langage de programmation prévu pour écrire de la configuration. Vous en trouverez beaucoup dans les forums par exemple. Il s’agit d’un moyen simple et fiable de s’échanger des automations. Le langage varie parfois et il est possible qu’une très vieille automation ne fonctionne plus car repose sur des instructions obsolètes. Il est cependant bien plus confortable et simple d’utiliser l’interface web qui est fournie dans le menu automation du panneau de configuration. Je vous conseille de démarrer à l’aide de l’interface web.
Si vous avez besoin de copier/coller du yaml, vous pouvez passer un bloc de configuration en instruction yaml et vice versa à tout moment ainsi :

Ce qui permet de l’afficher en yaml, dans l’exemple, cela donne simplement ceci :

service: homeassistant.turn_on
target:
  entity_id: switch.chauffeeau

Alors comment cela fonctionne ?

Les déclencheurs (trigger)

Une automation s’exécute lorsqu’un déclencheur est activé. Il existe de nombreux déclencheurs, par exemple :

  • horloge, l’automation se déclenche à une certaine heure tous les jours
  • évènement lié au soleil, lever ou coucher, avec éventuellement un décalage
  • changement d’état, une entité passe dans un nouvel état, par exemple un capteur d’ouverture passe de fermé à ouvert ou un bouton est pressé
  • etc … je vous laisse découvrir les autres 🙂

Les conditions

Le scénario a été déclenché via un déclencheur définit au dessus. Vous pouvez définir ici des conditions additionnelles pour ne pas aller plus loin. Par exemple, vous déclenchez un scénario à 8h00, mais ne souhaitez qu’il ne s’exécute qu’en semaine, pas le week end, c’est ici que vous allez pouvoir le définir.

Notez que si vous souhaitez faire des actions particulières en fonction de conditions, n’utilisez pas de condition ici mais utilisez un bloc « choix » dans la partie action.

Les actions

C’est ici que vous allez définir ce qui doit être fait.

La plupart du temps, vous allez vouloir « exécuter un service » sur des devices ou des entities.

HA fournit un grand nombre de « service » permettant d’interagir automatiquement avec les devices ou les entities concernées. Par exemple, vous voulez modifier un thermostat, HA fournit un service « climate » qui permet de modifier un thermostat, quelle que soit la marque de votre thermostat. Pour continuer sur cet exemple, vous noterez que si vous appelez un service « climate », HA ne vous proposera que les entities de type climate. Vous ne pourrez donc pas demander à une ampoule de chauffer à 20°C 🙂

N’hésitez pas à fouiller dans les options et à chercher des blocs d’exemple sur internet en yaml que vous pourrez simplement adapter à votre besoin.

Les variables

Autre élément de frustration lorsque j’ai débuté avec HA : comment je stocke des variables ?

Par exemple, je souhaite piloter un volet avec un unique bouton. Si j’appuis et que le volet est en haut, je veux qu’il descende, si j’appuis pendant qu’il descend, je veux qu’il s’arrête; si j’appuis à nouveau, je veux qu’il remonte. Et inversement. Pour cela, j’ai besoin d’une variable pour stocker ce que le volet était en train de faire avant que je n’appuie sur le bouton.

Cela s’appelle des inputs dans HA.

Il en existe de différents types comme des listes de choix, ou du texte par exemple. Notez que vous pouvez simplement les créer dans la page web, via un onglet à côté de automation. Il est possible de les manipuler ensuite via les services associés et faire des conditions ou des déclencheurs comme n’importe quel équipement.

Les scripts

Un script est tout simplement une automation sans évènement déclencheur.

Lovelace – les dashboards

Mais qu’est-ce que c’est donc ce « lovelace » ?! C’est ce qui vous permet de gérer des dashboards et de personnaliser votre affichage. Par défaut, vous aurez un dashboard avec tous vos appareils organisés par pièces. N’hésitez pas à créer votre propre dashboard que vous organiserez comme vous le souhaitez.


Cela conclue cet article d’onboarding avec HA. N’hésitez pas à m’indiquer dans les commentaires si vous souhaitez que j’étaye certains points !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.