Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Grafana
  5. Grafana und IO Broker "Negativer Strom"

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.4k

Grafana und IO Broker "Negativer Strom"

Scheduled Pinned Locked Moved Grafana
14 Posts 4 Posters 1.4k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    spiffel1234
    wrote on last edited by spiffel1234
    #1

    Hi,

    ich habe eine Tasmota ESP an meinem Stromzähler und schreibe die Daten für den "Benötigten Strom" über iobroker in die influx DB.

    Diese Werte bekomme ich dann auch ins Grafana.

    So jetzt mal zu meinem Problem. Wenn ich über mein BKW mehr Einspeise als das ich verbrauche steht beim "Benötigten Strom" das folgende, da der Überschuss ja ins Netz geht.

    Beispiel:
    "- 100 Watt". Da steht dann Minus 100 Watt...wie kann ich den Minus Wert als Plus darstellen?

    Danke euch

    GlasfaserG 1 Reply Last reply
    0
    • S spiffel1234

      Hi,

      ich habe eine Tasmota ESP an meinem Stromzähler und schreibe die Daten für den "Benötigten Strom" über iobroker in die influx DB.

      Diese Werte bekomme ich dann auch ins Grafana.

      So jetzt mal zu meinem Problem. Wenn ich über mein BKW mehr Einspeise als das ich verbrauche steht beim "Benötigten Strom" das folgende, da der Überschuss ja ins Netz geht.

      Beispiel:
      "- 100 Watt". Da steht dann Minus 100 Watt...wie kann ich den Minus Wert als Plus darstellen?

      Danke euch

      GlasfaserG Offline
      GlasfaserG Offline
      Glasfaser
      wrote on last edited by Glasfaser
      #2

      @spiffel1234 sagte in Grafana und IO Broker "Negativer Strom":

      wie kann ich den Minus Wert als Plus darstellen

      mit math

      Beispiel mit Minus

      https://forum.iobroker.net/post/806043

      Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

      S 1 Reply Last reply
      0
      • GlasfaserG Glasfaser

        @spiffel1234 sagte in Grafana und IO Broker "Negativer Strom":

        wie kann ich den Minus Wert als Plus darstellen

        mit math

        Beispiel mit Minus

        https://forum.iobroker.net/post/806043

        S Offline
        S Offline
        spiffel1234
        wrote on last edited by spiffel1234
        #3

        @glasfaser

        Aktuell lese ich das so aus in grafana mit dem influx code wo muss ich das jetzt reinbauen? das kann man bei mir nicht so schön klicken. Zumindest im ersten Schritt muss ich ja mal den Negativen ins Postive umkehren.

        Ziel ist folgenden in Grafana wenn ich Strom beziehen soll es Rot sein, habe ich Plus dann soll auch die Anzeige grün sein.

        Wo muss das jetzt rein?

        from(bucket: "iobroker")
        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
        |> filter(fn: (r) => r["_measurement"] == "stromz_in_watt")
        |> filter(fn: (r) => r["_field"] == "value")
        |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
        |> yield(name: "mean")

        W C 2 Replies Last reply
        0
        • S spiffel1234

          @glasfaser

          Aktuell lese ich das so aus in grafana mit dem influx code wo muss ich das jetzt reinbauen? das kann man bei mir nicht so schön klicken. Zumindest im ersten Schritt muss ich ja mal den Negativen ins Postive umkehren.

          Ziel ist folgenden in Grafana wenn ich Strom beziehen soll es Rot sein, habe ich Plus dann soll auch die Anzeige grün sein.

          Wo muss das jetzt rein?

          from(bucket: "iobroker")
          |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
          |> filter(fn: (r) => r["_measurement"] == "stromz_in_watt")
          |> filter(fn: (r) => r["_field"] == "value")
          |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
          |> yield(name: "mean")

          W Offline
          W Offline
          wolfi913
          wrote on last edited by
          #4

          @spiffel1234

          Probier mal vor der letzten Zeile

            |> map(fn: (r) => ({r with _value: r._value * (-1.0)}))
          

          einzufügen

          S 1 Reply Last reply
          0
          • S spiffel1234

            @glasfaser

            Aktuell lese ich das so aus in grafana mit dem influx code wo muss ich das jetzt reinbauen? das kann man bei mir nicht so schön klicken. Zumindest im ersten Schritt muss ich ja mal den Negativen ins Postive umkehren.

            Ziel ist folgenden in Grafana wenn ich Strom beziehen soll es Rot sein, habe ich Plus dann soll auch die Anzeige grün sein.

            Wo muss das jetzt rein?

            from(bucket: "iobroker")
            |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
            |> filter(fn: (r) => r["_measurement"] == "stromz_in_watt")
            |> filter(fn: (r) => r["_field"] == "value")
            |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
            |> yield(name: "mean")

            C Offline
            C Offline
            Chrunchy
            wrote on last edited by
            #5

            @spiffel1234 Schreibe in die Influx-DB doch einfach beide Werte separat "Bezug" und "Einspeisung".
            Beides über einen Alias, da kannst du dann auch direkt die negativen Werte in positive umwandeln.

            Ist dann auch für eine Statistik einfacher, weil du nur noch Summen bilden musst über den gewünschten Zeitraum.

            Gruß Chrunchy

            1 Reply Last reply
            0
            • W wolfi913

              @spiffel1234

              Probier mal vor der letzten Zeile

                |> map(fn: (r) => ({r with _value: r._value * (-1.0)}))
              

              einzufügen

              S Offline
              S Offline
              spiffel1234
              wrote on last edited by spiffel1234
              #6

              @wolfi913 said in Grafana und IO Broker "Negativer Strom":

              |> map(fn: (r) => ({r with _value: r._value * (-1.0)}))

              Hi das hat schon mal gut aus das Minus ist weg. Kann man das jetzt auch mit "+" darstellen?

              Hier mal der aktuelle Code:
              from(bucket: "iobroker")
              |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
              |> filter(fn: (r) => r["_measurement"] == "dbstromz_in_watt")
              |> filter(fn: (r) => r["_field"] == "value")
              |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
              |> map(fn: (r) => ({r with _value: r._value * (-1.0)}))
              |> yield(name: "mean")

              W 1 Reply Last reply
              0
              • S spiffel1234

                @wolfi913 said in Grafana und IO Broker "Negativer Strom":

                |> map(fn: (r) => ({r with _value: r._value * (-1.0)}))

                Hi das hat schon mal gut aus das Minus ist weg. Kann man das jetzt auch mit "+" darstellen?

                Hier mal der aktuelle Code:
                from(bucket: "iobroker")
                |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                |> filter(fn: (r) => r["_measurement"] == "dbstromz_in_watt")
                |> filter(fn: (r) => r["_field"] == "value")
                |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                |> map(fn: (r) => ({r with _value: r._value * (-1.0)}))
                |> yield(name: "mean")

                W Offline
                W Offline
                wolfi913
                wrote on last edited by wolfi913
                #7

                @spiffel1234

                Wenn ich's richtig verstehe hast Du in dem Datenpunkt sowohl positive als auch negative Werte die alle als positiv dargestellt werden sollen. Also solltest Du den Datenpunkt auftrennen. Könnte so klappen.

                  |> map(fn: (r) => ({r with _positive: 
                      if r._value < 0.0 then 0.0
                      else r._value }))
                  |> map(fn: (r) => ({r with _negative:
                      if r._value >= 0.0 then 0.0
                      else r._value * (-1.0)}))
                  |> keep(columns: ["_time", "_positive", "_negative"])
                

                Setz' das mal anstelle von |> yield(name: "mean") in Deiner ursprünglichen Fassung ein. Dann solltest Du zwei Datenpunkte für die Anzeige im Grafana-Chart haben. Die Variablen (positive/negative) kannst Du natürlich auch anders benennen.

                S 1 Reply Last reply
                0
                • W wolfi913

                  @spiffel1234

                  Wenn ich's richtig verstehe hast Du in dem Datenpunkt sowohl positive als auch negative Werte die alle als positiv dargestellt werden sollen. Also solltest Du den Datenpunkt auftrennen. Könnte so klappen.

                    |> map(fn: (r) => ({r with _positive: 
                        if r._value < 0.0 then 0.0
                        else r._value }))
                    |> map(fn: (r) => ({r with _negative:
                        if r._value >= 0.0 then 0.0
                        else r._value * (-1.0)}))
                    |> keep(columns: ["_time", "_positive", "_negative"])
                  

                  Setz' das mal anstelle von |> yield(name: "mean") in Deiner ursprünglichen Fassung ein. Dann solltest Du zwei Datenpunkte für die Anzeige im Grafana-Chart haben. Die Variablen (positive/negative) kannst Du natürlich auch anders benennen.

                  S Offline
                  S Offline
                  spiffel1234
                  wrote on last edited by
                  #8

                  Hi, da schaut doch schon mal sehr gut aus!
                  a790df5b-47cb-4012-9fa2-1f70997cc04d-image.png

                  Jetzt noch eine nächste Frage und zwar wenn meine Solaranlage Nachts nichts mehr liefert, bleibt da immer noch z.B. 2 Watt stehen. Der Graph ist aber schon auf Null. Wie kann man das auf 0 ändern?
                  Gehe davon aus das es der letzte Wert war bis der Controller offline gegangen ist.

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    spiffel1234
                    wrote on last edited by
                    #9

                    Hi, da schaut doch schon mal sehr gut aus!
                    a790df5b-47cb-4012-9fa2-1f70997cc04d-image.png

                    Jetzt noch eine nächste Frage und zwar wenn meine Solaranlage Nachts nichts mehr liefert, bleibt da immer noch z.B. 2 Watt stehen. Der Graph ist aber schon auf Null. Wie kann man das auf 0 ändern?
                    Gehe davon aus das es der letzte Wert war bis der Controller offline gegangen ist.

                    Hier der letzte Code Block:
                    from(bucket: "iobroker")
                    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                    |> filter(fn: (r) => r["_measurement"] == "dbstromz_in_watt")
                    |> filter(fn: (r) => r["_field"] == "value")
                    |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                    |> map(fn: (r) => ({r with _value: r._value * (-1.0)}))
                    |> map(fn: (r) => ({r with Überschuss_an_Strom:
                    if r._value < 0.0 then 0.0
                    else r._value }))
                    |> map(fn: (r) => ({r with Bezug_aus_Stromnetz:
                    if r._value >= 0.0 then 0.0
                    else r._value * (-1.0)}))
                    |> keep(columns: ["_time", "Überschuss_an_Strom", "Bezug_aus_Stromnetz"])

                    W 1 Reply Last reply
                    0
                    • S spiffel1234

                      Hi, da schaut doch schon mal sehr gut aus!
                      a790df5b-47cb-4012-9fa2-1f70997cc04d-image.png

                      Jetzt noch eine nächste Frage und zwar wenn meine Solaranlage Nachts nichts mehr liefert, bleibt da immer noch z.B. 2 Watt stehen. Der Graph ist aber schon auf Null. Wie kann man das auf 0 ändern?
                      Gehe davon aus das es der letzte Wert war bis der Controller offline gegangen ist.

                      Hier der letzte Code Block:
                      from(bucket: "iobroker")
                      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                      |> filter(fn: (r) => r["_measurement"] == "dbstromz_in_watt")
                      |> filter(fn: (r) => r["_field"] == "value")
                      |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                      |> map(fn: (r) => ({r with _value: r._value * (-1.0)}))
                      |> map(fn: (r) => ({r with Überschuss_an_Strom:
                      if r._value < 0.0 then 0.0
                      else r._value }))
                      |> map(fn: (r) => ({r with Bezug_aus_Stromnetz:
                      if r._value >= 0.0 then 0.0
                      else r._value * (-1.0)}))
                      |> keep(columns: ["_time", "Überschuss_an_Strom", "Bezug_aus_Stromnetz"])

                      W Offline
                      W Offline
                      wolfi913
                      wrote on last edited by
                      #10

                      @spiffel1234 sagte in Grafana und IO Broker "Negativer Strom":

                      |> map(fn: (r) => ({r with _value: r._value * (-1.0)}))
                      |> map(fn: (r) => ({r with Überschuss_an_Strom:
                      if r._value < 0.0 then 0.0
                      else r._value }))
                      |> map(fn: (r) => ({r with Bezug_aus_Stromnetz:
                      if r._value >= 0.0 then 0.0
                      else r._value * (-1.0)}))
                      |> keep(columns: ["_time", "Überschuss_an_Strom", "Bezug_aus_Stromnetz"])

                      1. Du drehst jetzt übrigens zweimal das "+/-" um. In der oberen Zeile holst Du die positiven Werte ins Negative und umgekehrt. Und unten holst Du dann die negativen Werte wieder zurück. Eigentlich reichts einmal. Also die obere Zeile an besser rausnehmen und unten ggf. die Bezeichnungen anpassen.

                      2. Evtl. könntest Du einfach den Bereich z.B. zwischen -5 und +5 komplett auf 0 setzen. Wäre eine schnelle Lösung für Dein 2W-Problem
                        |> map(fn: (r) => ({r with Überschuss_an_Strom:
                        if r._value < 5.0 then 0.0
                        else r._value }))
                        |> map(fn: (r) => ({r with Bezug_aus_Stromnetz:
                        if r._value >= (-5.0) then 0.0
                        else r._value * (-1.0)}))

                      S 1 Reply Last reply
                      0
                      • W wolfi913

                        @spiffel1234 sagte in Grafana und IO Broker "Negativer Strom":

                        |> map(fn: (r) => ({r with _value: r._value * (-1.0)}))
                        |> map(fn: (r) => ({r with Überschuss_an_Strom:
                        if r._value < 0.0 then 0.0
                        else r._value }))
                        |> map(fn: (r) => ({r with Bezug_aus_Stromnetz:
                        if r._value >= 0.0 then 0.0
                        else r._value * (-1.0)}))
                        |> keep(columns: ["_time", "Überschuss_an_Strom", "Bezug_aus_Stromnetz"])

                        1. Du drehst jetzt übrigens zweimal das "+/-" um. In der oberen Zeile holst Du die positiven Werte ins Negative und umgekehrt. Und unten holst Du dann die negativen Werte wieder zurück. Eigentlich reichts einmal. Also die obere Zeile an besser rausnehmen und unten ggf. die Bezeichnungen anpassen.

                        2. Evtl. könntest Du einfach den Bereich z.B. zwischen -5 und +5 komplett auf 0 setzen. Wäre eine schnelle Lösung für Dein 2W-Problem
                          |> map(fn: (r) => ({r with Überschuss_an_Strom:
                          if r._value < 5.0 then 0.0
                          else r._value }))
                          |> map(fn: (r) => ({r with Bezug_aus_Stromnetz:
                          if r._value >= (-5.0) then 0.0
                          else r._value * (-1.0)}))

                        S Offline
                        S Offline
                        spiffel1234
                        wrote on last edited by
                        #11

                        @wolfi913

                        Hi mir ist da ein Fehler unterlaufen und zwar dreht es sich um die obere Visualisierung und zwar steht hier ab und 2 Watt und jetzt aktuell das "No Data":
                        acf8e33c-6ea4-4a30-a7f0-3326234f75d7-image.png

                        Manchmal bleibt er da noch bei 2 Watt hängen und jetzt bei No data.....

                        Da Soll dann halt 0 Watt stehen.

                        Hier mal der Code:

                        from(bucket: "iobroker")
                        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                        |> filter(fn: (r) => r["_measurement"] == "dbsolaranlage_gesamt_leistung_aktuell")
                        |> filter(fn: (r) => r["_field"] == "value")
                        |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                        |> yield(name: "mean")

                        W 1 Reply Last reply
                        0
                        • S spiffel1234

                          @wolfi913

                          Hi mir ist da ein Fehler unterlaufen und zwar dreht es sich um die obere Visualisierung und zwar steht hier ab und 2 Watt und jetzt aktuell das "No Data":
                          acf8e33c-6ea4-4a30-a7f0-3326234f75d7-image.png

                          Manchmal bleibt er da noch bei 2 Watt hängen und jetzt bei No data.....

                          Da Soll dann halt 0 Watt stehen.

                          Hier mal der Code:

                          from(bucket: "iobroker")
                          |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                          |> filter(fn: (r) => r["_measurement"] == "dbsolaranlage_gesamt_leistung_aktuell")
                          |> filter(fn: (r) => r["_field"] == "value")
                          |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                          |> yield(name: "mean")

                          W Offline
                          W Offline
                          wolfi913
                          wrote on last edited by wolfi913
                          #12

                          @spiffel1234
                          Vermutlich hast Du im abgefragten Zeitraum keine Daten in der InfluxDB.
                          Du möchtest wahrscheinlich den aktuellen PV-Wert darstellen, dürfte zu dieser Uhrzeit ja vermutlich auch nichts vom Dach geliefert werden.
                          Das kannst Du in Grafana (rechts) bei den "Standard options" abfangen wenn Du bei "No value" eine 0 einträgst.
                          Außerdem ist mir aufgefallen, dass in der Influx-Query der Mittelwert für den Abfragezeitraum abgefragt wird.
                          Für den aktuell letzten Wert sollte da dann nicht "mean" sondern "last"

                            |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
                            |> yield(name: "last")
                          

                          stehen.

                          Edit / Ergänzung: Der Eintrag des 0-Wertes bei "No value" in Grafana wirkt als Textfeld, d.h. falls Du eine Einheit dahinter haben möchtest muss die mit eingetragen werden (z.B. "0 W", "0 kWh" etc.). Die hinterlegte Einheit greift nicht. Kannst aber auch bspw. "---" eintragen.

                          S 1 Reply Last reply
                          0
                          • W wolfi913

                            @spiffel1234
                            Vermutlich hast Du im abgefragten Zeitraum keine Daten in der InfluxDB.
                            Du möchtest wahrscheinlich den aktuellen PV-Wert darstellen, dürfte zu dieser Uhrzeit ja vermutlich auch nichts vom Dach geliefert werden.
                            Das kannst Du in Grafana (rechts) bei den "Standard options" abfangen wenn Du bei "No value" eine 0 einträgst.
                            Außerdem ist mir aufgefallen, dass in der Influx-Query der Mittelwert für den Abfragezeitraum abgefragt wird.
                            Für den aktuell letzten Wert sollte da dann nicht "mean" sondern "last"

                              |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
                              |> yield(name: "last")
                            

                            stehen.

                            Edit / Ergänzung: Der Eintrag des 0-Wertes bei "No value" in Grafana wirkt als Textfeld, d.h. falls Du eine Einheit dahinter haben möchtest muss die mit eingetragen werden (z.B. "0 W", "0 kWh" etc.). Die hinterlegte Einheit greift nicht. Kannst aber auch bspw. "---" eintragen.

                            S Offline
                            S Offline
                            spiffel1234
                            wrote on last edited by
                            #13

                            @wolfi913 said in Grafana und IO Broker "Negativer Strom":


                            So habe es jetzt mal modifiziert auf "last" das geht und habe im Grafana die Standartoptions bei "No Value" 0 eingetragen.. Aber wo fliest deine letzte Ergänzung ein? mache ich das auch bei den Standart Options?

                            Hier der aktuelle Code: \
                            from(bucket: "iobroker")
                            |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                            |> filter(fn: (r) => r["_measurement"] == "dbsolaranlage_gesamt_leistung_aktuell")
                            |> filter(fn: (r) => r["_field"] == "value")
                            |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
                            |> yield(name: "last")

                            W 1 Reply Last reply
                            0
                            • S spiffel1234

                              @wolfi913 said in Grafana und IO Broker "Negativer Strom":


                              So habe es jetzt mal modifiziert auf "last" das geht und habe im Grafana die Standartoptions bei "No Value" 0 eingetragen.. Aber wo fliest deine letzte Ergänzung ein? mache ich das auch bei den Standart Options?

                              Hier der aktuelle Code: \
                              from(bucket: "iobroker")
                              |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                              |> filter(fn: (r) => r["_measurement"] == "dbsolaranlage_gesamt_leistung_aktuell")
                              |> filter(fn: (r) => r["_field"] == "value")
                              |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
                              |> yield(name: "last")

                              W Offline
                              W Offline
                              wolfi913
                              wrote on last edited by
                              #14

                              @spiffel1234 sagte in Grafana und IO Broker "Negativer Strom":

                              @wolfi913 said in Grafana und IO Broker "Negativer Strom":

                              --- Aber wo fliest deine letzte Ergänzung ein? mache ich das auch bei den Standart Options?

                              Ja, weil Dir ansonsten nur die 0 angezeigt wird. Du hast in Deinen Anzeigen ja Einheiten hinter dem Wert stehen. Und dann schaut das halt "unschön" aus wenn da nur eine 0 steht anstelle von z. B. 0 W. Es ist halt nur ein Textfeld, dass greift, wenn kein Wert da ist.

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              462

                              Online

                              32.4k

                              Users

                              81.6k

                              Topics

                              1.3m

                              Posts
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Home
                              • Recent
                              • Tags
                              • Unread 0
                              • Categories
                              • Unreplied
                              • Popular
                              • GitHub
                              • Docu
                              • Hilfe