Alléger le fichier configuration.Yaml

Bonjour,
Dans mon fichier configuration.yaml j’ai des identités switch,smartir,cover,template,
google_assistant mis en dur.

Afin d’ éviter peut-être la surcharge de ce fichier, et surtout bien organiser celui-ci, je voulais savoir si je pouvais mettre ces quatre entités dans un fichier includes ? Si oui, quelle direction, je dois mettre ?

Merci

Salut,

Pour alléger configuration.yaml il y 2 choses que je fais.

  1. Virer des choses et les passer par l’UI et des Entrées, énormément de choses sont faisables directement depuis HA, sans passer par du YAML.

  2. Couper ta config en plusieurs fichiers.
    C’est expliqué dans le lien ci dessous, mais tu peux créer un fichier par domaine de yaml.
    Chaque mot-clé qui est en début de ligne « template: » ou « sensor: » peut-être déporté dans un fichier dédié.

sensor: !include sensor.yaml
mqtt: !include mqtt.yaml
openhasp: !include openhasp.yaml
1 « J'aime »

OK, j’ai mis switch et cover dans un include. Il me reste

smartir:
climate:
  - platform: smartir
    name: climate
    unique_id: climate
    device_code: 1086
    controller_data: remote.broadlink

et

google_assistant: 
  project_id: "homeassixxxxxx"
  service_account: 
    private_key: "d71d95794c43xxxxxxxxx"
    client_email: homeassistant@homeassvccxxxxxxxccount.com
  report_state: true
  exposed_domains:
    - switch
    - light
    - sensor
    - script
  entity_config:
    climate.climate:
      name: Climatisation
      room: Chambre
      expose: true
    climate.poele:   
      name: Poele
      room: Chambre
      expose: true
    switch.poele_start_stop:   
      name: Start
      room: Chambre
      expose: true

Est-ce que ces 2 restants vont dans un include ? Car je ne les vois pas dans la liste que tu as fourni ci-dessus

Pour google assistant oui c’est possible

Configuration.yaml

google_assistant: !include google_assistant.yaml

google_assistant.yaml

project_id: homeassixxxxxx
service_account: !include homeassixxxxxx.json
report_state: true
exposed_domains: false
entity_config:
### Temperatures et humidité
  sensor.ble_temperature_bureau:
    expose: true
    name: Thermostat bureau
    etc......

Et bien sur ne pas oublier de redémarrer ensuite.

Ok me reste plus que smartir. On peut le mettre dans un include ?

Pense à la solution packages qui permet de regrouper par fonction.

Il suffit de rajouter ceci dans configuration.yaml

homeassistant :
  packages: !include_dir_named packages

puis de créer un répertoire packages
Tous les fichiers yaml seront considérés comme des fichiers de configuration.

Gros avantage, on peut mixer les types d’objets : automatisation, sensor, input…

2 « J'aime »

Les includes fonctionnant bien et étant simple à mettre en place, j’ai voulu essayer de mettre celui du Smartir, seulement ça ne fonctionne pas. J’ai ce message d’erreur.



Salut

Problème de syntaxe, tu as supprimé des indentations dans la manip (cf 1 et 2 ème lignes)

Hum où ca ? Car je ne vois pas


Deux lignes comme ça, c’est pas possible

C’est pourtant le code qui se trouve dans le fichier configuration.YAML
Tu veux que je mette quoi dans mon fichier smartir.yaml ?

Et pourtant dans la doc, c’est bien comme cela que c’est indiqué :

Je pense @sg72 qu’il faudrait que tu utilises le mode package, car comme indiquer, il permet dans un seul fichier d’avoir tout ce qui concerne ton intégration automatisation, etc. tu peux donner le nom que tu souhaites au fichier.yaml pour que ce sois plus simple pour toi de t’y retrouvé.

Plusieurs choses ici.
Si tu mets une ligne :

smartir: !incluse smartir.yaml

Ton fichier smartir.yaml ne peux pas commencer par :

smartir:

Ensuite ici :

smartir:
climate:
  - platform: smartir

Pour moi la ligne smartir: ne sert a rien. Essai de la commenter dans ton configuration.yaml et regarde ce qu’il se passe. Cela devrait toujours fonctionner.
Si c’est le cas c’est un fichier climate.yaml qu’il te faudra créer en tenant compte de ma première remarque.

Si smartir est tout seul (ligne 1)mettre un include ne sert à rien, il n’y a rien comme configuration supplémentaire.
Et mettre dedans les lignes relatives à climate n’a pas beaucoup plus de sens puisque c’est justement pas une config ‹ sous › smartir

1 « J'aime »
climate:
  - platform: smartir
    name: climate
    unique_id: climate
    device_code: 1086
    controller_data: remote.broadlink

Dans configuration.yaml fonctionne
Par contre, si je mets les codes ci-dessus dans un fichier nommé climate.yaml avec climate: !include climate.yaml dans configuration.yaml ca ne fonctionne pas

Normal

Regarde ma première remarque et adapte avec climate.

Tu as aussi l’exemple de Google assistant que je t’ai posté.

Et ben voilà :slightly_smiling_face:


Le fait de ne pas utiliser package, mais plutôt les noms explicite HA comme cover, climate, light, tu n’as pas besoin dans le fichier de commenter par justement les termes climate:, light:, cover:

Du fait que tu indiques que les climate se trouve (grâce au ! Include) dans le fichier climate.yaml alors ha part du principe que tout ce qui se trouve dedans est du climate

Par contre, si tu utilises le mode package donc le fichier xxx.yaml peut avoir le nom que tu souhaites et à l’intérieur, tu pourras avoir du climate:, light:, cover: etc…

Ce sont deux approches différentes l’un permet d’avoir tous les mêmes « type » dans un même fichier l’autre permet d’avoir plusieurs type dans un même fichier par exemple pour faire un fichier qui concerne tout ce qui et ton salon, tu pourrais avoir un fichier salons.yaml et y mettre toute ta config