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

                  Lädt...
                  X