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.
Commandes en ligne de commandes (CLI) :
Il s'agit des commandes que l'on entre directement dans la console de Home Assistant. Pour info, lorsqu'on installe Home Assistant, il s'installe via un conteneur Docker "invisible".
Source : https://portal.habitats.tech/%F0%9F%93%8CGlossary/Vendor/Domotics/HAOS
La console démarre avec le prompt "ha" qui correspond à la partie "core". Le nombre de commande est limité et pour les lister on tape la commande : ha
Pour accéder au conteneur et à toutes les commandes bash de Linux, il faut saisir : login
Pour en sortir, on saisira la commande : exit
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