Domotique sur mesure – part. 3 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.

vi ~/.homeassistant/configuration.yaml

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/

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

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.

zone:
    name: Work
    latitude: xx.xxxx
    longitude: x.xxxx
    radius: 250
    icon: mdi:briefcase

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.

group: !include groups.yaml

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.
    mqtt:
        broker: 192.168.1.100
        port: 1883
        client_id: home-assistant
        keepalive: 60
        username: USERNAME
        password: PASSWORD
    
  • 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

device_tracker:
    - platform: owntracks

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:

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:

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.

hass --script check_config

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
automation: !include automation.yaml
    • Créez le fichier « automation.yaml » au même niveau que votre fichier de configuration
touch automation.yaml
    • 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
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]

  • 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 !

 

 Installez Home-assistant Domotique sur mesure

Cadre en informatique dans une multinationale je suis un touche-à-tout passionné de nouvelles technologies.
Tu aimes cet article ? Alors partage le Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPin on PinterestShare on RedditShare on Tumblr

Laisser un commentaire