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. Skripten / Logik
  4. [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe

NEWS

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

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

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

[Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascripttemplatemonitoring
581 Beiträge 81 Kommentatoren 136.9k Aufrufe 84 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.
  • K Offline
    K Offline
    Kosta
    schrieb am zuletzt editiert von
    #465

    @pittini P.S.: ich habe auch ehrlich gesagt nicht ganz verstanden wie es mit der Messung von Volt funktioniert.. kann man diese Funktion ausschalten, damit einfach nur auf Prozente der Batterieladung geschaut wird? Vielleicht, liegt das Problem auch da..

    P 1 Antwort Letzte Antwort
    0
    • K Kosta

      @pittini P.S.: ich habe auch ehrlich gesagt nicht ganz verstanden wie es mit der Messung von Volt funktioniert.. kann man diese Funktion ausschalten, damit einfach nur auf Prozente der Batterieladung geschaut wird? Vielleicht, liegt das Problem auch da..

      P Offline
      P Offline
      Pittini
      Developer
      schrieb am zuletzt editiert von
      #466

      @kgb sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

      @pittini P.S.: ich habe auch ehrlich gesagt nicht ganz verstanden wie es mit der Messung von Volt funktioniert.. kann man diese Funktion ausschalten, damit einfach nur auf Prozente der Batterieladung geschaut wird? Vielleicht, liegt das Problem auch da..

      Prozente sind ja nur ne andere Angabe der Spannung, also nein, kann man nicht ausschalten, braucht man nicht ausschalten. Zeig doch mal nen Screenshot aus der Objektliste wo ich seh wie Du die Batteriespannungsfunktion setzt und wo. Und falls Du Änderungen an den Skriptsettings gemacht hast, bitte auch davon nen Auszug.
      Wenn Du Geräte aus den Aufzählungen dazunimmst oder raus löschst, mußte den JS Controller danach neustarten damit der das neu einliest. Haste das gemacht?

      K 2 Antworten Letzte Antwort
      0
      • P Pittini

        @kgb sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

        @pittini P.S.: ich habe auch ehrlich gesagt nicht ganz verstanden wie es mit der Messung von Volt funktioniert.. kann man diese Funktion ausschalten, damit einfach nur auf Prozente der Batterieladung geschaut wird? Vielleicht, liegt das Problem auch da..

        Prozente sind ja nur ne andere Angabe der Spannung, also nein, kann man nicht ausschalten, braucht man nicht ausschalten. Zeig doch mal nen Screenshot aus der Objektliste wo ich seh wie Du die Batteriespannungsfunktion setzt und wo. Und falls Du Änderungen an den Skriptsettings gemacht hast, bitte auch davon nen Auszug.
        Wenn Du Geräte aus den Aufzählungen dazunimmst oder raus löschst, mußte den JS Controller danach neustarten damit der das neu einliest. Haste das gemacht?

        K Offline
        K Offline
        Kosta
        schrieb am zuletzt editiert von
        #467

        @pittini hier sind ein paar Screenshots. Danke für deine Unterstützung!!!IMG_3270.jpeg ![IMG_3269.jpeg](/assets/uploads/files/1636999083IMG_3267.jpeg 169-img_3269-resized.jpeg)

        P 1 Antwort Letzte Antwort
        0
        • P Pittini

          @kgb sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

          @pittini P.S.: ich habe auch ehrlich gesagt nicht ganz verstanden wie es mit der Messung von Volt funktioniert.. kann man diese Funktion ausschalten, damit einfach nur auf Prozente der Batterieladung geschaut wird? Vielleicht, liegt das Problem auch da..

          Prozente sind ja nur ne andere Angabe der Spannung, also nein, kann man nicht ausschalten, braucht man nicht ausschalten. Zeig doch mal nen Screenshot aus der Objektliste wo ich seh wie Du die Batteriespannungsfunktion setzt und wo. Und falls Du Änderungen an den Skriptsettings gemacht hast, bitte auch davon nen Auszug.
          Wenn Du Geräte aus den Aufzählungen dazunimmst oder raus löschst, mußte den JS Controller danach neustarten damit der das neu einliest. Haste das gemacht?

          K Offline
          K Offline
          Kosta
          schrieb am zuletzt editiert von
          #468

          @pittini IMG_3269.jpeg

          C 1 Antwort Letzte Antwort
          0
          • K Kosta

            @pittini IMG_3269.jpeg

            C Online
            C Online
            Chrunchy
            schrieb am zuletzt editiert von
            #469

            @kgb gemäß Script gibt es eine Variable "FunktionBaseName" (vorbelegt meine ich mit "BatterieSpannung_") diese muss dann für die jeweiligen Batteriespannungen verwendet werden.

            Beispiele:
            Geräte mit 3V Batteriespannung müssen in die Funktion "BatterieSpannung_30"
            Geräte mit 1,5V Batteriespannung müssen in die Funktion "BatterieSpannung_15"
            usw.

            Aus dem Zahlenwert wird ggf. die Sollspannung berechnet. Bei dir sind es 1V, was bei 50% dann eben nur 0,5V Ist-Spannung ergibt, also quasi 0.

            Gruß Chrunchy

            1 Antwort Letzte Antwort
            1
            • K Kosta

              @pittini hier sind ein paar Screenshots. Danke für deine Unterstützung!!!IMG_3270.jpeg ![IMG_3269.jpeg](/assets/uploads/files/1636999083IMG_3267.jpeg 169-img_3269-resized.jpeg)

              P Offline
              P Offline
              Pittini
              Developer
              schrieb am zuletzt editiert von
              #470

              @kgb Also zum einen ist der Raum falsch zugeordnet, das ganze Gerät ist in diesem Raum und nicht nur ein Datenpunkt. Zum anderen, wenn Du Bat_10 verwendest, mußte das auch in den Einstellungen im Skript anpassen. Wobei ich jetzt weder ein Gerät kenne, noch ne Batterie mit 1V. Siehe auch was @Chrunchy völlig korrekt anmerkte.

              1 Antwort Letzte Antwort
              1
              • K Offline
                K Offline
                kgw
                schrieb am zuletzt editiert von Negalein
                #471

                Hallo,

                Version 1.8.2
                iobroker alles auf Stand, JavaScript 5.2.8

                alles nach Anweisung eingebaut. Es kommen aber zunächst folgende Fehlermeldungen:

                javascript.0 2021-11-16 11:19:08.110	error	at CheckNextLowBatt (script.js.tmpNoRun.**Batterieüberwachung:379**:97)
                javascript.0 2021-11-16 11:19:08.109	error	Error in callback: TypeError: Cannot read property 'toFixed' of undefined
                
                
                javascript.0 2021-11-16 11:20:37.885	error	at MakeTable (script.js.tmpNoRun.**Batterieüberwachung:578**:105)
                javascript.0 2021-11-16 11:20:37.884	error	Error in callback: TypeError: Cannot read property 'common' of null
                
                
                javascript.0 2021-11-16 11:22:06.519	error	at MakeTable (script.js.tmpNoRun.**Batterieüberwachung:587**:75)
                javascript.0 2021-11-16 11:22:06.519	error	Error in callback: TypeError: Cannot read property 'toFixed' of undefined
                

                Aktiviert (BatterieSpannung_30) ist zunächst nur ein homematic Heizkörperventil:

                1fd82bd4-9240-4a5d-8620-c0e05f6a5eaa-grafik.png

                Ich habe hoffentlich alle Kommentare gelesen aber nichts für mich auffälliges entdeckt.
                Evtl. hat jmd, eine Idee bevor ich anfange zu debuggen?

                Gruß TS

                P 1 Antwort Letzte Antwort
                0
                • K kgw

                  Hallo,

                  Version 1.8.2
                  iobroker alles auf Stand, JavaScript 5.2.8

                  alles nach Anweisung eingebaut. Es kommen aber zunächst folgende Fehlermeldungen:

                  javascript.0 2021-11-16 11:19:08.110	error	at CheckNextLowBatt (script.js.tmpNoRun.**Batterieüberwachung:379**:97)
                  javascript.0 2021-11-16 11:19:08.109	error	Error in callback: TypeError: Cannot read property 'toFixed' of undefined
                  
                  
                  javascript.0 2021-11-16 11:20:37.885	error	at MakeTable (script.js.tmpNoRun.**Batterieüberwachung:578**:105)
                  javascript.0 2021-11-16 11:20:37.884	error	Error in callback: TypeError: Cannot read property 'common' of null
                  
                  
                  javascript.0 2021-11-16 11:22:06.519	error	at MakeTable (script.js.tmpNoRun.**Batterieüberwachung:587**:75)
                  javascript.0 2021-11-16 11:22:06.519	error	Error in callback: TypeError: Cannot read property 'toFixed' of undefined
                  

                  Aktiviert (BatterieSpannung_30) ist zunächst nur ein homematic Heizkörperventil:

                  1fd82bd4-9240-4a5d-8620-c0e05f6a5eaa-grafik.png

                  Ich habe hoffentlich alle Kommentare gelesen aber nichts für mich auffälliges entdeckt.
                  Evtl. hat jmd, eine Idee bevor ich anfange zu debuggen?

                  Gruß TS

                  P Offline
                  P Offline
                  Pittini
                  Developer
                  schrieb am zuletzt editiert von
                  #472

                  @kgw Na, das kann nicht gehen. Du hast die Funktion dem ganzen Gerät zugeordnet, das ist sinnfrei. Die Funktion ist nur einem Datenpunkt zuzuweisen, der Raum dem ganzen Gerät, steht auch explizit so in der Anleitung inkl. Screenshot.
                  2021-11-16 21_54_58-Window.png

                  K M 2 Antworten Letzte Antwort
                  0
                  • P Pittini

                    @kgw Na, das kann nicht gehen. Du hast die Funktion dem ganzen Gerät zugeordnet, das ist sinnfrei. Die Funktion ist nur einem Datenpunkt zuzuweisen, der Raum dem ganzen Gerät, steht auch explizit so in der Anleitung inkl. Screenshot.
                    2021-11-16 21_54_58-Window.png

                    K Offline
                    K Offline
                    kgw
                    schrieb am zuletzt editiert von kgw
                    #473

                    @pittini Herzlichen Dank!
                    im Eifer des Gefechts total übersehen! Wie üblich: Lesen hilft.:+1:
                    Werde ich heute abend gleich checken.

                    Heute Abend:
                    Kaum macht man's richtig...

                    1 Antwort Letzte Antwort
                    0
                    • P Pittini

                      @kgw Na, das kann nicht gehen. Du hast die Funktion dem ganzen Gerät zugeordnet, das ist sinnfrei. Die Funktion ist nur einem Datenpunkt zuzuweisen, der Raum dem ganzen Gerät, steht auch explizit so in der Anleitung inkl. Screenshot.
                      2021-11-16 21_54_58-Window.png

                      M Offline
                      M Offline
                      Mike Hellracer
                      schrieb am zuletzt editiert von
                      #474

                      @pittini
                      Hi, ich habe jetzt endlich mal wieder die Zeit gefunden mich um das Update deiner Scripte zu kümmern.
                      Es hat auch soweit alles funktioniert nur bei der Funktion für den DeadCheck stehe ich irgendwie auf dem Schlauch.
                      Viele der DP heißen "unreach" (z. B. ALiasse und HM) und liefern daraus resultierend ein false für OK. Das wird aber leider von deinem Script als "nicht erreichbar" interpretiert.
                      Muss ich da was konfigurieren damit es unreach und reachable kann?

                      P 1 Antwort Letzte Antwort
                      0
                      • M Mike Hellracer

                        @pittini
                        Hi, ich habe jetzt endlich mal wieder die Zeit gefunden mich um das Update deiner Scripte zu kümmern.
                        Es hat auch soweit alles funktioniert nur bei der Funktion für den DeadCheck stehe ich irgendwie auf dem Schlauch.
                        Viele der DP heißen "unreach" (z. B. ALiasse und HM) und liefern daraus resultierend ein false für OK. Das wird aber leider von deinem Script als "nicht erreichbar" interpretiert.
                        Muss ich da was konfigurieren damit es unreach und reachable kann?

                        P Offline
                        P Offline
                        Pittini
                        Developer
                        schrieb am zuletzt editiert von
                        #475

                        @mike-hellracer sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

                        Viele der DP heißen "unreach" (z. B. ALiasse und HM) und liefern daraus resultierend ein false für OK. Das wird aber leider von deinem Script als "nicht erreichbar" interpretiert.
                        Muss ich da was konfigurieren damit es unreach und reachable kann?

                        Das is aber seltsam, weil dem Deadcheck vollkommen egal ist was im Datenpunkt steht, der schaut nur aufn Zeitstempel, wann, welcher Wert auch immer, aktualisiert wurde. Versuch das bitte mal einzugrenzen und schau ob da aktualisiert wurde, sonst is die Meldung klar.

                        M 1 Antwort Letzte Antwort
                        0
                        • P Pittini

                          @mike-hellracer sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

                          Viele der DP heißen "unreach" (z. B. ALiasse und HM) und liefern daraus resultierend ein false für OK. Das wird aber leider von deinem Script als "nicht erreichbar" interpretiert.
                          Muss ich da was konfigurieren damit es unreach und reachable kann?

                          Das is aber seltsam, weil dem Deadcheck vollkommen egal ist was im Datenpunkt steht, der schaut nur aufn Zeitstempel, wann, welcher Wert auch immer, aktualisiert wurde. Versuch das bitte mal einzugrenzen und schau ob da aktualisiert wurde, sonst is die Meldung klar.

                          M Offline
                          M Offline
                          Mike Hellracer
                          schrieb am zuletzt editiert von Mike Hellracer
                          #476

                          @pittini
                          Ja der Zeitstempel ist ein paar Tage alt.

                          Zigbee Wassermelder:
                          -available aktualisiert nur bei Auslösung
                          Ggf. den DP Batterie nutzen oder kann man da was anpassen?

                          HM Fenstersensoren

                          • alle Werte aktualisieren maximal bei Auslösung :(

                          Hast du ggf. eine Idee, oder noch besser eine Lösung?

                          P 1 Antwort Letzte Antwort
                          0
                          • M Mike Hellracer

                            @pittini
                            Ja der Zeitstempel ist ein paar Tage alt.

                            Zigbee Wassermelder:
                            -available aktualisiert nur bei Auslösung
                            Ggf. den DP Batterie nutzen oder kann man da was anpassen?

                            HM Fenstersensoren

                            • alle Werte aktualisieren maximal bei Auslösung :(

                            Hast du ggf. eine Idee, oder noch besser eine Lösung?

                            P Offline
                            P Offline
                            Pittini
                            Developer
                            schrieb am zuletzt editiert von
                            #477

                            @mike-hellracer Wenn das Gerät tatsächlich keinen Datenpunkt hat, der regelmäßig aktualisiert wird, isses auch nicht möglich rauszufinden ob das Gerät tot ist, dann mußt dich halt auf reach/unreach bzw. die Batteriespannungsanzeige verlassen.

                            M 1 Antwort Letzte Antwort
                            0
                            • P Pittini

                              @mike-hellracer Wenn das Gerät tatsächlich keinen Datenpunkt hat, der regelmäßig aktualisiert wird, isses auch nicht möglich rauszufinden ob das Gerät tot ist, dann mußt dich halt auf reach/unreach bzw. die Batteriespannungsanzeige verlassen.

                              M Offline
                              M Offline
                              Mike Hellracer
                              schrieb am zuletzt editiert von
                              #478

                              @pittini
                              OK danke dir trotzdem.
                              Ich schaue mal was ich finden kann.

                              1 Antwort Letzte Antwort
                              0
                              • R Offline
                                R Offline
                                robudus
                                schrieb am zuletzt editiert von
                                #479

                                Hallo Zusammen,
                                benutze die Version 1.8.2 bei den Jeelinkgeräten bekomme ich eine Batteriewarnmldug obwohl alles ok ist. Kann jemand helfen?
                                Anbei die Screenshots. Es ist ein boolean Wert und steht auf false bzw 0. Bedeutet Batterie ist ok.
                                Bitte um Hilfe.

                                2021-11-21 21_48_12-vis.png

                                2021-11-21 21_47_14-objects - iobroker.png

                                2021-11-21 21_46_31-objects - iobroker.png

                                Vielen Dank

                                G ROBudus

                                P 1 Antwort Letzte Antwort
                                0
                                • R robudus

                                  Hallo Zusammen,
                                  benutze die Version 1.8.2 bei den Jeelinkgeräten bekomme ich eine Batteriewarnmldug obwohl alles ok ist. Kann jemand helfen?
                                  Anbei die Screenshots. Es ist ein boolean Wert und steht auf false bzw 0. Bedeutet Batterie ist ok.
                                  Bitte um Hilfe.

                                  2021-11-21 21_48_12-vis.png

                                  2021-11-21 21_47_14-objects - iobroker.png

                                  2021-11-21 21_46_31-objects - iobroker.png

                                  Vielen Dank

                                  G ROBudus

                                  P Offline
                                  P Offline
                                  Pittini
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #480

                                  @robudus Ich frag mich grad woher die 0 kommt, das RAW gibt das eigentlich nicht her. Der DP ist als Bool definiert, deswegen erwartet das Skript da auch nen Bool, also true oder false.

                                  M R 2 Antworten Letzte Antwort
                                  0
                                  • P Pittini

                                    @robudus Ich frag mich grad woher die 0 kommt, das RAW gibt das eigentlich nicht her. Der DP ist als Bool definiert, deswegen erwartet das Skript da auch nen Bool, also true oder false.

                                    M Offline
                                    M Offline
                                    Mike Hellracer
                                    schrieb am zuletzt editiert von Mike Hellracer
                                    #481

                                    @pittini
                                    sorry, aber ich habe noch ein Problem oder vlt nur ein Missverständnis.
                                    Wenn der Name des Sensor mehrsprachig ist wird für den Name des Sensor [Object] [Object] angezeigt.
                                    Oder sollte da der de Name der Funktion stehen?

                                    P 1 Antwort Letzte Antwort
                                    0
                                    • M Mike Hellracer

                                      @pittini
                                      sorry, aber ich habe noch ein Problem oder vlt nur ein Missverständnis.
                                      Wenn der Name des Sensor mehrsprachig ist wird für den Name des Sensor [Object] [Object] angezeigt.
                                      Oder sollte da der de Name der Funktion stehen?

                                      P Offline
                                      P Offline
                                      Pittini
                                      Developer
                                      schrieb am zuletzt editiert von Pittini
                                      #482

                                      @mike-hellracer sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

                                      Wenn der Name des Sensor mehrsprachig ist wird für den Name des Sensor [Object] [Object] angezeigt.
                                      Oder sollte da der de Name der Funktion stehen?

                                      Änder mal bitte wie aufm Bild zu sehen und sag obs dann klappt bitte.
                                      2021-11-22 12_13_13-Window.png

                                      Und hier als Text zum kopieren:

                                      if (TblShowDeviceNameCol) {
                                                 let tempName = getObject(GetParentId(Sensor[x].id), "common").common.name;
                                                 if (typeof tempName == "object") tempName = tempName.de;
                                                 MyTable += "<td " + style0 + BgColor + "'>" + tempName + "</td>";
                                             };
                                      
                                      M 2 Antworten Letzte Antwort
                                      0
                                      • P Pittini

                                        @mike-hellracer sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

                                        Wenn der Name des Sensor mehrsprachig ist wird für den Name des Sensor [Object] [Object] angezeigt.
                                        Oder sollte da der de Name der Funktion stehen?

                                        Änder mal bitte wie aufm Bild zu sehen und sag obs dann klappt bitte.
                                        2021-11-22 12_13_13-Window.png

                                        Und hier als Text zum kopieren:

                                        if (TblShowDeviceNameCol) {
                                                   let tempName = getObject(GetParentId(Sensor[x].id), "common").common.name;
                                                   if (typeof tempName == "object") tempName = tempName.de;
                                                   MyTable += "<td " + style0 + BgColor + "'>" + tempName + "</td>";
                                               };
                                        
                                        M Offline
                                        M Offline
                                        Mike Hellracer
                                        schrieb am zuletzt editiert von Mike Hellracer
                                        #483

                                        @pittini
                                        Yep, das war's
                                        Habe hier die Variable "enumCategory" auch für dieses Script...

                                        const WhichEnumCategoryToUse = "functions"; // Legt fest in welcher Kategorie sich die Aufzählungen befinden! Nur ändern wer weis was er tut!
                                        


                                        und die anzupassenden Zeilen 126, 232, 294

                                        let Funktionen = getEnums(WhichEnumCategoryToUse); //Array mit Aufzählung der Funktionen
                                        
                                        

                                        P 1 Antwort Letzte Antwort
                                        0
                                        • M Mike Hellracer

                                          @pittini
                                          Yep, das war's
                                          Habe hier die Variable "enumCategory" auch für dieses Script...

                                          const WhichEnumCategoryToUse = "functions"; // Legt fest in welcher Kategorie sich die Aufzählungen befinden! Nur ändern wer weis was er tut!
                                          


                                          und die anzupassenden Zeilen 126, 232, 294

                                          let Funktionen = getEnums(WhichEnumCategoryToUse); //Array mit Aufzählung der Funktionen
                                          
                                          

                                          P Offline
                                          P Offline
                                          Pittini
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #484

                                          @mike-hellracer sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:

                                          let Funktionen = getEnums(WhichEnumCategoryToUse); //Array mit Aufzählung der Funktionen

                                          Drin v1.8.3.

                                          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

                                          817

                                          Online

                                          32.4k

                                          Benutzer

                                          81.6k

                                          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