Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. Adapter der Http Binding wie Openhab erledigt?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    739

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

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

Adapter der Http Binding wie Openhab erledigt?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
http binding
33 Beiträge 2 Kommentatoren 2.4k Aufrufe 2 Beobachtet
  • Ä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.
  • S Offline
    S Offline
    stefantaust
    schrieb am zuletzt editiert von Jey Cee
    #1

    Hallo,
    ich habe ein Projekt von einer Rolladensteuerung am laufen.

    https://github.com/ansgarschulte/heytech_rest_endpoint

    alles läuft soweit und der Rolladen ist dann über z.B. http://SERVER-IP:3000/rolladen/kueche/down ansprechbar

    Leider wurde die Umsetzung in Openhab weitergeführt und mit "HTTP Binding" erledigt

    Welchen Adapter benötige ich hier beim IObroker um es steuern zu können?

    Besten Dank
    Stefan

    1 Antwort Letzte Antwort
    0
    • Jey CeeJ Online
      Jey CeeJ Online
      Jey Cee
      Developer
      schrieb am zuletzt editiert von
      #2

      Was du suchst nennt sich http request. Ich weiss gerade nicht ob das Modul request schon standardmässig mit dem JS Adapter kommt falls nicht muss es noch in der Konfiguration unter Zusätzliche Module eingetragen werden.

      //Erzeugt beim start des Skripts ein objekt down in javascript.x, x gibt die Instanz nummer an
      createState('down', false, {
        read: true, 
        write: true, 
        desc: "Beschreibung", 
        type: "boolean", 
        def: false
      });
      
      on({id: 'javascript.x.down', val: true},
         function(){
                  var request = require('request');
                  var options = {url: 'http://SERVER-IP:3000/rolladen/kueche/down ', method: 'GET', headers: { 'User-Agent': 'request' }};
                  request(options, function(error, response, body) {
                               //hier kann die Antwort ausgewertet werden wenn nötig
                               if (!error && response.statusCode == 200) {
                                            var info = JSON.parse(body);  // info ist ein Objekt
                                           var x = info.xy;  // xy ist eine Eigenschaft des Objektes info
                                }
      });
      

      Persönlicher Support
      Spenden -> paypal.me/J3YC33

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        stefantaust
        schrieb am zuletzt editiert von
        #3

        Danke für die schnelle antwort :-)

        aber steh grad irgendwie am schlauch? Wo kann ich die zusätzlichen Module eintragen?

        1 Antwort Letzte Antwort
        0
        • Jey CeeJ Online
          Jey CeeJ Online
          Jey Cee
          Developer
          schrieb am zuletzt editiert von
          #4

          57889a92-91bd-4d8b-839a-6fd43014527c-image.png

          Persönlicher Support
          Spenden -> paypal.me/J3YC33

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            stefantaust
            schrieb am zuletzt editiert von
            #5

            Ah ok, verstehe.

            unter Skripte lege ich mir jeweils für jeden Befehl ein angepasstes Skript an... up ,down, stop usw...
            und das ganze noch für jeden Rollo

            ich bekomme auch noch den Status zurück, wo der Rollo gerade steht (8Kanäle)

            [ "100", "50", "0", "100", "100", "100", "100", "100" ]

            rollo 1 ist 100 (komplett offen)
            rollo 2 ist 50 (50% offen)
            rollo 3 ist 0 (komplett geschlossen)

            Wie ich bekomme ich diese werte einzeln als Variable?

            Danke
            Stefan

            Jey CeeJ 1 Antwort Letzte Antwort
            0
            • S stefantaust

              Ah ok, verstehe.

              unter Skripte lege ich mir jeweils für jeden Befehl ein angepasstes Skript an... up ,down, stop usw...
              und das ganze noch für jeden Rollo

              ich bekomme auch noch den Status zurück, wo der Rollo gerade steht (8Kanäle)

              [ "100", "50", "0", "100", "100", "100", "100", "100" ]

              rollo 1 ist 100 (komplett offen)
              rollo 2 ist 50 (50% offen)
              rollo 3 ist 0 (komplett geschlossen)

              Wie ich bekomme ich diese werte einzeln als Variable?

              Danke
              Stefan

              Jey CeeJ Online
              Jey CeeJ Online
              Jey Cee
              Developer
              schrieb am zuletzt editiert von
              #6

              @stefantaust Du kannst das auch alles in ein Skript packen.

              Du musst den "body" parsen, wie du das am besten machen kannst hängt davon ab was dein Rolladen zurück liefert.
              Wenn es JSON ist, ist es ziemlich einfach.
              Zeig mal den Quellcode aus dem Browser wenn du die URL aufrufst.

              Persönlicher Support
              Spenden -> paypal.me/J3YC33

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                stefantaust
                schrieb am zuletzt editiert von stefantaust
                #7

                json.PNG

                roh.PNG

                kopf.PNG

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  stefantaust
                  schrieb am zuletzt editiert von
                  #8

                  Wenn ich den Code einfüge bekomme ich noch einen Fehler

                  script.PNG

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    stefantaust
                    schrieb am zuletzt editiert von stefantaust
                    #9

                    @jey-cee
                    Hallo,
                    das script hab ich jetzt angepasst, und läuft jetzt

                    //Erzeugt beim start des Skripts ein objekt down in javascript.x, x gibt die Instanz nummer an
                    createState('down_galerie', false, {
                      read: true, 
                      write: true, 
                      desc: "Beschreibung", 
                      type: "boolean", 
                      def: false
                    });
                    
                     on({id: 'javascript.0.down_galerie', val: true},
                       function(){
                                var request = require('request');
                                var options = {url: 'http://192.168.1.117:3000/raff/galerie/down', method: 'GET', headers: { 'User-Agent': 'request' }};
                                request(options, function(error, response, body) {
                                             //hier kann die Antwort ausgewertet werden wenn nötig
                                             if (!error && response.statusCode == 200) {
                                                          var info = JSON.parse(body);  // info ist ein Objekt
                                                         var x = info.xy;  // xy ist eine Eigenschaft des Objektes info
                                              }
                    })});
                    

                    Bei den Objekten liefert er mir jetzt den Wert "false"
                    In der VIS habe ich mir teinen Taster erstellt der beim Drücken "true" liefert

                    Der Rollo fährt dann runter, alles gut soweit, aber es stürzt bei Instanzen der javascript.0 Adapter ab und die Ampel geht auf Rot
                    Nach kurzer Zeit geht die Ampel wieder auf Grün
                    Im Log steht folgenden:

                    Caught	2019-03-07 22:39:31.409	error	by controller[0]: at Object.onceWrapper (events.js:313:30)
                    Caught	2019-03-07 22:39:31.409	error	by controller[0]: at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1083:12)
                    Caught	2019-03-07 22:39:31.409	error	by controller[0]: at Request.emit (events.js:211:7)
                    Caught	2019-03-07 22:39:31.409	error	by controller[0]: at emitOne (events.js:116:13)
                    Caught	2019-03-07 22:39:31.409	error	by controller[0]: at Request.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1161:10)
                    Caught	2019-03-07 22:39:31.409	error	by controller[0]: at Request.emit (events.js:214:7)
                    Caught	2019-03-07 22:39:31.408	error	by controller[0]: at emitTwo (events.js:126:13)
                    Caught	2019-03-07 22:39:31.408	error	by controller[0]: at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22)
                    Caught	2019-03-07 22:39:31.408	error	by controller[0]: at Request._callback (script.js.common.rollo1:38:55)
                    Caught	2019-03-07 22:39:31.407	error	by controller[0]: at JSON.parse (<anonymous>:null:null)
                    Caught	2019-03-07 22:39:31.407	error	by controller[0]: SyntaxError: Unexpected token O in JSON at position 0
                    

                    Wo liegt hier noch mein Fehler?

                    Besten Dank
                    Stefan

                    1 Antwort Letzte Antwort
                    0
                    • Jey CeeJ Online
                      Jey CeeJ Online
                      Jey Cee
                      Developer
                      schrieb am zuletzt editiert von
                      #10

                      Ändere mal

                      var x = info.xy
                      

                      In

                      var x = info[0]
                      Log(x)
                      

                      Persönlicher Support
                      Spenden -> paypal.me/J3YC33

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        stefantaust
                        schrieb am zuletzt editiert von stefantaust
                        #11

                        @Jey-Cee
                        Die Ampel geht immer noch auf Rot

                        javascript.0	2019-03-08 08:53:45.285	info	script.js.common.rollo1: registered 3 subscriptions and 0 schedules
                        javascript.0	2019-03-08 08:53:45.285	info	Start javascript script.js.common.rollo1
                        javascript.0	2019-03-08 08:53:45.285	info	script.js.common.Dimplex_Meldungen: registered 3 subscriptions and 0 schedules
                        javascript.0	2019-03-08 08:53:45.285	info	Start javascript script.js.common.Dimplex_Meldungen
                        javascript.0	2019-03-08 08:53:45.284	info	script.js.common.Dimplex_Spreizung: registered 1 subscription and 0 schedules
                        javascript.0	2019-03-08 08:53:45.284	info	Start javascript script.js.common.Dimplex_Spreizung
                        javascript.0	2019-03-08 08:53:44.890	info	received all objects
                        javascript.0	2019-03-08 08:53:42.412	info	received all states
                        javascript.0	2019-03-08 08:53:41.354	info	requesting all objects
                        javascript.0	2019-03-08 08:53:41.354	info	requesting all states
                        javascript.0	2019-03-08 08:53:41.353	info	starting. Version 3.6.4 in /opt/iobroker/node_modules/iobroker.javascript, node: v8.11.1
                        host.ioBroker-RasPi	2019-03-08 08:53:35.630	info	instance system.adapter.javascript.0 started with pid 6169
                        host.ioBroker-RasPi	2019-03-08 08:53:05.596	info	Restart adapter system.adapter.javascript.0 because enabled
                        host.ioBroker-RasPi	2019-03-08 08:53:05.596	error	instance system.adapter.javascript.0 terminated with code 0 (OK)
                        Caught	2019-03-08 08:53:05.596	error	by controller[0]: at Object.onceWrapper (events.js:313:30)
                        Caught	2019-03-08 08:53:05.595	error	by controller[0]: at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1083:12)
                        Caught	2019-03-08 08:53:05.595	error	by controller[0]: at Request.emit (events.js:211:7)
                        Caught	2019-03-08 08:53:05.595	error	by controller[0]: at emitOne (events.js:116:13)
                        Caught	2019-03-08 08:53:05.595	error	by controller[0]: at Request.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1161:10)
                        Caught	2019-03-08 08:53:05.595	error	by controller[0]: at Request.emit (events.js:214:7)
                        Caught	2019-03-08 08:53:05.595	error	by controller[0]: at emitTwo (events.js:126:13)
                        Caught	2019-03-08 08:53:05.595	error	by controller[0]: at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22)
                        Caught	2019-03-08 08:53:05.594	error	by controller[0]: at Request._callback (script.js.common.rollo1:18:55)
                        Caught	2019-03-08 08:53:05.594	error	by controller[0]: at JSON.parse (<anonymous>:null:null)
                        Caught	2019-03-08 08:53:05.593	error	by controller[0]: SyntaxError: Unexpected token O in JSON at position 0
                        
                        Jey CeeJ 1 Antwort Letzte Antwort
                        0
                        • S stefantaust

                          @Jey-Cee
                          Die Ampel geht immer noch auf Rot

                          javascript.0	2019-03-08 08:53:45.285	info	script.js.common.rollo1: registered 3 subscriptions and 0 schedules
                          javascript.0	2019-03-08 08:53:45.285	info	Start javascript script.js.common.rollo1
                          javascript.0	2019-03-08 08:53:45.285	info	script.js.common.Dimplex_Meldungen: registered 3 subscriptions and 0 schedules
                          javascript.0	2019-03-08 08:53:45.285	info	Start javascript script.js.common.Dimplex_Meldungen
                          javascript.0	2019-03-08 08:53:45.284	info	script.js.common.Dimplex_Spreizung: registered 1 subscription and 0 schedules
                          javascript.0	2019-03-08 08:53:45.284	info	Start javascript script.js.common.Dimplex_Spreizung
                          javascript.0	2019-03-08 08:53:44.890	info	received all objects
                          javascript.0	2019-03-08 08:53:42.412	info	received all states
                          javascript.0	2019-03-08 08:53:41.354	info	requesting all objects
                          javascript.0	2019-03-08 08:53:41.354	info	requesting all states
                          javascript.0	2019-03-08 08:53:41.353	info	starting. Version 3.6.4 in /opt/iobroker/node_modules/iobroker.javascript, node: v8.11.1
                          host.ioBroker-RasPi	2019-03-08 08:53:35.630	info	instance system.adapter.javascript.0 started with pid 6169
                          host.ioBroker-RasPi	2019-03-08 08:53:05.596	info	Restart adapter system.adapter.javascript.0 because enabled
                          host.ioBroker-RasPi	2019-03-08 08:53:05.596	error	instance system.adapter.javascript.0 terminated with code 0 (OK)
                          Caught	2019-03-08 08:53:05.596	error	by controller[0]: at Object.onceWrapper (events.js:313:30)
                          Caught	2019-03-08 08:53:05.595	error	by controller[0]: at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1083:12)
                          Caught	2019-03-08 08:53:05.595	error	by controller[0]: at Request.emit (events.js:211:7)
                          Caught	2019-03-08 08:53:05.595	error	by controller[0]: at emitOne (events.js:116:13)
                          Caught	2019-03-08 08:53:05.595	error	by controller[0]: at Request.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1161:10)
                          Caught	2019-03-08 08:53:05.595	error	by controller[0]: at Request.emit (events.js:214:7)
                          Caught	2019-03-08 08:53:05.595	error	by controller[0]: at emitTwo (events.js:126:13)
                          Caught	2019-03-08 08:53:05.595	error	by controller[0]: at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22)
                          Caught	2019-03-08 08:53:05.594	error	by controller[0]: at Request._callback (script.js.common.rollo1:18:55)
                          Caught	2019-03-08 08:53:05.594	error	by controller[0]: at JSON.parse (<anonymous>:null:null)
                          Caught	2019-03-08 08:53:05.593	error	by controller[0]: SyntaxError: Unexpected token O in JSON at position 0
                          
                          Jey CeeJ Online
                          Jey CeeJ Online
                          Jey Cee
                          Developer
                          schrieb am zuletzt editiert von
                          #12

                          @stefantaust man bin ich Blind.

                          var info = JSON.parse(body)
                          

                          klappt nicht. Versuch es mal so:

                          var info = JSON.parse(JSON.stringify(body))
                          

                          Persönlicher Support
                          Spenden -> paypal.me/J3YC33

                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            stefantaust
                            schrieb am zuletzt editiert von stefantaust
                            #13

                            @Jey-Cee du, es geht

                            hab die erste änderung wieder rückgängig gemacht

                            jetzt fehlt mir nur noch der status wo der rollo steht wie am anfang im thema

                            1 Antwort Letzte Antwort
                            0
                            • Jey CeeJ Online
                              Jey CeeJ Online
                              Jey Cee
                              Developer
                              schrieb am zuletzt editiert von
                              #14

                              Das ist nicht ganz richtig, es funktioniert. Nur "Log" muss eigentlich "log" sein, die Automatische großschreibung am Handy ist schuld.

                              Persönlicher Support
                              Spenden -> paypal.me/J3YC33

                              1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                stefantaust
                                schrieb am zuletzt editiert von
                                #15

                                @Jey-Cee ah ok 👍

                                jetzt fehlt nur noch der status. hättest du da was für mich?

                                Vielen Dank für deine Hilfe. Ohne würds nicht gehen ☺

                                1 Antwort Letzte Antwort
                                0
                                • Jey CeeJ Online
                                  Jey CeeJ Online
                                  Jey Cee
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #16

                                  Leg dir Objekte an sowie für down, nur muss der type "number" sein und def kann weg.

                                  Code um den Status zu schreiben:

                                  setState('javascript.0.status_rollo1', info[0];
                                  setState('javascript.0.status_rollo2', info[1];
                                  

                                  und so weiter.

                                  Soweit klar?

                                  Persönlicher Support
                                  Spenden -> paypal.me/J3YC33

                                  1 Antwort Letzte Antwort
                                  0
                                  • S Offline
                                    S Offline
                                    stefantaust
                                    schrieb am zuletzt editiert von
                                    #17

                                    ah, ich glaub ich hab mich falsch ausgedrückt, sorry
                                    Es geht um die Öffnungsprozente die auf diese Adresse auflaufen
                                    http://192.168.1.117:3000/heytech/oeffnungsprozent
                                    am Anfang im Beitrag, da war die Frage nach dem Quelltext

                                    1 Antwort Letzte Antwort
                                    0
                                    • Jey CeeJ Online
                                      Jey CeeJ Online
                                      Jey Cee
                                      Developer
                                      schrieb am zuletzt editiert von
                                      #18

                                      Das hab ich schon verstanden. Das vorgehen ist genau gleich wie für den Befehl Down, nur halt mit der Erweiterung das du den Status in ein Objekt schreibst.

                                      Persönlicher Support
                                      Spenden -> paypal.me/J3YC33

                                      1 Antwort Letzte Antwort
                                      0
                                      • S Offline
                                        S Offline
                                        stefantaust
                                        schrieb am zuletzt editiert von
                                        #19

                                        hier ist mein Code

                                        //Erzeugt beim start des Skripts ein objekt down in javascript.x, x gibt die Instanz nummer an
                                        createState('prozent_galerie', {
                                          read: true, 
                                          write: true, 
                                          desc: "Galerie_Prozent", 
                                          type: "number"
                                        });
                                        
                                        setState('javascript.0.prozent_galerie', info[1],
                                           function(){
                                                    var request = require('request');
                                                    var options = {url: 'http://192.168.1.117:3000/heytech/oeffnungsprozent', method: 'GET', headers: { 'User-Agent': 'request' }};
                                                    request(options, function(error, response, body) {
                                                                 //hier kann die Antwort ausgewertet werden wenn nötig
                                                                 if (!error && response.statusCode == 200) {
                                                                              var info = JSON.parse(JSON.stringify(body));  // info ist ein Objekt
                                                                                var x = info[0];
                                                                                log(x);
                                                                 }
                                        })});
                                        

                                        und hier der Fehler

                                        10:28:26.270	[info]	javascript.0 Stop script script.js.common.prozent
                                        10:28:26.416	[info]	javascript.0 Start javascript script.js.common.prozent
                                        10:28:26.416	[error]	javascript.0 script.js.common.prozent: script.js.common.prozent:9
                                        10:28:26.416	[error]	javascript.0 at script.js.common.prozent:9:42
                                        

                                        Der Galerie Rollo ist die 2. Prozentzahl

                                        1 Antwort Letzte Antwort
                                        0
                                        • Jey CeeJ Online
                                          Jey CeeJ Online
                                          Jey Cee
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #20
                                          //Erzeugt beim start des Skripts ein objekt down in javascript.x, x gibt die Instanz nummer an
                                          createState('prozent_galerie', {
                                            read: true, 
                                            write: true, 
                                            desc: "Galerie_Prozent", 
                                            type: "number"
                                          });
                                           
                                          
                                          function(){
                                                      var request = require('request');
                                                      var options = {url: 'http://192.168.1.117:3000/heytech/oeffnungsprozent', method: 'GET', headers: { 'User-Agent': 'request' }};
                                                      request(options, function(error, response, body) {
                                                                   //hier kann die Antwort ausgewertet werden wenn nötig
                                                                   if (!error && response.statusCode == 200) {
                                                                                var info = JSON.parse(JSON.stringify(body));  // info ist ein Objekt
                                                                                  var x = info[0];
                                                                                 setState('javascript.0.prozent_galerie', info[1])
                                                                                  
                                                                   }
                                          })};
                                          

                                          Persönlicher Support
                                          Spenden -> paypal.me/J3YC33

                                          1 Antwort Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          492

                                          Online

                                          32.8k

                                          Benutzer

                                          82.7k

                                          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