Les bases d’Home-assistant

Pour ce troisième billet de la série Domotique sur mesure je vous propose de voir comment mettre en place votre première automatisation Home-assistant !

Allumer vos lumières, ouvrir vos volets,  recevoir des notifications personnalisées, … vous aurez énormément de possibilités, et si vous pensez bien vos automatisations elles peuvent facilement améliorer votre quotidien et vous aider à mieux gérer votre foyer. Allez, c’est parti !

Automatisation

L’automatisation d’actions est l’un des plus gros atouts de notre nouveau compagnon. Pour ce faire tout le système va se reposer sur trois types d’éléments :

  • Les déclencheurs (triggers) -> Evénements détectés par le système
  • Les conditions -> Qui permettent de choisir les actions à exécuter en fonction de la situation
  • Les actions -> Qui permettent d’agir sur un élément de votre système

Ainsi, dans cet article, nous allons découvrir quelques composants à notre disposition qui permettront de mettre en place une automatisation basée sur votre localisation.

Configuration géographique

Lorsque vous allez vouloir mettre en place vos automatisations, vous aurez certainement besoin de définir des zones d’actions. C’est pourquoi nous allons voir rapidement comment les paramétrer afin de pouvoir les utiliser comme des triggers ou des conditions.

Premièrement, nous allons indiquer le lieu où se trouve votre système. Pour ce faire éditez le fichier de configuration.

[shell]vi ~/.homeassistant/configuration.yaml[/shell]

Pour rappel, n’oubliez pas qu’après chaque modification de ce fichier vous devrez redémarrer l’application pour qu’elle soit prise en compte.

Au début de votre fichier, vous devriez avoir des informations semblables à l’exemple ci-dessous. Normalement ces valeurs doivent être à peu près justes mais vous pouvez les affiner ou les corriger grâce à des outils tels que http://www.gps-coordinates.net/

[js]
homeassistant:
# Omitted values in this section will be auto detected using freegeoip.io
# Location required to calculate the time the sun rises and sets
latitude: xx.xxx
longitude: xxx.xxx

# Impacts weather/sunrise data (altitude above sea level in meters)
elevation: xxx

# ‘metric’ for Metric, ‘imperial’ for Imperial
unit_system: metric

# Pick yours from here:
# http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
time_zone: Europe/Paris

# Name of the location where Home Assistant is running
name: Home
[/js]

Une fois modifié, redémarrez Home-assistant. Vous devriez voir un point sur votre carte.

Carte Home assistant

Carte Home assistant

Dorénavant votre système peut déterminer la météo, l’heure des levés et couchés de soleil à l’endroit où il est installé.

De nouvelles zones

Sur le même principe, il est possible de définir autant de zones que vous le souhaitez en ajoutant les lignes suivantes et en les adaptant à votre cas.

[js]
zone:
name: Work
latitude: xx.xxxx
longitude: x.xxxx
radius: 250
icon: mdi:briefcase
[/js]

Dans ce morceau de configuration assez simple, on trouve le nom du lieu, ses coordonnées, un périmètre et enfin une icône.

Vous trouverez une liste d’icônes sur https://materialdesignicons.com/. Pour en utiliser une, il vous suffit de mettre le nom de cette dernière précédé de « mdi: ».

À force d’ajouter des éléments, votre fichier de configuration risque d’être difficile à maintenir. N’hésitez donc pas à le découper en plusieurs parties. En effet, Il existe un système d’inclusion de fichier il vous suffit d’utiliser include comme dans l’exemple ci-dessous.

[js]group: !include groups.yaml[/js]

Tracker

Maintenant que nous avons créé quelques zones, nous allons mettre en place les éléments permettant de localiser des positions. Pour ce faire nous allons utiliser Owntracks.

Pour fonctionner, ce système nécessite l’utilisation d’un serveur (ou broker) MQTT. Vous pouvez utiliser des alternatives cloud comme Cloud MQTT (gratuit sous certaines conditions) ou vous baser sur un serveur privé. Si vous préférez cette deuxième option je vous conseille ce billet qui vous explique comment mettre en place un broker MQTT sur votre Raspberry Pi.

D’autres solutions tel que locative sont possible mais MQTT présente de nombreux avantages.  En effet contrairement à des solutions basée sur HTTP, il permet gérer s de QoS (Qualité de service), il consomme très peu de bande passante et il est orienté « distribution de donnée » et non communication de point à point.

Installation sur smartphone

Premièrement, nous allons installer Owntracks sur votre smartphone via le play store ou l’app store.

Une fois en place, nous allons configurer notre application. Les exemples que nous allons voir sont fait à partir d’un téléphone Android et d’un broker privé sur mon Raspberry.

La configuration

Le premier écran que vous devriez voir est le suivant:

Owntrack - Login

Owntrack – Login

Si ce n’est pas le cas vous pouvez y accéder via le menu de préférences que vous retrouverez en bas du burger menu.

Cliquez sur mode et choisissez « Private MQTT »

Private MQTT

Private MQTT

Ensuite, cliquez sur Host et indiquez l’adresse et le port de votre broker (attention ce dernier doit être accessible de l’extérieur).

Après cela, sélectionnez identification et renseignez vos identifiants.

Authentification

Authentification

Validez et utilisez la flèche en haut à gauche pour afficher une map.

Si tout est bon vous devriez avoir quelque chose comme l’écran ci-dessous:

Carte

Carte

Les tests

Pour être certain que tout est bon, vous pouvez utiliser un client MQTT sur votre PC afin de consulter les messages qui transitent. Si votre Owntracks est bien configuré vous devriez voir passer des coordonnées comme sur l’exemple ci-dessous.

MQTT.fx

MQTT.fx

MQTT et home-assistant

La configuration

