Lo Furòl

... de l'ouverture (en occitan)

Vous êtes ici : Accueil / Électronique / Domotique / [Home Assistant] Quelques réglages utiles

Domotique

[Home Assistant] Quelques réglages utiles

Je regroupe ici des informations utiles concernant le réglage de Home Assistant. Voir aussi cette page où je détaille l'ouverture et la fermeture de mon portail de garage.

Installation de MQTT

Mes modules à base de ESP communiquent via le protocole MQTT. Pour que Home Assistant récupère ces infos, il est nécessaire d'installer MQTT.
Si l'on fait de la domotique à partir de son NAS Synology, il sera très certainement nécessaire de disposer d'un broker MQTT. On trouve sur le Net pas mal d'installations passant par Docker mais c'est totalement inutile, car la communauté propose déjà un paquet Mosquitto. Voir cet article expliquant comment installer Mosquitto directement sur un NAS Synology.

Édition des fichiers de configuration .yaml

Si on dispose de la version HASSIO, on pourra installer l'add-on "File Editor" qui permettra de faire l'édition directement dans Home Assistant. Par contre, si on a installé Home Assistant Core (ce qui est mon cas depuis que Hassio n'est plus disponible pour les NAS Syno à cause d'une version de Docker trop ancienne... pour le coup Synology est très mauvais à ce niveau, GRRR !!!), il faudra éditer les fichiers avec l'éditeur de fichiers intégré dans DSM.

 

Intégration de l'ampli Yamaha RX-V677

Voir cette page : https://www.home-assistant.io/integrations/yamaha/. Ça fonctionne : l'ampli est reconnu avec les 2 zones que l'on peut allumer/éteindre, choisir la sortie et modifier le volume.

Code à rajouter dans le fichier "configuration.yaml" (qui contient la ligne "script: !include scripts.yaml") :

# Example configuration.yaml entry
media_player:
  - platform: yamaha
    host: 192.168.1.50
    source_names:
      AUDIO1: "CD Multi"
      AUDIO2: "Bluetooth"
    zone_names:
      Main_Zone: "Salon"
      Zone_2: "Salle de bain"

Codes à rajouter dans le fichier "scripts.yaml" (à condition que le fichier configuration.yaml contienne cette ligne "script: !include scripts.yaml") pour lancer la radio Internet "Radio Paradise" ou "France Inter" ou le bluetooth (adaptateur relié à la source Audio2) dans la zone 2 qui est la salle de bain :

rp_sdb:
  alias: Radio Paradise SdB
  sequence:
  - service: media_player.turn_on
    target:
      entity_id:
      - media_player.yamaha_receiver_salle_de_bain
  - service: media_player.volume_set
    data:
      volume_level: 0.65
    target:
      entity_id: media_player.yamaha_receiver_salle_de_bain
  - service: media_player.select_source
    data:
      source: NET RADIO
    target:
      entity_id: media_player.yamaha_receiver_salle_de_bain
  - service: media_player.play_media
    data:
      media_content_type: NET RADIO
      media_content_id: Favoris>My__Favorites>Radio Paradise
    target:
      entity_id: media_player.yamaha_receiver_salle_de_bain
  mode: single

fi_sdb:
  alias: France Inter SdB
  sequence:
  - service: media_player.turn_on
    target:
      entity_id:
      - media_player.yamaha_receiver_salle_de_bain
  - service: media_player.volume_set
    data:
      volume_level: 0.65
    target:
      entity_id: media_player.yamaha_receiver_salle_de_bain
  - service: media_player.select_source
    data:
      source: NET RADIO
    target:
      entity_id: media_player.yamaha_receiver_salle_de_bain
  - service: media_player.play_media
    data:
      media_content_type: NET RADIO
      media_content_id: Favoris>My__Favorites>France Inter
    target:
      entity_id: media_player.yamaha_receiver_salle_de_bain
  mode: single

