# Séparation de fichier

**URL:** <https://forum.hacf.fr/t/separation-de-fichier/25329>\
**Category:** Entraide Home Assistant\
**Created:** [Juin 28, 2023, 9:39 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329 "2023-06-28T21:39:36Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![didok94](https://forum.hacf.fr/user_avatar/forum.hacf.fr/didok94/32/25204_2.png) [@didok94](https://forum.hacf.fr/u/didok94)\
**Post date:** [Juin 28, 2023, 9:39 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/1 "2023-06-28T21:39:36Z")

</div>

Bonjour,  
Je suis assez nouveau sur Home Assistant et j’essaie tant bien que mal de créer une domotique au top.  
L’intégration se passe dans l’ensemble plutôt bien.

## Mon problème

Mon problème survient lorsque je commence à créer des automatisations et autres interfaces Lovelace…

Tout le monde ici a bien compris qu’il est nécessaire de séparer les fichiers de configuration, sinon cela devient rapidement un vrai chaos. Normalement, tout le monde me suit jusqu’à présent…

Ma question est simple : est-ce que quelqu’un peut expliquer de manière simple comment séparer les fichiers ?

Je ne comprends pas les autres posts qui vont dans un sens puis dans l’autre.

## Pourquoi je veux faire cela !

Je veux simplement avoir :

- un dossier pour Lovelace, qui !include d’autres fichiers Lovelace à l’intérieur,
- un dossier ou un fichier par «&nbsp;projet&nbsp;», en fonction de la taille de mon projet,
- et d’autres choses auxquelles je n’ai pas encore pensé, car je n’ai pas encore été confronté à ces problèmes.

Mais lorsque dans les faits j’essai de le faire, les «&nbsp;input&nbsp;» ne marche pas dans les «&nbsp;automation&nbsp;», etc, etc, etc.

En ce moment, je suis en train de domotiser plusieurs potagers (un extérieur et un intérieur). Pour le moment, j’ai écrit du code qui dit : si le capteur d’humidité est inférieur à X %, alors active le relais correspondant. C’est bien, mais j’aimerais aussi prendre en compte la température, la pluie (avant ou après, donc n’arrose pas), la période de l’année, etc.

Cela est réalisable, mais étant donné la taille du code, je ne peux pas me permettre de tout regrouper dans le même fichier que les autres.

J’espère que quelqu’un pourra faire quelque chose de succinct facile et clair pour que tous les débutant en profite.  
PS : le partage de postes bien expliqué est bien entendu le bienvenu. je n’ai pas encore trouvé mon bonheur dans cette jungle du/des forums.

---

<div class="post-metadata">

**Author:** ![Abel](https://forum.hacf.fr/user_avatar/forum.hacf.fr/abel/32/32093_2.png) [@Abel](https://forum.hacf.fr/u/Abel)\
**Post date:** [Juin 28, 2023, 9:45 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/2 "2023-06-28T21:45:26Z")

</div>

Bonjour Hugo

Regarde si cette discussion peut faire ton bonheur  
[https://forum.hacf.fr/t/mise-en-place-de-la-fonction-packages-dans-configuration-yaml/24996](https://forum.hacf.fr/t/mise-en-place-de-la-fonction-packages-dans-configuration-yaml/24996)

Lien vers la doc officielle [https://www.home-assistant.io/docs/configuration/packages/](https://www.home-assistant.io/docs/configuration/packages/)

Cordialement,

Abel

---

<div class="post-metadata">

**Author:** ![barto\_95](https://forum.hacf.fr/user_avatar/forum.hacf.fr/barto_95/32/172_2.png) [@barto\_95](https://forum.hacf.fr/u/barto_95)\
**Post date:** [Juin 29, 2023, 1:35 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/3 "2023-06-29T13:35:42Z")

</div>

Il faut tous simplement dans ton fichier configiguration.yaml ajouter la ligne suivante:

```yaml
homeassistant:
  packages: !include_dir_named packages

```

ensuite il faut creer un dossier packages au même niveau/endroit ou et ton fichier configuration.yaml

et dans ce dossier tu peut ensuite faire des sous dossier avec les fichier qui porte les noms que tu souhaite.

Par contre ne pas oublier a chaque fois d'indiquer dans ton fichier si ce sont des sensors, binary\_Sensor etc...

éxemple:

 ![2023-06-29_15-32-56](https://forum.hacf.fr/uploads/default/original/3X/5/a/5a2647c70f1d2c287369b2fd2e384aaa0272230d.png)

et ensuite dans le fichier (pour l'exemple le contenue du fichier youtube.yaml qui est une integration pour aller chercher les infos de certaine chaine youtube, c'est un sensor donc ne pas oublier de l'indiquer en haut du fichier, comme si tu le configurais dans le fichier configuration.yaml):

 ![2023-06-29_15-34-30](https://forum.hacf.fr/uploads/default/original/3X/f/4/f4eb809d5b6d779f1be0c1a3e818d86500ac8707.png)

---

<div class="post-metadata">

**Author:** ![didok94](https://forum.hacf.fr/user_avatar/forum.hacf.fr/didok94/32/25204_2.png) [@didok94](https://forum.hacf.fr/u/didok94)\
**Post date:** [Juin 29, 2023, 8:31 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/4 "2023-06-29T20:31:44Z")

</div>

@Abel Merci pour tes lien je n’ai pas encore tous lu mais je sui dessus.

@barto_95  
Si je résume :

> **/config/configuration.yaml :**
>
> ```auto
> 
> # Loads default set of integrations. Do not remove.
> default_config:
> 
> # Load frontend themes from the themes folder
> frontend:
> themes: !include_dir_merge_named themes
> 
> # Text to speech
> tts:
> - platform: google_translate
> 
> #//////////////SEPARATION DES DOSSIERS//////////////
> #///////SCRIPT///////
> script: !include scripts.yaml
> 
> #///////SCENE///////
> scene: !include scenes.yaml
> 
> #///////AUTOMATISATION///////
> automation: !include automations.yaml
> automation telegram_automation: !include telegram_automation.yaml
> 
> #///////DOSSIER POTAGER///////
> homeassistant:
> potager: !include_dir_named potager
> 
> #///////LOVELACE///////
> 
> #//////////////APPLICATION TELEGRAM//////////////
> telegram_bot:
> - platform: polling
> api_key: !secret telegram_token
> allowed_chat_ids:
> - !secret id_telegram_XX
> - !secret id_telegram_XXX
> 
> notify:
> - platform: telegram
> name: Telegram_XX
> chat_id: !secret id_telegram_XX
> - platform: telegram
> name: Telegram_XXX
> chat_id: !secret id_telegram_XXX
> 
> ```

> **/config/potager/potager.yaml :**
>
> ```auto
> automation potager_exterieur: !include potager_exterieur.yaml
> input_boolean potager_exterieur_boolean: !include potager_exterieur_boolean.yaml
> 
> automation potager_exterieur: !include potager_interieur.yaml
> input_boolean potager_interieur_boolean: !include potager_interieur_boolean.yaml
> 
> ```

> **/config/dossier/fichier.yaml : (exemple)**
>
> ```auto
> automation fichier: !include fichier.yaml
> input_boolean fichier_boolean: !include fichier_boolean.yaml
> input_select fichier_select: !include fichier_select.yaml
> ...
> script fichier_script: !include fichier_script.yaml
> switch fichier_switch: !include fichier_switch.yaml
> sensor fichier_sensor: !include fichier_sensor.yaml
> ...
> 
> ```

---

<div class="post-metadata">

**Author:** ![Abel](https://forum.hacf.fr/user_avatar/forum.hacf.fr/abel/32/32093_2.png) [@Abel](https://forum.hacf.fr/u/Abel)\
**Post date:** [Juin 29, 2023, 8:59 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/5 "2023-06-29T20:59:37Z")

</div>

> [@didok94](#):
>
> ```auto
> homeassistant:
> potager: !include_dir_named potager
> 
> ```

potager: n'est pas un "domaine"reconnu

il faut que ce soit package:

`package: !include_dir_named potagers`

ensuite pas besoin d'autre include dans potager.yaml

Imaginons la structure suivante

![image](https://forum.hacf.fr/uploads/default/original/3X/1/6/16d91976291c7e302fac6817d8581b3389d0a095.png)

Chaque yaml aura les sensors, automation, scripts, ... propres à ce potager

 ![image](https://forum.hacf.fr/uploads/default/original/3X/4/d/4d84bfd46391980c53b6b1a232cba21efb391667.png)

J'ai mis les domaines uniquement pour montrer la scructure

cordialement,

Abel

---

<div class="post-metadata">

**Author:** ![didok94](https://forum.hacf.fr/user_avatar/forum.hacf.fr/didok94/32/25204_2.png) [@didok94](https://forum.hacf.fr/u/didok94)\
**Post date:** [Juin 29, 2023, 9:00 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/6 "2023-06-29T21:00:18Z")

</div>

Alors édit :

Ca à l’air de marcher

configuration.yaml :

```auto
homeassistant:
  packages: !include_dir_merge_named packages/

```

Ajouter le dossier «&nbsp;packages&nbsp;» à la racine

> **choix numéro 1 = tous dans un dossier**
>
> Ajouter le dossier du projet (exemple " potager")  
> Dans «&nbsp;potager.yaml&nbsp;»
> 
> ```auto
> potager_potager_exterieur:
> input_boolean:
> ...
>   
> binary_sensor:
> ...
>   
> automation:
> ...
> 
> ```

> **choix numéro 2 = séparer les fichiers du dossier**
>
> Ajouter le dossier du projet (exemple " potager")  
> Dans «&nbsp;potager.yaml&nbsp;»
> 
> ```auto
> potager_potager_exterieur:
> 
> automation potager_exterieur: !include potager_exterieur.yaml
> script potager_exterieur_script: !include potager_exterieur_scripts.yaml
> ...
> 
> ```

---

<div class="post-metadata">

**Author:** ![didok94](https://forum.hacf.fr/user_avatar/forum.hacf.fr/didok94/32/25204_2.png) [@didok94](https://forum.hacf.fr/u/didok94)\
**Post date:** [Juin 29, 2023, 9:02 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/7 "2023-06-29T21:02:37Z")

</div>

Ah et du coup tu n’externalise pas l’ensemble !?

Dans ma vision il y aura pas mal d’automation quelques script et quelque sensor et pas mal de input/output en tous genre.

Du coup je voulais faire un fichier

- automation
- input
- script et pourquoi pas sensor au même endroit

---

<div class="post-metadata">

**Author:** ![Abel](https://forum.hacf.fr/user_avatar/forum.hacf.fr/abel/32/32093_2.png) [@Abel](https://forum.hacf.fr/u/Abel)\
**Post date:** [Juin 29, 2023, 9:03 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/8 "2023-06-29T21:03:49Z")

</div>

Si tu as des dossiers sous potagers et ensuite les yamls, dans ce cas il faut passer par !include\_dir\_merge\_named

---

<div class="post-metadata">

**Author:** ![didok94](https://forum.hacf.fr/user_avatar/forum.hacf.fr/didok94/32/25204_2.png) [@didok94](https://forum.hacf.fr/u/didok94)\
**Post date:** [Juin 29, 2023, 9:05 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/9 "2023-06-29T21:05:00Z")

</div>

comme dans le choix N°2

> [@Abel](#):
>
> choix numéro 2 = séparer les fichiers du dossier
> 
> Ajouter le dossier du projet (exemple " potager")  
> Dans « potager.yaml »
> 
> ```auto
> potager_potager_exterieur:
> 
> automation potager_exterieur: !include potager_exterieur.yaml
> script potager_exterieur_script: !include potager_exterieur_scripts.yaml
> ...
> 
> ```

Désoler d’être relou mais c’est pas mal flou et merci de prendredu temps pour m’aider (moi et potentiellement les autres)

---

<div class="post-metadata">

**Author:** ![Abel](https://forum.hacf.fr/user_avatar/forum.hacf.fr/abel/32/32093_2.png) [@Abel](https://forum.hacf.fr/u/Abel)\
**Post date:** [Juin 29, 2023, 9:10 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/10 "2023-06-29T21:10:07Z")

</div>

Personellement, j’utilise la méthode que j’ai décrite.Je n’ai pas beaucoup d’automation, Elles sont presque toutes sur Node Red. Du coup mes fichiers yaml ne sont pas très longs et assez facile à gérer

---

<div class="post-metadata">

**Author:** ![didok94](https://forum.hacf.fr/user_avatar/forum.hacf.fr/didok94/32/25204_2.png) [@didok94](https://forum.hacf.fr/u/didok94)\
**Post date:** [Juin 29, 2023, 9:12 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/11 "2023-06-29T21:12:13Z")

</div>

Je vois, mais je n’aime pas trop NodeRed pour le moment, j’ai quelques truc dessus mais je ne vois pas une grande utilité mis a part pour des choses à mettre en place rapidement… mais cela est encore un autre sujet

---

<div class="post-metadata">

**Author:** ![didok94](https://forum.hacf.fr/user_avatar/forum.hacf.fr/didok94/32/25204_2.png) [@didok94](https://forum.hacf.fr/u/didok94)\
**Post date:** [Juillet 4, 2023, 9:14 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/12 "2023-07-04T21:14:03Z")

</div>

Je reviens sur la solution que tu ma donné

Selon moi j’ai fais exactement l’a solution que tu m’as donné, cependant j’ai bien mes input, et sensors mais pas mes automatisation. Est ce normal, puisque tu les traite sur node red ou j’ai manquer quelque chose?

---

<div class="post-metadata">

**Author:** ![Abel](https://forum.hacf.fr/user_avatar/forum.hacf.fr/abel/32/32093_2.png) [@Abel](https://forum.hacf.fr/u/Abel)\
**Post date:** [Juillet 4, 2023, 9:35 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/13 "2023-07-04T21:35:22Z")

</div>

J’en ai aussi en dehors de node red.

As-tu la ligne `automation:` ? et verifie l’indentation

```auto
automation:

# Ask to turn on the TV when sitting in the living room
  - id: '1684372277717'
    alias: Actionable - Ask to Turn On TV
    description: Ask to turn on the TV when sitting in the living room
    trigger:
    ...

```

Abel

---

<div class="post-metadata">

**Author:** ![didok94](https://forum.hacf.fr/user_avatar/forum.hacf.fr/didok94/32/25204_2.png) [@didok94](https://forum.hacf.fr/u/didok94)\
**Post date:** [Juillet 7, 2023, 2:18 UTC](https://forum.hacf.fr/t/separation-de-fichier/25329/14 "2023-07-07T14:18:37Z")

</div>

Alors dans le fichier configuration :

```auto
#///////DOSSIER///////
homeassistant:
  packages: !include_dir_named .packages

#//////////////SEPARATION DES DOSSIERS//////////////
#///////SCRIPT///////
script: !include scripts.yaml

#///////SCENE///////
scene: !include scenes.yaml

#///////AUTOMATISATION///////
automation: !include automations.yaml
automation telegram_automation: !include telegram_automation.yaml

```

Et dans mon fichier «&nbsp;/config/.packages/test.yaml&nbsp;» :

```auto

input_number:
    test_position:
      name: "Test - Position désirée"
      min: -1
      max: 100
      step: 1
      unit_of_measurement: "%"

automation:
    - id: pot_ext_test
      alias: sync_status_on_bureau_1
      description: >
        on H.A startup or heater status change,
        check if heater is currently on to
        update the climate object in HA
      trigger:
        - platform: homeassistant
          event: start
      condition:
        - condition: state
          entity_id: binary_sensor.bureau_1_chauffage
          state: 'on'
      action:
        - service: climate.turn_on
          target:
            entity_id: climate.bureau_1
      mode: single

```

Je ne vois pas de problème particulier, c’est du code test que j’ai pris sur un lien que tu m’as envoyé :

> [@Mise en place de la fonction packages dans configuration.yaml](https://forum.hacf.fr/t/mise-en-place-de-la-fonction-packages-dans-configuration-yaml/24996/17):
>
> Un sujet expliquant le principe :
