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.
Je n'utilise plus NET RADIO initialiement fourni et inclus par Yamaha depuis que le service vTuner est devenu payant.

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" via le bluetooth (adaptateur relié à la source Audio2) dans la zone 2 qui est la salle de bain et à partir de mon ordiphone :

alias: Bluetooth SdB
sequence:
  - service: media_player.turn_on
    target:
      entity_id:
        - media_player.yamaha_receiver_salle_de_bain
    data: {}
  - service: media_player.volume_set
    data:
      volume_level: 0.7
    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
  - service: notify.mobile_app_M2002J9G
    data:
      message: command_bluetooth
      data:
        command: turn_on
    alias: "Allume le bluetooth de l'ordiphone"
  - service: notify.mobile_app_M2002J9G
    data:
      message: command_media
      data:
        media_command: play
        media_package_name: com.earthflare.android.radioparadisewidget.gpv2
    alias: Lance RadioParadise
mode: single

Remarque : pour piloter un ordiphone à partir de Home Assistant voir cette page : https://companion.home-assistant.io/docs/notifications/notification-commands/

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: []

 

Pour de la reconnaissance vocale libre et non externalisée (à tester) :

https://github.com/rhasspy/rhasspy

 

Adresses IPv4 et IPv6 en ligne de commande :

Si l'on modifie l'adresse IPv6 de son Home Assistant sur son Raspberry Pi et que ça fasse sauter son réseau (ça m'est arrivé alors que j'essayais d'accéder de l'extérieur via ma SFRbox et mon NAS Syno : il fallait débrancher le Raspberry Pi du réseau pour que la SFRBox refonctionne, voir cet article où je parle de la configuration de la SFRBox pour accéder à mon NAS de l'extérieur), il est possible de reconfigurer l'adresse IPv6 via cette ligne de commande (attention, il faut brancher le cable réseau et taper rapidement cette commande, avant que la box ne plante) :

ha> network update eth0 --ipv6-method auto