Nous savons comment envoyer une position à notre broker MQTT,  maintenant nous allons nous en servir afin de déclencher des actions.

Dans un premier temps nous allons paramétrer la connexion.

  • Ouvrez votre fichier de configuration
  • Ensuite, ajouter les lignes suivantes en adaptant l’adresse, le port, l’utilisateur et le mot de passe.

    [js]
    mqtt:
    broker: 192.168.1.100
    port: 1883
    client_id: home-assistant
    keepalive: 60
    username: USERNAME
    password: PASSWORD
    [/js]

  • Redémarrez home-assistant

Je vous conseille de bien scruter vos log lors du démarrage afin d’identifier toute erreur éventuelle. Si vous ne percevez rien d’anormal nous allons pouvoir passer aux tests.

Les tests

  • Ouvrez un client MQTT sur votre PC ou smartphone (pour plus d’info rendez-vous ici)
  • Connectez vous en subscriber et écoutez tous les topic (grâce à: « # »)

    MQTT - Subscribe

    MQTT – Subscribe

  • Ouvrez home-assistant via votre navigateur
  • Dans le menu en bas, vous trouverez une section « Developer tools »,  cliquez sur le premier bouton

    Outils avancés

    Outils avancés

  • Remplissez les différents champs en vous inspirant de l’exemple ci-dessous

    Home assistant - debugger

    Home assistant – debugger

  • Cliquez sur « CALL SERVICE »
  • Vérifiez que le client MQTT que vous avez connecté au début reçoit bien le message

Nous sommes maintenant capable d’utiliser le broker MQTT via home-assistant et notre smartphone cast des informations de positions sur ce même broker. Nous allons donc pouvoir utiliser notre position.

Owntracks et home-assistant

La configuration de Owntracks dans Home-assistant est assez simple il vous suffit d’indiquer qu’il est votre tracker. Pour ce faire vous devez ajouter les lignes suivantes dans votre fichier de configuration

[js]device_tracker:
– platform: owntracks[/js]

La plupart du temps vous n’avez rien d’autre à ajouter, mais il existe des paramètres supplémentaires qui vous permettent:

  • d’utiliser les « ways point » qui sont des sortes de zones propre à Owntracks
  • de filtrer les appareils GPS en fonction de leur précision

Pour plus d’informations je vous conseille de consulter la documentation.

Magie !  Après redémarrage de home-assistant vous devriez vous voir sur la map !

Bonus

Notre système marche bien, cependant votre identification n’est pas super fun à l’écran… Voyons comment ajouter un avatar et/ou un nouveau pseudo pour vous identifier sur la map.

Rendez-vous au niveau du fichier de configuration. Vous devriez trouver un fichier nommé known_devices.yaml. Si vous avez déjà paramétré OwnTracks et redémarrez home-assistant vous devriez avoir des informations dans ce fichier, il vous suffit alors de simplement compléter correctement chaque élément. Si ce n’est pas le cas voici comment initialiser le fichier:

[js]
username_deviceId:
hide_if_away: false
mac: adresse mac de votre périphérique
name: nom ou surnom à afficher
picture: URL de votre avatar
track: true
vendor:
[/js]

Déclencher une action

Avant de terminer je vous propose de voir rapidement comment allumer des lampes hue lorsque vous rentrez chez-vous. Cet exemple est assez simple et peu utile (l’application native de hue nous le permet déjà) mais nous permettra de jouer dès maintenant avec les triggers et les actions que nous verrons plus en détail dans de prochains billets.

Nous allons commencer à effectuer des manipulations de plus en plus complexes sur nos différents fichiers de configurations. La ligne de commande suivante nous aidera à débugguer sans perdre de temps à redémarrer home-assistant.

[shell]hass –script check_config[/shell]

Tout d’abord, pour commencer à structurer notre configuration je vous propose d’utiliser un nouveau fichier yaml.

    • Ajouter la ligne suivante dans le fichier de configuration

[shell]automation: !include automation.yaml[/shell]

    • Créez le fichier « automation.yaml » au même niveau que votre fichier de configuration

[shell]touch automation.yaml[/shell]

    • Identifiez le nom de la lampe ou du groupe de lampe que vous désirez allumer
    • Identifiez le nom du device qui doit allumer les lampes lorsqu’il entre dans la zone
    • Construisez votre fichier automation.yaml comme l’exemple ci-dessous en fonction de votre cas

[js]
trigger:
platform: zone
entity_id: device_tracker.xxx
zone: zone.home
event: enter # or leave
action:
service: homeassistant.turn_on
entity_id:
– light.salon
data:
brightness: 150
rgb_color: [255, 0, 0]

[/js]

  • Redémarrez home-assistant
  • Testez !

Pour vérifier que toute la chaîne fonctionne correctement sans bouger de chez vous je vous conseille d’utiliser des applications simulant de fausses positions GPS comme Fake GPS Location.

Conclusion

C’est tout pour aujourd’hui ! Notre système s’étoffe un peu plus et il devient de plus en plus tentant d’aller plus loin !

Ce billet est le dernier de la série Domotique sur mesure.  En effet, nous avons vu la base des principaux éléments que je voulais vous montrer.  Tout n’est pas fini pour autant et nous verrons plus en détail dans les prochains articles certaines possibilités qui nous sont offertes avec des périphériques du marché mais aussi avec des objets plus artisanaux. N’hésitez pas à me faire part de vos idées, questions, remarques et/ou expériences par commentaire !

A bientôt !

 

2 réponses

  1. Chevalier Pierre dit :

    Bonsoir
    comment lancer Home assistant au démarrage du raspberry ?
    existe t’il une documentation en français ?
    je voudrais définir les différentes pièces de mon appartement et les différents objets à l’intérieur de ces pièces, comment faire ?
    Cordialement
    Pierre Chevalier

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.