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. Skripten / Logik
  4. Alexa Shopping List mit Bring synchronisieren

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Alexa Shopping List mit Bring synchronisieren

Scheduled Pinned Locked Moved Skripten / Logik
175 Posts 31 Posters 37.3k Views 31 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.
  • DickenD Offline
    DickenD Offline
    Dicken
    wrote on last edited by
    #10

    @juergen-sußner das klappt aber auch nur solange der alexa Adapter auch noch Zugriff auf die amazon api hat.

    Hab grad nochmal getestet, also die Synchronisierung mit todoist und anylist funktionieren heute leider nicht mehr direkt.

    Hoffen wir mal das der Alexa Adapter für iobroker weiterhin funktioniert.

    Ro75R 1 Reply Last reply
    0
    • DickenD Dicken

      @juergen-sußner das klappt aber auch nur solange der alexa Adapter auch noch Zugriff auf die amazon api hat.

      Hab grad nochmal getestet, also die Synchronisierung mit todoist und anylist funktionieren heute leider nicht mehr direkt.

      Hoffen wir mal das der Alexa Adapter für iobroker weiterhin funktioniert.

      Ro75R Online
      Ro75R Online
      Ro75
      wrote on last edited by
      #11

      @dicken beim mir funktioniert der Alexa-Adapter wunderbar und die Shopping-Liste wird auch sofort aktualisiert.

      Ro75.

      SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

      DickenD 1 Reply Last reply
      0
      • Ro75R Ro75

        @dicken beim mir funktioniert der Alexa-Adapter wunderbar und die Shopping-Liste wird auch sofort aktualisiert.

        Ro75.

        DickenD Offline
        DickenD Offline
        Dicken
        wrote on last edited by
        #12

        @ro75 perfekt, danke für den Hinweis. Dann werd ich mir die Brücke über den alexa2 Adapter bauen :)

        Ro75R 1 Reply Last reply
        0
        • DickenD Dicken

          @ro75 perfekt, danke für den Hinweis. Dann werd ich mir die Brücke über den alexa2 Adapter bauen :)

          Ro75R Online
          Ro75R Online
          Ro75
          wrote on last edited by Ro75
          #13

          @dicken Warum Brücke? Kannst den Code gerne von mir nutzen.

          const JSONEinkaufsliste = '0_userdata.0.Alexa.Einkaufsliste';
          const JSONEToDoListe    = '0_userdata.0.Alexa.ToDoListe';
          
          createState(JSONEinkaufsliste, '[]', {read: true, write: true, desc: 'JSON String for Widget', type: 'string', def: '[]'});
          createState(JSONEToDoListe, '[]', {read: true, write: true, desc: 'JSON String for Widget', type: 'string', def: '[]'});
          
          function ListCleaner(Eintrag='') {
              const arr = Eintrag.split(' ');
              for (let i = 0; i < arr.length; i++) {
                  arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);
              }
              return arr.join(' ');
          }
          
          function ListenGenerator(sQuelle='', sDP=''){
              var ListeLeer = 1;
              let Liste = [];
              $(sQuelle).each(function(id, i){
                  if(getState(id.replace("value","completed")).val === false) {
                      ListeLeer = 0; //dient einfach nur als merkmal, das die Liste nicht leer ist
                      Liste.push({
                          Eintrag: ListCleaner(getState(id).val)
                      })
                  }
              });
              if(ListeLeer == 1) {
                  Liste.push({
                      Eintrag: "kein Eintrag"
                  })
              }
              setState(sDP, JSON.stringify(Liste), true);
              Liste = [];
          }
          
          function Einkaufsliste(){
              setTimeout(function(){
                  ListenGenerator('alexa2.0.Lists.SHOPPING_LIST.items.*.value',JSONEinkaufsliste)
              },500);
          }
          
          function TODO() {
              setTimeout(function(){
                  ListenGenerator('alexa2.0.Lists.TO_DO.items.*.value',JSONEToDoListe)
              },500);
          }
          
          on({id: 'alexa2.0.Lists.SHOPPING_LIST.json', change: 'any'}, Einkaufsliste);
          on({id: 'alexa2.0.Lists.TO_DO.json', change: 'any'}, TODO);
          

          JSON-Liste (Einkauf, ToDo) für z.B. VIS wird bei jeder Änderung (Sprache, APP) aktualisiert.

          Ro75.

          SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

          DickenD 1 Reply Last reply
          0
          • Ro75R Ro75

            @dicken Warum Brücke? Kannst den Code gerne von mir nutzen.

            const JSONEinkaufsliste = '0_userdata.0.Alexa.Einkaufsliste';
            const JSONEToDoListe    = '0_userdata.0.Alexa.ToDoListe';
            
            createState(JSONEinkaufsliste, '[]', {read: true, write: true, desc: 'JSON String for Widget', type: 'string', def: '[]'});
            createState(JSONEToDoListe, '[]', {read: true, write: true, desc: 'JSON String for Widget', type: 'string', def: '[]'});
            
            function ListCleaner(Eintrag='') {
                const arr = Eintrag.split(' ');
                for (let i = 0; i < arr.length; i++) {
                    arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);
                }
                return arr.join(' ');
            }
            
            function ListenGenerator(sQuelle='', sDP=''){
                var ListeLeer = 1;
                let Liste = [];
                $(sQuelle).each(function(id, i){
                    if(getState(id.replace("value","completed")).val === false) {
                        ListeLeer = 0; //dient einfach nur als merkmal, das die Liste nicht leer ist
                        Liste.push({
                            Eintrag: ListCleaner(getState(id).val)
                        })
                    }
                });
                if(ListeLeer == 1) {
                    Liste.push({
                        Eintrag: "kein Eintrag"
                    })
                }
                setState(sDP, JSON.stringify(Liste), true);
                Liste = [];
            }
            
            function Einkaufsliste(){
                setTimeout(function(){
                    ListenGenerator('alexa2.0.Lists.SHOPPING_LIST.items.*.value',JSONEinkaufsliste)
                },500);
            }
            
            function TODO() {
                setTimeout(function(){
                    ListenGenerator('alexa2.0.Lists.TO_DO.items.*.value',JSONEToDoListe)
                },500);
            }
            
            on({id: 'alexa2.0.Lists.SHOPPING_LIST.json', change: 'any'}, Einkaufsliste);
            on({id: 'alexa2.0.Lists.TO_DO.json', change: 'any'}, TODO);
            

            JSON-Liste (Einkauf, ToDo) für z.B. VIS wird bei jeder Änderung (Sprache, APP) aktualisiert.

            Ro75.

            DickenD Offline
            DickenD Offline
            Dicken
            wrote on last edited by Dicken
            #14

            @ro75 ich möchte das auch meine Todoist Liste mit aktualisiert wird.

            Hintergrund: ich habe ein Todoist Widget als Seitenpanel auf meinem Android Handy.

            PS: nich wundern über den scheiß der da drauf steht, meine Frau nutzt die Liste auch mit :D

            Screenshot_20240704_164950_Firefox.jpg

            Ro75R 1 Reply Last reply
            0
            • DickenD Dicken

              @ro75 ich möchte das auch meine Todoist Liste mit aktualisiert wird.

              Hintergrund: ich habe ein Todoist Widget als Seitenpanel auf meinem Android Handy.

              PS: nich wundern über den scheiß der da drauf steht, meine Frau nutzt die Liste auch mit :D

              Screenshot_20240704_164950_Firefox.jpg

              Ro75R Online
              Ro75R Online
              Ro75
              wrote on last edited by
              #15

              @dicken ja ist auch mit drin. Ist dann ebenfalls ein JSON.

              Ro75.

              SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

              DickenD 1 Reply Last reply
              0
              • Ro75R Ro75

                @dicken ja ist auch mit drin. Ist dann ebenfalls ein JSON.

                Ro75.

                DickenD Offline
                DickenD Offline
                Dicken
                wrote on last edited by
                #16

                @ro75 Ich glaub wir reden aneinander vorbei :D Todoist ist eine App.

                Ro75R 1 Reply Last reply
                0
                • DickenD Dicken

                  @ro75 Ich glaub wir reden aneinander vorbei :D Todoist ist eine App.

                  Ro75R Online
                  Ro75R Online
                  Ro75
                  wrote on last edited by
                  #17

                  @dicken naja, so wie ich es verstanden habe, geht das nur mit so vielen Umwegen, dass es nicht wirklich Sinn macht. Was stört dich denn am direkten Weg? Oder was ist denn der Vorteil mit ToDoIst? Ich hatte für mich bei dem keinen Vorteil (als ich ToDoIst mal nutzte) gefunden.

                  Ro75.

                  SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                  DickenD 1 Reply Last reply
                  0
                  • Ro75R Ro75

                    @dicken naja, so wie ich es verstanden habe, geht das nur mit so vielen Umwegen, dass es nicht wirklich Sinn macht. Was stört dich denn am direkten Weg? Oder was ist denn der Vorteil mit ToDoIst? Ich hatte für mich bei dem keinen Vorteil (als ich ToDoIst mal nutzte) gefunden.

                    Ro75.

                    DickenD Offline
                    DickenD Offline
                    Dicken
                    wrote on last edited by
                    #18

                    @ro75 @ro75 na das Widget in Seitenpanel auf dem Handy ist mein Vorteil den ich gerne nutzen möchte :)

                    Ro75R 1 Reply Last reply
                    0
                    • DickenD Dicken

                      @ro75 @ro75 na das Widget in Seitenpanel auf dem Handy ist mein Vorteil den ich gerne nutzen möchte :)

                      Ro75R Online
                      Ro75R Online
                      Ro75
                      wrote on last edited by
                      #19

                      @dicken also so was z.B.

                      05f79b79-eeff-4b49-b786-5a66c184a56f-image.png

                      Ro75.

                      SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                      DickenD 2 Replies Last reply
                      0
                      • Ro75R Ro75

                        @dicken also so was z.B.

                        05f79b79-eeff-4b49-b786-5a66c184a56f-image.png

                        Ro75.

                        DickenD Offline
                        DickenD Offline
                        Dicken
                        wrote on last edited by
                        #20

                        @ro75 Au man, da hätt ich ja auch mal selber drauf kommen können nachzusehen. Wusste nicht das Alexa mittlerweile auch Widgets anbietet 😅. Danke für die Info :)

                        1 Reply Last reply
                        0
                        • mcBirneM Offline
                          mcBirneM Offline
                          mcBirne
                          wrote on last edited by
                          #21

                          Hallo zusammen,

                          Hat schon jemand ein Skript zur Synchronisation der Alexa-Einkaufsliste und Bring geschrieben?

                          I 1 Reply Last reply
                          1
                          • Ro75R Ro75

                            @dicken also so was z.B.

                            05f79b79-eeff-4b49-b786-5a66c184a56f-image.png

                            Ro75.

                            DickenD Offline
                            DickenD Offline
                            Dicken
                            wrote on last edited by
                            #22

                            @ro75 @ro75 Jetzt weiß ich auch wieder warum ich die Alexa App nicht verwendet hab.... Es gibt keine Möglichkeit die Liste von Hand zu sortieren. Das ist Extrem bescheiden.... Da wir vor dem Einkaufen es immer in die Reihenfolge geschoben haben, wie es auch im Laden zu finden ist.

                            Ro75R 1 Reply Last reply
                            0
                            • DickenD Dicken

                              @ro75 @ro75 Jetzt weiß ich auch wieder warum ich die Alexa App nicht verwendet hab.... Es gibt keine Möglichkeit die Liste von Hand zu sortieren. Das ist Extrem bescheiden.... Da wir vor dem Einkaufen es immer in die Reihenfolge geschoben haben, wie es auch im Laden zu finden ist.

                              Ro75R Online
                              Ro75R Online
                              Ro75
                              wrote on last edited by
                              #23

                              @dicken das ist uns völlig egal. Vor der App da gabs nen Zettel und einen Stift. Und unser Laden räumt regelmäßig um. Für uns ist es wichtig nix zu vergessen - die Reihgenfolge ist reine Nebensache. Die Geschmäcker sind halt verschieden.

                              Ro75.

                              SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                              DickenD 1 Reply Last reply
                              0
                              • Ro75R Ro75

                                @dicken das ist uns völlig egal. Vor der App da gabs nen Zettel und einen Stift. Und unser Laden räumt regelmäßig um. Für uns ist es wichtig nix zu vergessen - die Reihgenfolge ist reine Nebensache. Die Geschmäcker sind halt verschieden.

                                Ro75.

                                DickenD Offline
                                DickenD Offline
                                Dicken
                                wrote on last edited by
                                #24

                                @ro75 sagte in Alexa Shopping List mit Bring synchronisieren:

                                Die Geschmäcker sind halt verschieden.

                                So ist es :D wir finden das halt praktisch. Naja werd die Tage mal schauen wie ich das jetzt regel

                                1 Reply Last reply
                                0
                                • FuchsbauF Offline
                                  FuchsbauF Offline
                                  Fuchsbau
                                  wrote on last edited by Fuchsbau
                                  #25

                                  @ro75
                                  Hi ro75, ich hab mal deine Skript versucht, bekomme aber folgende Fehlermeldung.

                                  javascript.0	06:41:56.497	error	script.js.Blockly.Alexa.Listen: ReferenceError: CreateDP is not defined
                                  javascript.0	06:41:56.498	error	at script.js.Blockly.Alexa.Listen:5:1
                                  javascript.0	06:41:56.498	error	at script.js.Blockly.Alexa.Listen:55:3
                                  

                                  Die Daten Punkte Einkaufsliste und ToDoListe habe ich manuell erstellt.
                                  Hast du noch Irgendwas anderes vorab eingestellt / erstellt?

                                  Ro75R 1 Reply Last reply
                                  0
                                  • mcBirneM mcBirne

                                    Hallo zusammen,

                                    Hat schon jemand ein Skript zur Synchronisation der Alexa-Einkaufsliste und Bring geschrieben?

                                    I Offline
                                    I Offline
                                    IOMax
                                    wrote on last edited by
                                    #26

                                    @mcbirne said in Alexa Shopping List mit Bring synchronisieren:

                                    Hallo zusammen,

                                    Hat schon jemand ein Skript zur Synchronisation der Alexa-Einkaufsliste und Bring geschrieben?

                                    Das würde mich auch interessieren. Am besten in beide Richtungen

                                    icastillo15I 1 Reply Last reply
                                    0
                                    • FuchsbauF Fuchsbau

                                      @ro75
                                      Hi ro75, ich hab mal deine Skript versucht, bekomme aber folgende Fehlermeldung.

                                      javascript.0	06:41:56.497	error	script.js.Blockly.Alexa.Listen: ReferenceError: CreateDP is not defined
                                      javascript.0	06:41:56.498	error	at script.js.Blockly.Alexa.Listen:5:1
                                      javascript.0	06:41:56.498	error	at script.js.Blockly.Alexa.Listen:55:3
                                      

                                      Die Daten Punkte Einkaufsliste und ToDoListe habe ich manuell erstellt.
                                      Hast du noch Irgendwas anderes vorab eingestellt / erstellt?

                                      Ro75R Online
                                      Ro75R Online
                                      Ro75
                                      wrote on last edited by
                                      #27

                                      @fuchsbau sagte in Alexa Shopping List mit Bring synchronisieren:

                                      Die Daten Punkte Einkaufsliste und ToDoListe habe ich manuell erstellt.

                                      nicht nötig. Die DP werden selbst erstellt. Zeige mal das Skript bitte.

                                      Ro75.

                                      SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                                      1 Reply Last reply
                                      0
                                      • Ro75R Online
                                        Ro75R Online
                                        Ro75
                                        wrote on last edited by
                                        #28

                                        AH Moment, ich habe da eine selbst erstellte Funktion für die Erstellung der Datenpunkte drin. Ich ändere das mal.

                                        Ro75.

                                        SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                                        1 Reply Last reply
                                        0
                                        • Ro75R Online
                                          Ro75R Online
                                          Ro75
                                          wrote on last edited by
                                          #29

                                          Habe das Skript oben korrigiert.

                                          const JSONEinkaufsliste = '0_userdata.0.Alexa.Einkaufsliste';
                                          const JSONEToDoListe    = '0_userdata.0.Alexa.ToDoListe';
                                          
                                          createState(JSONEinkaufsliste, '[]', {read: true, write: true, desc: 'JSON String for Widget', type: 'string', def: '[]'});
                                          createState(JSONEToDoListe, '[]', {read: true, write: true, desc: 'JSON String for Widget', type: 'string', def: '[]'});
                                          
                                          function ListCleaner(Eintrag='') {
                                              const arr = Eintrag.split(' ');
                                              for (let i = 0; i < arr.length; i++) {
                                                  arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);
                                              }
                                              return arr.join(' ');
                                          }
                                          
                                          function ListenGenerator(sQuelle='', sDP=''){
                                              var ListeLeer = 1;
                                              let Liste = [];
                                              $(sQuelle).each(function(id, i){
                                                  if(getState(id.replace("value","completed")).val === false) {
                                                      ListeLeer = 0; //dient einfach nur als merkmal, das die Liste nicht leer ist
                                                      Liste.push({
                                                          Eintrag: ListCleaner(getState(id).val)
                                                      })
                                                  }
                                              });
                                              if(ListeLeer == 1) {
                                                  Liste.push({
                                                      Eintrag: "kein Eintrag"
                                                  })
                                              }
                                              setState(sDP, JSON.stringify(Liste), true);
                                              Liste = [];
                                          }
                                          
                                          function Einkaufsliste(){
                                              setTimeout(function(){
                                                  ListenGenerator('alexa2.0.Lists.SHOPPING_LIST.items.*.value',JSONEinkaufsliste)
                                              },500);
                                          }
                                          
                                          function TODO() {
                                              setTimeout(function(){
                                                  ListenGenerator('alexa2.0.Lists.TO_DO.items.*.value',JSONEToDoListe)
                                              },500);
                                          }
                                          
                                          on({id: 'alexa2.0.Lists.SHOPPING_LIST.json', change: 'any'}, Einkaufsliste);
                                          on({id: 'alexa2.0.Lists.TO_DO.json', change: 'any'}, TODO);
                                          
                                          

                                          Ro75.

                                          SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                                          FuchsbauF 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

                                          694

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          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