Ich möchte meine Configartion.yaml aufräumen

Hallo,
wie die Überschrift schon sagt, möchte ich meine Configuration.yaml aufräumen und Sensoren etc auslagern in template.yaml,sensoren.yaml.Wenn ich mir die Anleitungen ansehe, sieht es ganz einfach aus, aber bei mir funktioniert es immer nicht so.Da sich in den Versionen immer etwas verändert und immer etwas noch verändert werden muß.Aktuell sieht meine Config so aus.

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


# Text to speech
tts:
  - platform: google_translate
  
homeassistant:
  packages: !include_dir_named packages
  
  
automation: !include automations.yaml
alarm_control_panel: !include alarm.yaml
#integration: !include integration.yaml
sensor: !include_dir_list sensor
script: !include scripts.yaml
scene: !include scenes.yaml
#template: !include templates.yaml
mqtt: !include mqtt.yaml


#Ngnix Konfiguration
http:
    cors_allowed_origins:
        - https://google.com
        - https://www.home-assistant.io
    ip_ban_enabled: true
    login_attempts_threshold: 5
    use_x_forwarded_for: true
    trusted_proxies:
      - 172.30.33.0/24
      
      
sensor:
  - platform: template
    sensors:
      # Template sensor for values of power import (active_power > 0)
      power_import:
        friendly_name: "Power Import"
        unit_of_measurement: 'W'
        value_template: >-
          {% if (states('sensor.shelly3em_channel_a_power')|float + states('sensor.shelly3em_channel_b_power')|float + states('sensor.shelly3em_channel_c_power')|float) > 0 %}
            {{ states('sensor.shelly3em_channel_a_power')|float + states('sensor.shelly3em_channel_b_power')|float + states('sensor.shelly3em_channel_c_power')|float }}
          {% else %}
            {{ 0 }}
          {% endif %}
        availability_template: "{{
            [ states('sensor.shelly3em_channel_a_power'),
              states('sensor.shelly3em_channel_b_power'),
              states('sensor.shelly3em_channel_c_power')
            ] | map('is_number') | min
          }}"

      # Template sensor for values of power export (active_power < 0)
      power_export:
        friendly_name: "Power Export"
        unit_of_measurement: 'W'
        value_template: >-
          {% if (states('sensor.shelly3em_channel_a_power')|float + states('sensor.shelly3em_channel_b_power')|float + states('sensor.shelly3em_channel_c_power')|float) < 0 %}
            {{ (states('sensor.shelly3em_channel_a_power')|float + states('sensor.shelly3em_channel_b_power')|float + states('sensor.shelly3em_channel_c_power')|float) * -1 }}
          {% else %}
            {{ 0 }}
          {% endif %}
        availability_template: "{{
            [ states('sensor.shelly3em_channel_a_power'),
              states('sensor.shelly3em_channel_b_power'),
              states('sensor.shelly3em_channel_c_power')
            ] | map('is_number') | min
          }}"
          
      # Template sensor for values of power consumption
      power_consumption:
        friendly_name: "Power Consumption"
        unit_of_measurement: 'W'
        value_template: >-
          {% if (states('sensor.power_export')|float(0)) > 0 and (states('sensor.power_solargen')|float(0) - states('sensor.power_export')|float(0)) < 0 %}
            {{ 0 }} 
          {% elif (states('sensor.power_export')|float(0)) > 0 and (states('sensor.power_solargen')|float(0) - states('sensor.power_export')|float(0)) > 0 %}
            {{ (states('sensor.power_solargen')|float(0)) - states('sensor.power_export')|float(0) }}    
          {% else %}
            {{ states('sensor.power_import')|float(0) + states('sensor.power_solargen')|float(0) }}
          {% endif %}

      # Template sensor for values of energy Solar generation (solar_power > 0)
      # YOU NEED TO UPDATE THE NAMES BELOW!!!
      power_solargen:
        friendly_name: "Power Solar Generation"
        unit_of_measurement: 'W'
        value_template: >-
          {% if (states('sensor.growatt_stick_energytotal')|float(0)) > 0 %}
            {{ (states('sensor.growatt_stick_energytotal')|float(0)) }}
          {% else %}
            {{ 0 }}
          {% endif %}


  # Sensor for Riemann sum of energy import (W -> Wh)
  - platform: integration
    source: sensor.power_import
    name: energy_import_sum
    unit_prefix: k
    round: 2
    method: left

  # Sensor for Riemann sum of energy export (W -> Wh)
  - platform: integration
    source: sensor.power_export
    name: energy_export_sum
    unit_prefix: k
    round: 2
    method: left

  # Sensor for Riemann sum of energy consumption (W -> Wh)
  - platform: integration
    source: sensor.power_consumption
    name: energy_consumption_sum
    unit_prefix: k
    round: 2
    method: left

