"Configuration.yaml": comprendre le fichier de configuration de Home Assistant

5 minutes de lecture
But du guide:
  • Comprendre les concepts de base liés au fichier de configuration de Home Assistant
  • Niveau de difficulté: basso
Concepts traités:
  • configuration du logiciel
Composants logiciels utilisés:
Pré-requis:
GUIDE plus indiqué pour:

Tous les environnements

Notes et avertissement
  • qualsiasi modifica all'impianto elettrico dev'essere progettata ed effettuata da personale qualificato;
  • tout changement mis en œuvre dans proavant est un prola responsabilité personnelle, ainsi que propremier risque et danger (le contenu de la présente page est purement pédagogique);
  • tout changement mis en œuvre dans proavant un appareil, il annule la garantie, les approbations de qualité et les certifications.
Avis de conduite: 3.2

Abstrait

Home Assistant entièrement basé sur propremière configuration - puis tout entité défini dans - sur un fichier leader appelé "configuration.yaml"Défini, pour leappsur le format de sérialisation des données YAML. Ce fichier se trouve généralement dans le répertoire racine de l’installation de Home Assistant; Par exemple, dans l'installation de Raspbian, il se trouve généralement dans le chemin:

/home/homeassistant/.homeassistant/

tandis que sur HASSIOon le trouve généralement sur le chemin:

/ Config /

ce chemin change évidemment de installation à installation.

En gros c'est d'un fichier texte contenant une série de "blocs" (sans ordre spécifique), dont chacun rappressent un spécifique Composant / plate-forme di Home Assistant, composants qui, une fois configurés, définissent un ou plusieurs intégrations.

Si par exemple nous voulions intégrer la domotique à partir de Home Assistant une lumièredisons de la série la magie, nous utiliserions la plateforme qui lui est dédiée "Flux Led / Magie Light", Qui est la" fille "du composant"Light».

Le "bloc" lié à cette intégration correspondrait à:

# Esempio di entry su configuration.yaml
light:
  - platform: flux_led
    automatic_add: True

