Organisation du fichier configuration.yaml

Pour un ouvrant personnellement je construirai un cover, pour profiter des fonctions

Ca marche pour des ouvrants électriques. Moi, ici, ce ne sont que des capteurs d’ouvertures de portes et fenêtres (je n’ai pas ce soucis pour les thermomètres puisque les 3 infos que je souhaite suivre sont toutes 3 des sensors).

Merci pour le signalement c’est changé

Passe directement à la méthode package :

sur le même principe que ce post :

cela donnerais :

#fichier config/packages/cuisine/mqtt_fenetre.yaml
sensor:
  - platform: mqtt
    object_id: "fenetre_open_cuisine_contact"
    name: "Cuisine - Fenêtre"
    device_class: window
    icon: mdi:window-closed-variant
    payload_on: false
    payload_off: true
    availability_topic: "zigbee2mqtt/bridge/state"
    value_template: "{{value_json.contact}}"
    state_topic: "zigbee2mqtt/fenetre_open_cuisine"
binary_sensor:
  - platform: mqtt
    state_topic: "home-assistant/window/contact/cuisine"

et par exemple :

#fichier config/packages/salon/mqtt_fenetre.yaml
sensor:
  - platform: mqtt
    object_id: "fenetre_open_salon_contact"
    name: "Salon - Fenêtre"
    device_class: window
    icon: mdi:window-closed-variant
    payload_on: false
    payload_off: true
    availability_topic: "zigbee2mqtt/bridge/state"
    value_template: "{{value_json.contact}}"
    state_topic: "zigbee2mqtt/fenetre_open_salon"
binary_sensor:
  - platform: mqtt
    state_topic: "home-assistant/window/contact/salon"

Bref : comme dit un peu partout :

Elle permet de tout mélanger de façon à tout ranger… (j’adore cette phrase… lol)

J’ai fait ça ce soir :stuck_out_tongue_winking_eye:

La méthode package est exactement ce qu’il me fallait!

Le seul truc dingue serait de pouvoir donner un dossier au lieu d’un fichier yaml :grin: ça obligé à créer un package par fichier.

Exemple dans config.yaml.

    # Salon
    salon_fenetre_droite: !include packages/maison_rdc/salon/fenetre_droite_open.yaml
    salon_fenetre_gauche: !include packages/maison_rdc/salon/fenetre_gauche_open.yaml
    salon_thermometre: !include packages/maison_rdc/salon/thermometre.yaml

S’eut été cool de pouvoir faire un truc genre

salon : !include_dir packages/maison_rdc/salon

Ça éviterai 1 package par capteur. Mais j’en demande trop (sensor et binary_sensor apparaissant dans chaque fichier).

Merci pour le message :+1:

regarde le lien que j’ai mis et qui indique comment utiliser le mode package… :

ensuite, tu n’as plus rien a faire…

tous les fichiers yaml présent dans le dossier packages sont automatiquement chargés :heart:

1 « J'aime »

Je pousse l’investigation demain mais ce que j’ai fait auj n’a pas marché :grin: merci de l’info!

Salut !

Juste en ne mettant les petites lignes qui vont bien sur le !include_dir_named, pour une raison que j’ignore, j’ai 2 thermomètres qui ne remontent pas :thinking: Ils n’ont rien en commun… J’ai des capteurs de marques différentes, dans des dossiers différents, le contenu est le même, etc… J’ai 80% des entitées qui remontent… Je ne sais pas du tout où chercher…

J’ai donc effectué des changements pour mettre…

configuration.yaml:

homeassistant:
  packages: !include_dir_named packages

packages/exterieur/thermometre.yaml

#
# THERMOMETRE DE LA TERRASSE
#
# Création des entités pour le capteur de température de la terrasse
# - Température
# - Niveau de batterie
# - Qualité du signal
#
exterieur_thermometre: # Est-ce obligatoire ? Je ne l'ai pas sur les autres fichiers qui remontent une info.
# ----------------------
  sensor:
# ----------------------

# Capteur de température
    - platform: mqtt
      object_id: "thermometre_exterieur_temperature"
      name: "Extérieur - Température"
      state_topic: "zigbee2mqtt/thermometre_exterieur"
      availability_topic: "zigbee2mqtt/bridge/state"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.temperature }}"