utility_meter:
  energy_import_daily:
    source: sensor.energy_import_sum
    name: Energy Import Daily
    cycle: daily
  energy_import_monthly:
    source: sensor.energy_import_sum
    name: Energy Import Monthly
    cycle: monthly
  energy_export_daily:
    source: sensor.energy_export_sum
    name: Energy Export Daily
    cycle: daily
  energy_export_monthly:
    source: sensor.energy_export_sum
    name: Energy Export Monthly
    cycle: monthly
  energy_consumption_daily:
    source: sensor.energy_consumption_sum
    name: Energy Consumption Daily
    cycle: daily
  energy_consumption_monthly:
    source: sensor.energy_consumption_sum
    name: Energy Consumption Monthly
    cycle: monthly
        
modbus:
  - name: victron
    type: tcp
    host: 192.168.178.108
    port: 502

        
homeassistant:
  customize:
    sensor.naechster:
      unit_of_measurement: Tage
    sensor.altpapier:
      unit_of_measurement: Tage
    sensor.bioabfall:
      unit_of_measurement: Tage
    sensor.gelbersack:
      unit_of_measurement: Tage
    sensor.restabfall:
      unit_of_measurement: Tage
tippe oder füge den Code hier ein

Wie stelle ich es am besten an, so das nachher auch noch alles funktioniert?Beim letzen mal war ich froh das ich den HA wieder zum laufen gebracht habe, nur die Werte für Energie sind dann hin gewesen.
gruß Tobias

Bevor du so große Änderungen machst, mach ein Backup!
Wenn deine Backups nur direkt aufm HA liegen speicherst du dir das Aktuelle auch noch auf deinem Rechner.

Deine Templates sehen auch komisch aus, sieht mir nach einen mix aus aktuell und Legacy Konfiguration aus:

Du könntest auch die ganzen Template Sensoren über die UI einbinden, dann wird die configuration.yaml auch leerer und ist vielleicht besser für dich wen du dich mit YAML und den Einrückungen nicht so gut auskennst.

Einstellungen → Geräte & Dienste → Helfer → + Helfer Erstellen → Template → Sensor

LG
Tobi

1 „Gefällt mir“

Sowas geht sehr gut mit ChatGPT

Ich denke die Offizielle HA Community hat nicht umsonst das gepostet:

Don’t use ChatGPT

Don’t use ChatGPT, or similar tools, to generate answers that you provide. These tools often produce results that look good but are incomplete, misleading, or just plain wrong. If we believe that you’re doing that then we may suspend your account.

4 „Gefällt mir“

Der Hinweis auf die Probleme mit ChatGPT in der offiziellen HA Community ist aktuell.

Hier im Forum haben wir ebenfalls bereits genug Probleme und Diskussionen wegen Fehlern von ChatGPT gehabt.

Wer ChatGPT nutzen möchte, kann dies gerne tun. Dies ist eine Community von Menschen, für Menschen. Daher habe ich die entstehende Diskussion entfernt.

Sollte hierzu das Bedürfnis bestehen, steht es frei ein neues Thema zu eröffnen.

