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.
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:
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 »
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.
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:
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 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 à: « # »)
- Ouvrez home-assistant via votre navigateur
- Dans le menu en bas, vous trouverez une section « Developer tools », cliquez sur le premier bouton
- Remplissez les différents champs en vous inspirant de l’exemple ci-dessous
- 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 !
Cadre en informatique dans une multinationale je suis un touche-à-tout passionné de nouvelles technologies.
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
Bonjour,
La méthode pour démarrer automatiquement Home assistant est différente en fonction de votre installation. Vous trouverez à l’adresse suivantes les quelques méthodes possibles pour différent cas https://home-assistant.io/docs/autostart/.
Concernant la documentation, comme souvent il est difficile de la trouver en Français…
Enfin les pièces. C’est un point que nous n’avons que très peux abordé pour le moment. Il existe un composant qui s’appel group (https://home-assistant.io/components/group/) qui permet via le fichier de configuration de créer des onglets représentant des pièces.
Bonne journée.