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. ioBroker Allgemein
  4. Homelink - Garagentorantrieb Marantec

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    580

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

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

Homelink - Garagentorantrieb Marantec

Scheduled Pinned Locked Moved ioBroker Allgemein
69 Posts 17 Posters 11.0k Views 14 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.
  • R Rushmed

    Hallo,

    gibts hier schon etwas neues?
    Ich hab das Thema hier nochmal aufgewärmt.

    D Online
    D Online
    drapo
    wrote on last edited by
    #44

    @rushmed hänge mich hier an. Bin auch nach wie vor auf der Suche nach einer Lösung. :-)

    R 1 Reply Last reply
    0
    • D drapo

      @rushmed hänge mich hier an. Bin auch nach wie vor auf der Suche nach einer Lösung. :-)

      R Offline
      R Offline
      Rushmed
      Most Active
      wrote on last edited by
      #45

      @drapo Ich schreibe im anderen Fred weiter.

      1 Reply Last reply
      0
      • R Offline
        R Offline
        Rushmed
        Most Active
        wrote on last edited by
        #46

        Checkd mal dashier.

        1 Reply Last reply
        0
        • D Online
          D Online
          drapo
          wrote on last edited by
          #47

          Hallo zusammen

          Gibt es gerade mal wieder Probleme mit der Maveo App? Resp. mein Adapter lässt sich nicht mehr starten. Bin ich der einzige oder habt Ihr Leidensgenossen das selbe Problem?

          T 1 Reply Last reply
          0
          • D drapo

            Hallo zusammen

            Gibt es gerade mal wieder Probleme mit der Maveo App? Resp. mein Adapter lässt sich nicht mehr starten. Bin ich der einzige oder habt Ihr Leidensgenossen das selbe Problem?

            T Offline
            T Offline
            tombox
            wrote on last edited by
            #48

            @drapo Ich werde mir das zeitnah mal anschauen

            D 2 Replies Last reply
            0
            • T tombox

              @drapo Ich werde mir das zeitnah mal anschauen

              D Online
              D Online
              drapo
              wrote on last edited by
              #49

              @tombox vielen Dank

              1 Reply Last reply
              0
              • T tombox

                @drapo Ich werde mir das zeitnah mal anschauen

                D Online
                D Online
                drapo
                wrote on last edited by
                #50

                @tombox wollte mal freundlich nachfragen ob Du dir das bereits ansehen konntest? Fand diese Lösung bis anhin ganz praktisch. Danke auf jeden Fall für Deine Unterstützung.

                T 1 Reply Last reply
                0
                • D drapo

                  @tombox wollte mal freundlich nachfragen ob Du dir das bereits ansehen konntest? Fand diese Lösung bis anhin ganz praktisch. Danke auf jeden Fall für Deine Unterstützung.

                  T Offline
                  T Offline
                  tombox
                  wrote on last edited by
                  #51

                  @drapo bräuchte nochmal funktionierende Zugangsdaten zum testen ruhig per mail an tombox2020@gmail.com

                  D 1 Reply Last reply
                  0
                  • T tombox

                    @drapo bräuchte nochmal funktionierende Zugangsdaten zum testen ruhig per mail an tombox2020@gmail.com

                    D Online
                    D Online
                    drapo
                    wrote on last edited by
                    #52

                    @tombox mit denen kannst du ja dann meine Garage steuern. Was genau wirst Du mit den Zugangsdaten machen und mit wievielen auf und zu meines Garagentores muss ich rechnen?

                    T 1 Reply Last reply
                    0
                    • D drapo

                      @tombox mit denen kannst du ja dann meine Garage steuern. Was genau wirst Du mit den Zugangsdaten machen und mit wievielen auf und zu meines Garagentores muss ich rechnen?

                      T Offline
                      T Offline
                      tombox
                      wrote on last edited by
                      #53

                      @drapo Also ich werde Tor nicht öffnen ich muss nur den Login Vorgang und Abruf der geräte Daten checken mehr nicht

                      D 1 Reply Last reply
                      0
                      • T tombox

                        @drapo Also ich werde Tor nicht öffnen ich muss nur den Login Vorgang und Abruf der geräte Daten checken mehr nicht

                        D Online
                        D Online
                        drapo
                        wrote on last edited by
                        #54

                        @tombox ok daten sind raus. Bitte gib mir rasch rückmeldumg wenn du fertig bist dann werde ich das PW wieder ändern

                        1 Reply Last reply
                        0
                        • P Offline
                          P Offline
                          Patrick90
                          wrote on last edited by
                          #55

                          Guten Tag,

                          ich habe vom Maveosupport folgende Email erhalten

                          es tut mir sehr leid, dass Sie so lange bereits auf diese Features warten. Leider ist die Integration dieser Systeme sehr aufwändig und mit einer Menge Zertifizierungen verbunden. Ich möchte Ihnen gerne ein Update zu diesem Thema geben:
                          Wir arbeiten aktuell an der Integration des Smart Home Standards MATTER. Hiermit können wir mit einem Standard die Integration in HomeKit, Google Home und Alexa erreichen. Auch Android Auto ist bereits fertig entwickelt, aktuell warten wir hier mit dem Release noch auf die finale Integration von Apple CarPlay.

                          Ist für euch lediglich zur Info.

                          P 1 Reply Last reply
                          0
                          • P Patrick90

                            Guten Tag,

                            ich habe vom Maveosupport folgende Email erhalten

                            es tut mir sehr leid, dass Sie so lange bereits auf diese Features warten. Leider ist die Integration dieser Systeme sehr aufwändig und mit einer Menge Zertifizierungen verbunden. Ich möchte Ihnen gerne ein Update zu diesem Thema geben:
                            Wir arbeiten aktuell an der Integration des Smart Home Standards MATTER. Hiermit können wir mit einem Standard die Integration in HomeKit, Google Home und Alexa erreichen. Auch Android Auto ist bereits fertig entwickelt, aktuell warten wir hier mit dem Release noch auf die finale Integration von Apple CarPlay.

                            Ist für euch lediglich zur Info.

                            P Offline
                            P Offline
                            Patrick90
                            wrote on last edited by
                            #56

                            @patrick90

                            kommt mir definitiv länger vor als gerade mal ein Jahr. Ich habe dennoch mal nachgefragt, worauf man jetzt noch wartet.

                            2024-07-30 19_23_29-Window.png

                            R 1 Reply Last reply
                            0
                            • P Patrick90

                              @patrick90

                              kommt mir definitiv länger vor als gerade mal ein Jahr. Ich habe dennoch mal nachgefragt, worauf man jetzt noch wartet.

                              2024-07-30 19_23_29-Window.png

                              R Offline
                              R Offline
                              Ritschy2000
                              wrote on last edited by Ritschy2000
                              #57

                              @patrick90 darf man fragen, ob du schon neue Infos erhalten hast ? Die Integration in Android Auto würde mich auch interessieren...

                              1 Reply Last reply
                              0
                              • T Offline
                                T Offline
                                TomTom24
                                wrote on last edited by
                                #58

                                Hi,
                                ich habe mir ein Script gebastelt mit JS-Adapter. Das funktioniert sehr gut und man kann darüber einfach Schalter in Homekit anlegen und z.b. die Garage öffnen. Läuft hier seit über einem Jahr einwandfrei. Ab und zu muss der Adapater/Host neu gestartet werden, weil der Host aus irgendwelchen Gründen dann den Client nicht mehr kennt.

                                1. Datenpunkte anlegen
                                2. Dann braucht ihr nur noch ein kleines Script, dass die Werte open, close, stop, lighton, lightoff in den dp_cmd schreibt.
                                3. DeviceName muss so sein, wie Eure Garage in Eurer App heißt!!

                                Wie gesagt, läuft hier sehr zuverlässig.

                                // wenns nicht geht - IP-Adresse Garage prüfen
                                // Benötigt mqtt -wenns nicht geht - IP-Adresse Garage prüfen
                                //
                                //
                                var net = require('net'); 
                                
                                var dp_door = "0_userdata.0.Garage.Garage_Status_Tor"; //door state
                                var dp_light = "0_userdata.0.Garage.Garage_Status_Licht"; //light state
                                var dp_cmd = "0_userdata.0.Garage.Garage_Command2"; //Befehlsdatenpunkt: Mögliche Werte: open, close, stop, lighton, lightoff. Nach Beschreiben wird der Datenpunkt wieder auf leer gesetzt
                                
                                var deviceName = "GARAGENNAME"; 
                                var host = "IP_ADRESSE";
                                var port = 2785;
                                
                                // random client, weil nach Stromausfall das Script nicht mehr lief, erst als anderer Client angegeben wurde.
                                let x = Math.floor((Math.random() * 30) + 1);
                                
                                var client=x.toString; // Client mit übergeben
                                
                                function startClient() {
                                    client = new net.Socket();                 // Erzeugen eines neuen Verbindungsobjekts
                                    client.connect(port, host, function() {     // Gerät über host:port anwählen und Verbindung erzeugen
                                        console.log('cliend started');
                                    });
                                    client.on('data', function(data) {          // Wenn daten ankommen, dann verarbeiten
                                        console.log('client received: ' + data + " for device: " + deviceName);
                                        var dataS = data.toString().trim();              // Datenbuffer in lesbaren Text umwandeln
                                        switch(dataS) {                           // je nach rückgabewert unterschiedliche Bearbeitung
                                            case "S;"+deviceName+";open":         // wenn open
                                                setState(dp_door,"open",false);             // dann Datenpunkt setzen
                                                setState(dp_door,"open",true);             // dann Datenpunkt setzen
                                                // Garagentür ebenfalls öffnen
                                                setState('alias.0.Garage.Garagentuer'/*Garagentuer auf zu*/, true)
                                                console.log("Script Garage: "+dataS,"info");
                                                break;
                                            case "S;"+deviceName+";closed":
                                                setState(dp_door,"closed",false);
                                                setState(dp_door,"closed",true);
                                                // Garagentür ebenfalls schließen
                                                setState('alias.0.Garage.Garagentuer'/*Garagentuer auf zu*/, false) 
                                                console.log("Script Garage: "+dataS,"info");
                                                break;
                                            case "S;"+deviceName+";opening":
                                                setState(dp_door,"opening",false);
                                                setState(dp_door,"opening",true);
                                                console.log("Script Garage: "+dataS,"info");
                                                break;
                                            case "S;"+deviceName+";closing":
                                                setState(dp_door,"closing",false);
                                                setState(dp_door,"closing",true);
                                                console.log("Script Garage: "+dataS,"info");
                                                break;
                                            case "S;"+deviceName+";lightOn":
                                                setState(dp_light,"lightOn",false);
                                                setState(dp_light,"lightOn",true);
                                                console.log("Script Garage: "+dataS,"info");
                                                break;
                                            case "S;"+deviceName+";lightOff":
                                                setState(dp_light,"lightOff",false);
                                                setState(dp_light,"lightOff",true);
                                                console.log("Script Garage: "+dataS,"info");
                                                break;
                                        }
                                    });
                                    client.on("error",(err)=>{                  // wenn ein Fehler entsteht
                                        console.log("client error " + err.toString());
                                    });
                                    client.on("timeout",()=>{                   // wenn timeout entsteht
                                        console.log("client timeout");
                                    });
                                }
                                
                                function sendMessage(host, port, message) {
                                    return new Promise((resolve, reject) => {     // Funktion ist asynchron, daher Rückgabe promise
                                        if (!client) {
                                            console.log("No Client available :"+x);
                                            resolve("Error");
                                            return;
                                        }
                                        client.write(message);
                                        resolve("OK");
                                    });
                                }
                                
                                onStop (function(){
                                     /* do something when script is stopped */
                                     if (client) {
                                        console.log('client ended ');
                                        client.end();
                                     }
                                }, 1000);
                                
                                startClient();
                                
                                on(dp_cmd, function (obj) {                     // trigger wenn datenpunkt beschrieben wird
                                 var cmd;
                                 if (obj.state.ack || !obj.state.ack) {                       // aber nur wenn es sich um einen unbestätigten wert handelt
                                     cmd = String(obj.state.val).toLowerCase();  // Datenpunktinhalt in Kleinbuchstaben umwandeln
                                     console.log('execute command: ' + cmd);
                                     switch(cmd) {                           // je nach Datenpunktinhalt verschiedene Befehle
                                         case "open":                        // wenn open
                                             sendMessage(host, port, "C;"+deviceName+";open"); // dann richtigen Befehl an Gerät senden
                                             
                                             break;
                                         case "close":
                                             sendMessage(host, port, "C;"+deviceName+";close");
                                             break;
                                         case "stop":
                                             sendMessage(host, port, "C;"+deviceName+";stop");
                                             break;
                                         case "lighton":
                                             sendMessage(host, port, "C;"+deviceName+";lightOn");
                                             break;
                                         case "lightoff":
                                             sendMessage(host, port, "C;"+deviceName+";lightOff");
                                             break;
                                     }
                                     
                                     setState(obj.id, {val: "", ack: false}); // datenpunkt auf leer als bestätigt setzen
                                 }
                                });
                                
                                LongbowL D 2 Replies Last reply
                                0
                                • T TomTom24

                                  Hi,
                                  ich habe mir ein Script gebastelt mit JS-Adapter. Das funktioniert sehr gut und man kann darüber einfach Schalter in Homekit anlegen und z.b. die Garage öffnen. Läuft hier seit über einem Jahr einwandfrei. Ab und zu muss der Adapater/Host neu gestartet werden, weil der Host aus irgendwelchen Gründen dann den Client nicht mehr kennt.

                                  1. Datenpunkte anlegen
                                  2. Dann braucht ihr nur noch ein kleines Script, dass die Werte open, close, stop, lighton, lightoff in den dp_cmd schreibt.
                                  3. DeviceName muss so sein, wie Eure Garage in Eurer App heißt!!

                                  Wie gesagt, läuft hier sehr zuverlässig.

                                  // wenns nicht geht - IP-Adresse Garage prüfen
                                  // Benötigt mqtt -wenns nicht geht - IP-Adresse Garage prüfen
                                  //
                                  //
                                  var net = require('net'); 
                                  
                                  var dp_door = "0_userdata.0.Garage.Garage_Status_Tor"; //door state
                                  var dp_light = "0_userdata.0.Garage.Garage_Status_Licht"; //light state
                                  var dp_cmd = "0_userdata.0.Garage.Garage_Command2"; //Befehlsdatenpunkt: Mögliche Werte: open, close, stop, lighton, lightoff. Nach Beschreiben wird der Datenpunkt wieder auf leer gesetzt
                                  
                                  var deviceName = "GARAGENNAME"; 
                                  var host = "IP_ADRESSE";
                                  var port = 2785;
                                  
                                  // random client, weil nach Stromausfall das Script nicht mehr lief, erst als anderer Client angegeben wurde.
                                  let x = Math.floor((Math.random() * 30) + 1);
                                  
                                  var client=x.toString; // Client mit übergeben
                                  
                                  function startClient() {
                                      client = new net.Socket();                 // Erzeugen eines neuen Verbindungsobjekts
                                      client.connect(port, host, function() {     // Gerät über host:port anwählen und Verbindung erzeugen
                                          console.log('cliend started');
                                      });
                                      client.on('data', function(data) {          // Wenn daten ankommen, dann verarbeiten
                                          console.log('client received: ' + data + " for device: " + deviceName);
                                          var dataS = data.toString().trim();              // Datenbuffer in lesbaren Text umwandeln
                                          switch(dataS) {                           // je nach rückgabewert unterschiedliche Bearbeitung
                                              case "S;"+deviceName+";open":         // wenn open
                                                  setState(dp_door,"open",false);             // dann Datenpunkt setzen
                                                  setState(dp_door,"open",true);             // dann Datenpunkt setzen
                                                  // Garagentür ebenfalls öffnen
                                                  setState('alias.0.Garage.Garagentuer'/*Garagentuer auf zu*/, true)
                                                  console.log("Script Garage: "+dataS,"info");
                                                  break;
                                              case "S;"+deviceName+";closed":
                                                  setState(dp_door,"closed",false);
                                                  setState(dp_door,"closed",true);
                                                  // Garagentür ebenfalls schließen
                                                  setState('alias.0.Garage.Garagentuer'/*Garagentuer auf zu*/, false) 
                                                  console.log("Script Garage: "+dataS,"info");
                                                  break;
                                              case "S;"+deviceName+";opening":
                                                  setState(dp_door,"opening",false);
                                                  setState(dp_door,"opening",true);
                                                  console.log("Script Garage: "+dataS,"info");
                                                  break;
                                              case "S;"+deviceName+";closing":
                                                  setState(dp_door,"closing",false);
                                                  setState(dp_door,"closing",true);
                                                  console.log("Script Garage: "+dataS,"info");
                                                  break;
                                              case "S;"+deviceName+";lightOn":
                                                  setState(dp_light,"lightOn",false);
                                                  setState(dp_light,"lightOn",true);
                                                  console.log("Script Garage: "+dataS,"info");
                                                  break;
                                              case "S;"+deviceName+";lightOff":
                                                  setState(dp_light,"lightOff",false);
                                                  setState(dp_light,"lightOff",true);
                                                  console.log("Script Garage: "+dataS,"info");
                                                  break;
                                          }
                                      });
                                      client.on("error",(err)=>{                  // wenn ein Fehler entsteht
                                          console.log("client error " + err.toString());
                                      });
                                      client.on("timeout",()=>{                   // wenn timeout entsteht
                                          console.log("client timeout");
                                      });
                                  }
                                  
                                  function sendMessage(host, port, message) {
                                      return new Promise((resolve, reject) => {     // Funktion ist asynchron, daher Rückgabe promise
                                          if (!client) {
                                              console.log("No Client available :"+x);
                                              resolve("Error");
                                              return;
                                          }
                                          client.write(message);
                                          resolve("OK");
                                      });
                                  }
                                  
                                  onStop (function(){
                                       /* do something when script is stopped */
                                       if (client) {
                                          console.log('client ended ');
                                          client.end();
                                       }
                                  }, 1000);
                                  
                                  startClient();
                                  
                                  on(dp_cmd, function (obj) {                     // trigger wenn datenpunkt beschrieben wird
                                   var cmd;
                                   if (obj.state.ack || !obj.state.ack) {                       // aber nur wenn es sich um einen unbestätigten wert handelt
                                       cmd = String(obj.state.val).toLowerCase();  // Datenpunktinhalt in Kleinbuchstaben umwandeln
                                       console.log('execute command: ' + cmd);
                                       switch(cmd) {                           // je nach Datenpunktinhalt verschiedene Befehle
                                           case "open":                        // wenn open
                                               sendMessage(host, port, "C;"+deviceName+";open"); // dann richtigen Befehl an Gerät senden
                                               
                                               break;
                                           case "close":
                                               sendMessage(host, port, "C;"+deviceName+";close");
                                               break;
                                           case "stop":
                                               sendMessage(host, port, "C;"+deviceName+";stop");
                                               break;
                                           case "lighton":
                                               sendMessage(host, port, "C;"+deviceName+";lightOn");
                                               break;
                                           case "lightoff":
                                               sendMessage(host, port, "C;"+deviceName+";lightOff");
                                               break;
                                       }
                                       
                                       setState(obj.id, {val: "", ack: false}); // datenpunkt auf leer als bestätigt setzen
                                   }
                                  });
                                  
                                  LongbowL Offline
                                  LongbowL Offline
                                  Longbow
                                  wrote on last edited by
                                  #59

                                  @tomtom24

                                  Hallo, ich habe das Script gerade probiert.

                                  Das ist die Fehlermeldung: script.js.common.Scripte.Auffahrt.Marantec_Steuerung: client error Error: connect ECONNREFUSED 192.168.7.34:2785

                                  Also IP stimmt, Name von dem Stick stimmt. An was kann es noch liegen?

                                  R 1 Reply Last reply
                                  0
                                  • LongbowL Longbow

                                    @tomtom24

                                    Hallo, ich habe das Script gerade probiert.

                                    Das ist die Fehlermeldung: script.js.common.Scripte.Auffahrt.Marantec_Steuerung: client error Error: connect ECONNREFUSED 192.168.7.34:2785

                                    Also IP stimmt, Name von dem Stick stimmt. An was kann es noch liegen?

                                    R Offline
                                    R Offline
                                    Ritschy2000
                                    wrote on last edited by Ritschy2000
                                    #60

                                    @longbow hast du den "neuen" WLAN-Stick oder noch die Variante Stick mit zusätzlichem Gateway?

                                    Mit den neuen WLAN-Sticks funktioniert es nicht (soweit mir bekannt ist), da bei diesen die Api nicht aktiviert werden kann.

                                    LongbowL 1 Reply Last reply
                                    0
                                    • R Ritschy2000

                                      @longbow hast du den "neuen" WLAN-Stick oder noch die Variante Stick mit zusätzlichem Gateway?

                                      Mit den neuen WLAN-Sticks funktioniert es nicht (soweit mir bekannt ist), da bei diesen die Api nicht aktiviert werden kann.

                                      LongbowL Offline
                                      LongbowL Offline
                                      Longbow
                                      wrote on last edited by
                                      #61

                                      @ritschy2000 sagte in Homelink - Garagentorantrieb Marantec:

                                      Variante Stic

                                      den WLAN Stick, gibt es die andere Variante noch?

                                      R 1 Reply Last reply
                                      0
                                      • LongbowL Longbow

                                        @ritschy2000 sagte in Homelink - Garagentorantrieb Marantec:

                                        Variante Stic

                                        den WLAN Stick, gibt es die andere Variante noch?

                                        R Offline
                                        R Offline
                                        Ritschy2000
                                        wrote on last edited by
                                        #62

                                        @longbow direkt bei Maveo nicht. Bei Ebay oder anderen Online- Händlern schon.

                                        Suche mal nach "maveo Starter Bundle" oder "Maveo box Starterpaket".
                                        Ist dann Gateway + "alter" Stick .... kostet auch "nur" günstige 190 € ;)

                                        LongbowL 1 Reply Last reply
                                        0
                                        • R Ritschy2000

                                          @longbow direkt bei Maveo nicht. Bei Ebay oder anderen Online- Händlern schon.

                                          Suche mal nach "maveo Starter Bundle" oder "Maveo box Starterpaket".
                                          Ist dann Gateway + "alter" Stick .... kostet auch "nur" günstige 190 € ;)

                                          LongbowL Offline
                                          LongbowL Offline
                                          Longbow
                                          wrote on last edited by
                                          #63

                                          @ritschy2000

                                          Danke, habe ich gemacht. Nur leider verbindet sich der Stick nicht mit dem Torantrieb. Habe den X.82, der soll aber gehen, da dieses Bundel mit allen Torantrieben ab 2014 gehen soll... Geht aber nicht leider nicht....

                                          Wer kennst sich mit den Torantrieben Marantec aus und kann mir helfen?

                                          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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          388

                                          Online

                                          32.7k

                                          Users

                                          82.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