où la voix "lumière:"Définit le début du bloc composant"Light"Et le sous-bloc"platform:”Définit la vraie entité e proavant, proappris en spécifiant la plate-forme, ou "flux_led».

  • un composants (composant) fournit la logique de base pour des fonctionnalités spécifiques (par exemple "lumière»);
  • un plate-forme (platform) crée la connexion à un logiciel et / ou un matériel spécifique (par exemple "flux_led").

Faites attention au fait que le intentazione a un rôle déterminant lors de la définition des relations définies dans YAML - la plupart des erreurs de configuration proviennent en fait d’une indentation incorrecte. Les éléments en retrait sont imbriqués dans des éléments d'un niveau "supérieur". Dans l'exemple ci-dessus, “platform: flux_led"Est-ce qu'un propropriété (imbriquée) du composant "notifier».
Chaque degré d'indentation est défini par deux espaces, pas trois, pas un: deux.

Par convention, l'indentation est définie à travers deux espaces pour chaque niveau de nidification.
Les lignes précédées du "#"Sont ignorés par le système.

Avant de donner une configuration à un aliment Home Assistant, c’est toujours une bonne idée de valider le propremier fichier YAML à travers le site YAMLint.


Tous les composants ne nécessitent pas la mise en œuvre de plates-formes sous-jacentes, mais ils peuvent être utilisés et configurés indépendamment.

L'exemple à suivre montre une configuration de composant "Sélection d'entrée"Que prodonne une liste d'éléments de choix (sous forme de saisie de l'utilisateur au niveau de l'interface graphique). Comme indiqué, aucune plate-forme n'est indiquée.

autres propropriété (par exemple "name") Sont spécifiés avec mappature. Remarquez comment la deuxième ligne est seulement "menace:"Sans valeur sur la même ligne. En effet, il ouvre des lignes d’imbrication successives pour définir ses paramètres:

input_select:
  threat:
    name: Threat level
# Le opzioni di scelta vengono definite tramite la seguente mappatura
    options:
    - 0
    - 1
    - 2
    - 3
    initial: 0

L'exemple suivant montre plutôt l'imbrication d'une collection de mappature dans un mappatura lui-même: dans ce cas deux sont définis "Sensor"(Capteurs) qui utilisent la plate-forme"MQTT Sensor"Qui ont des" sujets d'état différents "(l'une des valeurs propropriétés typiques d'un capteur MQTT):

sensor:
  - platform: mqtt
    state_topic: sensor/topic
  - platform: mqtt
    state_topic: sensor2/topic
UTILISEZ DES VARIABLES ENVIRONNEMENTALES

Dans le fichier de configuration configuration.yaml (comme dans les autres fichiers du sidecar qui y sont connectés) vous pouvez utiliser des variables d'environnement. Pour en utiliser un il suffit d'indiquer "! env_var”Suivi du nom de la variable elle-même.
Par exemple:

http:
api_password: !env_var PASSWORD

Si la variable n'est pas définie, il est possible d'indiquer dans la configuration la valeur à utiliser alternativement:

http:
api_password: !env_var PASSWORD password_di_default
INCLURE LE FICHIER SIDECAR (SUBDIVISION)

Étant donné que la configuration augmente augmente également la taille du fichier, pour améliorer sa lisibilité, il est possible d'indiquer à l'intérieur références spécifiques à des fichiers externes en utilisant la particule "! include”Suivi du nom du fichier à inclure:

lights: !include lights.yaml

En substance, il est possible de maintenir "configuration.yaml"En tant que" colonne "de la configuration et utilisez plusieurs fichiers (.yaml) en tant que" ribs "dans lesquels configurer les entités dérivées des divers composants déclarés dans le fichier principal.

Subdivision de fichier "configuration.yaml"Dans plusieurs fichiers, sidecar est une technique qui réduit la complexité et augmente la facilité de gestion. C’est pourquoi, sur inDomus, nous avons décidé de nous consacrer à ce thème. une page ad hoc.

Exemple de configuration

Ce qui suit est à peu près (cela peut changer d’une version à l’autre), une configuration "typique"»de Home Assistant:

homeassistant:
  # Name of the location where Home Assistant is running
  name: Home
  # Location required to calculate the time the sun rises and sets
  latitude: 43.9092
  longitude: 12.9164
  # Impacts weather/sunrise data (altitude above sea level in meters)
  elevation: 0
  # 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/Rome
  # Customization file
  customize: !include customize.yaml

# Show links to resources in log and frontend
introduction:

# Enables the frontend
frontend:

# Enables configuration UI
config:

# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
# http:
#   base_url: example.duckdns.org:8123

# Checks for available updates
# Note: This component will send some information about your system to
# the developers to assist with development of Home Assistant.
# For more information, please see:
# https://home-assistant.io/blog/2016/10/25/explaining-the-updater/

updater:
  # Optional, allows Home Assistant developers to focus on popular components.
  # include_used_components: true

# Discover some devices automatically
discovery:

# Allows you to issue voice commands from the frontend in enabled browsers
conversation:

# Enables support for tracking state changes over time
history:

# View all events in a logbook
logbook:

# Enables a map showing the location of tracked devices
map:

# Track the sun
sun:

# Allow diagnosing system problems
system_health:

# Sensors
sensor:
  # Weather prediction
  - platform: yr

# Text to speech
tts:
  - platform: google

# Cloud
cloud:

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml

Comme on peut le constater, une série de composants sont déjà répertoriés et donc actifs sur la plate-forme; d'autres, bien sûr, seront personnalisés à la main.

Dans la file d'attente, un bon rappressentiment du concept de subdivision en plusieurs fichiers du fichier de configuration.

Comment modifier le (s) fichier (s) de configuration

Comme expliqué dans l’ouverture, la modification de ces fichiers texte dépend du type de système et de l’installation de Home Assistant en cours d'utilisation.
Dans le cas d' Raspbian + Home Assistant, il est possible d'accéder au système via SSH (via un terminal ou via SFTP, via un client FTP typique) Filezilla) et écraser / modifier des fichiers; en utilisant HASSIOau lieu de cela, la chose la plus pratique est que installer et utiliser leadd-on "Configurator".

Avec des systèmes comme Windows e macOS la chose est triviale: il suffit de trouver les fichiers sur le système de fichiers et de les modifier directement avec un éditeur de texte présent sur le système d'exploitation. Nous recommandons le feuillage persistant ATOM.

"Configuration.yaml": comment scinder le fichier de configuration de Home Assistant


Home Assistant Logo officielATTENZIONE: rappelez-vous qu'il y a sur notre communauté FORUM une section ad hoc dédiée à Home Assistantpour tout doute, question, information sur le mérite spécifique de ces composants.


Veuillez commenter ci-dessous