Ankündigung

Einklappen
Keine Ankündigung bisher.

Vollautomatischer ETS Import

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

    Vollautomatischer ETS Import

    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:

    Code:
    [B]sh([/B][I]spezieller Inhalt[/I][B])[/B]
    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:

    Code:
    ['eg']
        [['wohnzimmer']]
            [[['jalousie']]]
    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:

    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
    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!
    Mit freundlichen Grüßen
    Niko Will

    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

    #2
    richtig?

    hmm, wenn ich es richtig verstanden habe, dann sollte es in der ETS4 folgendermaßen konfiguriert sein....
    Ich glaube wir befinden uns auf dem richtigen Weg!!

    Noch ein Tipp zum Gebrauch der dynamische Ordner...... bei euren Statusmeldungen taucht vermutlich irgendwo ein spezielles Wort auf (ST,Status, oder extra Mittelgruppe) Danach könnt ihr im Dynamischen Ordner filtern lassen. Ich hatte bereits aus einem anderen Grund einen dynamischen Ordner "Status", weil ich im Bemerkungsfeld der Stati unbedingt das Wort Status stehen haben wollte, zur Erhöhung der Übersichtlichkeit

    Gruß

    Claus
    Angehängte Dateien
    if you make something idiot-proof, they start making better idiots......
    KNX:3 Linien,121 Teiln.,Siemens N146 und N350E,RasPi mit SV,8 FBH-Kreise mit Siemens HK-Regler,HS4, Haus ohne öffentl. Wasser-/Stromversorg.,PV-Anlage Wechselrichter:SI5048(8kW, 24 Pufferbatterien 1400Ah),PV-Module mit 7,5kWp

    Kommentar


      #3
      Ich habe gesehen, dass die 0.9 beta auf git veröffentlicht wurde.

      wenn ich per git pull einen Update trigger kommt folgende Fehlermeldung:



      Code:
      * [new tag]         0.9-Beta   -> 0.9-Beta
      Updating f39d59c..faad146
      error: Your local changes to the following files would be overwritten by merge:
              tools/ets4parser.py
      Please, commit your changes or stash them before you can merge.
      Aborting
      Der Link zum github, wo ihr das tool herunterladen könnt : https://github.com/mknx/smarthome/tree/master/tools

      Wie kann ich die Änderung commiten oder stashen??
      if you make something idiot-proof, they start making better idiots......
      KNX:3 Linien,121 Teiln.,Siemens N146 und N350E,RasPi mit SV,8 FBH-Kreise mit Siemens HK-Regler,HS4, Haus ohne öffentl. Wasser-/Stromversorg.,PV-Anlage Wechselrichter:SI5048(8kW, 24 Pufferbatterien 1400Ah),PV-Module mit 7,5kWp

      Kommentar


        #4
        Vollautomatischer ETS Import

        Mach nacheinander folgende Befehle:

        git stash
        git pull
        git stash apply
        Mit freundlichen Grüßen
        Niko Will

        Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
        - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

        Kommentar


          #5
          "git stash" oder "git commit - m'<commit message>' -a"

          Wenn du deine lokalen Änderungen verwerfen willst: "git checkout - f"

          Ich denke mal du hast in der Datei die 10 auf die 11 geändert?! Das könntest du auch verwerfen und zur Not neu machen.

          Gruß Lars

          Edit: zu langsam ;-) Mobil ist das Forum nicht gut zu benutzen

          Kommentar


            #6
            wie muss das Script gestartet werden? Anders als ets4parser.py??

            Wenn ich es starte dann kommt nur die Meldung
            Code:
            Project:  knx_master.xml
            Code:
            python /usr/smarthome/tools/ga2conf.py knx_master.xml 0.xml Zieldatei_name.conf
            if you make something idiot-proof, they start making better idiots......
            KNX:3 Linien,121 Teiln.,Siemens N146 und N350E,RasPi mit SV,8 FBH-Kreise mit Siemens HK-Regler,HS4, Haus ohne öffentl. Wasser-/Stromversorg.,PV-Anlage Wechselrichter:SI5048(8kW, 24 Pufferbatterien 1400Ah),PV-Module mit 7,5kWp

            Kommentar


              #7
              Zitat von 2ndsky Beitrag anzeigen
              Mach nacheinander folgende Befehle:

              git stash
              git pull
              git stash apply
              Musste mich erstmal bei github anmelden.....
              if you make something idiot-proof, they start making better idiots......
              KNX:3 Linien,121 Teiln.,Siemens N146 und N350E,RasPi mit SV,8 FBH-Kreise mit Siemens HK-Regler,HS4, Haus ohne öffentl. Wasser-/Stromversorg.,PV-Anlage Wechselrichter:SI5048(8kW, 24 Pufferbatterien 1400Ah),PV-Module mit 7,5kWp

              Kommentar


                #8
                Vollautomatischer ETS Import

                Das neue Skript hat nur einen Parameter und erzeugt .conf Files die so heißen wie die Toplevel Items darin.

                EDIT: und der Parameter ist die 0.xml... steht aber im ersten Post beschrieben
                Mit freundlichen Grüßen
                Niko Will

                Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                Kommentar


                  #9
                  Zitat von Shai Beitrag anzeigen
                  "git stash" oder "git commit - m'<commit message>' -a"

                  Wenn du deine lokalen Änderungen verwerfen willst: "git checkout - f"
                  trotz checkout -f kommt ne Fehlermeldung! ebenfalls probiert:
                  Code:
                  git reset --merge
                  Ich habe jetzt einfach das ga2conf.py aus /tools/ entfernt und den git pull erfolgreich gestartet


                  Gruß Claus
                  if you make something idiot-proof, they start making better idiots......
                  KNX:3 Linien,121 Teiln.,Siemens N146 und N350E,RasPi mit SV,8 FBH-Kreise mit Siemens HK-Regler,HS4, Haus ohne öffentl. Wasser-/Stromversorg.,PV-Anlage Wechselrichter:SI5048(8kW, 24 Pufferbatterien 1400Ah),PV-Module mit 7,5kWp

                  Kommentar


                    #10
                    Mir scheint es läuft nicht richtig....
                    Code:
                    admin@smarthome:/usr/smarthome$ python tools/ga2conf.py 0.xml
                    Project: 0.xml
                    Während das Tool läuft, müsste sich doch etwas aufm Bildschirm tun,oder?

                    Weit und breit kann ich keinen Output entdecken!
                    Oder muss die 0.xml in ein bestimmtes Verzeichnis?

                    Gruß Claus
                    if you make something idiot-proof, they start making better idiots......
                    KNX:3 Linien,121 Teiln.,Siemens N146 und N350E,RasPi mit SV,8 FBH-Kreise mit Siemens HK-Regler,HS4, Haus ohne öffentl. Wasser-/Stromversorg.,PV-Anlage Wechselrichter:SI5048(8kW, 24 Pufferbatterien 1400Ah),PV-Module mit 7,5kWp

                    Kommentar


                      #11
                      ..wenn ich die 0.xml in das /tools/ -Verzeichnis verschiebe passiert dies hier:

                      Code:
                      admin@smarthome:/usr/smarthome$ python tools/ga2conf.py 0.xml
                      Project: 0.xml
                      Traceback (most recent call last):
                        File "tools/ga2conf.py", line 114, in <module>
                          project = ET.parse(PROJECTFILE)
                        File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1183, in parse
                          tree.parse(source, parser)
                        File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 647, in parse
                          source = open(source, "rb")
                      IOError: [Errno 2] No such file or directory: '0.xml'
                      admin@smarthome:/usr/smarthome$
                      if you make something idiot-proof, they start making better idiots......
                      KNX:3 Linien,121 Teiln.,Siemens N146 und N350E,RasPi mit SV,8 FBH-Kreise mit Siemens HK-Regler,HS4, Haus ohne öffentl. Wasser-/Stromversorg.,PV-Anlage Wechselrichter:SI5048(8kW, 24 Pufferbatterien 1400Ah),PV-Module mit 7,5kWp

                      Kommentar


                        #12
                        Vollautomatischer ETS Import

                        Du musst auch den Pfad zur Datei angeben und nicht den Namen. Entweder

                        cd tools
                        python ga2conf.py 0.xml

                        oder

                        python tools/ga2conf.py tools/0.xml

                        EDIT: und ja, da sollte des öfteren "Create: irgendwas.conf" kommen
                        EDIT2: und du musst natürlich wieder NS_URL von 10 auf 11 ändern
                        Mit freundlichen Grüßen
                        Niko Will

                        Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                        - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                        Kommentar


                          #13
                          wichtiger Hinweis für die Verwendung von ga2conf.py

                          Die Hirachie der .conf wird durch die Benennung der Gruppenadresse definiert....

                          Das bedeutet: wenn eure GA EG WoZi Jalo1 heißt dann ist die obere Gruppe EG

                          Wenn eure GA Jalo EG WoZi heißt dann ist die obere Gruppe Jalo

                          Das bedeutet das erste Wort bis zum Leerzeichen definiert die Benennung der oberen Gruppe

                          Man muss übrigens beim "rumbasteln" immer nur die 0.xml neu schreiben! Die KNX_Master.xml ändert sich nicht

                          Gruß Claus
                          if you make something idiot-proof, they start making better idiots......
                          KNX:3 Linien,121 Teiln.,Siemens N146 und N350E,RasPi mit SV,8 FBH-Kreise mit Siemens HK-Regler,HS4, Haus ohne öffentl. Wasser-/Stromversorg.,PV-Anlage Wechselrichter:SI5048(8kW, 24 Pufferbatterien 1400Ah),PV-Module mit 7,5kWp

                          Kommentar


                            #14
                            Man könnte sich evtl. auch überlegen, die Hauptgruppe nach dem Gewerk zu benennen! Die Gewerkenamen kann man in der ETS ja frei wählen!
                            if you make something idiot-proof, they start making better idiots......
                            KNX:3 Linien,121 Teiln.,Siemens N146 und N350E,RasPi mit SV,8 FBH-Kreise mit Siemens HK-Regler,HS4, Haus ohne öffentl. Wasser-/Stromversorg.,PV-Anlage Wechselrichter:SI5048(8kW, 24 Pufferbatterien 1400Ah),PV-Module mit 7,5kWp

                            Kommentar


                              #15
                              Vollautomatischer ETS Import

                              Hallo Claus,

                              hast du eigentlich meinen ersten Post gelesen? Da ist die Verwendung und die Arbeitsweise beschrieben. Da nur die 0.xml verwendet wird muss man natürlich nur diese editieren. Und wie die Hierarchie der Items gebildet wird steht da übrigens auch
                              Mit freundlichen Grüßen
                              Niko Will

                              Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                              - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                              Kommentar

                              Lädt...
                              X