Hallo Leute,
okay, der Titel des Threads ist vielleicht etwas übertrieben, aber bei entsprechend angelegter ETS GA Struktur kommt es dem ganzen schon sehr Nahe.
Ich habe in Github unter Tools eine abgeänderte Version des ets4parser.py unter ga2conf.py erstellt. ga2conf.py wird mit einem Parameter aufgerufen, der auf die 0.xml des entpackten KNX Projekts verweisen muss.
Dieses Tool macht nun folgendes. Es geht durch alle Gruppenadressen die in der ETS angelegt wurden. Wenn es eine Gruppenadresse findet, die irgendwo in der Beschreibung folgendes stehen hat:
wird diese GA in die Ausgabe übernommen. Die Hierarchie der Konfigurationsdatei wird anhand des Namens der GA gebildet, der an den Leerzeichen gesplittet wird. Beispielsweise die GA mit dem Namen "EG Wohnzimmer Jalousie" ergibt folgende Hirarchie:
Jetzt wirds etwas knifflig. Damit der Parser weiß, wie ein Item aufgebaut werden soll, braucht er die Info in der Beschreibung der GA innerhalb sh(...). Darin kann man beliebige Attribute für die Ausgabe ablegen mit Pipe, also '|', getrennt. Wobei das erste Attribut dasjenige ist, dem die Adresse der GA zugewiesen wird. Hier können mehrere kommasepariert angegeben werden. Ich verdeutliche das mal an einem Beispiel. Gegeben sind folgende GAs
Adresse - Name - Beschreibung
3/5/11 - EG Wohnzimmer Jalousie - sh(knx_send, knx_listen|knx_dpt=5|visu=true)
3/4/11 - EG Wohnzimmer Jalousie - sh(knx_listen, knx_init|knx_dpt=5|visu=true)
daraus ergibt sich dann folgende Konfiguration:
Wie Claus.Mallorca im Thread zum halbautomatischen ETS Import angesprochen hat, kann man in der ETS mittels dynamischer Ordner mehrere GAs zusammen anhand definierter Kriterien filtern und dann gleichzeitig deren Beschreibung bearbeiten durch vorheriges Markieren aller GAs. So muss auch nicht mehr für jede GA der DPT korrekt gesetzt sein, da sich dieser nun ebenfalls aus der Beschreibung ergibt.
Für jede Toplevel Objekt wird eine separate .conf Datei angelegt, damit es etwas übersichtlicher bleibt.
Da meine Struktur schon steht und ich das Skript deshalb nicht brauche, weiß ich auch nicht ob die Vorgehensweise der ideale Weg ist. Aber er ist deutlich besser als der alte Parser IMHO. Wenn ihr allerdings Verbesserungsvorschläge habt, werde ich versuchen, diese (je nach Zeitaufwand natürlich) umzusetzen. Es ist aber auch jeder eingeladen sich selber daran zu versuchen
Und nun viel Spass damit!
okay, der Titel des Threads ist vielleicht etwas übertrieben, aber bei entsprechend angelegter ETS GA Struktur kommt es dem ganzen schon sehr Nahe.
Ich habe in Github unter Tools eine abgeänderte Version des ets4parser.py unter ga2conf.py erstellt. ga2conf.py wird mit einem Parameter aufgerufen, der auf die 0.xml des entpackten KNX Projekts verweisen muss.
Dieses Tool macht nun folgendes. Es geht durch alle Gruppenadressen die in der ETS angelegt wurden. Wenn es eine Gruppenadresse findet, die irgendwo in der Beschreibung folgendes stehen hat:
Code:
[B]sh([/B][I]spezieller Inhalt[/I][B])[/B]
Code:
['eg'] [['wohnzimmer']] [[['jalousie']]]
Adresse - Name - Beschreibung
3/5/11 - EG Wohnzimmer Jalousie - sh(knx_send, knx_listen|knx_dpt=5|visu=true)
3/4/11 - EG Wohnzimmer Jalousie - sh(knx_listen, knx_init|knx_dpt=5|visu=true)
daraus ergibt sich dann folgende Konfiguration:
Code:
['eg'] [['wohnzimmer']] [[['jalousie']]] visu = true knx_dpt = 5 knx_send = 3/5/11 knx_listen = 3/5/11, 3/4/11 knx_init = 3/4/11
Für jede Toplevel Objekt wird eine separate .conf Datei angelegt, damit es etwas übersichtlicher bleibt.
Da meine Struktur schon steht und ich das Skript deshalb nicht brauche, weiß ich auch nicht ob die Vorgehensweise der ideale Weg ist. Aber er ist deutlich besser als der alte Parser IMHO. Wenn ihr allerdings Verbesserungsvorschläge habt, werde ich versuchen, diese (je nach Zeitaufwand natürlich) umzusetzen. Es ist aber auch jeder eingeladen sich selber daran zu versuchen

Und nun viel Spass damit!
Kommentar