# Niveau de Batterie
    - platform: mqtt
      object_id: "thermometre_exterieur_battery"
      name: "Extérieur - Batterie"
      state_topic: "zigbee2mqtt/thermometre_exterieur"
      availability_topic: "zigbee2mqtt/bridge/state"
      unit_of_measurement: "%"
      value_template: "{{ value_json.battery }}"

# Qualité du Signal
    - platform: mqtt
      object_id: "thermometre_exterieur_linkquality"
      name: "Extérieur - Qualité du signal"
      state_topic: "zigbee2mqtt/thermometre_exterieur"
      availability_topic: "zigbee2mqtt/bridge/state"
      unit_of_measurement: "LQI"
      value_template: "{{ value_json.linkquality }}"

Le test de configuration ne me renvoie aucune erreur mais les paramètres ne remontent pas et j’ai un « entité non disponible » dans lovelace…

Le système fonctionne pour 4 capteurs, 2 ne remontent pas :thinking: (Sachant qu’ils ont tous la même trame).

EDIT : J’ai compris une partie : même nom de fichier… En revanche puisque j’inclus exterieur_thermometre: je ne pensais pas que ça posait soucis

Salut @titof2375, effectivement le découpage de ton fichier configuration n’a pas grand chose à voir avec ce sujet.

Je te conseille d’ouvrir un nouveau sujet après la lecture de cet article Traduction configuration fractionnée. Ce nouveau fil de discussion nous permettra de répondre à toutes tes interrogations sur ta configuration.

Tu peux aussi lire ce fil de discussion Organisation du fichier configuration.yaml sur l’organisation du fichier de configuration.yaml même si je l’avoue, il est assez long :thinking:

Tu peux aussi t’inspirer des configurations mises à disposition, par certains « Homer », dans la awesome list comme la mienne par exemple Configuration très découpée qui est considérée, par certains, comme l’oeuvre d’un psychopathe du découpage des fichiers :grin:

Je ne pense pas.

Tu demande si quelqu’un sait nager et un maître nageur arrive et t’explique.

Pzut être ne voulait tu pas autant de détails mais la réponse de @Sylvain_G ne t’es pas uniquement destiné.

Bon courage.

:hacf:

Je voulais simplement savoir si des personnes l’avais fait , pas savoir comment le faire

Bonjour à tous,

Je suis débutant avec Home Assistant et les fichiers .yaml.

J’ai déjà réussi à utiliser le fichier secrets mais je cherche maintenant à structurer mes fichiers dans différents dossiers voire des sous dossiers.

Voici ce que j’ai dans mon fichier configuration

# Configuration par défaut
default_config:

# Configuration personalisée
homeassistant:
packages: !include_dir_named packages

Puis voici ce que j’ai dans un fichier home.yaml du dossier packages

  name: Home
  latitude: 48.858218
  longitude: 2.294208
  elevation:  33.7
  unit_system: metric
  currency: EUR
  time_zone: "Europe/Paris"

Et là quand je vérifie ma configuration je suis en erreur. Pourquoi ? Comment corriger ?

Est-il possible de créer des sous-dossiers ?

Merci d’avance pour votre aide.

Toute cette partie doit être sous homeassistant: pas dans packages

Merci pour ton aide @Sylvain_G mais j’ai toujours un message d’erreur :

Integration error: packages - Integration 'packages' not found.

Est-ce que ce ne serait pas mon packages : dans le fichier config.yaml qui pose problème ? Dois-je donner un nom spécifique au fichier qui contient le code dans le dossier packages ?

Je pense qu’il y a un problème d’indentation au niveau de packages.

Tu peux prendre exemple sur ma configuration :

homeassistant:
  name: Maison
  latitude: !secret homeassistant_latitude
  longitude: !secret homeassistant_longitude
  elevation: !secret homeassistant_elevation
  unit_system: metric
  time_zone: !secret homeassistant_time_zone
  external_url: !secret homeassistant_url_externe
  internal_url:  !secret homeassistant_url_interne

  packages: !include_dir_named integrations

Comme tu peux le voir, le attributs name, latitude, … et packages sont au même niveau d’indentation.

