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. JavaScript
  5. [gelöst] Subscribe auf ganze Datenpunkt-Zweige

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

[gelöst] Subscribe auf ganze Datenpunkt-Zweige

Scheduled Pinned Locked Moved JavaScript
21 Posts 5 Posters 1.9k Views 4 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.
  • paul53P paul53

    @hsteinme sagte:

    Wie kann ich derartige Löschungen per "on" abgreifen?

    Was soll "on" im Datenpunkt-Objekt liefern, wenn das Objekt und der Zustand gerade gelöscht wurden ?

    hsteinmeH Offline
    hsteinmeH Offline
    hsteinme
    wrote on last edited by
    #3

    @paul53 sagte in Subscribe auf ganze Datenpunkt-Zweige:

    Was soll "on" im Datenpunkt-Objekt liefern, wenn das Objekt und der Zustand gerade gelöscht wurden ?

    Ich rede nicht über ein einzelnes Objekt, sondern über einen Objektbaum. Ein Beispiel:

    aaa.0.bbb.ccc
    aaa.0.bbb.ccc.1
    aaa.0.bbb.ccc.1.11
    aaa.0.bbb.ccc.2
    

    Wenn z.B. aaa.0.bbb.ccc.1.11 gelöscht wird, so kann man dies als eine Änderung am "Ober-Objekt" aaa.0.bbb.ccc betrachten. Eine Möglichkeit, darüber informiert zu werden, suche ich für einen Anwendungsfall bei mir.

    1 Reply Last reply
    0
    • hsteinmeH Offline
      hsteinmeH Offline
      hsteinme
      wrote on last edited by hsteinme
      #4

      Nachtrag: Ich hänge in dieser Fragestellung nicht am on-Statement. Paul53's Hinweis, was denn bei einem gelöschten Teilchen überhaupt gemeldet werden soll, habe ich schon verstanden. Mir würde auch schon eine Notification reichen, dass sich die Anzahl der Elemente im Zweig geändert hat. Hat jemand eine Idee dazu?

      paul53P liv-in-skyL 2 Replies Last reply
      0
      • hsteinmeH hsteinme

        Nachtrag: Ich hänge in dieser Fragestellung nicht am on-Statement. Paul53's Hinweis, was denn bei einem gelöschten Teilchen überhaupt gemeldet werden soll, habe ich schon verstanden. Mir würde auch schon eine Notification reichen, dass sich die Anzahl der Elemente im Zweig geändert hat. Hat jemand eine Idee dazu?

        paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #5

        @hsteinme sagte:

        Notification reichen, dass sich die Anzahl der Elemente im Zweig geändert hat.

        Wodurch ändert sich die Anzahl der Objekte ?

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        hsteinmeH 1 Reply Last reply
        0
        • paul53P paul53

          @hsteinme sagte:

          Notification reichen, dass sich die Anzahl der Elemente im Zweig geändert hat.

          Wodurch ändert sich die Anzahl der Objekte ?

          hsteinmeH Offline
          hsteinmeH Offline
          hsteinme
          wrote on last edited by
          #6

          @paul53 sagte in Subscribe auf ganze Datenpunkt-Zweige:

          Wodurch ändert sich die Anzahl der Objekte ?

          Durch Löschungen oder Neuanlagen von Objekten unterhalb des "Ober-Objekts".

          paul53P 1 Reply Last reply
          0
          • hsteinmeH hsteinme

            Mit dem Statement

            on({id: /^aaa\.0\.bbb\.ccc\./, change: 'ne'}, DoSomething);
            

            kann ich Änderungen im Datenpunkt-Zweig unterhalb des angegebenen Pfades abgreifen, ebenso dort erfolgte Datenpunkt-Neuanlagen, sofern ihnen ein Defaultwert mitgegeben wird. Dort erfolgte Löschungen von Datenpunkten werden jedoch nicht mitgeteilt. Wie kann ich derartige Löschungen per "on" abgreifen?

            AlCalzoneA Offline
            AlCalzoneA Offline
            AlCalzone
            Developer
            wrote on last edited by
            #7

            @hsteinme sagte in Subscribe auf ganze Datenpunkt-Zweige:

            Wie kann ich derartige Löschungen per "on" abgreifen?

            Soweit ich weiß, geht das nur mit einem Adapter.

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

            1 Reply Last reply
            0
            • hsteinmeH hsteinme

              @paul53 sagte in Subscribe auf ganze Datenpunkt-Zweige:

              Wodurch ändert sich die Anzahl der Objekte ?

              Durch Löschungen oder Neuanlagen von Objekten unterhalb des "Ober-Objekts".

              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #8

              @hsteinme sagte:

              Durch Löschungen oder Neuanlagen von Objekten unterhalb des "Ober-Objekts".

              Das erfolgt durch eine Adapter-Instanz oder durch ein Script ?

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              hsteinmeH 1 Reply Last reply
              0
              • paul53P paul53

                @hsteinme sagte:

                Durch Löschungen oder Neuanlagen von Objekten unterhalb des "Ober-Objekts".

                Das erfolgt durch eine Adapter-Instanz oder durch ein Script ?

                hsteinmeH Offline
                hsteinmeH Offline
                hsteinme
                wrote on last edited by hsteinme
                #9

                @paul53: Dieser Objekt-Teilbaum wird durch einen Adapter bereitgestellt und auch gepflegt. Mein Skript möchte Änderungen in diesem Teilbaum mitbekommen, um dann Aktionen lostreten zu können.

                paul53P 1 Reply Last reply
                0
                • hsteinmeH hsteinme

                  @paul53: Dieser Objekt-Teilbaum wird durch einen Adapter bereitgestellt und auch gepflegt. Mein Skript möchte Änderungen in diesem Teilbaum mitbekommen, um dann Aktionen lostreten zu können.

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #10

                  @hsteinme sagte:

                  Mein Skript möchte Änderungen in diesem Teilbaum mitbekommen,

                  Da sehe ich momentan keine Chance.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Reply Last reply
                  0
                  • hsteinmeH hsteinme

                    Nachtrag: Ich hänge in dieser Fragestellung nicht am on-Statement. Paul53's Hinweis, was denn bei einem gelöschten Teilchen überhaupt gemeldet werden soll, habe ich schon verstanden. Mir würde auch schon eine Notification reichen, dass sich die Anzahl der Elemente im Zweig geändert hat. Hat jemand eine Idee dazu?

                    liv-in-skyL Offline
                    liv-in-skyL Offline
                    liv-in-sky
                    wrote on last edited by
                    #11

                    @hsteinme sagte in Subscribe auf ganze Datenpunkt-Zweige:

                    Nachtrag: Ich hänge in dieser Fragestellung nicht am on-Statement. Paul53's Hinweis, was denn bei einem gelöschten Teilchen überhaupt gemeldet werden soll, habe ich schon verstanden. Mir würde auch schon eine Notification reichen, dass sich die Anzahl der Elemente im Zweig geändert hat. Hat jemand eine Idee dazu?

                    du könntest dir ein script machen, das diesen ordner scannt und alle id's in ein array speichern - dann frägst du jede z.b minute ab, ob diese array noch dem entspricht, das du gerade abfrägst - dann weißt du, dass es eine änderung
                    gegeben hat - du kannst sogar rausfinden an welcher stelle es sich geändert hat - ist nicht so schnell wie ein on{}, aber falls die zeit nicht unbedingt ein kriterium ist - letztlich kannst du auch auf das array triggern mit on{}

                    wenn du viele datenpunkte darin hast und öfter in der minute diese abfragen machst, wird dein load ziemlich hoch werden

                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                    paul53P hsteinmeH 3 Replies Last reply
                    0
                    • liv-in-skyL liv-in-sky

                      @hsteinme sagte in Subscribe auf ganze Datenpunkt-Zweige:

                      Nachtrag: Ich hänge in dieser Fragestellung nicht am on-Statement. Paul53's Hinweis, was denn bei einem gelöschten Teilchen überhaupt gemeldet werden soll, habe ich schon verstanden. Mir würde auch schon eine Notification reichen, dass sich die Anzahl der Elemente im Zweig geändert hat. Hat jemand eine Idee dazu?

                      du könntest dir ein script machen, das diesen ordner scannt und alle id's in ein array speichern - dann frägst du jede z.b minute ab, ob diese array noch dem entspricht, das du gerade abfrägst - dann weißt du, dass es eine änderung
                      gegeben hat - du kannst sogar rausfinden an welcher stelle es sich geändert hat - ist nicht so schnell wie ein on{}, aber falls die zeit nicht unbedingt ein kriterium ist - letztlich kannst du auch auf das array triggern mit on{}

                      wenn du viele datenpunkte darin hast und öfter in der minute diese abfragen machst, wird dein load ziemlich hoch werden

                      paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by
                      #12

                      @liv-in-sky sagte:

                      ein script machen, das diesen ordner scannt und alle id's in ein array speichern

                      Hast Du berücksichtigt, dass der Javascript-Adapter alle Objekte und Zustände puffert ?

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      liv-in-skyL hsteinmeH 2 Replies Last reply
                      0
                      • paul53P paul53

                        @liv-in-sky sagte:

                        ein script machen, das diesen ordner scannt und alle id's in ein array speichern

                        Hast Du berücksichtigt, dass der Javascript-Adapter alle Objekte und Zustände puffert ?

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        wrote on last edited by liv-in-sky
                        #13

                        @paul53 hab ich wohl nicht, wenn du so fragst

                        ich habe das getestet und es funktionierte

                        habe einfach von hand während der minute einen datenpunkt oder auch einen unterordner mit datenpunkten angelegt - das script hat sie gezeigt - der counter springt auf die richtige anzahl

                         schedule('* * * *  *',  function () {
                         var counter=0;
                          $('0_userdata.0.Tabellen.*').each(function(id, i) {         
                            counter++
                          
                        log(id)
                        
                             
                          }); 
                          log(counter.toString())
                        
                           
                           });    
                        

                        selbst mit einem 10 sekunden schedule hat es richtig angezeigt

                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                        paul53P 1 Reply Last reply
                        0
                        • liv-in-skyL liv-in-sky

                          @paul53 hab ich wohl nicht, wenn du so fragst

                          ich habe das getestet und es funktionierte

                          habe einfach von hand während der minute einen datenpunkt oder auch einen unterordner mit datenpunkten angelegt - das script hat sie gezeigt - der counter springt auf die richtige anzahl

                           schedule('* * * *  *',  function () {
                           var counter=0;
                            $('0_userdata.0.Tabellen.*').each(function(id, i) {         
                              counter++
                            
                          log(id)
                          
                               
                            }); 
                            log(counter.toString())
                          
                             
                             });    
                          

                          selbst mit einem 10 sekunden schedule hat es richtig angezeigt

                          paul53P Offline
                          paul53P Offline
                          paul53
                          wrote on last edited by paul53
                          #14

                          @liv-in-sky sagte:

                          selbst mit einem 10 sekunden schedule hat es richtig angezeigt

                          Um so besser, wenn es so funktioniert. Mit Subscriptions auf neue, per Hand angelegte Datenpunkte habe ich schon negative Erfahrungen gemacht.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          liv-in-skyL 2 Replies Last reply
                          0
                          • paul53P paul53

                            @liv-in-sky sagte:

                            selbst mit einem 10 sekunden schedule hat es richtig angezeigt

                            Um so besser, wenn es so funktioniert. Mit Subscriptions auf neue, per Hand angelegte Datenpunkte habe ich schon negative Erfahrungen gemacht.

                            liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            wrote on last edited by
                            #15

                            @paul53 da ich weiß, das du bedeutend mehr erfahrung hast als ich:

                            gehst du davon aus, dass es situationen gibt, in dem das nicht funktioniert und ich nur eine art "glück" hatte - oder ich irgendwas eingestellt habe, dass ich vergessen habe ?

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            1 Reply Last reply
                            0
                            • paul53P paul53

                              @liv-in-sky sagte:

                              selbst mit einem 10 sekunden schedule hat es richtig angezeigt

                              Um so besser, wenn es so funktioniert. Mit Subscriptions auf neue, per Hand angelegte Datenpunkte habe ich schon negative Erfahrungen gemacht.

                              liv-in-skyL Offline
                              liv-in-skyL Offline
                              liv-in-sky
                              wrote on last edited by
                              #16

                              @paul53 ok - überschneidung

                              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                              1 Reply Last reply
                              0
                              • liv-in-skyL liv-in-sky

                                @hsteinme sagte in Subscribe auf ganze Datenpunkt-Zweige:

                                Nachtrag: Ich hänge in dieser Fragestellung nicht am on-Statement. Paul53's Hinweis, was denn bei einem gelöschten Teilchen überhaupt gemeldet werden soll, habe ich schon verstanden. Mir würde auch schon eine Notification reichen, dass sich die Anzahl der Elemente im Zweig geändert hat. Hat jemand eine Idee dazu?

                                du könntest dir ein script machen, das diesen ordner scannt und alle id's in ein array speichern - dann frägst du jede z.b minute ab, ob diese array noch dem entspricht, das du gerade abfrägst - dann weißt du, dass es eine änderung
                                gegeben hat - du kannst sogar rausfinden an welcher stelle es sich geändert hat - ist nicht so schnell wie ein on{}, aber falls die zeit nicht unbedingt ein kriterium ist - letztlich kannst du auch auf das array triggern mit on{}

                                wenn du viele datenpunkte darin hast und öfter in der minute diese abfragen machst, wird dein load ziemlich hoch werden

                                hsteinmeH Offline
                                hsteinmeH Offline
                                hsteinme
                                wrote on last edited by
                                #17

                                @liv-in-sky sagte in Subscribe auf ganze Datenpunkt-Zweige:

                                du könntest dir ein script machen, das diesen ordner scannt und alle id's in ein array speichern - dann frägst du jede z.b minute ab, ob diese array noch dem entspricht, das du gerade abfrägst - dann weißt du, dass es eine änderung
                                gegeben hat

                                Ja, diesen Notnagel habe ich schon fertig da liegen, weil ich ihn eh an anderer Stelle benötige. Aber das ist kein Ansatz, der mir Freude bereitet. Im besagten Objektbaum gibt es im Abstand von Tagen gelegentliche Änderungen, auf die ich dann zeitnah reagieren möchte. Dann ist das in kurzen Abständen durchzuführende "Durchwandern" des Baumes wirklich nur eine verschwenderische Notlösung.

                                Danke für Deine Anregung.

                                1 Reply Last reply
                                0
                                • paul53P paul53

                                  @liv-in-sky sagte:

                                  ein script machen, das diesen ordner scannt und alle id's in ein array speichern

                                  Hast Du berücksichtigt, dass der Javascript-Adapter alle Objekte und Zustände puffert ?

                                  hsteinmeH Offline
                                  hsteinmeH Offline
                                  hsteinme
                                  wrote on last edited by
                                  #18

                                  @paul53 sagte in Subscribe auf ganze Datenpunkt-Zweige:

                                  Hast Du berücksichtigt, dass der Javascript-Adapter alle Objekte und Zustände puffert ?

                                  Ooooh! Gibt es dazu irgendwo verlässliche nachlesbare Informationen? Diese Aussage stellt ja schließlich elementare Teile des ioBroker-Konzepts in Frage. Von daher fehlt mir hier ein wenig der Glaube.

                                  Jeder, der einen Cache einführt, muss doch auch Mechanismen parat haben, die eine Inkonsistenz zwischen dem Cache und seinem repräsentierten Hintergrundmedium vermeiden.

                                  1 Reply Last reply
                                  0
                                  • liv-in-skyL liv-in-sky

                                    @hsteinme sagte in Subscribe auf ganze Datenpunkt-Zweige:

                                    Nachtrag: Ich hänge in dieser Fragestellung nicht am on-Statement. Paul53's Hinweis, was denn bei einem gelöschten Teilchen überhaupt gemeldet werden soll, habe ich schon verstanden. Mir würde auch schon eine Notification reichen, dass sich die Anzahl der Elemente im Zweig geändert hat. Hat jemand eine Idee dazu?

                                    du könntest dir ein script machen, das diesen ordner scannt und alle id's in ein array speichern - dann frägst du jede z.b minute ab, ob diese array noch dem entspricht, das du gerade abfrägst - dann weißt du, dass es eine änderung
                                    gegeben hat - du kannst sogar rausfinden an welcher stelle es sich geändert hat - ist nicht so schnell wie ein on{}, aber falls die zeit nicht unbedingt ein kriterium ist - letztlich kannst du auch auf das array triggern mit on{}

                                    wenn du viele datenpunkte darin hast und öfter in der minute diese abfragen machst, wird dein load ziemlich hoch werden

                                    hsteinmeH Offline
                                    hsteinmeH Offline
                                    hsteinme
                                    wrote on last edited by
                                    #19

                                    @liv-in-sky sagte in Subscribe auf ganze Datenpunkt-Zweige:

                                    du könntest dir ein script machen, das diesen ordner scannt und alle id's in ein array speichern [...] letztlich kannst du auch auf das array triggern mit on{}

                                    Nein, damit komme ich nicht weiter, da ich in die gleiche Situation hineinlaufe wie mit meinem on-Beispiel aus meinem ersten Beitrag: Änderungen an den Datenpunkten werden Dir mitgeteilt, Löschungen von Datenpunkten jedoch nicht.

                                    Ein Beispiel:

                                    var MyDPs = ['javascript.0.Test1', 'javascript.0.Test1.Test11'];
                                    on({id: MyDPs, change: 'any'}, function(DP) {
                                        console.log('Änderung in ' + MyDPs[MyDPs.indexOf(DP.id)]);
                                    });
                                    

                                    Änderst Du den Wert von Test11, so macht on fein säuberlich einen Vermerk im Log. Löschst Du jedoch Test11, so schweigt on Dich an.

                                    Hier gilt auch wieder die Anmerkung von paul 53: Wenn Test11 gelöscht ist, wie soll on bzw. function damit noch arbeiten können?

                                    1 Reply Last reply
                                    0
                                    • T Do not disturb
                                      T Do not disturb
                                      ticaki
                                      wrote on last edited by ticaki
                                      #20

                                      Hallo,

                                      folgender Code erzeugt auf RB4 mit redis <1% load mit ca. 40-50 States:

                                      var arrayofstates = $('state[state.id=javascript.0.*]');
                                      setState("javascript.0.Test1",JSON.stringify(arrayofstates));
                                      
                                      schedule("*/1 * * * * *", function() { // jede Sekunde
                                        arrayofstates = $('state[state.id=javascript.0.*]');
                                        setState("javascript.0.Test1",JSON.stringify(arrayofstates));
                                      })
                                      
                                      on({id:"javascript.0.Test1", change:"ne"},function(obj) {
                                          console.log("test 123 kann mich wer hören");
                                      })
                                      

                                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                      Spenden

                                      1 Reply Last reply
                                      0
                                      • hsteinmeH Offline
                                        hsteinmeH Offline
                                        hsteinme
                                        wrote on last edited by
                                        #21

                                        @ticaki sagte in Subscribe auf ganze Datenpunkt-Zweige:

                                          arrayofstates = $('state[state.id=javascript.0.*]');
                                          setState("javascript.0.Test1",JSON.stringify(arrayofstates));
                                        

                                        Ein "schöner" :blush: Code, danke! Vor allem ein für mich brauchbarer Ansatz, insbesondere weil durch die Stringifizierung es ermöglicht wird, auch Löschungen innerhalb der Struktur als Änderung zu erfahren. Ganz herzlichen Dank!

                                        Durch geeignete Wildcard-Wahl im $-Selektor kann ich darüber hinaus sogar erreichen, dass nur für mich relevante Teile des Objektbaums betrachtet werden.

                                        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

                                        485

                                        Online

                                        32.7k

                                        Users

                                        82.4k

                                        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