Hat jemand Erfahrung mit "include_dir_merge_list" in der configuration.yaml

Hallo,

ich habe mir am Samstag mal die Mühe gemacht sehr große yaml-Dateien aufzuteilen, nachdem ich den Befehl
include_dir_merge_list
gefunden habe.

So habe ich folgendes in der configuration.yaml eingefügt

#sensor: !include sensor.yaml
sensor: !include_dir_merge_list sensor
#mqtt: !include mqtt.yaml
mqtt: !include_dir_merge_list mqtt

auskommentiert habe ich die vorigen Einträge. Seit Samstag Abend lief alles stabil.

Irgendwann heute Morgen hat dann MQTT komplett gesponnen und alle Werte die hierüber in HA einflossen wurden als “not available” ausgewiesen. Das Restarten der MQTT-Quellen hat nichts gebracht und auch mehrere Restarts von HA waren von keinem Erfolg gekrönt.

Ich habe jetzt wieder folgendes Setup in der configuration.yaml und die MQTT-Werte wurde nach einem YAML-Reload sofort alle eingelesen und erkannt.

#sensor: !include sensor.yaml
sensor: !include_dir_merge_list sensor
mqtt: !include mqtt.yaml
#mqtt: !include_dir_merge_list mqtt

Hat jemand Erfahrungen mit den verschiedenen include-Möglichkeiten?
Meine Sensoren wurden den ganzen tag korrekt dargestellt, so dass zumindest bei den Sensoren das “include_dir_merge_list” weiterhin funktioniert. Ist eventuell MQTT da etwas empfindlich unterwegs?

Stehe irgendwie vor einem ziemlichen Rätsel.

Danke Euch

Claudius

P.S.

meine gesamte configuration.yaml versuche ich sehr übersichtlich zu halten. Leider sind mache eingebundenen yaml-Dateien etwas umfangreich (für meine Verhältnisse). Wie habt ihr das bei Eich aufgeteilt oder organisiert oder strukturiert?

# Loads default set of integrations. Do not remove.
default_config:

#DB Einbinden
recorder: !include recorder.yaml
influxdb: !include influxdb.yaml

mobile_app:

cloud:

sun:

#Hier wird definiert auf welche FileStruktur HomeAssistant zugreifen darf
homeassistant:
  whitelist_external_dirs:
    - /config/files

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

# Text to speech
tts:
  - platform: google_translate

#includes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
switch: !include switch.yaml
template: !include template.yaml
#sensor: !include sensor.yaml
sensor: !include_dir_merge_list sensor
mqtt: !include mqtt.yaml
#mqtt: !include_dir_merge_list mqtt
utility_meter: !include utility_meter.yaml

Moin,
Ich habe hinter dem Ordern noch ein / und das funktioniert bei mir ohne Probleme

sensor: !include_dir_merge_list sensor/

mqtt:
 cover: !include_dir_merge_list mqtt/cover/
 sensor: !include_dir_merge_list mqtt/sensor/
 binary_sensor: !include_dir_merge_list mqtt/binary_sensor/

LG
Tobi

Diese Schreibweise ist mir unbekannt und neu. Ist die Einrückung bei matt: in der Folgezeile tatsächlich nur 1 Leerzeichen oder sind das 2.

Bei mir haben die beiden mqtt-Dateien Sensorwerte. Sollte ich dann lieber

mqtt:
 sensor: !include_dir_merge_list mqtt/sensor/

verwenden?
Vermutlicherweise muss ich dann in der YAML-Datei aber nicht mit sensor: anfangen, oder?

