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. Skripten / Logik
  4. Warnmeldung im Javascript/Blockly

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    472

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    615

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Warnmeldung im Javascript/Blockly

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptblockly
17 Beiträge 4 Kommentatoren 2.3k Aufrufe 2 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.
  • crunchipC crunchip

    @DarkSoul sagte in Warnmeldung im Javascript/Blockly:

    Die Blockly01.txt ist aber das exportierte Script.

    aber als blockly format, deshalb hab ich oben geschrieben, umwandeln und dann hier posten
    38f172a8-a02e-4546-b3dd-08ff642e921a-image.png

    D Offline
    D Offline
    DarkSoul
    schrieb am zuletzt editiert von Homoran
    #5

    @crunchip Ich glaube zwar wir reden aneinader vorbei, aber Bitteschön:
    Blockly01.jpg
    Blockly02.jpg

    Und wie gesagt, das Ganze als Javascript ist der txt Java01.
    Wobei ich den auch gerne hier direkt einstelle:
    var Intervall_Anzeige;

    Intervall_Anzeige = setInterval(function () {
      if (getState("mqtt.0.Wasserstand_Teich_2.SWD5.State").val != '0' || getState("mqtt.0.Wasserstand_Teich_2.SWD2.State").val != '0' || getState("mqtt.0.Wasserstand_Teich_2.SWD6.State").val != '0' || getState("mqtt.0.Wasserstand_Teich_2.SWD7.State").val != '0') {
        if (getState("mqtt.0.Wasserstand_Teich_2.SWD5.State").val == '1') {
          setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenhighSWD5"/*GruenhighSWD5*/, 'true');
        } else {
          setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenhighSWD5"/*GruenhighSWD5*/, 'false');
        }
        if (getState("mqtt.0.Wasserstand_Teich_2.SWD2.State").val == '1') {
          setState("javascript.0.scriptEnabled.EigeneDatenpunkte.RotSWD2"/*RotSWD2*/, 'true');
        } else {
          setState("javascript.0.scriptEnabled.EigeneDatenpunkte.RotSWD2"/*RotSWD2*/, 'false');
        }
        if (getState("mqtt.0.Wasserstand_Teich_2.SWD6.State").val == '1') {
          setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GelbSWD6"/*EigeneDatenpunkte.GelbSWD6*/, 'true');
        } else {
          setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GelbSWD6"/*EigeneDatenpunkte.GelbSWD6*/, 'false');
        }
        if (getState("mqtt.0.Wasserstand_Teich_2.SWD7.State").val == '1') {
          setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenlowSWD7"/*GruenlowSWD7*/, 'true');
        } else {
          setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenlowSWD7"/*GruenlowSWD7*/, 'false');
        }
      }
      if (getState("mqtt.0.shellies.Shelly4-fachTeich.relay.2").val == 'on') {
        try {
          require("request")('http://192.168.1.36/control?cmd=GPIO,0,1').on("error", function (e) {console.error(e);});
        } catch (e) { console.error(e); }
      }
      if (compareTime('06:00', '06:02', "between", null)) {
        try {
          require("request")('http://192.168.1.36/control?cmd=GPIO,0,0').on("error", function (e) {console.error(e);});
        } catch (e) { console.error(e); }
      }
      if (getState("fullybrowser.0.192_168_1_133.Info.batteryLevel").val <= '20') {
        try {
          require("request")('http://192.168.1.40/relay/0?turn=on').on("error", function (e) {console.error(e);});
        } catch (e) { console.error(e); }
      }
      if (getState("fullybrowser.0.192_168_1_133.Info.batteryLevel").val > '99') {
        try {
          require("request")('http://192.168.1.40/relay/0?turn=off').on("error", function (e) {console.error(e);});
        } catch (e) { console.error(e); }
      }
    }, 10000);
    

    MOD-Edit. Code in code-tags gesetzt!

    crunchipC F 2 Antworten Letzte Antwort
    0
    • D DarkSoul

      @crunchip Ich glaube zwar wir reden aneinader vorbei, aber Bitteschön:
      Blockly01.jpg
      Blockly02.jpg

      Und wie gesagt, das Ganze als Javascript ist der txt Java01.
      Wobei ich den auch gerne hier direkt einstelle:
      var Intervall_Anzeige;

      Intervall_Anzeige = setInterval(function () {
        if (getState("mqtt.0.Wasserstand_Teich_2.SWD5.State").val != '0' || getState("mqtt.0.Wasserstand_Teich_2.SWD2.State").val != '0' || getState("mqtt.0.Wasserstand_Teich_2.SWD6.State").val != '0' || getState("mqtt.0.Wasserstand_Teich_2.SWD7.State").val != '0') {
          if (getState("mqtt.0.Wasserstand_Teich_2.SWD5.State").val == '1') {
            setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenhighSWD5"/*GruenhighSWD5*/, 'true');
          } else {
            setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenhighSWD5"/*GruenhighSWD5*/, 'false');
          }
          if (getState("mqtt.0.Wasserstand_Teich_2.SWD2.State").val == '1') {
            setState("javascript.0.scriptEnabled.EigeneDatenpunkte.RotSWD2"/*RotSWD2*/, 'true');
          } else {
            setState("javascript.0.scriptEnabled.EigeneDatenpunkte.RotSWD2"/*RotSWD2*/, 'false');
          }
          if (getState("mqtt.0.Wasserstand_Teich_2.SWD6.State").val == '1') {
            setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GelbSWD6"/*EigeneDatenpunkte.GelbSWD6*/, 'true');
          } else {
            setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GelbSWD6"/*EigeneDatenpunkte.GelbSWD6*/, 'false');
          }
          if (getState("mqtt.0.Wasserstand_Teich_2.SWD7.State").val == '1') {
            setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenlowSWD7"/*GruenlowSWD7*/, 'true');
          } else {
            setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenlowSWD7"/*GruenlowSWD7*/, 'false');
          }
        }
        if (getState("mqtt.0.shellies.Shelly4-fachTeich.relay.2").val == 'on') {
          try {
            require("request")('http://192.168.1.36/control?cmd=GPIO,0,1').on("error", function (e) {console.error(e);});
          } catch (e) { console.error(e); }
        }
        if (compareTime('06:00', '06:02', "between", null)) {
          try {
            require("request")('http://192.168.1.36/control?cmd=GPIO,0,0').on("error", function (e) {console.error(e);});
          } catch (e) { console.error(e); }
        }
        if (getState("fullybrowser.0.192_168_1_133.Info.batteryLevel").val <= '20') {
          try {
            require("request")('http://192.168.1.40/relay/0?turn=on').on("error", function (e) {console.error(e);});
          } catch (e) { console.error(e); }
        }
        if (getState("fullybrowser.0.192_168_1_133.Info.batteryLevel").val > '99') {
          try {
            require("request")('http://192.168.1.40/relay/0?turn=off').on("error", function (e) {console.error(e);});
          } catch (e) { console.error(e); }
        }
      }, 10000);
      

      MOD-Edit. Code in code-tags gesetzt!

      crunchipC Abwesend
      crunchipC Abwesend
      crunchip
      Forum Testing Most Active
      schrieb am zuletzt editiert von crunchip
      #6

      @DarkSoul sagte in Warnmeldung im Javascript/Blockly:

      Ich glaube zwar wir reden aneinader vorbei

      nein, du liest/machst nicht was ich schreibe

      @DarkSoul sagte in Warnmeldung im Javascript/Blockly:

      Und wie gesagt, das Ganze als Javascript ist der txt Java01.

      und nein, das ist blockly code, siehe sreen aus deinem text
      01294774-b8a0-46c2-be47-e453c22a3d0c-image.png

      du hast auf blockly exportieren geklickt und den Text kopiert, du solltest auf blockly/JS klicken, das wandelt das blockly in javascript um

      umgestiegen von Proxmox auf Unraid

      D 1 Antwort Letzte Antwort
      0
      • D DarkSoul

        @crunchip Ich glaube zwar wir reden aneinader vorbei, aber Bitteschön:
        Blockly01.jpg
        Blockly02.jpg

        Und wie gesagt, das Ganze als Javascript ist der txt Java01.
        Wobei ich den auch gerne hier direkt einstelle:
        var Intervall_Anzeige;

        Intervall_Anzeige = setInterval(function () {
          if (getState("mqtt.0.Wasserstand_Teich_2.SWD5.State").val != '0' || getState("mqtt.0.Wasserstand_Teich_2.SWD2.State").val != '0' || getState("mqtt.0.Wasserstand_Teich_2.SWD6.State").val != '0' || getState("mqtt.0.Wasserstand_Teich_2.SWD7.State").val != '0') {
            if (getState("mqtt.0.Wasserstand_Teich_2.SWD5.State").val == '1') {
              setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenhighSWD5"/*GruenhighSWD5*/, 'true');
            } else {
              setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenhighSWD5"/*GruenhighSWD5*/, 'false');
            }
            if (getState("mqtt.0.Wasserstand_Teich_2.SWD2.State").val == '1') {
              setState("javascript.0.scriptEnabled.EigeneDatenpunkte.RotSWD2"/*RotSWD2*/, 'true');
            } else {
              setState("javascript.0.scriptEnabled.EigeneDatenpunkte.RotSWD2"/*RotSWD2*/, 'false');
            }
            if (getState("mqtt.0.Wasserstand_Teich_2.SWD6.State").val == '1') {
              setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GelbSWD6"/*EigeneDatenpunkte.GelbSWD6*/, 'true');
            } else {
              setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GelbSWD6"/*EigeneDatenpunkte.GelbSWD6*/, 'false');
            }
            if (getState("mqtt.0.Wasserstand_Teich_2.SWD7.State").val == '1') {
              setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenlowSWD7"/*GruenlowSWD7*/, 'true');
            } else {
              setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenlowSWD7"/*GruenlowSWD7*/, 'false');
            }
          }
          if (getState("mqtt.0.shellies.Shelly4-fachTeich.relay.2").val == 'on') {
            try {
              require("request")('http://192.168.1.36/control?cmd=GPIO,0,1').on("error", function (e) {console.error(e);});
            } catch (e) { console.error(e); }
          }
          if (compareTime('06:00', '06:02', "between", null)) {
            try {
              require("request")('http://192.168.1.36/control?cmd=GPIO,0,0').on("error", function (e) {console.error(e);});
            } catch (e) { console.error(e); }
          }
          if (getState("fullybrowser.0.192_168_1_133.Info.batteryLevel").val <= '20') {
            try {
              require("request")('http://192.168.1.40/relay/0?turn=on').on("error", function (e) {console.error(e);});
            } catch (e) { console.error(e); }
          }
          if (getState("fullybrowser.0.192_168_1_133.Info.batteryLevel").val > '99') {
            try {
              require("request")('http://192.168.1.40/relay/0?turn=off').on("error", function (e) {console.error(e);});
            } catch (e) { console.error(e); }
          }
        }, 10000);
        

        MOD-Edit. Code in code-tags gesetzt!

        F Offline
        F Offline
        fastfoot
        schrieb am zuletzt editiert von
        #7

        @DarkSoul Du benutzt im Steuere Teil jeweils Strings('true'). Anzunehmen ist dass du boolesche Werte verwenden musst, also so wie im zweiten Block

        bl.PNG

        iobroker läuft unter Docker auf QNAP TS-451+
        SkriptRecovery: https://forum.iobroker.net/post/930558

        D 1 Antwort Letzte Antwort
        0
        • crunchipC crunchip

          @DarkSoul sagte in Warnmeldung im Javascript/Blockly:

          Ich glaube zwar wir reden aneinader vorbei

          nein, du liest/machst nicht was ich schreibe

          @DarkSoul sagte in Warnmeldung im Javascript/Blockly:

          Und wie gesagt, das Ganze als Javascript ist der txt Java01.

          und nein, das ist blockly code, siehe sreen aus deinem text
          01294774-b8a0-46c2-be47-e453c22a3d0c-image.png

          du hast auf blockly exportieren geklickt und den Text kopiert, du solltest auf blockly/JS klicken, das wandelt das blockly in javascript um

          D Offline
          D Offline
          DarkSoul
          schrieb am zuletzt editiert von
          #8

          @crunchip sagte in Warnmeldung im Javascript/Blockly:
          ...

          und nein, das ist blockly code, siehe sreen aus deinem text

          du hast auf blockly exportieren geklickt und den Text kopiert, du solltest auf blockly/JS klicken, das wandelt das blockly in javascript um

          Äh das sind zwei txt Dateien!!! eine Java01.txt und eine Blockly01.txt
          2Texte.jpg

          crunchipC 1 Antwort Letzte Antwort
          0
          • F fastfoot

            @DarkSoul Du benutzt im Steuere Teil jeweils Strings('true'). Anzunehmen ist dass du boolesche Werte verwenden musst, also so wie im zweiten Block

            bl.PNG

            D Offline
            D Offline
            DarkSoul
            schrieb am zuletzt editiert von
            #9

            @fastfoot Ah, könnte sein, werde ich heute Nachmittag mal ausprobieren. Das grüne ist ja nur ein Textfeld.

            Bleiben sie dran...

            A 1 Antwort Letzte Antwort
            0
            • D DarkSoul

              @fastfoot Ah, könnte sein, werde ich heute Nachmittag mal ausprobieren. Das grüne ist ja nur ein Textfeld.

              Bleiben sie dran...

              A Offline
              A Offline
              Adnim
              schrieb am zuletzt editiert von
              #10

              @DarkSoul

              huhu du nutzt den Intervall ohne Trigger und Stop, das kann zu problemen führen, besser nen Trigger setzten auf das was sich ändert wenn du schalten willst, das ist ressoucen schonender. Wenn Intervall, dann immer ein Stopp Block davor.

              Und du solltest wenn du True/false oder 0/1 prüfst die richtigen blöcke nutzen wie fastfoot schon sagte...

              D 1 Antwort Letzte Antwort
              0
              • D DarkSoul

                @crunchip sagte in Warnmeldung im Javascript/Blockly:
                ...

                und nein, das ist blockly code, siehe sreen aus deinem text

                du hast auf blockly exportieren geklickt und den Text kopiert, du solltest auf blockly/JS klicken, das wandelt das blockly in javascript um

                Äh das sind zwei txt Dateien!!! eine Java01.txt und eine Blockly01.txt
                2Texte.jpg

                crunchipC Abwesend
                crunchipC Abwesend
                crunchip
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #11

                @DarkSoul heute sehe ich das auch, gestern hat es mir das nicht angezeigt, auch wenn ich deine text Datei angeklickt hatte. Auch wenn ich von der .text Seite zum Thread zurückblättern wollte, ergab es einen Fehler der Seite, also scheinbar ein Browser/Cache Problem meiner seits gewesen, daher das durcheinander.

                Fehler deines Blockly sind ja bereits genannt worden

                umgestiegen von Proxmox auf Unraid

                D 1 Antwort Letzte Antwort
                0
                • A Adnim

                  @DarkSoul

                  huhu du nutzt den Intervall ohne Trigger und Stop, das kann zu problemen führen, besser nen Trigger setzten auf das was sich ändert wenn du schalten willst, das ist ressoucen schonender. Wenn Intervall, dann immer ein Stopp Block davor.

                  Und du solltest wenn du True/false oder 0/1 prüfst die richtigen blöcke nutzen wie fastfoot schon sagte...

                  D Offline
                  D Offline
                  DarkSoul
                  schrieb am zuletzt editiert von
                  #12

                  @Adnim Mh ich habe doch diese riesen "oder" Verknüpfung drin. Werden 4 Datenpunkte (Teich Wasserstand) auf 0/1 überprüft und nur wenn einer davon 1 ist läuft das Schreiben der anderen Datenpunkte (Anzeige) ab.
                  Aber stimmt schon, da Zurzeit ein (Teich) Datenpunkt immer 1 ist, läuft der Kram ständig durch.
                  Denke ich muss da mal ein wenig entzerren.

                  Was ist eigentlich besser, mehrere kleine Scripte oder wenige große?

                  A 1 Antwort Letzte Antwort
                  0
                  • crunchipC crunchip

                    @DarkSoul heute sehe ich das auch, gestern hat es mir das nicht angezeigt, auch wenn ich deine text Datei angeklickt hatte. Auch wenn ich von der .text Seite zum Thread zurückblättern wollte, ergab es einen Fehler der Seite, also scheinbar ein Browser/Cache Problem meiner seits gewesen, daher das durcheinander.

                    Fehler deines Blockly sind ja bereits genannt worden

                    D Offline
                    D Offline
                    DarkSoul
                    schrieb am zuletzt editiert von
                    #13

                    @crunchip Alles gut, sind ja auch alles nur Scripte und manchmal habe ich das Gefühl die haben ein Eigenleben... :face_with_rolling_eyes:

                    1 Antwort Letzte Antwort
                    0
                    • D DarkSoul

                      @Adnim Mh ich habe doch diese riesen "oder" Verknüpfung drin. Werden 4 Datenpunkte (Teich Wasserstand) auf 0/1 überprüft und nur wenn einer davon 1 ist läuft das Schreiben der anderen Datenpunkte (Anzeige) ab.
                      Aber stimmt schon, da Zurzeit ein (Teich) Datenpunkt immer 1 ist, läuft der Kram ständig durch.
                      Denke ich muss da mal ein wenig entzerren.

                      Was ist eigentlich besser, mehrere kleine Scripte oder wenige große?

                      A Offline
                      A Offline
                      Adnim
                      schrieb am zuletzt editiert von
                      #14

                      @DarkSoul
                      Was ist eigentlich besser, mehrere kleine Scripte oder wenige große?

                      Ist egal. Nur eine Frage des Geschmacks.

                      Das Problem an der Form mit Intervall ist das nun deine CPU alle 10s prüft hat sich was an deinen Datenpunkten geändert. Das gibt schon ganz schön last. Schneller(So kanns ja 10s dauern bis was passiert) und Ressourcen schonender ist es wenn sich ein Datenpunkt ändert dein Skript loszutreten. Also ein Trigger auf die 4 Datenpunkte

                      D 1 Antwort Letzte Antwort
                      0
                      • A Adnim

                        @DarkSoul
                        Was ist eigentlich besser, mehrere kleine Scripte oder wenige große?

                        Ist egal. Nur eine Frage des Geschmacks.

                        Das Problem an der Form mit Intervall ist das nun deine CPU alle 10s prüft hat sich was an deinen Datenpunkten geändert. Das gibt schon ganz schön last. Schneller(So kanns ja 10s dauern bis was passiert) und Ressourcen schonender ist es wenn sich ein Datenpunkt ändert dein Skript loszutreten. Also ein Trigger auf die 4 Datenpunkte

                        D Offline
                        D Offline
                        DarkSoul
                        schrieb am zuletzt editiert von
                        #15

                        @Adnim Scheint funktioniert zu haben mit dem Logik Feld wahr/Falsch. Warnmeldungen sind weg.
                        Danke schon mal.

                        Mh was diesen Trigger durch das Ändern der Datenpunkte betrifft. Ist das nicht genau so eine Last? Wenn die CPU ständig überprüft ob einer der Datenpunkt sich geändert hat oder nicht!?
                        Und einen vergleichbaren Trigger habe ich ja eigentlich drin, direkt nach dem Start des Intervalls werden alle 4 Datenpunkte abgefragt ob sie 0 oder 1 sind. Und nur wenn einer 1, bzw. ungleich 0, ist läuft das Schreiben der anderen Datenpunkte durch.
                        Der Rest dahinter sind nur ein bischen Beleuchtung und die Akkuladung meines Anzeigetablets.

                        A 1 Antwort Letzte Antwort
                        0
                        • D DarkSoul

                          @Adnim Scheint funktioniert zu haben mit dem Logik Feld wahr/Falsch. Warnmeldungen sind weg.
                          Danke schon mal.

                          Mh was diesen Trigger durch das Ändern der Datenpunkte betrifft. Ist das nicht genau so eine Last? Wenn die CPU ständig überprüft ob einer der Datenpunkt sich geändert hat oder nicht!?
                          Und einen vergleichbaren Trigger habe ich ja eigentlich drin, direkt nach dem Start des Intervalls werden alle 4 Datenpunkte abgefragt ob sie 0 oder 1 sind. Und nur wenn einer 1, bzw. ungleich 0, ist läuft das Schreiben der anderen Datenpunkte durch.
                          Der Rest dahinter sind nur ein bischen Beleuchtung und die Akkuladung meines Anzeigetablets.

                          A Offline
                          A Offline
                          Adnim
                          schrieb am zuletzt editiert von
                          #16

                          @DarkSoul

                          nope wenn der DP sich ändert triggert er das skript los. so muss eben nicht alle 10s geprüft werden. Es ist doch viel responsiver wenn das via Trigger läuft, schaltet einer um passiert direkt was.Meine Meinung.

                          Viele Wege zum Ziel...

                          1 Antwort Letzte Antwort
                          0
                          • D Offline
                            D Offline
                            DarkSoul
                            schrieb am zuletzt editiert von
                            #17

                            So kurz nach dem Test war Ende.
                            Hab ein Update auf den JS-Skript Adapter gemacht und dass war es dann. Broker Tot.
                            Kann den Broker.js nicht mehr finden ... komplettes Verzeichnis in dem die Datei sein soll ist leer... :confused:

                            Bisher rund 4 Versuche ihn neu aufzusetzen sind fehl geschlagen, aber ich bleibe dran... Hab ja im Moment genug Zeit...

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


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            876

                            Online

                            32.6k

                            Benutzer

                            81.9k

                            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