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. Node-Red
  5. Einfache Steuerung Steckdose/Temperatur

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.6k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Einfache Steuerung Steckdose/Temperatur

Geplant Angeheftet Gesperrt Verschoben Node-Red
17 Beiträge 4 Kommentatoren 2.2k Aufrufe 4 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.
  • Seb K.S Offline
    Seb K.S Offline
    Seb K.
    schrieb am zuletzt editiert von
    #8

    @CrunkFX said in Einfache Steuerung Steckdose/Temperatur:

    rowser unter Us

    ich installiere jetzt erstmal iobroker auf nem neuem system und dann teste ich noch mal JS

    CrunkFXC 1 Antwort Letzte Antwort
    0
    • Seb K.S Seb K.

      @CrunkFX said in Einfache Steuerung Steckdose/Temperatur:

      rowser unter Us

      ich installiere jetzt erstmal iobroker auf nem neuem system und dann teste ich noch mal JS

      CrunkFXC Offline
      CrunkFXC Offline
      CrunkFX
      Forum Testing
      schrieb am zuletzt editiert von
      #9

      @Seb-K OK welche Plattform nutzt du?

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      1 Antwort Letzte Antwort
      0
      • Seb K.S Offline
        Seb K.S Offline
        Seb K.
        schrieb am zuletzt editiert von
        #10

        debian auf einem Thin PC

        CrunkFXC 1 Antwort Letzte Antwort
        0
        • Seb K.S Seb K.

          debian auf einem Thin PC

          CrunkFXC Offline
          CrunkFXC Offline
          CrunkFX
          Forum Testing
          schrieb am zuletzt editiert von
          #11

          @Seb-K OK damit sollte es auf jeden Fall klappen

          Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          1 Antwort Letzte Antwort
          0
          • Seb K.S Offline
            Seb K.S Offline
            Seb K.
            schrieb am zuletzt editiert von
            #12

            ich installiere erstmal alles und melde mich nochmal. bisher erst einmal besten dank

            1 Antwort Letzte Antwort
            0
            • mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von
              #13

              Ich verstehe nicht, warum manche hier was Blockly oder Java Schript schreiben in einem Thread wo nach einer Node-Red Lösung gefragt wird. Für solche Probleme - die man soweit ich weiß Hysterese genannt werden - kann man sogar im Node-Red fertige Lösungen installieren und muss quasi nichts programmieren.

              Ich denke - dass man hier sicher selbst einen Flow basteln kann, aber es gibt auch einen Node / Modul, dass man ausprobieren kann:

              https://flows.nodered.org/node/node-red-contrib-hysteresis

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              CrunkFXC 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                Ich verstehe nicht, warum manche hier was Blockly oder Java Schript schreiben in einem Thread wo nach einer Node-Red Lösung gefragt wird. Für solche Probleme - die man soweit ich weiß Hysterese genannt werden - kann man sogar im Node-Red fertige Lösungen installieren und muss quasi nichts programmieren.

                Ich denke - dass man hier sicher selbst einen Flow basteln kann, aber es gibt auch einen Node / Modul, dass man ausprobieren kann:

                https://flows.nodered.org/node/node-red-contrib-hysteresis

                CrunkFXC Offline
                CrunkFXC Offline
                CrunkFX
                Forum Testing
                schrieb am zuletzt editiert von
                #14

                @mickym Wie du vielleicht mitbekommen hast sollte die Hysterese dynamisch gestaltet werden, ich hab jahrelang nodered benutzt und bin mir darüber im Klaren, dass das eine super Software ist, aber das verarbeiten von variablen aus anderen Quellen z.b. Datenpunkte in IOBroker ist mehr ein workaround als hilfreich. Ich lasse mich aber gerne eines besseren belehren, wenn du mir hier nen Flow postest der eine dynamische Hysterese ermöglicht.

                MFG
                CrunkFX

                Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                mickymM 1 Antwort Letzte Antwort
                0
                • CrunkFXC CrunkFX

                  @mickym Wie du vielleicht mitbekommen hast sollte die Hysterese dynamisch gestaltet werden, ich hab jahrelang nodered benutzt und bin mir darüber im Klaren, dass das eine super Software ist, aber das verarbeiten von variablen aus anderen Quellen z.b. Datenpunkte in IOBroker ist mehr ein workaround als hilfreich. Ich lasse mich aber gerne eines besseren belehren, wenn du mir hier nen Flow postest der eine dynamische Hysterese ermöglicht.

                  MFG
                  CrunkFX

                  mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von mickym
                  #15

                  @CrunkFX

                  ...aber das verarbeiten von variablen aus anderen Quellen z.b. Datenpunkte in IOBroker ist mehr ein workaround als hilfreich. - was ich an dem Satz nicht verstehe ist, dass Du doch nahezu auf alle Datenpunkte im IOBroker (mal abgesehen von den Systemdaten) zugreifen kannst. Ok man muss oft noch eine Typkonvertierung ggf. durchführen.

                  Man kann z.Bsp um Levels dynamisch zu starten - die Hysterese als Subflow implementieren.

                  [
                      {
                          "id": "2963f527.4194ba",
                          "type": "switch",
                          "z": "b42815ec.5e6c58",
                          "name": "fLevel.On < Temperatur > fLevel.Off",
                          "property": "payload",
                          "propertyType": "msg",
                          "rules": [
                              {
                                  "t": "lt",
                                  "v": "fLevel.On",
                                  "vt": "flow"
                              },
                              {
                                  "t": "gt",
                                  "v": "fLevel.Off",
                                  "vt": "flow"
                              },
                              {
                                  "t": "lte",
                                  "v": "fLevel.Off",
                                  "vt": "flow"
                              }
                          ],
                          "checkall": "false",
                          "repair": false,
                          "outputs": 3,
                          "x": 560,
                          "y": 100,
                          "wires": [
                              [],
                              [],
                              []
                          ]
                      }
                  ]
                  

                  Zum Initialisieren bzw. Verändern der Levels schicke ich ein Nachrichten-Objekt in dem ich das untere und ober Level setzen kann.

                  In dem Beispiel:

                  msg.level -
                  Objekt mit On und Off - als nummerische Werte, um die Standardlevels von 10 (level.On) und 20 (level.Off) zu überschreiben.

                  Bei mir sieht das Ganze komplexer aus - aber ich denke das Prinzip kann man erkennen:

                  screen.png

                  Insofern find ich das eigentlich super einfach - gerade für jemand der nicht programmiert. ;)

                  Die Verzögerung habe ich nur gebaut - damit man Initialisierung und Veränderungen von aktuellen Daten unterschiedlich behandeln kann.

                  Das was Du mit eigenem Datenpunkt unter userdata.0 zu erstellen für die VIS ist ja völlig richtig und würde ich auch so machen. :)

                  Im Prinzip ist es eigentlich noch einfacher - als ich eben dargestellt habe. Man kann die in userdata.0 erstellten Datenpunkte eigenlich direkt einlesen und dann in flow Variablen abspeichern und somit ist das Ganze eigentlich schon erledigt und dynamisiert!

                  Ob man die Spanne zwischen oben oder unterem Level dann verarbeiten will - bleibt freigestellt, dann eben diesen Fall im Switch löschen.

                  Und wenn man die Level in den userdata-Punkten dynamisch berechnen will - kann man dies ja mathematisch mit einer Function-Node machen oder einer Change-Node. Dann stelle ich halt eine Temperatur ein und setze die flow-Variablen eben nach Berechnung, wenn userdata.0.temperatur geändert wurde.
                  Wenn Du kein VIS nutzt, sondern das Node-Red Dashboard - kannst natürlich auch die Flow Variablen direkt setzen - muss man halt nur initialisieren.

                  Ansonsten wird der Flow ja einfach mit den Temperaturen der Sonoff TH16 gespeist.

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  CrunkFXC 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @CrunkFX

                    ...aber das verarbeiten von variablen aus anderen Quellen z.b. Datenpunkte in IOBroker ist mehr ein workaround als hilfreich. - was ich an dem Satz nicht verstehe ist, dass Du doch nahezu auf alle Datenpunkte im IOBroker (mal abgesehen von den Systemdaten) zugreifen kannst. Ok man muss oft noch eine Typkonvertierung ggf. durchführen.

                    Man kann z.Bsp um Levels dynamisch zu starten - die Hysterese als Subflow implementieren.

                    [
                        {
                            "id": "2963f527.4194ba",
                            "type": "switch",
                            "z": "b42815ec.5e6c58",
                            "name": "fLevel.On < Temperatur > fLevel.Off",
                            "property": "payload",
                            "propertyType": "msg",
                            "rules": [
                                {
                                    "t": "lt",
                                    "v": "fLevel.On",
                                    "vt": "flow"
                                },
                                {
                                    "t": "gt",
                                    "v": "fLevel.Off",
                                    "vt": "flow"
                                },
                                {
                                    "t": "lte",
                                    "v": "fLevel.Off",
                                    "vt": "flow"
                                }
                            ],
                            "checkall": "false",
                            "repair": false,
                            "outputs": 3,
                            "x": 560,
                            "y": 100,
                            "wires": [
                                [],
                                [],
                                []
                            ]
                        }
                    ]
                    

                    Zum Initialisieren bzw. Verändern der Levels schicke ich ein Nachrichten-Objekt in dem ich das untere und ober Level setzen kann.

                    In dem Beispiel:

                    msg.level -
                    Objekt mit On und Off - als nummerische Werte, um die Standardlevels von 10 (level.On) und 20 (level.Off) zu überschreiben.

                    Bei mir sieht das Ganze komplexer aus - aber ich denke das Prinzip kann man erkennen:

                    screen.png

                    Insofern find ich das eigentlich super einfach - gerade für jemand der nicht programmiert. ;)

                    Die Verzögerung habe ich nur gebaut - damit man Initialisierung und Veränderungen von aktuellen Daten unterschiedlich behandeln kann.

                    Das was Du mit eigenem Datenpunkt unter userdata.0 zu erstellen für die VIS ist ja völlig richtig und würde ich auch so machen. :)

                    Im Prinzip ist es eigentlich noch einfacher - als ich eben dargestellt habe. Man kann die in userdata.0 erstellten Datenpunkte eigenlich direkt einlesen und dann in flow Variablen abspeichern und somit ist das Ganze eigentlich schon erledigt und dynamisiert!

                    Ob man die Spanne zwischen oben oder unterem Level dann verarbeiten will - bleibt freigestellt, dann eben diesen Fall im Switch löschen.

                    Und wenn man die Level in den userdata-Punkten dynamisch berechnen will - kann man dies ja mathematisch mit einer Function-Node machen oder einer Change-Node. Dann stelle ich halt eine Temperatur ein und setze die flow-Variablen eben nach Berechnung, wenn userdata.0.temperatur geändert wurde.
                    Wenn Du kein VIS nutzt, sondern das Node-Red Dashboard - kannst natürlich auch die Flow Variablen direkt setzen - muss man halt nur initialisieren.

                    Ansonsten wird der Flow ja einfach mit den Temperaturen der Sonoff TH16 gespeist.

                    CrunkFXC Offline
                    CrunkFXC Offline
                    CrunkFX
                    Forum Testing
                    schrieb am zuletzt editiert von
                    #16

                    @mickym Hi, deinen Ansatz finde ich sehr gut und verstehe deine Argumente für Node-Red, aber für jemanden der wenig bis gar keine Erfahrung in NodeRed hat sind das komplett böhmische Dörfer. Die hier zu bewältigende Aufgabe ist Technisch gesehen nicht sonderlich Komplex, aber in Blockly(trotz grauenvoller Übersetzung) einfacher zu Realisieren als in NodeRed, da Blockly Baukastentechnisch Arbeitet und Nodered Flow basiert. Wenn man also ganz frisch jemandem Nodered beibringen muss, dann sollte die Anfangsaufgabe keine Mammutaufgabe sein. Wenn hier jemand mit entsprechender Nodered Erfahrung dieses Problem gestellt hätte wäre ich sicher drauf eingegangen. Nichts desto trotz bleibt jedem selbst überlassen wie er seine Probleme löst, Nodered ist wie gesagt eine Super Software auch für Anfänger aber gerade bei Beispielen in denen mit Flow Messages gearbeitet wird(sprich man sieht nicht was passiert, da der Wert ja unsichtbar im Flow verteilt wird) könnte ich mir Vorstellen, dass da nicht jeder auf anhieb den durchblick hat sowie bei Blockly.

                    MFG
                    CrunkFX

                    Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • CrunkFXC CrunkFX

                      @mickym Hi, deinen Ansatz finde ich sehr gut und verstehe deine Argumente für Node-Red, aber für jemanden der wenig bis gar keine Erfahrung in NodeRed hat sind das komplett böhmische Dörfer. Die hier zu bewältigende Aufgabe ist Technisch gesehen nicht sonderlich Komplex, aber in Blockly(trotz grauenvoller Übersetzung) einfacher zu Realisieren als in NodeRed, da Blockly Baukastentechnisch Arbeitet und Nodered Flow basiert. Wenn man also ganz frisch jemandem Nodered beibringen muss, dann sollte die Anfangsaufgabe keine Mammutaufgabe sein. Wenn hier jemand mit entsprechender Nodered Erfahrung dieses Problem gestellt hätte wäre ich sicher drauf eingegangen. Nichts desto trotz bleibt jedem selbst überlassen wie er seine Probleme löst, Nodered ist wie gesagt eine Super Software auch für Anfänger aber gerade bei Beispielen in denen mit Flow Messages gearbeitet wird(sprich man sieht nicht was passiert, da der Wert ja unsichtbar im Flow verteilt wird) könnte ich mir Vorstellen, dass da nicht jeder auf anhieb den durchblick hat sowie bei Blockly.

                      MFG
                      CrunkFX

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #17

                      @CrunkFX
                      Ich habe mal Dein Blockly Skript importiert und versucht in Node-Red umzusetzen:

                      [
                          {
                              "id": "9f04b667.5cd998",
                              "type": "tab",
                              "label": "Flow 2",
                              "disabled": false,
                              "info": ""
                          },
                          {
                              "id": "3bcbf948.4c3446",
                              "type": "ioBroker in",
                              "z": "9f04b667.5cd998",
                              "name": "",
                              "topic": "0_userdata.0.dein_TH16_Temp_DP",
                              "payloadType": "value",
                              "onlyack": "",
                              "func": "all",
                              "gap": "",
                              "x": 230,
                              "y": 200,
                              "wires": [
                                  [
                                      "9deba34c.8a806"
                                  ]
                              ]
                          },
                          {
                              "id": "9deba34c.8a806",
                              "type": "change",
                              "z": "9f04b667.5cd998",
                              "name": "to Number",
                              "rules": [
                                  {
                                      "t": "set",
                                      "p": "payload",
                                      "pt": "msg",
                                      "to": "$number(msg.payload)\t",
                                      "tot": "jsonata"
                                  }
                              ],
                              "action": "",
                              "property": "",
                              "from": "",
                              "to": "",
                              "reg": false,
                              "x": 470,
                              "y": 200,
                              "wires": [
                                  [
                                      "79074a2f.e315f4",
                                      "79a6662f.b72558"
                                  ]
                              ]
                          },
                          {
                              "id": "79074a2f.e315f4",
                              "type": "change",
                              "z": "9f04b667.5cd998",
                              "name": "Level Oben + 0.2",
                              "rules": [
                                  {
                                      "t": "set",
                                      "p": "payload",
                                      "pt": "msg",
                                      "to": "payload + 0.2",
                                      "tot": "jsonata"
                                  },
                                  {
                                      "t": "set",
                                      "p": "LevelOff",
                                      "pt": "flow",
                                      "to": "payload",
                                      "tot": "msg"
                                  }
                              ],
                              "action": "",
                              "property": "",
                              "from": "",
                              "to": "",
                              "reg": false,
                              "x": 690,
                              "y": 180,
                              "wires": [
                                  []
                              ]
                          },
                          {
                              "id": "79a6662f.b72558",
                              "type": "change",
                              "z": "9f04b667.5cd998",
                              "name": "Level Unten - 0.2",
                              "rules": [
                                  {
                                      "t": "set",
                                      "p": "payload",
                                      "pt": "msg",
                                      "to": "payload - 0.2",
                                      "tot": "jsonata"
                                  },
                                  {
                                      "t": "set",
                                      "p": "LevelOn",
                                      "pt": "flow",
                                      "to": "payload",
                                      "tot": "msg"
                                  }
                              ],
                              "action": "",
                              "property": "",
                              "from": "",
                              "to": "",
                              "reg": false,
                              "x": 690,
                              "y": 220,
                              "wires": [
                                  []
                              ]
                          },
                          {
                              "id": "a3f4a48c.5fbea8",
                              "type": "inject",
                              "z": "9f04b667.5cd998",
                              "name": "",
                              "topic": "Temperatur",
                              "payload": "19",
                              "payloadType": "str",
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "x": 150,
                              "y": 360,
                              "wires": [
                                  [
                                      "200998b7.04c3e8"
                                  ]
                              ]
                          },
                          {
                              "id": "200998b7.04c3e8",
                              "type": "change",
                              "z": "9f04b667.5cd998",
                              "name": "to Number",
                              "rules": [
                                  {
                                      "t": "set",
                                      "p": "payload",
                                      "pt": "msg",
                                      "to": "$number(msg.payload)\t",
                                      "tot": "jsonata"
                                  }
                              ],
                              "action": "",
                              "property": "",
                              "from": "",
                              "to": "",
                              "reg": false,
                              "x": 310,
                              "y": 360,
                              "wires": [
                                  [
                                      "60e1c1db.31561"
                                  ]
                              ]
                          },
                          {
                              "id": "60e1c1db.31561",
                              "type": "switch",
                              "z": "9f04b667.5cd998",
                              "name": "Schalte",
                              "property": "payload",
                              "propertyType": "msg",
                              "rules": [
                                  {
                                      "t": "gt",
                                      "v": "LevelOff",
                                      "vt": "flow"
                                  },
                                  {
                                      "t": "lt",
                                      "v": "LevelOn",
                                      "vt": "flow"
                                  }
                              ],
                              "checkall": "true",
                              "repair": false,
                              "outputs": 2,
                              "x": 460,
                              "y": 360,
                              "wires": [
                                  [
                                      "775acae7.a07974"
                                  ],
                                  [
                                      "c65452e7.c57c8"
                                  ]
                              ]
                          },
                          {
                              "id": "775acae7.a07974",
                              "type": "change",
                              "z": "9f04b667.5cd998",
                              "name": "Ausschalten Off/False",
                              "rules": [
                                  {
                                      "t": "set",
                                      "p": "payload",
                                      "pt": "msg",
                                      "to": "false",
                                      "tot": "bool"
                                  }
                              ],
                              "action": "",
                              "property": "",
                              "from": "",
                              "to": "",
                              "reg": false,
                              "x": 700,
                              "y": 340,
                              "wires": [
                                  [
                                      "184ff99a.c85ca6"
                                  ]
                              ]
                          },
                          {
                              "id": "c65452e7.c57c8",
                              "type": "change",
                              "z": "9f04b667.5cd998",
                              "name": "Einschalten On/true",
                              "rules": [
                                  {
                                      "t": "set",
                                      "p": "payload",
                                      "pt": "msg",
                                      "to": "true",
                                      "tot": "bool"
                                  }
                              ],
                              "action": "",
                              "property": "",
                              "from": "",
                              "to": "",
                              "reg": false,
                              "x": 690,
                              "y": 380,
                              "wires": [
                                  [
                                      "184ff99a.c85ca6"
                                  ]
                              ]
                          },
                          {
                              "id": "184ff99a.c85ca6",
                              "type": "ioBroker out",
                              "z": "9f04b667.5cd998",
                              "name": "zur Steckdose",
                              "topic": "",
                              "ack": "false",
                              "autoCreate": "false",
                              "x": 980,
                              "y": 360,
                              "wires": []
                          }
                      ]
                      

                      Das sieht dann so aus:

                      screen.png

                      Und ich will niemand bekehren, aber doch vielleicht auch Alternativen aufzeigen.

                      Das wäre in meinen Augen das, was Du mit dem Blockly machst - ich habe mir das extra mal importiert. ;)

                      Ich persönlich mag dieses Flow basierende, da es gerade für Neulinge einfacher zu verstehen ist, was passiert wenn ....
                      Im Übrigen wird man eben auch gezwungen zu unterscheiden, was sind "Parameter" Flows oder dann "Schalter" Flows. Ich finde, dass man hier "erzogen" wird, die Probleme richtig zu strukturieren - deshalb bin ich halt ein kleiner Fan-Boy von Node-Red. Man möge mir das Nachsehen.

                      Statt dem Inject Node - für die Temperatur natürlich den Datenpunkt der Sonoff setzen und analog zu oben in Zahl konvertieren und natürlich den Datenpunkt zur Steckdose anpassen und ob True/False oder 0/1 oder On/Off gesetzt werden muss.

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      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

                      857

                      Online

                      32.6k

                      Benutzer

                      82.1k

                      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