Problem with !include!

Hey everyone, I have a quick question. I have 3 YAML files located in a directory. 2 of them are found by HA, but 1 isn’t, and I don’t understand why. Can someone explain this to me? Thanks in advance.

These are them:

in folder Y:\Packages\Helpers\Input_Datetime\AI the file AI Oplaad Eindtijd.yaml with the content

# PROJECT: #BART-CHARGE-2026-MASTERPIECE
# BESTANDSPAD: Y:\Helpers\Timer\AI\AI Oplaad Eindtijd.yaml
# ================================================================
# FUNCTIE: Slaat de exacte kloktijd op wanneer het laden klaar is.
# ================================================================
- input_datetime:
    ai_oplaad_eindtijd:
      name: "AI Oplaad Eindtijd"
      has_date: false
      has_time: true
      icon: mdi:clock-check

is not recognized after startup and
in folder Y:\Packages\Helpers\Timer\AI the file AI Oplaad Timer.yaml with the content

# PROJECT: #BART-CHARGE-2026-MASTERPIECE
# BESTANDSPAD: Y:\Helpers\Timer\AI\AI Oplaad Timer.yaml
# ================================================================
# FUNCTIE: De motor die de tijd fysiek aftelt en de lader stopt.
# ================================================================
- timer:
    ai_oplaad_timer:
      name: "AI Oplaad Timer"
      icon: mdi:timer-sand

and in folder Y:\Packages\Helpers\Input_Select\AI the file AI Oplaad Tijdsduur Selectie.yaml with the content

# PROJECT: #BART-CHARGE-2026-MASTERPIECE
# BESTANDSPAD: Y:\Helpers\Timer\AI\AI Oplaad Selectie.yaml
# ================================================================
# FUNCTIE: Schakelt de iPhone menu's tussen Sec/Min/Uur.
# ================================================================
- input_select:
    ai_oplaad_tijdsduur_selectie:
      name: "AI Oplaad Tijdsduur Selectie"
      options:
        - "Seconden"
        - "Minuten"
        - "Uren"
      icon: mdi:form-select

those are recognized. I don’t understand this anymore??
Thanks for any response.

Are you actually using Packages or just using a directory named “Packages”?

When using Packages, the domain key is normally not indented… by that logic, none of those should work.

# PROJECT: #BART-CHARGE-2026-MASTERPIECE
# BESTANDSPAD: \Packages\Helpers\Input_Datetime\AI\ai_oplaad_eindtijd.yaml
# ================================================================
# FUNCTIE: Slaat de exacte kloktijd op wanneer het laden klaar is.
# ================================================================
input_datetime:
  ai_oplaad_eindtijd:
    name: "AI Oplaad Eindtijd"
    has_date: false
    has_time: true
    icon: mdi:clock-check

I don’t know that listing the integrations works with any of the include methods.

Thank you for your reply

Actually, I am just trying to create a folder where I can organize all the helpers that are very important by domain so that I can find them easily; they aren’t really packages.

If you aren’t actually using Packages (which you probably should just go ahead and do) then you will need to explain/show how you are doing the “include”.

Packages allows you to have multiple integrations in the same folder and even in the same file if that’s what you want. In my opinion it is the most flexible and easiest option for anyone who isn’t well versed in the different details of the include methods.

None of these are listed. Neither are their internal slugs. It seems like you just made up this yaml?

Thank you, but what do you mean? I don’t really understand what you mean.

In my configuration.yaml, I have certain lines that refer to folders.

#input_datetime: !include_dir_merge_named Helpers/
tts: !include_dir_merge_list ttsfile
group: !include_dir_merge_named groups
script yaml: !include_dir_merge_named scripts/
script: !include scripts.yaml
scene yaml: !include_dir_merge_named scenes/
scene: !include scenes.yaml
utility_meter: !include_dir_merge_named nut meters
sensor: !include_dir_merge_list Sensors
automation yaml: !include_dir_merge_list Automations/
automation: !include automations.yaml
zone: !include_dir_list zones
#integration: !include_dir_merge_named integraties/
light: !include_dir_merge_list lichten/
variable: !include_dir_merge_named variable
var: !include_dir_merge_named var
notify: !include_dir_merge_list notify/
media_player: !include_dir_merge_list Media Players/
camera: !include_dir_merge_list camera
ios: !include_dir_merge_list ios
binary_sensor: !include_dir_merge_list binary sensors
cover: !include_dir_merge_list covers
#rest_command: !include_dir_merge_list rest commands
input_select: !include_dir_merge_named Input Select/

#timer: !include_dir_merge_named Helpers/
calendar: !include_dir_merge_list calendar
scrape: !include_dir_merge_list scrape
# rest_command: !include rest.yaml
template: !include_dir_merge_list Templates/
image_processing: !include_dir_merge_list image processing
#switch: !include_dir_merge_list Switches
command_line: !include_dir_merge_list Command Line/
shell_command:
  project_backup: 'mkdir -p "/config/backups/{{ folder_name }}" && cp -R "/config/{{ folder_name }}/." "/config/backups/{{ folder_name }}/" && chmod -R 777 "/config/backups/{{ folder_name }}" && sync'
