Ankündigung

Einklappen
Keine Ankündigung bisher.

Vorstellung: Skript zum Generieren der KNX yaml config aus ETS Projekt Datei

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

    Vorstellung: Skript zum Generieren der KNX yaml config aus ETS Projekt Datei

    Hi zusammen, Martin Laurent hat einen KNXProjekt parser in Ruby geschrieben (original Projekt). Ich habe jetzt am Wochenende endlich meine Erweiterung dafür fertiggestellt.

    https://github.com/TheFelix93/ets-to-homeassistant

    Ich kann damit bis jetzt alles außer climate Entitäten erstellen lassen. Mal sehen wann ich die implementiere. Update 26.09.2025: Ist jetzt implementiert.

    Ich habe versucht alles so gut es geht zu dokumentieren (siehe Github).

    Anforderungen an euer ETS-Projekt:
    • Alle Geräte die ihr in Home Assistant haben wollt müssen in ETS Funktionen hinterlegt sein (GAs per Drag&Drop rumschubsen sind wir ja von der ETS schon gewohnt. Das hier ist nichts anderes.
    • ​​​​Teilweise ist es wichtig, dass bestimmte Zeichenketten in den Funktionsnamen vorkommen, um z.b. Sensoren von Schaltern zu unterscheiden. Ich habe nur die ETS5 und dort gibt es noch nicht so viele Funktionstypen, weshalb einiges unter Benutzerdefiniert/Custom läuft. Siehe Settings-Sektion in der Doku (ganz unten) https://knx-user-forum.de/forum/%C3%...s6-l%C3%B6sung.
    • Alle DPTs müssen richtig in den GAs hinterlegt sind. Ich habe der Doku eine Tabelle hinzugefügt, welche das erklärt. https://knx-user-forum.de/forum/%C3%...s6-l%C3%B6sung
    • Gewisse GAs werden über die Mittelgruppe identifiziert. Siehe ebenfalls Settings-Sektion in der Doku.

    Benutzung:
    1. Die Settings sind direkt im Skript \lib\ets_to_hass\specific\TheFelix93.rb eingebettet. Die Parameter müssen alle auf euer Projekt anpassen werden. Ich hoffe ihr habt ein Adressschema​, dass eure Funktionsarten eindeutig unterscheidet. Bei mir ging das über die Mittelgruppen. Die Pattern sind aber anpassbar.
    Beispiel:
    1. '/3/' für Mittelgruppe 3
    2. '3/' für Hauptgruppe 3
    3. '/3' ich glaube ihr versteht.​2.
    2. Ausführen per CMD oder per GUI

    Für Windows sind .exe files unter /bin zufinden, die sind Plug&Play! Kein gefrickel mit dem Ruby-Dev-Env mehr!

    Bei mir läuft das Skript perfekt. Ich konnte 284 Entitäten und ca. 1100 Zeilen yaml damit generieren. Alles auch reproduzierbar und so lange ihr die ETS-Funktionsnamen nicht ändert, kann die HA-KNX Integration auch alles immer sauber zuordnen. Also kein problem, wenn ihr mal neue Funktionen hinzufügt und die yaml neu generieren müsst. Mittlerweile sind es 360 Entitäten und 1400 Zeilen yaml.


    UPDATE 26.09.2025: Jetzt mit GUI und support für passwortgeschützte ETS- Projekte ETS5 + ETS6

    Roadmap:
    - Neue Reiter in der GUI, damit die notwendigen Einstellungen dort angepasst werden können, siehe https://github.com/TheFelix93/ets-to...e-thefelix93rb

    Gruß

    DISCLAIMER: Nutzung auf eigene Gefahr. Skripte und Exe-Dateien aus nicht vertrauenswürdigen Quellen immer hinterfragen.

    Toni
    script to convert ETS5 project file to a YAML configuration file suitable for Home Assistant - TheFelix93/ets-to-homeassistant
    Zuletzt geändert von Knautz; 26.09.2025, 23:33.

    #2
    Update: Climate wird jetzt auch unterstützt.
    Bitte DPTs beachten.
    Es war gar nicht so einfach eine Konfiguration zu finden, welche für MDT Heizungsaktor, MDT Glastaster mit Soll-Wert-Verschiebung und HA gleichzeitig funktioniert.

    Kommentar


      #3
      Mich hats mal wieder gewuppt und ich habe eine GUI gebaut, mit der man zumindest den CMD Befehl vor-serviert bekommt und ihn auch direkt ausführen kann. Zusätzlich habe ich alles zu EXE files gebaut, damit man auf Windows nicht erst die Entwicklungsumgebung für ruby aufsetzen muss.

      Dazu müsst ihr das ganze Repository von github als zip herunterladen und irgendwo hinentpacken. Die Ordnerstruktur muss bestehen bleiben, damit alles funktioniert. Mit Doppelklick auf die EtsToHassTheFelix93GUI.exe​ gehts los.

      Bis jetzt habe ich es noch nicht auf einem anderen Rechner ausgeführt. Es ist unwahrscheinlich aber es kann sein, dass es nur an meinem Rechnerlauffähig ist. Feedback willkommen.


      Angehängte Dateien

      Kommentar


        #4
        Hey,

        ist es auch möglich Projektdateien, die mit einem Passwort gespeichert sind zu konvertieren?

        Kommentar


          #5
          Hi, leider unterstützt das die Basis von Martin Laurant nicht, aber ich schau's mir grad an. Ich weiß nicht wie es ab der ETS6 ist aber in der ETS5 ist der Passwortschutz einfach ein ZIP mit Passwort, also sollte die Standard-Lib das direkt können. Ich muss nur das Passwort als Parameter mit einführen.

          Wie würdest du das zwecks Passworteingabe wünschen? Da das ganze ein CMD-Script ist ist das Passwort im CMD-Befehl im Klartext sichtbar. Mit bisschen Hirnschmalz sollte ich es aber so hinbekommen, dass das Passwort nicht im Klartext erscheint.

          Kommentar


            #6
            Zitat von Mabalero Beitrag anzeigen
            Hey,

            ist es auch möglich Projektdateien, die mit einem Passwort gespeichert sind zu konvertieren?
            Jaaaa, jetzt sind auch passwortgeschützte Projekte unterstützt.

            Die CMD fragt nach einem Passwort wenn erkannt wird, dass ein Passwort gebraucht wird.

            Kommentar


              #7
              Perfekt, vielen Dank, werde ich später mal testen

              EDIT: Knautz Leider funktioniert es bei mir nicht mit. Nach der Eingabe des PWs kommt folgende Fehlermeldung:

              Wrong password or the ETS uses an unknown encryption method (supported are AES256, AES128, ZipCrypto-Deflate) (RuntimeError)
              Zuletzt geändert von Mabalero; 26.09.2025, 12:59.

              Kommentar


                #8
                Probiere es jetzt nochmal. Ich habe was am Fehler-Reporting an der Stelle geändert, war ein Leichtsinnfehler, weshalb die eigentlich Fehlermeldung nicht angezeigt wurde sondern die genannten statische Meldung.

                Probiere es bitte nochmal und schaue ob jetzt ein lesbarer Fehlertrace angezeigt wird. Den bräuchte ich. Denke mal, dass die Exe falsch gepackt ist und deshalb etwas scheitert.

                EDIT: Habs jetzt auch auf einem anderen Rechner getestet, Windows11 erst frisch installiert. Hat funktioniert, aber ich habe natürlich nur meine ETS-Test-Projekte.

                EDIT: Hab eben auch nochmal vorausschauend ein ETS6 Projekt gestestet. Ohne Passwort geht auch ETS6. Mit Password jedoch nicht. Bin grad am Debuggen. Ok AES256-Deflate wird in der ETS fürs zippen genutzt, das konnte ich bisher noch nicht testen. Sollte eigentlich gehen, mal sehen obs nur ne Kleinigkeit ist.
                Zuletzt geändert von Knautz; 26.09.2025, 21:00.

                Kommentar


                  #9
                  So Mabalero, da ich davon ausgehe, dass du ein passwortgeschütztes ETS6 Projekt nutzt, habe ich dieses Feature gleich implementiert. War wieder mal nicht so einfach wie gedacht... die ETS6 verschlüsselt das eingegebene Passwort intern erst noch. Diese Verschlüsselung musste ich nachbauen... zum Glück hat sanau dazu ein einem anderen Forumbeitrag quasi schon die Lösung präsentiert (https://knx-user-forum.de/forum/%C3%...s6-l%C3%B6sung).

                  Ich habe den ersten Post etwas aktualisiert, damit er den heutigen Stand beschreibt.
                  Zuletzt geändert von Knautz; 26.09.2025, 23:18.

                  Kommentar


                    #10
                    Das ist genau was ich suche. Die KNX-Seite läuft soweit in meinem Haus und nun geht’s darum alles in HA zu bringen.
                    Da passt das Script natürlich perfekt, bis ich über die Funktionen gestolpert bin. Musste mich erstmal einlesen, was ich da in meinem Projekt vergessen habe. Schwanke jetzt zwischen Funktionen anlegen und YaML selbst schreiben.
                    Hat jemand seine Funktionen im Nachgang angelegt und kann mir was über den Aufwand sagen? Welche Vorteile habe ich noch außer, dass ich das Script nutzen kann?

                    Kommentar


                      #11
                      Ich befasse mich erst seit wenigen Tagen intensiver mit HA. Meine Frage, kann ich mit dem "Tool" alle KNX GA lesen & schreiben und benötige hierzu keine aufwendige YAML mehr? Vielleicht kann mir jemand etwas Licht ins dunkle bringen.

                      Mein Ziel ist es, alle meine 3. Anbietergeräte wie z. B. Fronius WR etc auf den BUS zu bringen. Ich möchte die Werte einbinden und im Quadclient darstellen. Des Weiteren Aktionen mittels KNX GA über HA an die Geräte senden.

                      Kommentar


                        #12
                        Zitat von KNXPatrol Beitrag anzeigen
                        Das ist genau was ich suche. Die KNX-Seite läuft soweit in meinem Haus und nun geht’s darum alles in HA zu bringen.
                        Da passt das Script natürlich perfekt, bis ich über die Funktionen gestolpert bin. Musste mich erstmal einlesen, was ich da in meinem Projekt vergessen habe. Schwanke jetzt zwischen Funktionen anlegen und YaML selbst schreiben.
                        Hat jemand seine Funktionen im Nachgang angelegt und kann mir was über den Aufwand sagen? Welche Vorteile habe ich noch außer, dass ich das Script nutzen kann?
                        Also Funktionen anlegen im Nachgang ist kein Problem. Du legst eine an und löscht die vordefinierten GAs raus und ziehst deine benötigten rein.

                        Ich bin nur privat Anwender und kenne die weiteren Nutzungsmöglichkeiten von Funktionen nicht. Ich weiß nur, dass diese Funktionen bisher nie wirklich nützlich waren. Angeblich gibt es Pläne die Funktionen zu nutzen, damit man irgendwie Matter-Standard kompatibel werden kann bzw. IoT integration verbessert. Ich kenne den aktuellen Stand dazu aber nicht.
                        Aus meiner Sicht hast du im Moment keine weiteren Vorteile.

                        Yaml selbst schreiben oder Skripts benutzen ist natürlich die entscheidende Frage. Wenn du Zeit hast kannst du dich gerne mit dem Tool beschäftigen und probieren. Wenn du das yaml selbst schreibst ist es deutlich mehr repetitive Arbeit und du musst mehr von HA KNX devices verstehen, aber du hast keine Blackbox-Tool was am Ende evtl. nicht funktioniert und du umsonst ETS Funktionen angelegt hast.

                        Es gibt neben den Funktionen halt noch einen weiteren Fallstrick. Du musst eine GA Struktur haben die mit den Settings kompatible ist. z.B.
                        GA_MIDDLE_GROUP_PATTERN_BRIGHTNESS_SET = '/3/' GA_MIDDLE_GROUP_PATTERN_BRIGHTNESS_STATUS = '/6/'

                        In meinem Projekt ist bei allen Lichtern immer die Mittelgruppe 3 die GaA zum Setzten der absoluten Helligkeit (HA arbeitet fast immer mit absolut Werten). Die Mittelgruppe 6 ist immer die Rückmeldung des absoluten Helligkeitswerts. Da beide Adressen den gleichen DPT haben kann das Skript nicht von selbst unterscheiden.
                        Diesen Fall gibt es Recht häufig, wie man an den anderen settings sehen kann.

                        Kommentar


                          #13
                          Zitat von Jokl Beitrag anzeigen
                          Ich befasse mich erst seit wenigen Tagen intensiver mit HA. Meine Frage, kann ich mit dem "Tool" alle KNX GA lesen & schreiben und benötige hierzu keine aufwendige YAML mehr? Vielleicht kann mir jemand etwas Licht ins dunkle bringen.

                          Mein Ziel ist es, alle meine 3. Anbietergeräte wie z. B. Fronius WR etc auf den BUS zu bringen. Ich möchte die Werte einbinden und im Quadclient darstellen. Des Weiteren Aktionen mittels KNX GA über HA an die Geräte senden.
                          Wenn du mir mal alle GAs schreibst mit zugeordneten DPT, dann kann ich es dir sagen. Normalerweise sollte werte lesen direkt gehen. Pro wert musst du eine Funktion in der ets anlegen mit dem Keyword "Sensor" (keyword kannst du anpassen in den settings.rb).
                          Werte setzen, da geht aktuell nur Number soweit ich weiß.

                          Kommentar


                            #14
                            sinnvolle Verwendung von Funktionen in der ETS ggf ab 7.x oder 8.x.

                            Dazu müssen wohl die Applikationen der Geräte auch bestenfalls mehr Metadaten zur Verfügung stellen, damit das mit den KO's auch automatischer verbunden werden kann. Aber es werden meist immer nur Standardfunktionen bleiben die dadrüber bedient werden ansonsten sind wir wieder bei der Funktionsvielfallt wie vor 20 Jahren bei den Aktoren und PM's nur damit die alle untereinander auch über die KO's instant verknüpft werden können.
                            ----------------------------------------------------------------------------------
                            "Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
                            Albert Einstein

                            Kommentar

                            Lädt...
                            X