Si tu veux inclure un fichier, tu dois passer par !include (voir mon fichier lovelace/default/dashboard.yaml) :

views:
  # - !include views/freebox_landscape.yaml
  - !include views/freebox_responsive.yaml
  - !include views/weather.yaml

Tu peux voir aussi comment commenter une ligne avec le #.

Pour inclure le contenu d’un répertoire, il y a plusieurs solutions qui sont expliquées dans la documentation de home assistant.

N’hésites pas à partager tes fichiers et leurs place dans l’arborescence de ton répertoire /config pour que nous puissions t’aider.

1 « J'aime »

Bonjour à tous,

Ca risque d’être long à lire, préparez vous un café dès maintenant, une fois qu’il est prêt passer à la suite de ce commentaire lol.

Je met le nez dans la discussion mais je ne vois pas trop de réponse à mon problème. Après 2 jours à essayer de le comprendre, j’aimerais avoir vos lumières.

il se trouve quand j’ai installer HA, j’avais bien remarquer qu’il fallait ajouter des choses dans le fichiers configuration.yaml, à l’époque déjà j’avais essayer d’intégré un nouveau fichier.yaml puis de faire un include dans le config puis redémarrer mais ça n’avais pas marché, je me suis donc dis que j’allais y revenir plus tard. On y est.

Je commence à trouver que mon fichier config est sacrément désorganiser et donc je voudrais le scinder en plusieurs fichiers pour réunir certains sensors ou les laisser dans leurs coins bref organiser tout ça quoi.

Mon problème est le suivant :
Lorsque que je créer un fichier.yaml que je renseigne quelque chose dedans, puis que je vais dans configuration.yaml et que je fais un include ça ne veut pas marcher je vous mets un peu d’éléments :

issu du fichier configuration.yaml :

wake_on_lan: !include wollenovo.yaml
sensors: !include sensors.yaml 

pour le premier, je ne retrouve absolument pas mon switch du fichier ‹ wollenovo ›
pour le second j’ai une erreur avant redémarrage du système que voici :

Integration error: sensors - Integration 'sensors' not found.

En revanche si je mets ma ligne sensors include en commentaire j’ai plus de soucis. (sauf le WOL qui ne veut toujours pas travaillé…)

Avec tout ce que j’ai lu et un tout petit peu de logique je me dit que c’est la déclaration qui est mauvais pour l’include, mais je ne sais pas comment les déclarer; quand je remplace leurs noms l’erreur est là pour les 2… J’ai essayé d’appeler le 1er ‹ WOL › et le second ‹ Jour › puis le séparateur l’include et le fichier.yaml qui s’y rattache et erreurs.

Avant de devenir fou j’aimerais un petit coups de main, je déteste ne pas comprendre quelque chose, et j’imagine que pour vous c’est ultra logique que j’ai ce soucis

Merci à ceux qui prendrons le temps de lire tout ça .

Bj

tu peux faire aussi ceci

Cree un dossier
config/ packages

dans ton config yaml
ajoute:

homeassistant:
  packages: !include_dir_named packages

Capture d’écran 2023-08-23 231046

pour t’aider sur le principe
cree un dossier weather par exemple

met un fichier que tu nomme comme tu veux
blabla.yaml

et dedans met ceci

sensor:
  - platform: template
    sensors:

      precipitation_probability:
        friendly_name: "Probabilité de précipitations"
        value_template: "{{ state_attr('weather.openweathermap', 'forecast')[1].precipitation_probability }}"

reboot

Bonjour,

Avant tout merci pour ta réponse et finalement la solution !

Je ne voulais pas passer par cette étape car je me suis dit si déjà j’arrive pas à intégré un simple fichier, faire arriver tout ce qui tiens dans un dossier c’est clairement pas dans mes cordes…

Merci encore à toi :pray:

No Soucy
on as tous connu des galères :grinning:

Bah maintenant quand je rajoute un autre dossier que le weather j’en ai créer un jours et mois parce que je veux créer des template pour les jours et pour les mois en vue de faire une sidebar prochainement.
Eh bien j’ai ce message qui arrive :

expected a dictionary for dictionary value @ data['packages']['joursmois']