Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Grafana
  5. Stapel-Balkengrafik mit Grafana

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.6k

Stapel-Balkengrafik mit Grafana

Geplant Angeheftet Gesperrt Verschoben Grafana
76 Beiträge 7 Kommentatoren 7.9k Aufrufe 6 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • W wolfi913

    @laser
    Probier mal mit

      |> truncateTimeColumn(unit: 1d)
    

    hinter dem aggregateWindow...

    Dann sollte der anzuzeigende Wert jeweils auf Mitternacht gesetzt werden.
    Screenshot 2025-02-04 182825.png
    Und dann sollten die Werte wieder gesynct sein.

    L Offline
    L Offline
    Laser
    schrieb am zuletzt editiert von Laser
    #53

    @wolfi913 sagte in Stapel-Balkengrafik mit Grafana:

    9bea4f26-e74f-4a8a-82ac-644d69d486e7-image.png

    |> truncateTimeColumn(unit: 1d)

    import "timezone"
    import "date"
    option location = timezone.location(name: "Europe/Berlin")
    
    from(bucket: "iobroker")
    |> range(start: -7d, stop: v.timeRangeStop)
     |> filter(fn: (r)
      => r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay")
     |> filter(fn: (r) => r["_field"] == "value")
     |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
     |> truncateTimeColumn(unit: 1d)
     |> yield(name: "last")
    
    import "timezone"
    import "date"
    option location = timezone.location(name: "Europe/Berlin")
    
    from(bucket: "iobroker")
     |> range(start: -7d, stop: v.timeRangeStop)
     |> filter(fn: (r)
      => r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay")
     |> filter(fn: (r) => r["_field"] == "value")
     |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
     |> truncateTimeColumn(unit: 1d)
     |> yield(name: "last")
    
    W 1 Antwort Letzte Antwort
    0
    • L Laser

      @wolfi913 sagte in Stapel-Balkengrafik mit Grafana:

      9bea4f26-e74f-4a8a-82ac-644d69d486e7-image.png

      |> truncateTimeColumn(unit: 1d)

      import "timezone"
      import "date"
      option location = timezone.location(name: "Europe/Berlin")
      
      from(bucket: "iobroker")
      |> range(start: -7d, stop: v.timeRangeStop)
       |> filter(fn: (r)
        => r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay")
       |> filter(fn: (r) => r["_field"] == "value")
       |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
       |> truncateTimeColumn(unit: 1d)
       |> yield(name: "last")
      
      import "timezone"
      import "date"
      option location = timezone.location(name: "Europe/Berlin")
      
      from(bucket: "iobroker")
       |> range(start: -7d, stop: v.timeRangeStop)
       |> filter(fn: (r)
        => r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay")
       |> filter(fn: (r) => r["_field"] == "value")
       |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
       |> truncateTimeColumn(unit: 1d)
       |> yield(name: "last")
      
      W Online
      W Online
      wolfi913
      schrieb am zuletzt editiert von
      #54

      @laser
      Schaut besser aus :blush:

      L 1 Antwort Letzte Antwort
      0
      • W wolfi913

        @laser
        Schaut besser aus :blush:

        L Offline
        L Offline
        Laser
        schrieb am zuletzt editiert von Laser
        #55

        @wolfi913 Ja. Und das "verodern" in der Filterliste ist nicht gut? Welche Nachteile könnte das bringen?

        import "timezone"
        import "date"
        option location = timezone.location(name: "Europe/Berlin")
        
        from(bucket: "iobroker")
        |> range(start: -7d, stop: v.timeRangeStop)
         |> filter(fn: (r)
          => r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay"
         or  r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay")
         |> filter(fn: (r) => r["_field"] == "value")
         |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
         |> truncateTimeColumn(unit: 1d)
         |> yield(name: "last")
        

        Bin schon gespannt, wie das morgen mit 2 Tagen aussieht! Heute möchte ich erst mal nicht mehr nerven. Danke an alle Beteilgten!

        W 1 Antwort Letzte Antwort
        0
        • L Laser

          @wolfi913 Ja. Und das "verodern" in der Filterliste ist nicht gut? Welche Nachteile könnte das bringen?

          import "timezone"
          import "date"
          option location = timezone.location(name: "Europe/Berlin")
          
          from(bucket: "iobroker")
          |> range(start: -7d, stop: v.timeRangeStop)
           |> filter(fn: (r)
            => r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay"
           or  r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay")
           |> filter(fn: (r) => r["_field"] == "value")
           |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
           |> truncateTimeColumn(unit: 1d)
           |> yield(name: "last")
          

          Bin schon gespannt, wie das morgen mit 2 Tagen aussieht! Heute möchte ich erst mal nicht mehr nerven. Danke an alle Beteilgten!

          W Online
          W Online
          wolfi913
          schrieb am zuletzt editiert von
          #56

          @laser
          Müsste vermutlich auch mit ODER funktionieren.
          Ich finde einzelne Query's irgendwie besser daher mach ich's wenn möglich lieber immer einzeln.
          Kann dann (zumindest bin ich der Meinung) in den Overrides besser arbeiten.
          Außerdem funktionieren dann auch so Sachen wie Rechenoperationen
          Screenshot 2025-02-04 184132.png
          einfacher.

          L 1 Antwort Letzte Antwort
          0
          • W wolfi913

            @laser
            Müsste vermutlich auch mit ODER funktionieren.
            Ich finde einzelne Query's irgendwie besser daher mach ich's wenn möglich lieber immer einzeln.
            Kann dann (zumindest bin ich der Meinung) in den Overrides besser arbeiten.
            Außerdem funktionieren dann auch so Sachen wie Rechenoperationen
            Screenshot 2025-02-04 184132.png
            einfacher.

            L Offline
            L Offline
            Laser
            schrieb am zuletzt editiert von Laser
            #57

            @wolfi913 Ja, funktioniert auch mit "or". Wenn man etwas spezielles mit den Daten vorhat, ist einzeln besser. Das werde ich im Auge behalten.
            War sehr informativ/ aufregend. Und viel Datenmüll beseitigt. Werde jetzt das TV-Programm zum Runterkommen genießen!:slightly_smiling_face:

            mickemupM 1 Antwort Letzte Antwort
            0
            • L Laser

              @wolfi913 Ja, funktioniert auch mit "or". Wenn man etwas spezielles mit den Daten vorhat, ist einzeln besser. Das werde ich im Auge behalten.
              War sehr informativ/ aufregend. Und viel Datenmüll beseitigt. Werde jetzt das TV-Programm zum Runterkommen genießen!:slightly_smiling_face:

              mickemupM Offline
              mickemupM Offline
              mickemup
              schrieb am zuletzt editiert von
              #58

              @laser
              Gerne
              Hatte am Anfang auch mit Grafana/Influx usw. zu kämpfen und musste mich da reinfuxen.
              Habe kurz ein Dashboard Testweise angepasst mit der Annahme, dass du das so angedacht hast:

              7bce7133-95ba-4a6f-9d4c-a1b776b957cb-image.png

              1dabd38b-fd2f-4ffa-87e3-fd53a79b9ae4-image.png

              d1ecfd00-41ac-4bed-9f45-28d2f1da31d2-image.png

              import "date"
              import "timezone"
              option location = timezone.location(name: "Europe/Madrid")
              
              from(bucket: "iobroker_inflog")
                |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Energy.Day_Einspeisung")
                |> filter(fn: (r) => r["_field"] == "value")
                  |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start")
              

              Wichtig: Da die Range nun mit den Query Options "definiert" wird, muss da das v.TimeRang... rein
              Ansonsten bist du ja mit den Queries schon gut beraten worden :-)

              1 Antwort Letzte Antwort
              1
              • L Laser

                @wolfi913 sagte in Stapel-Balkengrafik mit Grafana:

                e

                Da paßt noch was mit den Zeiten nicht. Kann nicht gestapelt werden. Ich versuche noch mal mit einzelnen Query.
                (Darstellung mit dem Zeitversatz besteht aber noch)
                d342e9f6-593c-4796-941e-4f75ad3a7217-image.png

                Das Ganze muß ich erst mal verarbeiten. Ich werde morgen noch mal frisch ran gehen.
                Ist diese Beschreibung richtig? https://docs.influxdata.com/flux/v0/stdlib/universe/range/ u.a.m.

                icebearI Online
                icebearI Online
                icebear
                schrieb am zuletzt editiert von
                #59

                @laser said in Stapel-Balkengrafik mit Grafana:

                Das Ganze muß ich erst mal verarbeiten. Ich werde morgen noch mal frisch ran gehen.

                Ich würde dir auch empfehlen in Zukunft Alias-ID's zu verwenden.
                Wenn du mit den ellenlangen DP-Bezeichnung weiterarbeitest kannst du bei komplexeren Abfragen schnell den Überblick verlieren.

                Du kannst ja beim anlegen für die influxDB unten eine Alias-ID vergeben, das ist dann später bei komplexen Abfragen wesentlich übersichtlicher.

                Z.B. anstatt

                sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay

                nimmst du als Alias

                Shelly1_Pow_Total_curDay

                L 1 Antwort Letzte Antwort
                1
                • icebearI icebear

                  @laser said in Stapel-Balkengrafik mit Grafana:

                  Das Ganze muß ich erst mal verarbeiten. Ich werde morgen noch mal frisch ran gehen.

                  Ich würde dir auch empfehlen in Zukunft Alias-ID's zu verwenden.
                  Wenn du mit den ellenlangen DP-Bezeichnung weiterarbeitest kannst du bei komplexeren Abfragen schnell den Überblick verlieren.

                  Du kannst ja beim anlegen für die influxDB unten eine Alias-ID vergeben, das ist dann später bei komplexen Abfragen wesentlich übersichtlicher.

                  Z.B. anstatt

                  sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay

                  nimmst du als Alias

                  Shelly1_Pow_Total_curDay

                  L Offline
                  L Offline
                  Laser
                  schrieb am zuletzt editiert von Laser
                  #60

                  @icebear @mickemup Der zweite Balken ist heute aufgetaucht. Die Balken wandern jetzt nach links? Auch nicht verkehrt.
                  Bisher hatte ich 7 Balken mit der Unterschrift der Wochentage. Fing links an und rechts war es noch leer.
                  Aliasnamen, die ich auch zuordnen kann, muß ich mir noch schnell überlegen.

                  029c0edb-5e27-4393-9fdf-25c727d51288-image.png

                  mickemupM 1 Antwort Letzte Antwort
                  0
                  • L Laser

                    @icebear @mickemup Der zweite Balken ist heute aufgetaucht. Die Balken wandern jetzt nach links? Auch nicht verkehrt.
                    Bisher hatte ich 7 Balken mit der Unterschrift der Wochentage. Fing links an und rechts war es noch leer.
                    Aliasnamen, die ich auch zuordnen kann, muß ich mir noch schnell überlegen.

                    029c0edb-5e27-4393-9fdf-25c727d51288-image.png

                    mickemupM Offline
                    mickemupM Offline
                    mickemup
                    schrieb am zuletzt editiert von mickemup
                    #61

                    @laser Dann schau einfach meinen letzten Post an, dort habe ich dir das mal "aufbereitet" von Mo bis So....
                    Und gib doch den Dingern via Override (auch im Post ersichtlich) mal anständige Namen :-)

                    L 1 Antwort Letzte Antwort
                    0
                    • mickemupM mickemup

                      @laser Dann schau einfach meinen letzten Post an, dort habe ich dir das mal "aufbereitet" von Mo bis So....
                      Und gib doch den Dingern via Override (auch im Post ersichtlich) mal anständige Namen :-)

                      L Offline
                      L Offline
                      Laser
                      schrieb am zuletzt editiert von Laser
                      #62

                      @mickemup Bin dabei. Wenn ich die Aliasse einführe, sind ja meine beiden Tage weg. Das wollte ich erst mal abwarten. Mit den alten Namen. Die Namen mit "Overide" ändern, nicht mit einem Alias in Influx?
                      Jetzt ist Mo bis Sonntag dran. Die "Query Options" haben bei mir andere Einträge.

                      mickemupM 1 Antwort Letzte Antwort
                      0
                      • L Laser

                        @mickemup Bin dabei. Wenn ich die Aliasse einführe, sind ja meine beiden Tage weg. Das wollte ich erst mal abwarten. Mit den alten Namen. Die Namen mit "Overide" ändern, nicht mit einem Alias in Influx?
                        Jetzt ist Mo bis Sonntag dran. Die "Query Options" haben bei mir andere Einträge.

                        mickemupM Offline
                        mickemupM Offline
                        mickemup
                        schrieb am zuletzt editiert von mickemup
                        #63

                        @laser
                        Das mit den Aliasen ist nice to have und wohl mehr ein genereller Punkt um sich das leben zu vereinfachen für die Zukunft.

                        Die Anzeigenamen kannst du in Grafana anpassen (da habe ich auch ein Bild drin)
                        Und eben Query-Options musst du anpassen (wie auf meinem Bild) damit immer Mo-So angezeigt wird
                        Also einfach die Einträge relative Time und Timeshift

                        L 1 Antwort Letzte Antwort
                        1
                        • mickemupM mickemup

                          @laser
                          Das mit den Aliasen ist nice to have und wohl mehr ein genereller Punkt um sich das leben zu vereinfachen für die Zukunft.

                          Die Anzeigenamen kannst du in Grafana anpassen (da habe ich auch ein Bild drin)
                          Und eben Query-Options musst du anpassen (wie auf meinem Bild) damit immer Mo-So angezeigt wird
                          Also einfach die Einträge relative Time und Timeshift

                          L Offline
                          L Offline
                          Laser
                          schrieb am zuletzt editiert von Laser
                          #64

                          @mickemup Da muß ich erst mal durchkommen. Das dauert etwas. "Overide 2" mußte ich ein 2. Overide Property anlegen. Das Erste war mit einem Farbschema belegt. (Werfe ich wieder raus). Wird aber noch nicht übernommen. Fange nochmal neu an. Der Name wird jetzt genommen. Sieht schon freundlicher aus.
                          EDIT: Jetzt noch die Querys anpassen...
                          Ich glaube, die Aliassse in der Infux-Speicherung werfe ich wieder raus. Das wird zu viel Kuddelmuddel. Ob ich da in 1 Jahr noch durchblicke, was wo angepasst wurde? Wenn ich den Namen im Display ändern kann, ist das für mich OK.

                          mickemupM 1 Antwort Letzte Antwort
                          0
                          • L Laser

                            @mickemup Da muß ich erst mal durchkommen. Das dauert etwas. "Overide 2" mußte ich ein 2. Overide Property anlegen. Das Erste war mit einem Farbschema belegt. (Werfe ich wieder raus). Wird aber noch nicht übernommen. Fange nochmal neu an. Der Name wird jetzt genommen. Sieht schon freundlicher aus.
                            EDIT: Jetzt noch die Querys anpassen...
                            Ich glaube, die Aliassse in der Infux-Speicherung werfe ich wieder raus. Das wird zu viel Kuddelmuddel. Ob ich da in 1 Jahr noch durchblicke, was wo angepasst wurde? Wenn ich den Namen im Display ändern kann, ist das für mich OK.

                            mickemupM Offline
                            mickemupM Offline
                            mickemup
                            schrieb am zuletzt editiert von
                            #65

                            @laser
                            Du braucht pro DP ein Override.
                            Dort kannst du dann den Namen eintragen und wenn gewünscht zB auch noch die Farbe (wie bei mir)

                            Im dritten Override wird die Darstellung vom Datum angepasst, sodass eben statt dem Datum der Wochentag steht

                            L mickemupM 2 Antworten Letzte Antwort
                            1
                            • mickemupM mickemup

                              @laser
                              Du braucht pro DP ein Override.
                              Dort kannst du dann den Namen eintragen und wenn gewünscht zB auch noch die Farbe (wie bei mir)

                              Im dritten Override wird die Darstellung vom Datum angepasst, sodass eben statt dem Datum der Wochentag steht

                              L Offline
                              L Offline
                              Laser
                              schrieb am zuletzt editiert von Laser
                              #66

                              @mickemup Darstellung- passt. Die Query Optionen auch. Jetzt suche ich noch den Wochentag. Kann ich den auswählen (mit choose) oder gibt es benutzerdefinierte Typen?
                              Ein Wochentag kommt in meinem Datenpunkt (infux, RAW Data auch nicht vor?)

                              mickemupM 1 Antwort Letzte Antwort
                              0
                              • mickemupM mickemup

                                @laser
                                Du braucht pro DP ein Override.
                                Dort kannst du dann den Namen eintragen und wenn gewünscht zB auch noch die Farbe (wie bei mir)

                                Im dritten Override wird die Darstellung vom Datum angepasst, sodass eben statt dem Datum der Wochentag steht

                                mickemupM Offline
                                mickemupM Offline
                                mickemup
                                schrieb am zuletzt editiert von
                                #67

                                @Laser
                                @mickemup sagte in Stapel-Balkengrafik mit Grafana:

                                Im dritten Override wird die Darstellung vom Datum angepasst, sodass eben statt dem Datum der Wochentag steht

                                1 Antwort Letzte Antwort
                                0
                                • L Laser

                                  @mickemup Darstellung- passt. Die Query Optionen auch. Jetzt suche ich noch den Wochentag. Kann ich den auswählen (mit choose) oder gibt es benutzerdefinierte Typen?
                                  Ein Wochentag kommt in meinem Datenpunkt (infux, RAW Data auch nicht vor?)

                                  mickemupM Offline
                                  mickemupM Offline
                                  mickemup
                                  schrieb am zuletzt editiert von mickemup
                                  #68

                                  @laser
                                  Brauchst du auch nicht.
                                  Das macht Grafana für dich.
                                  Eben mit einem Override auf die TIME..
                                  Ist auch auf einem Bild drauf

                                  Und zeig doch mal was du hast :-)
                                  Damit man dir auch ein bisschen folgen kann....

                                  L 1 Antwort Letzte Antwort
                                  0
                                  • mickemupM mickemup

                                    @laser
                                    Brauchst du auch nicht.
                                    Das macht Grafana für dich.
                                    Eben mit einem Override auf die TIME..
                                    Ist auch auf einem Bild drauf

                                    Und zeig doch mal was du hast :-)
                                    Damit man dir auch ein bisschen folgen kann....

                                    L Offline
                                    L Offline
                                    Laser
                                    schrieb am zuletzt editiert von Laser
                                    #69

                                    @mickemup so sieht es jetzt aus (ist schon mal supertoll):
                                    fd44b5eb-abac-43e7-af45-4ac594339f8c-image.png

                                    1 Antwort Letzte Antwort
                                    0
                                    • mickemupM Offline
                                      mickemupM Offline
                                      mickemup
                                      schrieb am zuletzt editiert von
                                      #70

                                      @laser Ok, kuul

                                      Damit es immer am Montag startet noch das ersetzen bei den Qeueries:

                                       |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                      
                                      L 1 Antwort Letzte Antwort
                                      0
                                      • mickemupM mickemup

                                        @laser Ok, kuul

                                        Damit es immer am Montag startet noch das ersetzen bei den Qeueries:

                                         |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                        
                                        L Offline
                                        L Offline
                                        Laser
                                        schrieb am zuletzt editiert von
                                        #71

                                        @mickemup sagte in Stapel-Balkengrafik mit Grafana:

                                        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)

                                        Das ist ja super! Danke für die Nervenstärke! Ich muß mich da jetzt weiter reinknien.
                                        ff8d2ffd-ff69-4d16-83d4-e899ab66d2fb-image.png

                                        mickemupM 1 Antwort Letzte Antwort
                                        0
                                        • L Laser

                                          @mickemup sagte in Stapel-Balkengrafik mit Grafana:

                                          |> range(start: v.timeRangeStart, stop: v.timeRangeStop)

                                          Das ist ja super! Danke für die Nervenstärke! Ich muß mich da jetzt weiter reinknien.
                                          ff8d2ffd-ff69-4d16-83d4-e899ab66d2fb-image.png

                                          mickemupM Offline
                                          mickemupM Offline
                                          mickemup
                                          schrieb am zuletzt editiert von
                                          #72

                                          @laser Kein Problem
                                          Vor nicht allzu langer Zeit war die Kette iobroker => influx => Grafana für mich auch noch ein Buch mit sieben Siegeln.
                                          Aber es lässt sich vieles machen, wenn man weiss wie. :-)
                                          Und für Support ist das Forum ja da...

                                          L 1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          769

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe