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. ioBroker Allgemein
  4. Korrekte Liste der Entgangenen Anrufe Mittels Fritzbox-Adapter und einer Skripte-Erweiterung ermitteln

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Korrekte Liste der Entgangenen Anrufe Mittels Fritzbox-Adapter und einer Skripte-Erweiterung ermitteln

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
22 Beiträge 4 Kommentatoren 4.9k Aufrufe
  • Ä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.
  • HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #9

    @Semenchkare:

    Der Datenpunkt "Entgangene Anrufe" existiert, aber leer. `
    Dito :(

    Gruß

    Rainer

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

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

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Antwort Letzte Antwort
    0
    • ruhr70R Offline
      ruhr70R Offline
      ruhr70
      schrieb am zuletzt editiert von
      #10

      Ich schau mal.

      Adapter: Fritzbox, Unify Circuit
      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #11

        @Semenchkare:

        Hallo,

        javascript-0 2016-10-23 18:10:03.652 warn State "javascript." + instance + ".ErfolgloseAnrufe" not found

        Irgendwas stimmt im Script noch nicht…. `

        Die Zeile:

           setState('javascript." + instance + ".ErfolgloseAnrufe',ergebnis);
        

        muss gegen diese getauscht werden:

           setState('javascript.' + instance + '.ErfolgloseAnrufe',ergebnis);
        
        

        Ich hatte in Javascript Instanz 2 getestet. Um es für alle Instanzen gültig zu haben, hatte ich die 2 gegen "+ instance +" ersetzt.

        Der String beginnt aber mit Hochkomma statt mit Gänsefüßchen.

        An der Logzeile, die ich oben stehen lassen ahbe, sieht man das schon.

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Antwort Letzte Antwort
        0
        • ruhr70R Offline
          ruhr70R Offline
          ruhr70
          schrieb am zuletzt editiert von
          #12

          @Semenchkare:

          ich habe hier diverse Anrufe in der Fritzbox-Adapter-Liste, die werden alle rausgelöscht, obwohl zB ein AB-Anruf und auch ein normaler Missed-Call ausgelöst war.

          Auch wird der Inhalt des Datenpunkts bei nochmaligem Anruf nicht erneuert…

          Irgendwas stimmt im Script noch nicht.... `

          Nach der Beschreibung wird das Skript auch mit korrigierten Gänsefüßchen nicht funktionieren.

          Als ob bei Dir im JSON der rote Pfeil anders beschrieben wäre:

          ' **->X**'
          

          Adapter: Fritzbox, Unify Circuit
          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

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

            es läuft jetzt was:

            Das ist der Inhalt vom neuen Datenpunkt:

            [null,null,{"date":"23.10.16 18:26:21","externalNumber":"01xxxxxxxxxx","callSymbolColor":" ->>","extensionLine":"40","ownNumber":"2096110","lineType":"SIP0","durationForm":" 5"},null,null,null,null,null,null,null,null,null]

            aber der nicht auf den AB gelandeten Anruf wird nicht angezeigt…

            jetzt mal die Fritzadapter-json:

            [{"date":"23.10.16 19:27:10","externalNumber":"xxxxxxxxx","callSymbolColor":" ->X","extensionLine":"","ownNumber":"yyyyy","lineType":"SIP2","durationForm":" -"},{"date":"23.10.16 18:34:21","externalNumber":"xxxxxxxx","callSymbolColor":" ->X","extensionLine":"","ownNumber":"yyyy","lineType":"SIP0","durationForm":" -"},{"date":"23.10.16 18:26:21","externalNumber":"xxxxxxx","callSymbolColor":" ->>","extensionLine":"40","ownNumber":"yyyyy","lineType":"SIP0","durationForm":" 5"},{"date":"23.10.16 18:10:02","externalNumber":"xxxxxxx","callSymbolColor":" ->X","extensionLine":"","ownNumber":"yyyyyy","lineType":"SIP3","durationForm":" -"},{"date":"23.10.16 15:00:53","externalNumber":"xxxxxxx","callSymbolColor":"<<- ","extensionLine":"13","ownNumber":"yyyyyyy","lineType":"SIP0","durationForm":" 22:26"},{"date":"23.10.16 14:38:15","externalNumber":"xxxxxxx","callSymbolColor":"<<- ","extensionLine":"13","ownNumber":"yyyyyyyy","lineType":"SIP0","durationForm":" 20"},{"date":"23.10.16 14:36:57","externalNumber":"xxxxxx","callSymbolColor":"<<- ","extensionLine":"13","ownNumber":"yyyyyyy","lineType":"SIP0","durationForm":" 18:35"},{"date":"23.10.16 14:18:12","externalNumber":"xxxxxxx","callSymbolColor":"<<- ","extensionLine":"13","ownNumber":"yyyyyyyy","lineType":"SIP0","durationForm":" 9:40"},{"date":"23.10.16 14:08:13","externalNumber":"xxxxxxxxxx","callSymbolColor":"<<- ","extensionLine":"13","ownNumber":"yyyyyyyyy","lineType":"SIP0","durationForm":" 14"},{"date":"23.10.16 14:07:52","externalNumber":"xxxxxxxxxx","callSymbolColor":" ->>","extensionLine":"13","ownNumber":"yyyyyyyy","lineType":"SIP0","durationForm":" 16:49"},{"date":"23.10.16 13:24:06","externalNumber":"xxxxxxxxxx","callSymbolColor":"<<- ","extensionLine":"15","ownNumber":"yyyyyyyy","lineType":"SIP0","durationForm":"2:33:10"},{"date":"23.10.16 08:53:55","externalNumber":"xxxxxxxx","callSymbolColor":" ->X","extensionLine":"","ownNumber":"yyyyyyyy","lineType":"SIP4","durationForm":" 13"}]

            Viele Grüße

            Semenchkare

            raspberry 5 8GB mit iobroker,
            raspberry 5 8GB mit Raspberrymatic

            1 Antwort Letzte Antwort
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              schrieb am zuletzt editiert von
              #14

              @Semenchkare: `

              Sieht der JSON String vom Fritzbox Adapter wirklich so aus? D.h. mit den Backslashs im String ()?

              Zum schnellen Test mal die Zeile:

               `if(jsonAll[i].callSymbolColor != ' **->X**') {`
              
              gegen:
              `~~[code]~~        if(jsonAll[i].callSymbolColor != ' **->X**') {`
              
              tauschen.
              
              Alternativ (wahrscheinlich beste Variante. Bei mir getestet und OK):
              
              `~~[code]~~        if(jsonAll[i].callSymbolColor.indexOf("->X") == -1) {`[/i][/code][/i][/code][/i]
              

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

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

                Funktioniert jetzt mit der "besten Variante"!

                nun lass ich noch den vcard-Apdapter drüberlaufen und kümmer mich danach um das widget, an dem ich wohl noch Anpassungen vornehmen muss…

                Viele Grüße

                Semenchkare

                raspberry 5 8GB mit iobroker,
                raspberry 5 8GB mit Raspberrymatic

                1 Antwort Letzte Antwort
                0
                • ruhr70R Offline
                  ruhr70R Offline
                  ruhr70
                  schrieb am zuletzt editiert von
                  #16

                  Eine Variante, bei der man komplett flexibel ist und nicht schon aufgebaute Listen wieder auseinandernehmen muss, ist der Datenpunkt:

                  fritzbox.0.cdr.missedJSON

                  Dort findet man alle Infos am Ende eines Gesprächs als JSON, inkl. der Vorbereitung von TXT und HTML Ausgaben.

                  Vom Prinzip würde das so funktionieren:

                  • Logik, ob das Gespräch relevant ist (verpasst und Gespräche zum AB)

                  • Zusammenbau des HTML aus den mitgelieferten Daten

                  • eigene Ereignisliste in beliebiger Länge

                  Adapter: Fritzbox, Unify Circuit
                  Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

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

                    hallo,

                    ich mach mal oben weiter, habe den json jetzt geändert d.h. mit vcard die Namen eingebaut und muss jetzt das widget anpassen…

                    Das mit dem CDRMisseJSON zeigt aber wieder nur die "missed" calls an wenn dann müsste man die "CDR.All" nehmen.

                    Viele Grüße

                    Semenchkare

                    raspberry 5 8GB mit iobroker,
                    raspberry 5 8GB mit Raspberrymatic

                    1 Antwort Letzte Antwort
                    0
                    • ruhr70R Offline
                      ruhr70R Offline
                      ruhr70
                      schrieb am zuletzt editiert von
                      #18

                      @Semenchkare:

                      ich mach mal oben weiter, habe den json jetzt geändert d.h. mit vcard die Namen eingebaut und muss jetzt das widget anpassen… `

                      Hat es funktioniert?

                      @Semenchkare:

                      Das mit dem CDRMisseJSON zeigt aber wieder nur die "missed" calls an wenn dann müsste man die "CDR.All" nehmen. `

                      Ups… stimmt.

                      der richtige Datenpunkt wäre: fritzbox.0.cdr.json

                      Adapter: Fritzbox, Unify Circuit
                      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

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

                        Hallo Ruhr 70,

                        Du bist der Hammer!

                        Ja, es hat funktioniert! Ich habe den von Dir "erschaffenen" Datenpunkt durch den VCD-Adapter laufen lassen, siehe da, der dortige Datenpunkt entspricht Deinem, hat aber die Telefonnummern ersetzt durch Namen! Super!

                        Ich habe dann das Widget importiert - und soweit möglich - geändert. D.h. nicht benötigte Spalten via "Eigenschaften" rausgenommen und -WICHTIG- den Datenpunkt auf den VCD Datenpunkt geändert.

                        [{"tpl":"tplTableBody","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"static_value":"[{\"Title\": \"first\", \"Value\": 1, \"_Description\": \"Value1\"}, {\"Title\": \"second\", \"Value\": 2, \"_Description\": \"Value2\"}]","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"colCount":"3","table_oid":"vcard.0.Outputs.ReplacedPhoneNumbersCh5","g_header_§0":true,"colWidth2":"22%","colAttr2":"","colName3":" ","colWidth3":"5%","colName4":"Nbst","colWidth4":"5%","colName7":"Dauer","colAttr6":"","colWidth6":"8%","colName6":"Ltg.","colWidth7":"15%","colName2":" ","colName1":" ","hide_header":true,"colWidth1":"20%","views":null,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide"},"style":{"left":"278px","top":"651px","width":"269px","height":"160px","color":"#ffffff","background-color":"","font-family":"Arial, Helvetica, sans-serif","z-index":"1","font-size":"small"},"widgetSet":"basic"}]
                        
                        

                        Heraus kommt -bis jetzt- folgendes Bild:

                        ~~![](</s><URL url=)http://www.joe-lion.de/old/korrekte-Liste.JPG" />

                        Was ich momentan nicht "hinbekomme":

                        1. Zeitanzeige ohne Sekunden (Platzbedarf) kann man da im funktionierenden Script ändern, damit die Zeit im Datenpunkt ohne Sekunden ankommt??
                        `createState('ErfolgloseAnrufe', '');
                        
                        function listeBereinigen(jsonAll){
                            for (var i = 0; i < jsonAll.length; i++) {
                                if(jsonAll[i].callSymbolColor.indexOf("->X") == -1) {
                                    if(jsonAll[i].extensionLine != "40") {
                                        delete jsonAll[i];
                                        log("del: " + i);
                                    }
                                }
                            }
                            return JSON.stringify(jsonAll);
                        }
                        
                        on({id: 'fritzbox.0.history.allTableJSON'}, function (obj) {  
                           var ergebnis = listeBereinigen(JSON.parse(obj.state.val));
                           setState('javascript.' + instance + '.ErfolgloseAnrufe',ergebnis);
                        });`
                        
                        2\. Ich kann den Zellenhintergrund (hellgrau/dunkelgrau) in VIS nicht in "durchsichtig" verändern. Wo kann ich das tun? (wäre viel universeller, wenn es durchsichtig anstatt hellgrau-dunkelgrau wäre)
                        
                        3\. Ich kann die Schriftfarbe nicht in "weiß" ändern..., zumindest nicht in den "VIS-Eigenschaften" Wenn ich da was ändere, bewirke ich "nichts". Kommt da Änderung bereits mit dem Code vom Datenpunkt rüber?
                        
                        hast Du hierfür noch "Abhilfen"
                        
                        Untertänigsten Dank![/i][/i][/i]
                        ```~~

                        Viele Grüße

                        Semenchkare

                        raspberry 5 8GB mit iobroker,
                        raspberry 5 8GB mit Raspberrymatic

                        1 Antwort Letzte Antwort
                        0
                        • ruhr70R Offline
                          ruhr70R Offline
                          ruhr70
                          schrieb am zuletzt editiert von
                          #20

                          Ich würde noch die Spalte Gesprächsdauer mit reinnehmen. Dann siehst Du in der Liste, ob jemand draufgesprochen hat (Anruf länger als x Sekunden) oder bei der Ansage aufgelegt hat.

                          Die Gespräche, bei denen eine Nachricht hinterlassen wurde (Anzahl Sekunden nach Ansagedauer) könnte man jetzt auch wieder aus Deiner Liste rausfiltern.

                          @Semenchkare:

                          1. Zeitanzeige ohne Sekunden (Platzbedarf) kann man da im funktionierenden Script ändern, damit die Zeit im Datenpunkt ohne Sekunden ankommt?? `

                          Ich habe noch eine Funktion eingebaut, in der Du Dir das Datum und die Zeit kürzen kannst, wie Du willst.

                          Im Beispiel habe ich die Jahreszahl und die Sekunden rausgenommen.

                          ! ```
                          createState('ErfolgloseAnrufe', ''); ! function kuerzeDatum(str) { var datumStr = str.substr(0,5); // Datum kürzen var zeitStr = str.substr(9,5); // Zeit kürzen return datumStr + " / " + zeitStr; } ! function listeBereinigen(jsonAll){ for (var i = 0; i < jsonAll.length; i++) { jsonAll[i].date = kuerzeDatum(jsonAll[i].date); // Datum und Zeit kürzen if(jsonAll[i].callSymbolColor.indexOf("->X") == -1) { if(jsonAll[i].extensionLine != "40") { delete jsonAll[i]; log("del: " + i); } } } return JSON.stringify(jsonAll); } ! on({id: 'fritzbox.0.history.allTableJSON'}, function (obj) { var ergebnis = listeBereinigen(JSON.parse(obj.state.val)); setState('javascript.' + instance + '.ErfolgloseAnrufe',ergebnis); });
                          ! [quote]
                          ! 2. Ich kann den Zellenhintergrund (hellgrau/dunkelgrau) in VIS nicht in "durchsichtig" verändern. Wo kann ich das tun? (wäre viel universeller, wenn es durchsichtig anstatt hellgrau-dunkelgrau wäre)
                          ! 3. Ich kann die Schriftfarbe nicht in "weiß" ändern..., zumindest nicht in den "VIS-Eigenschaften" Wenn ich da was ändere, bewirke ich "nichts". Kommt da Änderung bereits mit dem Code vom Datenpunkt rüber?

                          ! Hier müssen die Widgets/CSS Experten ran.
                          ! Stell die Frage am besten im Forum unter VIS/Widgets.
                          ! Was jetzt sonst noch machbar wäre, das Skript oben so umbauen, dass dann statt dem JSON wieder eine HTML Tabelle erzeugt wird.[/i][/i][/i][/i][/i]

                          Adapter: Fritzbox, Unify Circuit
                          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            Semenchkare
                            schrieb am zuletzt editiert von
                            #21

                            Hallo,

                            vielen herzlichen Dank! Ich habe jetzt auch noch die Zeit in eine Spalte nach dem Symbol angefügt, wie von Dir vorgeschlagen. Klappt bestens!

                            Funktional habe ich nun alles, was ich mir wünsche!

                            Danke nochmals, alleine hätte ich die Funktion so nicht hinbekommen.

                            Ich gehe nun ins Vis-Forum, vielleicht bekomme ich/bzw. wir das mit dem Zellenhintergrund da auch noch hin.

                            Viele Grüße

                            Semenchkare

                            raspberry 5 8GB mit iobroker,
                            raspberry 5 8GB mit Raspberrymatic

                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              Semenchkare
                              schrieb am zuletzt editiert von
                              #22

                              Hallo,

                              Das Skript läuft nun einige Wochen/Monate, und auch das Widget wird in gewünschter Form dargestellt. Diese Anzeige ist eine Verbesserung um Welten gegenüber zum vorigen Zustand.

                              Ich hätte noch einen kleinen Verbesserungsvorschlag:

                              Erfahrungsgemäß finden viele zustandegekommene Gespräche von intern nach außen oder umgekehrt statt. Dies sorgt dafür, dass die Liste der erfolglosen Anrufe relativ schnell wieder "vom Schirm verschwindet", da ja nur ca. 12 Anrufe auf der Fritzbox-Liste geführt werden.

                              Für mich jetzt folgende Frage:

                              Wenn die Liste bzw. der Datenpunkt im Javascript "ErfolgloseAnrufe" nichts mehr anzeigt, (im Datenpunkt alles als "null" gekennzeichnet),

                              wäre es dann möglich, genau in diesem Fall auf einen anderen Datenpunkt als ursprung zu nehmen? Beispielsweise: fritzbox.0.cdr.missedJSON statt der leeren Box anzeigen zu lassen?

                              hier das bisheriges script von ruhr70

                               `createState('ErfolgloseAnrufe', '');
                              
                                  function kuerzeDatum(str) {
                                      var datumStr = str.substr(0,6); // Datum kürzen
                                      var zeitStr = str.substr(9,5);  // Zeit kürzen
                                      return datumStr + ": " + zeitStr;
                                  }
                              
                                  function listeBereinigen(jsonAll){
                                      for (var i = 0; i < jsonAll.length; i++) {
                                          jsonAll[i].date = kuerzeDatum(jsonAll[i].date); // Datum und Zeit kürzen
                                          if(jsonAll[i].callSymbolColor.indexOf("->X") == -1) {
                                              if(jsonAll[i].extensionLine != "40") {
                                                  delete jsonAll[i];
                                                  log("del: " + i);
                                              }
                                          }
                                      }
                                      return JSON.stringify(jsonAll);
                                  }
                              
                                  on({id: 'fritzbox.0.history.allTableJSON'}, function (obj) {  
                                     var ergebnis = listeBereinigen(JSON.parse(obj.state.val));
                                     setState('javascript.' + instance + '.ErfolgloseAnrufe',ergebnis);
                                  });` 
                              
                              zugegebenermaßen, würden mehr als 12 Anrufe geloggt, wäre das Problem vermutlich nicht so schnell auftauchend.
                              
                              Ich könnte mir vorstellen, einen weiteren Datenpunkt in einem weiteren script zu kreieren, zB. "erfolgloseAnrufe2". In diesem findet eine Abfrage statt "Wenn erfolglose Anrufe = Leer, dann verwende  "fritzbox.0.cdr.missedJSON", ansonsten den Inhalt von "erfolgloseAnrufe"
                              
                              Im widget würde ich dann eben "ErfolgloseAnrufe2" als Datenpunkt angeben.
                              
                              Mir ist nur nicht klar, wie ich das mit der if-Abfrage machen soll..[/i][/i][/i][/i][/i]
                              

                              Viele Grüße

                              Semenchkare

                              raspberry 5 8GB mit iobroker,
                              raspberry 5 8GB mit Raspberrymatic

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


                              Support us

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

                              600

                              Online

                              32.6k

                              Benutzer

                              82.2k

                              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