bluetooth_sdb:
  alias: Bluetooth SdB
  sequence:
  - service: media_player.turn_on
    target:
      entity_id:
      - media_player.yamaha_receiver_salle_de_bain
  - service: media_player.volume_set
    data:
      volume_level: 0.65
    target:
      entity_id: media_player.yamaha_receiver_salle_de_bain
  - service: media_player.select_source
    data:
      source: AUDIO2
    target:
      entity_id: media_player.yamaha_receiver_salle_de_bain
  mode: single

Anciens scripts pour écouter la radio via l'ampli Yamaha

Remarque : il faudrait les actualiser avec les noms des chemins qui ont changé en se basant sur ceux donnés ci-dessus.
J'utilise le service https://yradio.vtuner.com/ (3$/an depuis quelques temps désormais... Faut toujours se méfier des services gratuits au début mais devenant payant par la suite... Il est aussi possible de passer par la solution YCast https://github.com/milaq/YCast qui demande un serveur toutefois) via la fonction NET RADIO. Voici des scripts (dans le fichier "scripts.yaml") permettant d'écouter la radio dans la zone 2 de l'ampli (ma salle de bains). Pour une raison que j'ignore, France Inter ne fonctionne pas malgré mes recherches alors que les 2 autres fonctionnent très bien... Du coup, je passe par le Tuner (pré-réglé sur France Inter).

radio_sdb_marseillette:
  alias: SdB Radio Marseillette
  sequence:
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
    service: media_player.turn_on
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
      volume_level: 0.6
    service: media_player.volume_set
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
      source: NET RADIO
    service: media_player.select_source
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
      media_content_id: "Favoris>Locales>Radio Marseillette 101.3 FM"
      media_content_type: NET RADIO
    service: media_player.play_media
  mode: single
  icon: mdi:radio
radio_sdb_lengadoc:
  alias: SdB Radio Lenga Oc
  sequence:
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
    service: media_player.turn_on
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
      volume_level: 0.6
    service: media_player.volume_set
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
      source: NET RADIO
    service: media_player.select_source
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
      media_content_id: "Favoris>Locales>Radio Lenga d'Oc"
      media_content_type: NET RADIO
    service: media_player.play_media
  mode: single
  icon: mdi:radio
radio_sdb_franceinter:
  alias: SdB France Inter
  sequence:
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
    service: media_player.turn_on
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
      volume_level: 0.6
    service: media_player.volume_set
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
      source: NET RADIO
    service: media_player.select_source
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
      media_content_id: "Favoris>Nationales>France Inter"
      media_content_type: NET RADIO
    service: media_player.play_media
  mode: single
  icon: mdi:radio
radio_sdb_franceinter_tuner:
  alias: SdB France Inter Tuner
  sequence:
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
    service: media_player.turn_on
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
      source: TUNER
    service: media_player.select_source
  - data:
      entity_id: media_player.yamaha_rx_v677_salle_de_bain
      volume_level: 0.7
    service: media_player.volume_set    
  mode: single
  icon: mdi:radio  

 

Activation des différents capteurs d'un ordiphone

Dans l'application Home Assistant installée sur mon ordiphone (Xiaomi Mi 10 Lite 5G 128Go), il est possible via le paramètre "Configuration de l'application" d'activer différents capteurs afin qu'en fonction de leurs états, ils interagissent avec Home Assistant. Ça ouvre énormément de possibilités d'automatisation. Pour le coup Home Assistant est vraiment très puissant de ce côté-là.
Par exemple, lorsque je connecte le bluetooth de l'ordiphone à ma chaîne Hifi (via mon module TP-LINK_Music), je veux lancer une automatisation qui permette d'allumer la chaine hifi dans la zone 2 (qui est la salle de bain) avec la connection bluetooth activée (voir script plus haut "bluetooth_sdb"). Ainsi en lançant l'application Radio Paradise sur l'ordiphone, la musique sortira via les hauts-parleurs de la salle de bain.

Voici le code dans le fichier "automations.yaml" :