input_number: !include_dir_merge_named Input Number/
input_text: !include_dir_merge_named Input Text/
#shell_command:
    #google_command: "curl 'https://www.google.com/?hl=nl'"
rest_command:
  open_pc_url:
    url: "http://192.168.123.90:5050/device_action"
    method: POST
    headers:
      Content-Type: "application/json"
    payload: '{"action": "open_url", "url": "{{ url }}" }'


and also

packages: !include_dir_merge_named Packages/

include_dir_merge_named requires a dictionary, not a list. I.e.

this:

xxx:
  yyy: zzz
  aaa: bbb
  ccc: ddd

not

- xxx:
    yyy: zzz
    aaa: bbb
    ccc: ddd

Secondly, you won’t be able to combine input_select, timer, and input_datetime into their own folder without it being in a package.

Why do the other two work then? And how do I solve this if I want to place Diet Helpers somewhere where they definitely won’t be accidentally deleted?

They don’t. You likely have 2 definitions. According to your notes, there’s no way any of those work. This structure simply will not work for any include:

Because all of those configurations should only be at the root configuration.yaml level. Just as @Didgeridrew pointed out here

So, if I understand you correctly, I can’t put all the helpers together in one folder so I can find them easily. I don’t understand that much about the include yet!

If you use Packages, then you can put all the helpers in a single Helpers folder inside the Packages folder.

but I cannot subdivide them there into the domain to which they belong

Yes, you can, if you want.

Thank you for your reply. Could you give me an example using one of the files I posted above? I would really appreciate that, so that I can slowly start to understand something of the whole situation.

I already did in my previous post… you just need to move your Helpers folder into the Packages folder and make sure packages is included under homeassistant like:

homeassistant:
  packages: !include_dir_named Packages

Then your previous examples would be configured as follows:

# PROJECT: #BART-CHARGE-2026-MASTERPIECE
# BESTANDSPAD: \Packages\Helpers\Input_Datetime\AI\ai_oplaad_eindtijd.yaml
# ================================================================
# FUNCTIE: Slaat de exacte kloktijd op wanneer het laden klaar is.
# ================================================================
input_datetime:
  ai_oplaad_eindtijd:
    name: "AI Oplaad Eindtijd"
    has_date: false
    has_time: true
    icon: mdi:clock-check
# PROJECT: #BART-CHARGE-2026-MASTERPIECE
# BESTANDSPAD: \Packages\Helpers\Timer\AI\ai_oplaad_timer.yaml
# ================================================================
# FUNCTIE: De motor die de tijd fysiek aftelt en de lader stopt.
# ================================================================
timer:
  ai_oplaad_timer:
    name: "AI Oplaad Timer"
    icon: mdi:timer-sand
# PROJECT: #BART-CHARGE-2026-MASTERPIECE
# BESTANDSPAD: \Packages\Helpers\Input_Select\AI\ai_oplaad_selectie.yaml
# ================================================================
# FUNCTIE: Schakelt de iPhone menu's tussen Sec/Min/Uur.
# ================================================================
input_select:
  ai_oplaad_tijdsduur_selectie:
    name: "AI Oplaad Tijdsduur Selectie"
    options:
      - "Seconden"
      - "Minuten"
      - "Uren"
    icon: mdi:form-select

Would you be so kind as to create an example of one of the things I posted showing how I should place it in the Packages/Helpers/domainname/AI/filename.yaml folder so that it works?

He already did…

And can I just paste that into this folder ‘Y:\Packages\Helpers\Timer’ with a filename?? I think I tried that very hard but it didn’t work. But I will try again. And does that work for all helpers?

You can have any file structure you want with packages and each one will be treated like a package. Inside each file, you can place any number of integrations at the root level. Just like you would for configuration.yaml.

I suggest you read the documentation on this.

I’m a bit lost right now. I’m trying this file AI Oplaad Eindtijd.yaml with this code

# PROJECT: #BART-CHARGE-2026-MASTERPIECE
# BESTANDSPAD: Y:\Packages\Helpers\Timer\AI\AI Oplaad Eindtijd.yaml
# ================================================================
# FUNCTIE: Slaat de exacte kloktijd op wanneer het laden klaar is.
# ================================================================
input_datetime:
  ai_oplaad_eindtijd:
    name: "AI Oplaad Eindtijd"
    has_date: false
    has_time: true
    icon: mdi:clock-check

and it is located in this folder Y:\Packages\Helpers\Input_Datetime\AI but when checking the configuration I get this error. (pic)
That is exactly what I don’t understand!!! I had already tried this. So I don’t know what I’m doing wrong.
image