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. Entwicklung
  4. Adapter wird 2x installiert

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

Adapter wird 2x installiert

Geplant Angeheftet Gesperrt Verschoben Entwicklung
gelbnodemodulesinstallationinstanz
55 Beiträge 4 Kommentatoren 3.5k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • OliverIOO OliverIO

    @Baumert #44 sieht schon mal besser aus

    BaumertB Offline
    BaumertB Offline
    Baumert
    schrieb am zuletzt editiert von
    #34

    @OliverIO wird langsam...

    BaumertB 1 Antwort Letzte Antwort
    0
    • BaumertB Baumert

      @OliverIO wird langsam...

      BaumertB Offline
      BaumertB Offline
      Baumert
      schrieb am zuletzt editiert von Baumert
      #35

      @Baumert so...

      6Travis CI.png

      allerdings noch ohne Script "- npm run test:unit", hier gibt es noch Errors. Dies und das doppelte Installieren des Adapters (siehe Post 1) gehe ich morgen an.

      Vielen Dank für Eure Tipps und Unterstützung.

      OliverIOO AlCalzoneA 2 Antworten Letzte Antwort
      0
      • BaumertB Baumert

        @Baumert so...

        6Travis CI.png

        allerdings noch ohne Script "- npm run test:unit", hier gibt es noch Errors. Dies und das doppelte Installieren des Adapters (siehe Post 1) gehe ich morgen an.

        Vielen Dank für Eure Tipps und Unterstützung.

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von
        #36

        @Baumert :+1:

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        1 Antwort Letzte Antwort
        0
        • BaumertB Baumert

          @Baumert so...

          6Travis CI.png

          allerdings noch ohne Script "- npm run test:unit", hier gibt es noch Errors. Dies und das doppelte Installieren des Adapters (siehe Post 1) gehe ich morgen an.

          Vielen Dank für Eure Tipps und Unterstützung.

          AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          schrieb am zuletzt editiert von
          #37

          @Baumert sagte in Adapter wird 2x installiert:

          allerdings noch ohne Script "- npm run test:unit", hier gibt es noch Errors.

          Dann lass das raus. Der Integration Test ist wichtiger.

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          OliverIOO 1 Antwort Letzte Antwort
          0
          • AlCalzoneA AlCalzone

            @Baumert sagte in Adapter wird 2x installiert:

            allerdings noch ohne Script "- npm run test:unit", hier gibt es noch Errors.

            Dann lass das raus. Der Integration Test ist wichtiger.

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von
            #38

            @AlCalzone
            sollte er nicht, da sein Adapter noch nicht kompatibel mit dem compact mode ist.
            da muss er noch reparieren

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            AlCalzoneA 1 Antwort Letzte Antwort
            0
            • OliverIOO OliverIO

              @AlCalzone
              sollte er nicht, da sein Adapter noch nicht kompatibel mit dem compact mode ist.
              da muss er noch reparieren

              AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von AlCalzone
              #39

              @OliverIO Hast Recht, ich habs gerade gesehen:

              Error: The unload callback was not called within the timeout
              Error: The adapter's main file must export a function in compact mode!
              

              Beides valide Fehler, die es zu beheben gilt.

              @Baumert Was hast du eigentlich für eine Vorlage verwendet? Einige deiner Probleme hier sollten mit einer aktuellen Vorlage bzw. dem Adapter-Creator gar nicht erst auftreten.

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              1 Antwort Letzte Antwort
              0
              • apollon77A Offline
                apollon77A Offline
                apollon77
                schrieb am zuletzt editiert von
                #40

                Und weil wir schon bei Quasi Reviews hier sind ... bitte schau Dir auch mal https://github.com/ioBroker/ioBroker.repositories#development-and-coding-best-practices an ... und überlege was dich betreffen kann ...

                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                BaumertB 1 Antwort Letzte Antwort
                0
                • apollon77A apollon77

                  Und weil wir schon bei Quasi Reviews hier sind ... bitte schau Dir auch mal https://github.com/ioBroker/ioBroker.repositories#development-and-coding-best-practices an ... und überlege was dich betreffen kann ...

                  BaumertB Offline
                  BaumertB Offline
                  Baumert
                  schrieb am zuletzt editiert von Baumert
                  #41

                  @apollon77 @OliverIO Ich mache dies jetzt richtig, der Adapter soll alle Prüfungen bestehen und es soll auch alles andere passen. 'development-and-coding-best-practices' gehe ich jetzt Punkt für Punkt durch und bearbeite es entsprechend.

                  BaumertB 1 Antwort Letzte Antwort
                  1
                  • BaumertB Baumert

                    @apollon77 @OliverIO Ich mache dies jetzt richtig, der Adapter soll alle Prüfungen bestehen und es soll auch alles andere passen. 'development-and-coding-best-practices' gehe ich jetzt Punkt für Punkt durch und bearbeite es entsprechend.

                    BaumertB Offline
                    BaumertB Offline
                    Baumert
                    schrieb am zuletzt editiert von
                    #42

                    Ich habe einen anderen Adapter als Vorlage genommen, da mein Adapter immer umfangreicher wurde, kam es zu den aktuellen Problemen. Ich baue jetzt meinen Adapter noch einmal neu auf und nehme hierzu die Vorlage '...ioBroker.template/JavaScript/'!
                    Kann sein, dass ich hier oder da noch einmal Unterstützung benötige.

                    apollon77A 1 Antwort Letzte Antwort
                    0
                    • BaumertB Baumert

                      Ich habe einen anderen Adapter als Vorlage genommen, da mein Adapter immer umfangreicher wurde, kam es zu den aktuellen Problemen. Ich baue jetzt meinen Adapter noch einmal neu auf und nehme hierzu die Vorlage '...ioBroker.template/JavaScript/'!
                      Kann sein, dass ich hier oder da noch einmal Unterstützung benötige.

                      apollon77A Offline
                      apollon77A Offline
                      apollon77
                      schrieb am zuletzt editiert von
                      #43

                      @Baumert Template ist ok ... aber warum nimmst Du nicht den adapter creator?

                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                      BaumertB 1 Antwort Letzte Antwort
                      0
                      • apollon77A apollon77

                        @Baumert Template ist ok ... aber warum nimmst Du nicht den adapter creator?

                        BaumertB Offline
                        BaumertB Offline
                        Baumert
                        schrieb am zuletzt editiert von
                        #44

                        Hallo, ich habe doch noch eine Frage - ich habe mehrere Funktionen, die über verschiedene Zeitintervall wieder durchlaufen werden sollen. Bis jetzt habe ich es mit Setinterval() in der Funktion main() realisiert, finde es aber nicht geschickt. Gibt es ein Beispielcode, wie ich den zeitlichen Aufruf einer Funktion, z.B. alle 10 Sekunden, vernünftig realisieren kann. Sollte innerhalb der Funktion etwas schief gehen, sollte dies abgefangen werden. Bei SetInterval() wird die Funktion doch immer 'hart' ausgeführt.

                        apollon77A OliverIOO 2 Antworten Letzte Antwort
                        0
                        • BaumertB Baumert

                          Hallo, ich habe doch noch eine Frage - ich habe mehrere Funktionen, die über verschiedene Zeitintervall wieder durchlaufen werden sollen. Bis jetzt habe ich es mit Setinterval() in der Funktion main() realisiert, finde es aber nicht geschickt. Gibt es ein Beispielcode, wie ich den zeitlichen Aufruf einer Funktion, z.B. alle 10 Sekunden, vernünftig realisieren kann. Sollte innerhalb der Funktion etwas schief gehen, sollte dies abgefangen werden. Bei SetInterval() wird die Funktion doch immer 'hart' ausgeführt.

                          apollon77A Offline
                          apollon77A Offline
                          apollon77
                          schrieb am zuletzt editiert von
                          #45

                          @Baumert nimm setTimeout und setzte immer am Ende der Methode einen neuen timeout für den nächsten Lauf. In fehlerfällen must du überlegen ob neuer Lauf oder was auch immer

                          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                          1 Antwort Letzte Antwort
                          0
                          • BaumertB Baumert

                            Hallo, ich habe doch noch eine Frage - ich habe mehrere Funktionen, die über verschiedene Zeitintervall wieder durchlaufen werden sollen. Bis jetzt habe ich es mit Setinterval() in der Funktion main() realisiert, finde es aber nicht geschickt. Gibt es ein Beispielcode, wie ich den zeitlichen Aufruf einer Funktion, z.B. alle 10 Sekunden, vernünftig realisieren kann. Sollte innerhalb der Funktion etwas schief gehen, sollte dies abgefangen werden. Bei SetInterval() wird die Funktion doch immer 'hart' ausgeführt.

                            OliverIOO Offline
                            OliverIOO Offline
                            OliverIO
                            schrieb am zuletzt editiert von
                            #46

                            @Baumert
                            du kannst bei squeezenoderpc schauen
                            ich verwende verschiedene timer

                            Meine Adapter und Widgets
                            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                            Links im Profil

                            BaumertB 1 Antwort Letzte Antwort
                            0
                            • OliverIOO OliverIO

                              @Baumert
                              du kannst bei squeezenoderpc schauen
                              ich verwende verschiedene timer

                              BaumertB Offline
                              BaumertB Offline
                              Baumert
                              schrieb am zuletzt editiert von Baumert
                              #47

                              @OliverIO @apollon77 so, ich habe jetzt meinen Adapter neu aufgebaut -> main.js aus ioBroker.template übernommen und mein Programm dort entsprechend integriert, weiterhin habe ich die Timerfunkionen von setintervall() auf individuellen settimout() geändert.
                              Die Travis-CI Tests:

                              script:
                                - npm run test:package
                                - npm run test:unit
                                - export DEBUG=testing:*
                                - npm run test:integration
                              

                              laufen fehlerfrei durch...
                              7Travis CI.png:+1:

                              Jetzt bin ich allerdings wieder bei meinem ursprünglichen Problem - der Adapter wird, wenn er von GITHUB, installiert wird, 2x im Verzeichnis '.../node_modules/' installiert, 1x mit kleinem b und 1x mit großem B in iobroker:
                              ordner1.png
                              Auszug aus Verzeichnis '.../node_modules/' (sorry für die Darstellung).

                              Instanz kann normal hinzugefügt, startet nach Angabe der Parameter und macht das was er soll. Da doppelte Verzeichnis macht nur Probleme, wenn der Adapter aus der Adapterübersicht gelöscht werden soll. Dabei wird nur der Adapter/Verzeichnis mit dem kleinen 'b' gelöscht, das andere Verzeichnis bleibt und der Adapter kann nicht wieder neu installiert werden, außer man löscht das Verzeichnis manuell über die Konsole.
                              Diese Problem möchte ich noch beheben, habe aber keine Ahnung, wo ich hier angreifen soll.

                              Grüße Thomas

                              OliverIOO 1 Antwort Letzte Antwort
                              0
                              • BaumertB Baumert

                                @OliverIO @apollon77 so, ich habe jetzt meinen Adapter neu aufgebaut -> main.js aus ioBroker.template übernommen und mein Programm dort entsprechend integriert, weiterhin habe ich die Timerfunkionen von setintervall() auf individuellen settimout() geändert.
                                Die Travis-CI Tests:

                                script:
                                  - npm run test:package
                                  - npm run test:unit
                                  - export DEBUG=testing:*
                                  - npm run test:integration
                                

                                laufen fehlerfrei durch...
                                7Travis CI.png:+1:

                                Jetzt bin ich allerdings wieder bei meinem ursprünglichen Problem - der Adapter wird, wenn er von GITHUB, installiert wird, 2x im Verzeichnis '.../node_modules/' installiert, 1x mit kleinem b und 1x mit großem B in iobroker:
                                ordner1.png
                                Auszug aus Verzeichnis '.../node_modules/' (sorry für die Darstellung).

                                Instanz kann normal hinzugefügt, startet nach Angabe der Parameter und macht das was er soll. Da doppelte Verzeichnis macht nur Probleme, wenn der Adapter aus der Adapterübersicht gelöscht werden soll. Dabei wird nur der Adapter/Verzeichnis mit dem kleinen 'b' gelöscht, das andere Verzeichnis bleibt und der Adapter kann nicht wieder neu installiert werden, außer man löscht das Verzeichnis manuell über die Konsole.
                                Diese Problem möchte ich noch beheben, habe aber keine Ahnung, wo ich hier angreifen soll.

                                Grüße Thomas

                                OliverIOO Offline
                                OliverIOO Offline
                                OliverIO
                                schrieb am zuletzt editiert von
                                #48

                                @Baumert schreib mal den kompletten pfad wo dein iobroker isntalliert ist
                                und in welchem Verzeichnis du den adapter entwickelst

                                Meine Adapter und Widgets
                                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                Links im Profil

                                BaumertB 1 Antwort Letzte Antwort
                                0
                                • OliverIOO OliverIO

                                  @Baumert schreib mal den kompletten pfad wo dein iobroker isntalliert ist
                                  und in welchem Verzeichnis du den adapter entwickelst

                                  BaumertB Offline
                                  BaumertB Offline
                                  Baumert
                                  schrieb am zuletzt editiert von Baumert
                                  #49

                                  @OliverIO Den Adapter entwicklen ich auf einem Windowsrechner (Installiert mit iobroker-1.5.14.b-windows-installer.exe) , auf dem ich eine eigene Testumgebung mit iobroker und VS Code aufgebaut haben. Dort läuft alles im Verzeichnis:

                                  C:\Program Files\iobroker\Testsystem1\node_modules\iobroker.repetierserver

                                  Das 'Lifesystem', bei dem das Verzeichnis doppelt angelegt wird, läuft auf einem extra Server mit Ubuntu 18.04.3 LTS. Dort werden beim Installier von GITHUB aus in die Verzeichnisse:

                                  /opt/iobroker/node_modules/iobroker.repetierserver
                                  /opt/iobroker/node_modules/ioBroker.repetierserver

                                  erstellt.

                                  OliverIOO 1 Antwort Letzte Antwort
                                  0
                                  • BaumertB Baumert

                                    @OliverIO Den Adapter entwicklen ich auf einem Windowsrechner (Installiert mit iobroker-1.5.14.b-windows-installer.exe) , auf dem ich eine eigene Testumgebung mit iobroker und VS Code aufgebaut haben. Dort läuft alles im Verzeichnis:

                                    C:\Program Files\iobroker\Testsystem1\node_modules\iobroker.repetierserver

                                    Das 'Lifesystem', bei dem das Verzeichnis doppelt angelegt wird, läuft auf einem extra Server mit Ubuntu 18.04.3 LTS. Dort werden beim Installier von GITHUB aus in die Verzeichnisse:

                                    /opt/iobroker/node_modules/iobroker.repetierserver
                                    /opt/iobroker/node_modules/ioBroker.repetierserver

                                    erstellt.

                                    OliverIOO Offline
                                    OliverIOO Offline
                                    OliverIO
                                    schrieb am zuletzt editiert von
                                    #50

                                    @Baumert ok,
                                    dann schaue mal auf deinem live system die folgende datei an:
                                    /opt/iobroker/package.json
                                    ob dort dein adapter 2mal auftaucht.

                                    ob ja oder nein
                                    deinstalliere über die iobroker oberfläche deinen adapter im live system

                                    schaue in der
                                    /opt/iobroker/package.json
                                    nach ob dein adapter da noch drin ist.

                                    wenn ja, dann führe auf der commandozeile im verzeichnis /opt/iobroker
                                    den befehl
                                    npm u <name deines adapters wie er im package.json drinsteht>

                                    wenn nein dann weiß ich nicht weiter. meine vermutung ist, dass irgendwann der name iobroker mit großem b war
                                    und das in package.json 2 mal drin steht

                                    im anschluß kannst du deinen adapter im live system wieder von guthub installieren

                                    Meine Adapter und Widgets
                                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                    Links im Profil

                                    BaumertB 1 Antwort Letzte Antwort
                                    0
                                    • OliverIOO OliverIO

                                      @Baumert ok,
                                      dann schaue mal auf deinem live system die folgende datei an:
                                      /opt/iobroker/package.json
                                      ob dort dein adapter 2mal auftaucht.

                                      ob ja oder nein
                                      deinstalliere über die iobroker oberfläche deinen adapter im live system

                                      schaue in der
                                      /opt/iobroker/package.json
                                      nach ob dein adapter da noch drin ist.

                                      wenn ja, dann führe auf der commandozeile im verzeichnis /opt/iobroker
                                      den befehl
                                      npm u <name deines adapters wie er im package.json drinsteht>

                                      wenn nein dann weiß ich nicht weiter. meine vermutung ist, dass irgendwann der name iobroker mit großem b war
                                      und das in package.json 2 mal drin steht

                                      im anschluß kannst du deinen adapter im live system wieder von guthub installieren

                                      BaumertB Offline
                                      BaumertB Offline
                                      Baumert
                                      schrieb am zuletzt editiert von
                                      #51

                                      @OliverIO Folgendes gemacht:

                                      • Eintrag überprüft - im Livesystem steht in der Datein /opt/iobroker/package.json der Adapter 2x drin
                                      • Instanz des Adapter im Livesystem gestoppt und gelöscht
                                      • Adapter über Oberfläche gelöscht
                                      • Adapter immer noch vorhanden
                                      • Datei /opt/iobroker/package.json im Livesystem überprüft, Eintrag mit großem B noch vorhanden
                                      • Befehl npm u ioBroker.repetierserver versucht - funktioniert nicht... u habe ich nicht als parameter zu npm

                                      Frage - Eintrag und Verzeichnis manuell löschen?

                                      OliverIOO 1 Antwort Letzte Antwort
                                      0
                                      • BaumertB Baumert

                                        @OliverIO Folgendes gemacht:

                                        • Eintrag überprüft - im Livesystem steht in der Datein /opt/iobroker/package.json der Adapter 2x drin
                                        • Instanz des Adapter im Livesystem gestoppt und gelöscht
                                        • Adapter über Oberfläche gelöscht
                                        • Adapter immer noch vorhanden
                                        • Datei /opt/iobroker/package.json im Livesystem überprüft, Eintrag mit großem B noch vorhanden
                                        • Befehl npm u ioBroker.repetierserver versucht - funktioniert nicht... u habe ich nicht als parameter zu npm

                                        Frage - Eintrag und Verzeichnis manuell löschen?

                                        OliverIOO Offline
                                        OliverIOO Offline
                                        OliverIO
                                        schrieb am zuletzt editiert von
                                        #52

                                        @Baumert sorry dann musst du es ausschreiben

                                        npm uninstall <name deines adapters wie er im package.json drinsteht>

                                        Meine Adapter und Widgets
                                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                        Links im Profil

                                        BaumertB 1 Antwort Letzte Antwort
                                        0
                                        • OliverIOO OliverIO

                                          @Baumert sorry dann musst du es ausschreiben

                                          npm uninstall <name deines adapters wie er im package.json drinsteht>

                                          BaumertB Offline
                                          BaumertB Offline
                                          Baumert
                                          schrieb am zuletzt editiert von Baumert
                                          #53

                                          @OliverIO super - hat geklappt - der Eintrag mit dem großen B ist raus und beim neuen installieren von GITHUB aus wurde es nur einmal installiert, und zwar mit kleinem b.
                                          Dann lag das Problem aber nur bei mir am Rechner, weil der Eintrag mit dem großen B nich richtig entfernt wurde.
                                          Vielen Dank für Eure Unterstützung , gestern und heute habe ich eine Menge über das System kennen gelernt.
                                          Grüße Thomas

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          731

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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