- id: '1618451164511'
  alias: Allumage Auto du bluetooth SdB
  description: ''
  trigger:
  - platform: state
    entity_id: sensor.xiaomi_tm_connexion_bluetooth
    attribute: connected_paired_devices
    to: '[xx:xx:xx:xx:xx:xx]'
  condition: []
  action:
  - service: script.bluetooth_sdb
  mode: single

 

Notifications via courriel

Il peut être intéressant de recevoir une notification sur son ordiphone (via l'application "companion" installable via le PlayStore Android par exemple) ou par courriel lorsqu'un évènement particulier est détecté (par exemple l'ouverture de la porte du garage). Pour cela, il faut auparavant indiquer le paramétrage SMTP du compte courriel que l'on souhaite utiliser dans le fichier "configuration.yaml". Voici mes réglages pour mon compte chez Free (attention car à la moindre erreur, ça ne fonctionnera pas et les logs ne sont pas très explicites) :

notify:
  - name: "courriel"
    platform: smtp
    server: "smtp.free.fr"
    port: 465
    timeout: 15
    sender: "Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser." #expéditeur
    encryption: tls  #ATTENTION ne pas mettre "starttls"
    username: "xxxxxxxxxxxxxxx" #ne pas indiquer le domaine @free.fr
    password: "mot_de_passe"
    recipient: "xxxxxxxxxxxxxx@xxxxxxx" #destinataire
    sender_name: "Mon Home Assistant"

Si on souhaite envoyer une notification dans une automation, voici ce que ça donne dans le fichier "automations.yaml" pour envoyer un courriel à l'ouverture de la porte de garage ainsi qu'une notification sur l'ordiphone :

- id: '1618611554684'
  alias: Notification Portail Garage OUVERT
  description: Indique que le portail a été ouvert.
  trigger:
  - platform: state
    entity_id: cover.garage
    from: closed
    to: open
  condition: []
  action:
  - service: notify.mobile_app_xiaomi_tm
    data:
      title: Garage ouvert
      message: Le portail du garage est ouvert.
  - service: notify.courriel
    data:
      title: Garage ouvert
      message: Portail du garage ouvert !
  mode: single

 

 

 

Installation du plugin Home Assistant Community Store (HACS)

Ceci n'est valable que pour la version HASSIO installée (voir au-dessus dans la partie édition des fichiers yaml). C'est indispensable si on veut profiter d'outils partagés par les utilisateur⋅rice⋅s de Home Assistant. Par contre, l'installation n'est pas évidente car il faut récupérer un dossier, le téléverser sur notre NAS et un compte GitHub...
Sources :

 

Utilisation de Uptime pour éviter des notifications lors du redémarrage de HA

https://www.home-assistant.io/integrations/uptime

https://community.home-assistant.io/t/stop-notifications-on-startup/138902

On crée un sensor qui permettra de savoir depuis combien de temps HA a redémarré :

sensor:
  - platform: uptime
    name: Temps Allumage
    unit_of_measurement: minutes

Une fois qu'on a créé le sensor "uptime", on ajoute dans nos automations (par exemple une notification) dans partie "condition:" une valeur qui empêche de lancer l'automatisme au redémarrage (ici la notification ne se fera qu'au bout d'une minute après le redémarrage de HA :

  condition:
  - condition: numeric_state
    entity_id: sensor.uptime
    above: 1

 

Installation du plugin Node-Red

Utile pour programmer des scénarios. Page : https://github.com/hassio-addons/addon-node-red

Configuration :

credential_secret: 'xxxxxxxxxxxxxxx'
dark_mode: false
http_node:
  username: ''
  password: ''
http_static:
  username: ''
  password: ''
ssl: false
certfile: fullchain.pem
keyfile: privkey.pem
require_ssl: false
system_packages: []
npm_packages: []
init_commands: []

 

 

Vous êtes ici : Accueil / Électronique / Domotique / [Home Assistant] Quelques réglages utiles