sensor:
#OpenDTU HM-800
  - name: "OpenDTU Status"
    unique_id: "opendtu_status"
    state_topic: solar/opendtu/status
  - name: "OpenDTU Uptime"
    unique_id: "opendtu_uptime"
    state_topic: solar/dtu/uptime
    unit_of_measurement: "s"
  - name: "OpenDTU Uptime_extended"
    unique_id: "opendtu_uptime_extended"
    state_topic: solar/dtu/uptime
    value_template: >
      {% set uptime =value | int %}
      {% set days = (uptime / 86400) | int %}
      {%- if days > 0 -%}
        {{ days }}Tage {{ (uptime - (days * 86400)) | int | timestamp_custom('%-Hh %-Mm', false) }}
      {%- else -%}
        {{ uptime | int | timestamp_custom('%-Hh %-Mm', false) }}
      {%- endif -%}
  - name: "OpenDTU Device Name"
    unique_id: "opendtu_device_name"
    state_topic: solar/114180113299/name
  - name: "OpenDTU WiFi"
    unique_id: "opendtu_wifi"
    state_topic: solar/dtu/rssi
    unit_of_measurement: "dBm"
  - name: "OpenDTU IP"
    unique_id: "opendtu_ip"
    state_topic: solar/dtu/ip
  - name: "OpenDTU Hostname"
    unique_id: "opendtu_hostname"
    state_topic: solar/dtu/hostname
  - name: "OpenDTU FWVersion"
    unique_id: "opendtu_fwversion"
    state_topic: solar/114180113299/device/fwbuildversion
  - name: "OpenDTU FWBuildDateTime"
    unique_id: "opendtu_fwbuilddatetime"
    state_topic: solar/114180113299/device/fwbuilddatetime
  - name: "OpenDTU HWPartNumber"
    unique_id: "opendtu_hwpartnumber"
    state_topic: solar/114180113299/device/hwpartnumber
  - name: "OpenDTU HWVersion"
    unique_id: "opendtu_hwversion"
    state_topic: solar/114180113299/device/hwversion
  - name: "OpenDTU Status LastUpdate"
    unique_id: "opendtu_status_lastupdate"
    state_topic: solar/114180113299/status/last_update
    value_template: >-
      {{ value | int | timestamp_custom('%d.%m.%Y %H:%M:%S') }}

die 2. Datei beginnt ebenfalls mit

sensor:
  - name .......

Danke Dir
Claudius

Ja wen du das verwendest:

mqtt:
 sensor: !include_dir_merge_list mqtt/sensor/

musst du sensor: in der .yaml weg lassen und alles weiter nach links einrücken:

- name: "OpenDTU Status"
  unique_id: "opendtu_status"
  state_topic: solar/opendtu/status

Edit:
wen du in jeder Datei mit sensor: startest mag HA das nicht.
Wenn du das so machst:

mqtt: !include_dir_merge_list mqtt/

müsstest du alle Sensoren in eine .yaml machen damit du nur einmal sensor: hast.

LG
Tobi

Super… Danke das probiere ich mal aus.

Ich habe natürlich an mehreren Stellen Sensoren drin

in template.yaml da steht aber - sensor: dann

→ ich habe es umgebaut und aktuell funktioniert es. Ich bin mal gespannt wie es die kommenden Tage aussieht.

Vielen Dank.

Claudius

ja aber so hast du unter mqtt: nur noch einmal sensor:,
in der template.yaml sollte auch nur einmal - sensor: sein.

LG

Ach Du Schreck…
ich habe in der template.yaml folgendes stehen.
Das habe ich mir aus einem der YT-Videos abgeschaut von @simon42.
Ist das jetzt etwa falsch? :open_mouth:

#Shelly EM3 Power fuer alle 3 Phasen addiert
- sensor:
  - name: "Total Power"
    unique_id: "total_power"
    device_class: power
    state_class: measurement
    unit_of_measurement: "W"
    state: >
      {{
      states('sensor.shellyem3_485519d6e2c5_channel_a_power')| float(0) +
      states('sensor.shellyem3_485519d6e2c5_channel_b_power')| float(0) +
      states('sensor.shellyem3_485519d6e2c5_channel_c_power')| float(0)
      }}
#Shelly EM3 Energy fuer alle 3 Phasen addiert
- sensor:
  - name: "Total Energy Use"
    unique_id: "total_energy_use"
    device_class: energy
    state_class: total
    unit_of_measurement: "kWh"
    state: >
      {{
      states('sensor.shellyem3_485519d6e2c5_channel_a_energy')| float(0) +
      states('sensor.shellyem3_485519d6e2c5_channel_b_energy')| float(0) +
      states('sensor.shellyem3_485519d6e2c5_channel_c_energy')| float(0)
      }}
#Shelly EM3 Energy Returned fuer alle 3 Phasen addiert
- sensor:
  - name: "Total Energy Returned"
    unique_id: "total_energy_returned"
    device_class: energy
    state_class: total
    unit_of_measurement: "kWh"
    state: >
      {{
      states('sensor.shellyem3_485519d6e2c5_channel_a_energy_returned')| float(0) +
      states('sensor.shellyem3_485519d6e2c5_channel_b_energy_returned')| float(0) +
      states('sensor.shellyem3_485519d6e2c5_channel_c_energy_returned')| float(0)
      }}

LG

Mist…
Danke Dir…
ich werde das umbauen, auch wenn es bisher problemlos funktioniert.

Claudius