ich habe meine configuration.yaml mit Packages zusammen geführt, das ist sehr einfach.

Hier mal der Link zu einem Video, schau es dir mal an.

https://youtu.be/wZ1Qd0wDY8Y?si=V4EK8Av5azZE9V52

1 „Gefällt mir“

Das Video habe ich auch schon angesehen, weiß aber nicht wie ich meine Sache damit unter bekomme.Das war der Versuch wo fast nichts mehr ging.Mit packvages muß ich auch die Sensoren ändern, weil es irgendwie alt und neu gemischt ist.

1 „Gefällt mir“

Wenn Du mit packages arbeiten tust, kannst Du alles was Du direkt in der configuration.yaml an Sensoren angelegt hast, 1:1 in den packages Ordner packen und auf die einzelnen yaml Dateien aufteilen.

Wichtig zu beachten ist, dass dann alles so konfiguriert wird, als ob Du es direkt in der configuration.yaml konfigurieren würdest.
Die Sensoren kannst Du dann z.B. auf mehrere yaml Dateien verteilen und auch beliebige Integration miteinander mischen. Also in einer Datei die Integration sensor, binary_sensor, template usw.

Wichtig wieder, die Zeile für die jeweilige Integration, also z.B. sensor: darf nur einmal in einer yaml Datei auftauchen.

Gruß
Osorkon

1 „Gefällt mir“

Ich habe es versucht, die Einträge die ich in der Config habe so zu kopieren.Aber es hat immer irgendetwas gestört als ich die Config geprüft habe.Geht wahrscheinlich mit dem Einrücken schon los.Und ich muß die Einträge alle ändern,damit es wahrscheinlich funktioniert

Wie schon gesagt 1:1 kopieren.

Siehe auch:

Zeige mal ein Bsp. Von einer der yaml Dateinamen die Du in den Ordner packages verwenden willst.

Noch ein Hinweis. Wenn Du Ordner verschandeln tust. Die Namen der yaml Dateien müssen eindeutig sein. Es darf keine zweite yaml Datei geben mit dem gleichen Namen!

Gruß
Osorkon

Ich habe die Zeile !include_dir_named_packages ja schon in der Config stehen.
Habe jetzt den Ordner packvages erstellt und mir dort die einzelnen *.yaml erstellt für die entsprechenden Sensoren.Dann habe ich in der Config die Zeilen mit der Raute stillgelegt.Jetzt habe ich zwar keinen Fehler beim prüfen, ich habe aber trotzdem bedenken das meine Daten gleich wieder weg sind.

Du meinst diese Zeile?

#template: !include templates.yaml

Also hast Du die Template Sensoren ins packages verschoben aus der template.yaml

Wichtig hier, dass Du die Zeile
template: einfügen musst und der Rest muss ein tab nach rechts.

Also so konfigurieren als ob die Template Sensoren direkt in der configuration.yaml anlegen würdest.

Gruß
Osorkon

So zum Beispiel

/homeassistant/packages/riemann.yaml
  # Sensor for Riemann sum of energy import (W -> Wh)
  - platform: integration
    source: sensor.power_import
    name: energy_import_sum
    unit_prefix: k
    round: 2
    method: left

  # Sensor for Riemann sum of energy export (W -> Wh)
  - platform: integration
    source: sensor.power_export
    name: energy_export_sum
    unit_prefix: k
    round: 2
    method: left

  # Sensor for Riemann sum of energy consumption (W -> Wh)
  - platform: integration
    source: sensor.power_consumption
    name: energy_consumption_sum
    unit_prefix: k
    round: 2
    method: left

Ich habe eine Riemann.yaml z.b in der packages

Nein!!
Hier fällt die erste Zeile, die die Integration beschreibt, also

sensor:

1:1 wie es in der Doku als Bsp aufgeführt ist.
Also als ob Du den sensor direkt in der configuration.yaml anlegen würdest.

Gruß
Osorkon