Ankündigung

Einklappen
Keine Ankündigung bisher.

Tipps & best practice zur Strukturierung der yaml gesucht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Tipps & best practice zur Strukturierung der yaml gesucht

    Hallo zusammen,

    ich lasse gerade testweise Home Assistant parallel zu Edomi laufen und habe bisher nur einen kleinen Teil meiner GAs in Home Assistant. Nur würde ich gerne alles verfügbar machen und dafür direkt eine sinnvolle Struktur aufbauen wollen. In der ETS habe ich klassisch Gewerk/Geschoss/Funktion
    Mir ist klar, dass HA nicht in einer GA Struktur, sondern in Geräten und Entitäten denkt.

    Über die HA UI habe ich alle Lichter hinzugefügt. Vermutlich ergibt es Sinn auch tatsächlich alle Binär GAs, also Fenster, Präsenz, Tag/Nacht und vor allem auch Sperren etc. hier rüber einzupflegen?
    Für alles weitere hatte ich hier mal als Basis folgende yaml Struktur aufgeschnappt:

    climate.yaml
    cover.yaml
    date.yaml
    scene.yaml
    sensor.yaml - Kommt hier dann von Temperaturen, Luftfeuchtigkeit, Helligkeit wirklich alles rein?
    text.yaml - Was kommt hier rein?
    weather.yaml

    Wo kommen bei euch Ergebnisse von KNX Geräten internen Logiken etc. hin?

    Viele Grüße und besten Dank für Denkanstöße

    #2
    Zuerst einmal: nicht alles, was im KNX existiert, muss als Entität in den HA. Ich konfiguriere nur das, was in HA angezeigt, von dort gesteuert oder dort weiterverarbeitet *) wird.

    Bei mir gibt es folgende Dateien:

    knx_binary_sensor.yaml:
    Alles, was binär meldet. Hier vorrangig Tür- und Fensterkontakte. Künftig auch Meldekanäle der Präsenzmelder (Für eine einfache "Alarm"-Anlage.

    knx_button.yaml:
    KNX-Tasten, die in HA etwas auslösen/steuern. Beispielsweise die Steuerung meines SONOS mit KNX-Tastern.
    Diese Date hätte ich mir eigentlich sparen können. Integration in die binary_sensor.yaml hätte es auch getan.
    Man muss nicht mit Gewalt strukturieren - zumal durch Kommentarzeilen auch in einer YAML strukturiert werden kann.

    knx_climate.yaml:
    Alle Kanäle der Heizungssteuerung.

    knx_cover.yaml:
    Rollläden und Garagentore

    knx_sensor.yaml:
    Alle Sensoren. Stromwerte von Schalt-/Mess-Aktoren, Temperatur-/Feuchtigkeitswerte etc.

    knx_switch.yaml:
    Alles was binär geschaltet wird. Auch virtuelle Zustandsanzeiger wie "Post ist da" oder "Waschmaschine ist fertig". Oder auch eine 1-bit-Szene.

    Noch ein Tipp:
    *) Nicht alles, was du in HA als Trigger verwenden willst, muss auch als Entität vorhanden sein. Du kannst in Automationen auch auf KNX-Telegramme hören und eine GA als Trigger verwenden, die in HA nicht als Entität konfiguriert ist.
    Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

    Kommentar


      #3
      Zitat von jolt19 Beitrag anzeigen
      sensor.yaml - Kommt hier dann von Temperaturen, Luftfeuchtigkeit, Helligkeit wirklich alles rein?
      Tip, der vielen nicht bekannt ist: Bei einigen (nicht bei allen) Entity-Typen kann der Name aus mehreren Worten bestehen. So hat meine Trovis-Implementierung zB mehrere Sensor-Dateien, die ich unter 'packages' einbinde (sensor main:, sensor statistics:, sensor curves: ).

      Technisch gesehen ist das kein gültiges YAML, aber dieses Verfahren wird sogar in der offiziellen HA Doku verwendet und von HA sauber verarbeitet.

      Der Name des Packages ist übrigens frei wählbar - so kann man zB komplexere Systeme zu einem Package mit eigenen YAML-Dateien zusammenfassen. Bei mir zB die Konfigurationen für Trovis, Muell, Jahreskalender, NAS usw - die wollte ich einfach der Übersicht halber in separaten Dateien haben, da sie etwas komplexer sind. Also schnell als 'package' deklariert, fertig:

      Code:
      homeassistant:
      
        name: "Irgendwo"
        latitude: 52.12345
        longitude: 13.12345
        elevation: 36
        unit_system: metric
        currency: EUR
        country: DE
        language: de
        temperature_unit: C
        time_zone: Europe/Berlin
      
        packages:
      
          helios_vallox:       !include custom_components/helios_vallox_ventilation/user_conf.yaml
      
          trovis:
            input_number:      !include trovis557x/input_numbers.yaml
            input_datetime:    !include trovis557x/input_datetime.yaml
            sensor main:       !include trovis557x/template_sensors.yaml
            sensor statistics: !include trovis557x/statistics.yaml
            sensor curves:     !include trovis557x/heating_curves.yaml
            template triggers: !include trovis557x/trigger_actions.yaml
            automation start:  !include trovis557x/trigger_startup.yaml
            automation update: !include trovis557x/trigger_updates.yaml
      
          muell:
            waste_collection_schedule: !include conf/specific/muellkalender.yaml
            sensor waste_collection:   !include conf/specific/muell_templates.yaml
      
          espeasy:
            rest:              !include conf/specific/esps_feuchte_temp.yaml
      
          jahreskalender:
            template:          !include conf/specific/jahreskalender.yaml
      
          ugreen_nas:
            rest:              !include conf/specific/ugreen_nas_rest.yaml
            input_text:        !include conf/specific/ugreen_nas_input_text.yaml
            template:          !include conf/specific/ugreen_nas_template_sensors.yaml
      /tom
      Zuletzt geändert von Tom Bombadil; 06.05.2025, 20:19.

      Kommentar


        #4
        Dankeschön.

        Ist es sinnvoll einer Entität ein Device zuzuordnen oder andersrum ein physisches KNX Gerät als Device anzulegen und alle GAs/Entitäten diesem zuzuordnen?
        Wenn ja, wie mache ich das über die yaml? Bei den über die UI Verfügbaren Typen geht das ja eben über die UI.

        Kommentar


          #5
          Ein Device erstellen ging bisher in HA nicht, aber es ist inzwischen ein Addon in Arbeit, welches schon gut funktionieren soll.
          https://youtu.be/IQTL0s4H6iE?feature=shared
          https://github.com/EuleMitKeule/device-tools

          Kommentar


            #6
            Zitat von jolt19 Beitrag anzeigen
            Dankeschön.

            Ist es sinnvoll einer Entität ein Device zuzuordnen oder andersrum ein physisches KNX Gerät als Device anzulegen und alle GAs/Entitäten diesem zuzuordnen?
            Wenn ja, wie mache ich das über die yaml? Bei den über die UI Verfügbaren Typen geht das ja eben über die UI.
            Also bei KNX ist das lesen der Doku essentiell: https://www.home-assistant.io/integrations/knx/

            In der configuration.yaml erstellst du für knx einen Abschnitt mit der Überschrift "knx:". Darunter stehen dann die Einträge für die Entitäten / Devices. Bei mir jedoch nur der Verweis auf die zu integrierenden Dateien:

            Code:
            knx:
              climate: !include knx_climate.yaml
              sensor: !include knx_sensor.yaml
              cover: !include knx_cover.yaml
              binary_sensor: !include knx_binary_sensor.yaml
              button: !include knx_button.yaml
              switch: !include knx_switch.yaml​
            Und dann beispielsweise in der Datei knx_cover.yaml z.B.:

            Code:
            - name: "W1 Esszimmer Schiebetür Roll"
              move_long_address: "3/1/1"
              move_short_address: "3/2/1"
              position_address: "3/3/1"
              position_state_address: "3/5/1"
              angle_address: "3/6/1"
              angle_state_address: "3/7/1"
            ​
            Dadurch entsteht quasi automatisch eine Entität, die - ohne jegliche weitere Konfiguration - beim Aufruf folgendes Bild zeigt:
            image.png

            Du siehst: sogar die Lamellenposition wird (wenn die Zeilen angle_... existieren) angezeigt und kann verstellt werden (rechter Balken).

            Ehrlich gesagt: ich habe mit den Devices begonnen, die per GUI angelegt werden können. Als ich dann die anderen Devices per yaml angelegt habe, habe ich mich geärgert, nicht gleich alles so angelegt zu haben​. Per GUI ist das ein elendes endloses Mausgeschiebe- und geklicke. Per yaml einfaches cut'n paste mit kleinen Edit-Korrekturen.
            Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

            Kommentar


              #7
              Ich habe bei mir nur eine sehr sporadische configuration.yaml. Eigentlich sind da nur temporäre Definitionen drin. Das wichtigste:

              Code:
              homeassistant:
              packages: !include_dir_named packages/
              Im package Ordner habe ich dann Unterordner für alles relevante:
              image.png​​
              knx_config enthält Dateien für jeden Raum, in dem alle relevanten KNX Entitäten definiert sind.
              rooms enthält alle abgeleiteten Entitäten oder solche aus anderen Integrationen.


              Angehängte Dateien

              Kommentar


                #8
                DerSeppel
                Interessante Struktur
                Das muss ich mir bei Gelegenheit mal genauer anschauen.

                Kommentar


                  #9
                  Ja, das ist natürlich auch eine Frage des persönlichen Geschmacks.
                  Ich finde es persönlich hat gut einfach nen Ordner/Datei hinzuzufügen und es läuft.
                  Man kann natürlich auch die Gebäudestruktur als Ordnerstruktur Abbilden und alles je in eine Datei da drin. Oder dann wieder geteilt in Dateien für Entities, Automations, Templates, etc.

                  Kommentar


                    #10
                    Wenn man sich mit den geYAML gut auskennt ist viel mehr möglich als man denkt. Ich befürchte da muss ggf bei Gelegenheit mal auf dich zukommen.

                    Kommentar

                    Lädt...
                    X