Ankündigung

Einklappen
Keine Ankündigung bisher.

Vorstellung: Excel-Tool zur Erstellung von GA (Mittelgruppen-System)

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

    #16
    Zitat von MatthiasS Beitrag anzeigen
    Das ist ziemlich provokant. Und unhöflich. Es gibt - gerade bei professionellen SI durchaus Zwänge, die das Arbeiten mit älteren Versionen vorschreiben bzw. unumgänglich machen.
    Wenn ich dir auf die Füße getreten bin ... sorry.

    Meine Aussage bezog sich auf neue oder nicht migrierbare Projekte. Und wer da noch ETS 4 einsetzt, hat es wirklich nicht besser verdient

    Kommentar


      #17
      Zitat von 6ast Beitrag anzeigen
      Ich verstehe seinen Einwand jedenfalls. Die ETS Inside macht es heute bereits so, daß die GA-Struktur bedeutungslos ist und alles über Räume und Funktionen strukturiert wird.
      Jepp und immer wieder wird von bestimmten Personen gepredigt, dass die Nummern so wichtig sind. Wenn die so wichtig wären, würde die Inside auch anders arbeiten.
      Man kann das funktionsorientierte Prinzip problemlos auch manuell abbilden. Die GA sind dann halt nicht fortlaufend. Aber fortlaufende GAs sind vielen ganz wichtig.

      Wenn man eine Struktur in der Bezeichnung der GA hat, ist die Nummer Schall und Rauch

      Kommentar


        #18
        Ich mag dieses System auch nicht so besonders. Man muss zu schnell davon abweichen (oder mehrere Hauptgruppen benutzen), weil die Mitttelgruppen zu knapp werden.

        Jetzt aber mal wieder was, was nicht OT ist:

        Ich würde die beiden Zeilen
        Code:
        strDateiname = InputBox("Wie soll die CSV-Datei heißen (inkl. Pfad)?", "CSV-Export", strMappenpfad)
        If strDateiname = "" Then Exit Sub
        gegen diese ersetzen:
        Code:
        strDateiname = Application.GetSaveAsFilename(strMappenpfad, "CSV-Datei (*.csv), *.csv", , "CSV-Export")
        If strDateiname = "Falsch" Then Exit Sub
        Bringt den normalen Datei-Dialog mit allen Möglichkeiten.


        Edit:
        Die Auslegung auf 31 Hauptgruppen ist zwar sinnvoll, jedoch ist das Nutzen dieser nicht unbedingt empfehlenswert. Es gibt einfach noch zu viele Geräte, die damit nicht zurecht kommen.
        Zuletzt geändert von DirtyHarry; 25.05.2019, 14:10.
        Gruß Andreas

        -----------------------------------------------------------
        Immer wieder benötigt: KNX-Grundlagen PDF Englisch, PDF Deutsch oder
        Deutsche Version im KNX-Support.

        Kommentar


          #19
          liebe chaoten, ich steh total auf das mittelgruppen-system und wende es überall an wo es passt, insbesondere immer bei licht, jalousien, ggf auch elektrische fenster, türen, tore, etc... und wo es nicht passt, kommt dann das blocksystem. wenn man das versteht und clever anlegt spart das erstens immens zeit (hab mein eigenes excel-tool) und ist zweitens extrem übersichtlich, letztlich auch beim trouble-shooting...

          chaos ist reserviert für den schreibtisch, büro, labor und die beziehung... aber nicht für die ga's


          ps: die inside geht mir übrigens am a.... vorbei. wer will meine lizenz?
          Zuletzt geändert von concept; 25.05.2019, 23:20.
          gemäss forenregeln soll man bitte und danke sagen! also: bitte und danke!

          Kommentar


            #20
            Sowohl Mittelgruppen- als auch Blocksystem haben ihre Vor-/Nachteile - sollte man je nach Projekt entscheiden.

            Persönlich setze ich schon lange kein GA-Generator-Tool mehr ein - bin schneller u. flexibler ohne, vor allem bei Fremdprojekten.
            Gruss
            GLT

            Kommentar


              #21
              Zitat von predi ger many Beitrag anzeigen
              Wenn man eine Struktur in der Bezeichnung der GA hat, ist die Nummer Schall und Rauch
              Nochmal die Frage zur praktischen Anwendbarkeit: wie suchst du im GA-Fenster über alle Gruppen hinweg nach einem Namensfragment?

              Zuletzt geändert von Gast1961; 26.05.2019, 10:46.

              Kommentar


                #22
                Du musst im Baum alle Hauptgruppen aufklappen und alle Mittelgruppen markieren.

                Viel Erfolg Florian

                Kommentar


                  #23
                  Moin,

                  oder man konfiguriert sich einen Dynamischen Ordner dafür
                  Dynamischer Ordner.PNG
                  .... und Tschüs Thomas

                  Kommentar


                    #24
                    Zitat von GLT Beitrag anzeigen
                    Sowohl Mittelgruppen- als auch Blocksystem haben ihre Vor-/Nachteile - sollte man je nach Projekt entscheiden.
                    also ich setzte beides ein innerhalb der projekte. mittelgruppe wo möglich und sonnvoll, rest möglichst blocksystem.

                    Zitat von GLT Beitrag anzeigen
                    Persönlich setze ich schon lange kein GA-Generator-Tool mehr ein - bin schneller u. flexibler ohne, vor allem bei Fremdprojekten.
                    sehe das ähnlich, mein excel-tool ist kein ga-generator im klassischen sinn sondern dient mir dazu,eine einheitliche syntax für alle ga's einzuhalten und das ganze dann via csv (oder bei kleineren ergänzungen via copy & paste) in die ets zu kopieren.

                    durch diese einheitliche syntax versteht man viel besser was auf dem bus läuft und such- und filterfunktionen sind natürlich auch möglich.
                    gemäss forenregeln soll man bitte und danke sagen! also: bitte und danke!

                    Kommentar


                      #25
                      Hallo,

                      hier die Lösung, wie man mit ETS 5 die Nummern das GAs zu Schall und Rauch verwandelt.

                      GA_1.jpg

                      Im Bild sieht man GA ins 0/0 und 0/1 ohne System in den Nummer. System ist im Namen. Die Suche funktioniert nur über die die markierte GAs.
                      Das ist doof.

                      GA_2.jpg

                      Dynamischer Ordner für ALLE GAs.

                      GA_3.jpg

                      Die Struktur steckt in Namen. Man könnte die Beschreibung auch nutzen um eine zweite Struktur aufzubauen.

                      Sample:
                      Name = Stockwerk / Raum / Gewerk / Funktion
                      Beschreibung = Funktion / Gewerk / ...

                      ... oder was auch immer.

                      Ein 100% System in den Nummern wird es nie geben. Aber Über Namen und die Beschreibung kann man alles abfackeln.
                      Nummern sind mit der Suche und dem Sortieren praktisch überflüssig.
                      Zuletzt geändert von predi ger many; 26.05.2019, 21:03.

                      Kommentar


                        #26
                        Zitat von predi ger many Beitrag anzeigen
                        Ein 100% System in den Nummern wird es nie geben

                        Ja, es ist schwierig, doch ich versuch's und deshalb ist mein Lieblings-ETS-Zusatztool das "Adressen verschieben" von IT Gmbh....

                        Damit lassen sich manche Planungsfehler korrigieren
                        gemäss forenregeln soll man bitte und danke sagen! also: bitte und danke!

                        Kommentar


                          #27
                          Zitat von concept Beitrag anzeigen
                          mein Lieblings-ETS-Zusatztool
                          Stimmt - wäre die ETS eine 1000 Euro Software und würde sich z.B. mit dem Zusatz "pro" für professional rühmen, sollte derlei eine Grundfunktion sein (neben anderen Dingen). Aber bei einer Billigversion für Privatleute kann man sowas schon mal in Kauf nehmen.
                          Gruss
                          GLT

                          Kommentar


                            #28
                            GLT
                            mfg
                            Wolfgang

                            Kommentar


                              #29
                              Hallo zusammen,
                              danke für die rege Beteiligung :-) Nachdem ich mein Tool jetzt auf einem Stand habe, mit dem ich zufrieden bin, hab ich gemerkt dass das Mittelgruppensystem wohl doch nicht das Richtige ist für die Komponenten die ich habe Insbesondere die PM - B-J premium - haben ja unzählige GA, und die MDT Glastaster wohl auch. Ich werde also wohl doch eher das Blocksystem nutzen. Ich möchte euch trotzdem kurz mein Update zeigen, vielleicht möchte es ja jemand nutzen.
                              Es gibt 2 wesentliche Änderungen:
                              • Es gibt jetzt einen Bereich, in dem GA manuell definiert werden können. Z.B. Zentraladressen oder die vielen GA einer Wetterstation
                              • Man kann jetzt für jede UG nicht nur eine HG auswählen, sondern mittels "/" auch nur eine MG davon. Ich hab gemerkt, dass es nicht arg sinnvoll ist dem Fußboden außer der Temperatur auch noch GA für Wetter und Kontaktstatus zuzuweisen, nur weil die auch in der HG Sensoren sind. Folgende Einträge in Spalte K wären also beispielsweise möglich:
                                • 1
                                • 1;2
                                • 13/2
                                • 13/2;13/3;15
                              Viel Spaß damit
                              Gruß Jochen

                              Code:
                              Option Explicit
                              
                              Private Sub Erstelle_GA_Click()
                              
                              Dim Beschreibung_HG As String
                              Dim Beschreibung_MG As String
                              Dim Beschreibung_UG As String
                              Dim Beschreibung_gesamt As String
                              Dim HG_angefragt_str As String
                              Dim Gr_angefragt_einzeln_str As Variant
                              Dim HG_angefragt_einzeln_str As Variant
                              Dim MG_angefragt_einzeln_str As Variant
                              Dim HG_angefragt_einzeln_int As Integer
                              Dim MG_angefragt_einzeln_int As Integer
                              Dim HG_int As Integer
                              Dim MG_int As Integer
                              Dim MG_Gesamtzaehler As Integer
                              Dim UG_int As Integer
                              Dim GA_Zaehler As Integer
                              Dim Letzte_Zeile_manuell As Integer
                              Dim Zaehler_manuelle As Integer
                              
                              
                              GA_Zaehler = 0
                              Worksheets("GA").UsedRange.ClearContents
                              
                              For HG_int = 0 To 31
                              
                                  If Cells(HG_int + 3, 2).Value <> "" Then
                                  
                                      ' Hauptgruppe ist benutzt, lege HG-GA an
                                      GA_Zaehler = GA_Zaehler + 1
                                      Beschreibung_HG = Cells(HG_int + 3, 2).Value
                                      Worksheets("GA").Cells(GA_Zaehler, 1).NumberFormat = "@"
                                      Worksheets("GA").Cells(GA_Zaehler, 1).Value = Chr(34) & Beschreibung_HG & Chr(34)
                                      Worksheets("GA").Cells(GA_Zaehler, 4).NumberFormat = "@"
                                      Worksheets("GA").Cells(GA_Zaehler, 4).Value = Chr(34) & CStr(HG_int) & "/-/-" & Chr(34)
                                      
                                      ' schau welche Mittelgruppen benutzt sind
                                      For MG_Gesamtzaehler = 0 To 255
                                      
                                          ' gehoert diese Zeile zur aktuellen HG?
                                          If CInt(Cells(MG_Gesamtzaehler + 3, 4).Value) = HG_int Then
                                              ' pruefe ob diese MG benutzt ist
                                              If Cells(MG_Gesamtzaehler + 3, 7).Value <> "" Then
                                                  ' MG ist benutzt und gehoert zur akuellen HG => lege MG-GA an
                                                  GA_Zaehler = GA_Zaehler + 1
                                                  MG_int = CInt(Cells(MG_Gesamtzaehler + 3, 6).Value)
                                                  Beschreibung_MG = Cells(MG_Gesamtzaehler + 3, 7).Value
                                                  Worksheets("GA").Cells(GA_Zaehler, 2).NumberFormat = "@"
                                                  Worksheets("GA").Cells(GA_Zaehler, 2).Value = Chr(34) & Beschreibung_HG & "-" & Beschreibung_MG & Chr(34)
                                                  Worksheets("GA").Cells(GA_Zaehler, 4).NumberFormat = "@"
                                                  Worksheets("GA").Cells(GA_Zaehler, 4).Value = Chr(34) & CStr(HG_int) & "/" & CStr(MG_int) & "/-" & Chr(34)
                                                  
                                                  ' gehe alle Untergruppen (Objekte) durch und schau, ob sie die aktuelle HG brauchen
                                                  For UG_int = 0 To 255
                                                      HG_angefragt_str = Cells(UG_int + 3, 11).Value
                                                      For Each Gr_angefragt_einzeln_str In Split(HG_angefragt_str, ";")
                                                          If InStr(Gr_angefragt_einzeln_str, "/") = 0 Then
                                                              ' die gesamt HG ist gewuenscht
                                                              HG_angefragt_einzeln_int = CInt(Gr_angefragt_einzeln_str)
                                                              If HG_angefragt_einzeln_int = HG_int Then
                                                                  ' jep, dieses Objekt moechte die aktuelle HG haben, erstelle die GA
                                                                  GA_Zaehler = GA_Zaehler + 1
                                                                  Beschreibung_UG = Cells(UG_int + 3, 10).Value
                                                                  Worksheets("GA").Cells(GA_Zaehler, 3).NumberFormat = "@"
                                                                  Worksheets("GA").Cells(GA_Zaehler, 3).Value = Chr(34) & Beschreibung_UG & "-" & Beschreibung_MG & Chr(34)
                                                                  Worksheets("GA").Cells(GA_Zaehler, 4).NumberFormat = "@"
                                                                  Worksheets("GA").Cells(GA_Zaehler, 4).Value = Chr(34) & CStr(HG_int) & "/" & CStr(MG_int) & "/" & CStr(UG_int) & Chr(34)
                                                              End If
                                                          Else
                                                              ' nur eine bestimmt MG dieser HG ist gewuenscht
                                                              HG_angefragt_einzeln_str = Split(Gr_angefragt_einzeln_str, "/")(0)
                                                              MG_angefragt_einzeln_str = Split(Gr_angefragt_einzeln_str, "/")(1)
                                                              HG_angefragt_einzeln_int = CInt(HG_angefragt_einzeln_str)
                                                              MG_angefragt_einzeln_int = CInt(MG_angefragt_einzeln_str)
                                                              If HG_angefragt_einzeln_int = HG_int Then
                                                                  ' jep, dieses Objekt moechte die aktuelle HG haben
                                                                  If MG_angefragt_einzeln_int = MG_int Then
                                                                      ' jep, dieses Objekt moechte die aktuelle MG haben, erstelle GA
                                                                      GA_Zaehler = GA_Zaehler + 1
                                                                      Beschreibung_UG = Cells(UG_int + 3, 10).Value
                                                                      Worksheets("GA").Cells(GA_Zaehler, 3).NumberFormat = "@"
                                                                      Worksheets("GA").Cells(GA_Zaehler, 3).Value = Chr(34) & Beschreibung_UG & "-" & Beschreibung_MG & Chr(34)
                                                                      Worksheets("GA").Cells(GA_Zaehler, 4).NumberFormat = "@"
                                                                      Worksheets("GA").Cells(GA_Zaehler, 4).Value = Chr(34) & CStr(HG_int) & "/" & CStr(MG_int) & "/" & CStr(UG_int) & Chr(34)
                                                                  End If
                                                              End If
                                                          End If
                                                      Next
                                                  Next
                                              End If
                                          End If
                                      Next
                                  End If
                              Next
                              
                              ' Fuege manuelle GA hinzu
                              Letzte_Zeile_manuell = ActiveSheet.Cells(1048576, 16).End(xlUp).Row
                              For Zaehler_manuelle = 3 To Letzte_Zeile_manuell
                                  
                                  If Cells(Zaehler_manuelle, 13).Value <> "" Then
                                      GA_Zaehler = GA_Zaehler + 1
                                      Worksheets("GA").Cells(GA_Zaehler, 1).NumberFormat = "@"
                                      Worksheets("GA").Cells(GA_Zaehler, 1).Value = Chr(34) & Cells(Zaehler_manuelle, 13).Value & Chr(34)
                                      Worksheets("GA").Cells(GA_Zaehler, 4).NumberFormat = "@"
                                      Worksheets("GA").Cells(GA_Zaehler, 4).Value = Chr(34) & CStr(Cells(Zaehler_manuelle, 16).Value) & "/-/-" & Chr(34)
                                  Else
                                      If Cells(Zaehler_manuelle, 14).Value <> "" Then
                                          GA_Zaehler = GA_Zaehler + 1
                                          Worksheets("GA").Cells(GA_Zaehler, 2).NumberFormat = "@"
                                          Worksheets("GA").Cells(GA_Zaehler, 2).Value = Chr(34) & Cells(Zaehler_manuelle, 14).Value & Chr(34)
                                          Worksheets("GA").Cells(GA_Zaehler, 4).NumberFormat = "@"
                                          Worksheets("GA").Cells(GA_Zaehler, 4).Value = Chr(34) & CStr(Cells(Zaehler_manuelle, 16).Value) & "/" & CStr(Cells(Zaehler_manuelle, 17).Value) & "/-" & Chr(34)
                                      Else
                                          If Cells(Zaehler_manuelle, 15).Value <> "" Then
                                              GA_Zaehler = GA_Zaehler + 1
                                              Worksheets("GA").Cells(GA_Zaehler, 3).NumberFormat = "@"
                                              Worksheets("GA").Cells(GA_Zaehler, 3).Value = Chr(34) & Cells(Zaehler_manuelle, 15).Value & Chr(34)
                                              Worksheets("GA").Cells(GA_Zaehler, 4).NumberFormat = "@"
                                              Worksheets("GA").Cells(GA_Zaehler, 4).Value = Chr(34) & CStr(Cells(Zaehler_manuelle, 16).Value) & "/" & CStr(Cells(Zaehler_manuelle, 17).Value) & "/" & CStr(Cells(Zaehler_manuelle, 18).Value) & Chr(34)
                                          End If
                                      End If
                                  End If
                              Next
                              
                              SaveCSV
                              
                              End Sub
                              
                              Sub SaveCSV()
                              
                              ' Speichert den Inhalt eines Arbeitsblatts als CSV-Datei
                              ' mit wählbarem Trennzeichen und Maskierung von Einträgen
                              
                              Dim Bereich As Object, Zeile As Object, Zelle As Object
                              Dim strTemp As String
                              Dim strDateiname As String
                              Dim strTrennzeichen As String
                              Dim strMappenpfad As String
                              
                              strMappenpfad = Left(ThisWorkbook.FullName, (InStrRev(ThisWorkbook.FullName, ".", -1, vbTextCompare) - 1))
                              strMappenpfad = strMappenpfad & ".csv"
                              
                              strDateiname = InputBox("Wie soll die CSV-Datei heißen (inkl. Pfad)?", "CSV-Export", _
                              strMappenpfad)
                              If strDateiname = "" Then Exit Sub
                              
                              strTrennzeichen = ";"
                              
                              Set Bereich = Worksheets("GA").UsedRange
                              
                              Open strDateiname For Output As #1
                              
                              For Each Zeile In Bereich.Rows
                              For Each Zelle In Zeile.Cells
                              If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
                              'Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
                              strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
                              Else
                              strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
                              End If
                              Next
                              If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
                              Print #1, strTemp
                              strTemp = ""
                              Next
                              
                              Close #1
                              Set Bereich = Nothing
                              MsgBox "Datei wurde exportiert nach" & vbCrLf & strDateiname
                              
                              End Sub
                              Angehängte Dateien

                              Kommentar


                                #30
                                Zitat von GLT Beitrag anzeigen

                                Stimmt - wäre die ETS eine 1000 Euro Software und würde sich z.B. mit dem Zusatz "pro" für professional rühmen, sollte derlei eine Grundfunktion sein (neben anderen Dingen). Aber bei einer Billigversion für Privatleute kann man sowas schon mal in Kauf nehmen.

                                Du hast ja vollkommen recht, aber leider ist es so wie es ist und wenn man damit Zeit sparen kann, kauft man ein Zusatztool...

                                Wobei ich denke, es ist oft umgekehrt: Irgendwelchen günstigen Softwarepakete für private sind komplett, während man im Profibereich durch viele Optionen zusätzlich Kohle verdienen will.
                                Zuletzt geändert von concept; 28.05.2019, 14:33.
                                gemäss forenregeln soll man bitte und danke sagen! also: bitte und danke!

                                Kommentar

                                Lädt...
                                X