Ankündigung

Einklappen
Keine Ankündigung bisher.

Neuheit: OpenKNX Konfigurationstransfer

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

    Neuheit: OpenKNX Konfigurationstransfer

    Wir möchten die Gelegenheit nutzen, Euch eine Funktionalität vorzustellen, die es bislang (soweit uns bekannt) noch in keiner ETS-Applikation gab: Den OpenKNX Konfigurationstransfer, der zum ersten Mal in der gestern erschienenen Version 1.0 von unserem Sound-Modul und der heute erscheinenden Version 3.3 vom Logikmodul enthalten ist.

    Was ist das und was ist so toll daran?

    Wer schon mal ein Update eines KNX-Gerätes gemacht hat und von der ETS gezuwungen wurde, alle Parameter manuell neu einzugeben, weiß, dass das sehr mühsam sein kann. OpenKNX-Geräte sind so gebaut, dass ein Update in der ETS ermöglicht wird (zumindest versuchen wird das immer zu erreichen).

    Die ETS erlaubt es auch, alle Parameter von einem Gerät auf ein anderes zu kopieren. Das ist natürlich besser als nichts, aber doch sehr eingeschränkt im Nutzen.

    Was man sich häufig wünscht, ist das Kopieren einer Vorlage, z.B. für einen Schaltkanal oder einen PM-Kanal, um anschließend nur geringe Änderungen bzw. Anpassungen vornehmen zu müssen. Oder beim Schaltaktor mal Kanal 4 auf Kanal 2 umzulegen, ohne alle Parameter manuell übertragen zu müssen.

    Bei OpenKNX-Geräten ergeben sich durch das Modulkonzept noch deutlich mehr Möglichkeiten: So gibt es z.B. das Logikmodul, das Präsenzmodul, das Tastermodul oder das Binäreingangsmodul auf verschieden Geräten und man möchte vielleicht einfach die PM-Einstellungen von einem Gerät auf ein anderes transferieren, aber nur ein Kanal, weil die anderen bereits definiert sind.

    Unser OpenKNX Konfigurationstransfer erlaubt solche Sachen.
    • Man kann gerätelokal arbeiten und z.B. einen Logikkanal auf einen anderen kopieren oder einen PM-Kanal auf einen anderen, um dann z.B. nur 2 Parameter noch anzupassen.
    • Man kann z.B. beim Schaltaktor ein paar Kanäle hin und her kopieren, weim man die physikalischen Anschlüsse ändern möchte.
    • Man kann einen Kanal exportieren und auf einem anderen OpenKNX-Gerät wieder importieren
    • Man kann einen solchen Export veröffentlichen und anderen Usern als (produktives) Beispiel zur Verfügung stellen. Dieses Beispiel können die dann importieren und bekommen die Funktion ohne viel in der ETS parametrisieren zu müssen.
    • Man kann auch den Export als eigenes Backup nutzen (einfach in einer Datei "wegspeichern").
    • Oder mal einen Export machen, zwischenspeichern, etwas Neues ausprobieren und wenn das Neue nicht klappt, einfach den alten Stand wieder importieren - nur für den/die veränderten Kanäle, nicht gleich einen Export des ganzen ETS-Projekts.
    • Man kann für ein Gerät die Applikation wechseln (hier erlaubt die ETS kein Upgrade, normalerweise heißt das wieder, alles manuell eintippen). Bei uns muss man nur die Konfiguration vor dem Wechsel exportieren und in der Zielapplikation wieder importieren.
    Das Ding ist auch für uns neu, wir wissen selber noch nicht, auf was für tolle Ideen ihr kommt, um damit was zu machen, aber es gibt viele Möglichkeiten! Ich für meinen Teil werde nur noch Applikationen ausliefern, in denen der Konfigurationstransfer enthalten ist.

    Leider gibt es einige Dinge, die sich (nach unserem bisherigem Kenntnisstand) unter anderem durch die Möglichkeiten der ETS nicht, oder nur eingeschränkt realisieren lassen. Ich will jetzt nicht alle Details auflisten, die nicht gehen, das kann man in der Doku nachlesen, aber die wichtigsten Punkte wären:
    • Wir können (derzeit) nur einzelne Kanäle exportieren (das wollen wir noch ändern, wir sind ja erst bei der ersten Version)
    • Das Lesen und Schreiben der Konfigurationsparameter ist sehr langsam und kann bei Kanälen mit sehr vielen Parametern im Extremfall einige Minuten dauern in denen die ETS nicht mehr reagiert (das ist aber immer noch viel schneller, als eine manuelle Übertragung)​
    • Es können keine GA exportiert werden, die dem Kanal, den man exportiert, zugeordnet sind (die GA müssen also wie üblich manuell zugeordnet werden)
    • Es gibt vereinzelte Parameter die sich nicht verarbeiten lassen. Bei unserer internen Test-Nutzung hatten diese Fälle kaum relevant. Dennoch empfiehlt sich gerade zu Beginn der Nutzung eine kurze Prüfung des Ergebnisses. Wir versuchen solche Fälle zu dokumentieren und sind dankbar für Hinweise auf bislang nicht bekannte Auffälligkeiten.
    • Es gibt dann noch komplexere Fälle (z.B. im Logikmodul), aber die werden dann in dem entsprechenden Release-Thread besprochen.
    Trotz dieser Einschränkungen ist das Tool eine riesige Arbeitserleichterung und wird uns und euch ermöglichen, viele Beispiele durch Kopie einer leicht erkennbaren Zeichenkette (`OpenKNX,cv1,...§;OpenKNX`) untereinander auszutauschen, ohne seitenweise Screenshots durch die Gegend schicken zu müssen. Ich bin gespannt, was daraus erwächst.

    Wer hat das gebaut?

    Ich will mich nicht mir fremden Federn schmücken: Der OpenKNX-Konfigurationstransfer wurde von Cornelius Köpp (OpenKNX) entwickelt. Ich habe unser Werkzeug, mit dem wir die Applikationen bauen (OpenKNXProducer) so erweitert, dass er die benötigten Informationen zur Modul-Struktur in der ETS-Applikation einbettet.

    Viel Spaß mit unserem neuen Konfigurationstransfer, der hilft schon bei einem Gerät (z.B. um Logikkanäle zu kopieren), aber bei mehreren Geräten entwickelt das Tool erst so richtig sein Potential.

    Bei Fragen stehe ich erstmal als Ansprechpartner bereit. Eine erste Dokumentation zum Konfigurationstransfer findet ihr hier: https://github.com/OpenKNX/OFM-Confi...figTransfer.md

    Und wer es gleich ausprobieren möchte: Importiert folgenden String in ein OpenKNX-Gerät mit Konfigurationstransfer und Logikmodul (z.B. auf dem gerade freigegebenen Logikmodul-Release-3.3):
    Code:
    OpenKNX,cv1,0xA030:0x33/LOG:0x33/1§f~Name=Hello%20World%20in%20KNX§f~Kommentar=Dieses%20Beispiel%20tut%20nichts%20sinnvolles%0A%0AEs%20zeigt%20nur%2C%20wie%20der%0AKonfigurationstransfer%20funktioner%2C%0Aindem%20es%20alle%2015%20Sekunden%20ein%0AHello%20World%20auf%20dem%20Bus%20schickt.§f~Logic=2§f~NameInput1=Einschalt-Trigger%20mit%20einer%201§f~E1=2§f~E1Default=2§f~E1DefaultEEPROM=1§f~NameOutput=Hello%20World%20senden§f~ORepeatOnBase=0§f~ORepeatOnTime=15§f~ORepeat=1§f~ODpt=8§f~OOnDpt16=Hello%20World!§f~OOff=0§f~OOffAll=0§;OpenKNX
    und verbindet den Ausgang vom importierten Logikkanal mit einer GA (Der exportierte Logikkanal ist die 1, man kann aber in einen beiliebigen Kanal importieren).
    Als Ergebnis wird alle 15 Sekunden ein "Hello World!" auf den KNX-Bus gesendet .

    Viele Grüße,
    Cornelius und Waldemar
    Zuletzt geändert von mumpf; 10.07.2024, 00:38.
    OpenKNX www.openknx.de

    #2
    Reserviert für Updates...
    OpenKNX www.openknx.de

    Kommentar


      #3
      Hier mal eine grobe Anleitung, wie ihr den Konfigurationstransfer verwendet, um Beispiele, die wir in anderen Threads anbieten, in eure OpenKNX-Applikation zu nutzen.
      Ich werde das Beispiel an einem simplen Countdown-Zähler im Logikmodul aufbauen. Es soll hier nicht um die Logikmodul-Funktion gehen, sondern um die Verwendung vom Konfigurationstransfer.

      Anmerkung: Wer noch keine aktuelle OpenKNX-Firmware mit Konfigurationstransfer hat und sich unsere Beispiele trotzdem ansehen will, kann sich auch einfach nur die neuste Applikation in die ETS laden. Die Beispiele lassen sich importieren und in der ETS anschauen, auch ohne dass man sie auf Hardware spielt und ausprobiert. So kann man auch vorgehen, wenn man das Beispiel als Idee verwenden will, um es manuell auf eine ältere OpenKNX-Hardware zu übertragen.

      Meine Beschreibungen der Beispiele werden ungefähr so aussehen:

      Countdown-Zähler

      Das ist der Kanal 1 vom Logikmodul, der so definiert ist, dass man auf den Eingang einen DPT12-Wert schickt und dieser dann sekündlich runtergezählt wird, bis 0. Diese 0 könnte man z.B. über einen 2. Kanal zu einem Schaltimpuls wandeln lassen (nicht Teil des Beispiels). Damit das funktioniert, müsst ihr noch eine GA1 mit dem Eingang 1 der Logik verknüpfen, auf die schickt ihr den Startwert des Zählers in Sekunden (z.B. 50). Ferner muss noch eine GA2 mit dem Ausgang der Logik verbinden. Diese GA2 verbindet ihr auch mit dem Eingang der Logik (hörende Adresse). Die GA2 enthält den Countdown-Wert bis 0.
      Code:
      OpenKNX,cv1,*/LOG:0x33/1§#BeispielCountdown§#@author:WP§#@see:https://knx-user-forum.de/forum/projektforen/openknx/1965848-neuheit-openknx-konfigurationstransfer?p=1967860#post1967860§f~Name=Countdown%20(in%20Sekunden)§f~Kommentar=Wrd%20am%20Eingang%20ein%20Wert%20(in%20Sekunden)%20gesetzt%2C%0Awird%20von%20diesem%20runtergez%C3%A4hlt%20bis%200§f~Logic=2§f~NameInput1=Start-Z%C3%A4hlwert§f~E1=1§f~E1Dpt=13§f~E1LowDpt12:1=1§f~NameOutput=Z%C3%A4hlausgang§f~ODelayOnBase=0§f~ODelayOnTime=1§f~ODelay=1§f~OOutputFilter=1§f~ODpt=13§f~OOn=8§f~OOnAll=8§f~OOnFunction=19§f~OOff=0§f~OOffAll=0§>Import: [OK]§>§>Nutzung des Kanals:§>GA1: Startwert§>GA2: Restzeit§>KO-Zuweisung:§>Eingang1 <- GA1,GA2§>Ausgang  <- GA2§;OpenKNX
      Wie geht man vor, um das Beispiel mit Hilfe vom Konfigurationstransfer zu nutzen:
      1. Geht in eine OpenKNX-Applikation mit Konfigurationstransfer. Klickt auf "Konfigurationstransfer". Klickt auf "Import".
      2. In das Feld "Import" überträgt ihr den oberen String (der beginnt und endet mit "OpenKNX") mittels Copy&Paste.
      3. Als "Import-Ziel" kann man folgendes auswählen:
        1. automatisch aus Export übernehmen - wird euren Kanal 1 der Logik überschreiben, weil der Export aus Kanal 1 war
        2. Irgedeine der Zahlen - wird den obigen String in genau den Kanal der Logik importieren. Man sollte einen freien Kanal auswählen, da alle Inhalte überschrieben werden.
      4. Jetzt noch den Button "Importieren" drücken und warten - könnte bis zu 30 Sekunden bei diesem Beispiel dauern, bei größeren Beispielen auch mehrere Minuten (sehr selten).
      5. Falls ein Fehler kommt, dann in der Dropdown über dem "Importieren"-Button noch "locker" auswählen und nochmal versuchen.
      Jetzt muss man wie im Beispiel oben beschrieben die GA noch den Ein- und Ausgangs-KO zuweisen, das Gerät programmieren, im Gruppenmonitor auf die GA1 den Wert 30 schicken und sich freuen, wie die GA2 sekündlich auf 0 runtergezählt wird.

      Das ist einfach, kommt ohne Screenshots aus und kann einfach zwischen Usern ausgetauscht werden.

      Gruß, Waldemar
      Zuletzt geändert von mumpf; 22.07.2024, 15:58. Grund: Verfahren nochmal etwas detailliert
      OpenKNX www.openknx.de

      Kommentar


        #4
        Nach knapp einem Jahr unauffälliger produktiver Nutzung in den meisten OpenKNX-Applikationen gibt es seit kurzem nun ein kleines Update des Konfigurationstransfers, mit einer neuen Funktion und verschiedenen Detail-Verbesserungen, über die ich hier einen kurzen Überblick geben werde. In ersten Releases von Applikationen ist die neue Version schon integriert, in den übrigens wird dies bei den in Vorbereitung befindlichen nächsten Versionen erfolgen.

        Konfigurationstransfer v0.4: Kanal-Tausch + Verbesserungen der Usability und Kompatiblität


        Kanal-Tausch

        Komplett neu ist die Möglichkeit zwei Kanäle gegeneinander zu tauschen. Diese Funktion kann auch direkt innerhalb von Modulen genutzt werden, wie bereits im Touch-Display von mgeramb zur Umordnung von Seitendefinitionen. In diesem günstigen Fall funktioniert das auch besonders bequem, weil keine KOs beteiligt sind. Die können über die verfügbaren internen Schnittstellen nicht verändert werden.

        Screenshot 2025-07-29 214620.png
        Screenshot 1: Neue Funktion: Kanal-Tausch

        Detail-Verbesserungen der Oberfläche​

        An einigen Stellen hat sich gezeigt, dass die produktive Nutzung in der Praxis anders erfolgt als ursprünglich erwartet. Und auch sonstiges Feedback der Nutzer ist eingeflossen:

        Optimierte Reihenfolge der Funktions-Seiten

        Operationen innerhalb der Applikation werden in der Praxis häufiger verwendet als Import und Export. Daher wurde die Reihenfolge Parameter-Blöcke (Seiten) passend zur Nutzungshäufigkeit geändert in:
        1. Kanalkopie
        2. Kanaltausch
        3. Standardwerte
        4. Import
        5. Export
        Zum vergleich mit der alten Reihenfolge siehe Screenshot 2 unten.

        Die Oberfläche der Import-Funktion wurde überarbeitet und vereinfacht
        • Durch die optische Trennung in nummerierte Einzelschritte sollen vor allem Gelegenheitsnutzer besser durch den für die ETS untypischen Workflow geführt werden
        • Die bislang erforderliche Konfiguration der Kompatibilitätsprüfung wurde aus der Benutzeroberfläche entfernt. Das Verhalten entspricht nun dem Kompatibilitätslevel lockerer. Der bisherige Standard-Level streng verhinderte in der Praxis sehr häufig den Import, was bei Nutzern teilweise für Verwirrung sorgte und die manuelle Anpassung der Einstellung wurde als störend empfunden. In der Praxis führte die deutlich höhere Toleranz von lockerer und damit auch der Austausch zwisschen verschiedenen Modul-Versionen und Applikationen zu keinen gravierenden Problemen und es gibt ggf. Warn-Meldungen die nach dem Import mit ausgegeben werden.
        • Whitespaces vor und nach dem Transfer-String werden nun toleriert, was ein manuelles Entfernen von mitkopierten Leerzeichen erspart
        • Direkte Integration von Hinweis zur erforderlichen Nachbereitung
        Screenshot 2025-07-29 225140.png
        Screenshot 2: Import in alter (links) und neuer (rechts) Form

        Export-Funktion
        • Beschriftung der Export-Format-Auswahl wurde angepasst, da "Menschenlesbar" häufig fälschlicherweise für Support-Zwecke ausgewählt. Die neuen Bezeichnungen sind da nun hoffentlich klarer und auch die Hilfetexte wurde diesbezüglich nochmal erweitert.
        Weitere Detail-Anpassungen

        Gibt noch einige weitere Details, die bei Nutzung kaum auffallen werden und teilweise auch schon im Umlauf sind, weil Sie mir verwendung einer neueren Producer-Version einzug gehalten haben:
        • Die Modul-Auswahl wird vereinfacht in Fällen in denen nur ein Modul enthalten ist (das betrifft praktisch nur die Logikmodul-Applikation)
        • Fehlerbehebungen und Verbesserungen in Verbindung mit speziellen Parametern
        • Die Anzeige von Applikations- und Modul-Versionsnummern in lesbarer einheitlicher Form
        • Eine erste kleine Vorbereitung mit Blick auf Multi-Channel-Transfer wurde auch schon integriert. Da müsst Ihr Euch noch weiter gedulden, aber Vorfreude soll gerüchteweise die schönste Freude sein ;-)


        Cornelius
        Zuletzt geändert von coko; 30.07.2025, 19:02. Grund: Bilder erneut hochgeladen und eingefügt
        OpenKNX www.openknx.de | StateEngine: Universelle Zustandsautomaten in KNX | OpenKNX Konfigurationstransfer

        Kommentar


          #5
          Hi

          Feinfein. Nur sind die Screenshots kaputt...
          Kind regards,
          Yves

          Kommentar


            #6
            starwarsfan Screenshots hatte ich noch mal neu hochgeladen. Die waren vorher wohl nur für mich selbst sichtbar und nicht für andere...
            OpenKNX www.openknx.de | StateEngine: Universelle Zustandsautomaten in KNX | OpenKNX Konfigurationstransfer

            Kommentar

            Lädt...
            X