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. Script Xiaomi Battery leer ?

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.2k

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

Script Xiaomi Battery leer ?

Scheduled Pinned Locked Moved Unsolved Skripten / Logik
blockly
93 Posts 19 Posters 11.0k Views 16 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.
  • P passuff

    @ilovegym sagte in Script Xiaomi Battery leer ?:

    Hi,
    ich verwende dafür dieses Javascript, das alle xiaomi-batterie States scannt und dann in einen Datenpunkt schreibt, wo die Batterie leer ist.
    Funktioniert auch prima mit fritzdect, muss nur der State geändert werden.

    const idVis = 'Batterie.MiHomeBatterietausch';
    const batt = $('mihome.0.*.percent');
    
    createState(idVis, '', {type: 'string'});
    
    function lowBatt() {
    	var low = [];
    	batt.each(function (id, i) {
    	if(getState(id).val < 30) {
    			id = id.split('.');
    			id = 'mihome.0.' + id[2] + '.' + id[3];
    			low.push(getObject(id).common.name); // Geräte-Name
    		}	
    	});
    	setState(idVis, low.join(',<br>'), true);		
    }
    
    schedule('0 * * * *', lowBatt); // jede volle Stunde
    
    
    

    Vielen Dank für das Skript. Ich wollte es neben mihome ach für meine Homematic Komponenten einsetzen. Dazu habe ich es wie folgt geändert:


    const idVis = 'Batterie.HomematicBatterietausch';
    const batt = $('hm-rpc.0.OEQ19*.LOWBAT');

    createState(idVis, '', {type: 'string'});

    function lowBatt() {
    console.log('lowbat Homematic wird ausgeführt');
    var low = [];
    batt.each(function (id, i) {
    if(getState(id).val == true) {
    id = id.split('.');
    id = 'hm-rpc.0.' + id[2] + '.' + id[3];
    low.push(getObject(id).common.name); // Geräte-Name
    }
    });
    setState(idVis, low.join(',<br>'), true);
    }

    //schedule('*/5 * * * * *', lowBatt); // jeden Tag
    schedule('{"time":{"exactTime":true,"start":"18:00"},"period":{"days":1}}', lowBatt)


    Ich würde gerne abgesehen vom Gerätenamen noch den Raum in den Datenpunkt schreiben, da bei mir dieser aus der Homematic Nomenklatur nicht hervorgeht. Wie stelle ich das an?

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

    @passuff

    var raum = getObject(id, 'rooms').enumNames.join(', ');
    

    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

    P 1 Reply Last reply
    0
    • paul53P paul53

      @passuff

      var raum = getObject(id, 'rooms').enumNames.join(', ');
      
      P Offline
      P Offline
      passuff
      wrote on last edited by
      #59

      @paul53 sagte in Script Xiaomi Battery leer ?:

      @passuff

      var raum = getObject(id, 'rooms').enumNames.join(', ');
      

      Wo muss das hin? Ich bin blutiger Anfänger und habe bisher nur blockly code generiert.

      Mein erster Versuch schlug direkt fehl.

      paul53P 1 Reply Last reply
      0
      • P passuff

        @paul53 sagte in Script Xiaomi Battery leer ?:

        @passuff

        var raum = getObject(id, 'rooms').enumNames.join(', ');
        

        Wo muss das hin? Ich bin blutiger Anfänger und habe bisher nur blockly code generiert.

        Mein erster Versuch schlug direkt fehl.

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

        @passuff sagte:

        Wo muss das hin?

        Wie willst Du die Räume anzeigen ? Zusammen mit dem Kanalnamen (davor / dahinter) oder getrennt ?

        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

        P 1 Reply Last reply
        0
        • paul53P paul53

          @passuff sagte:

          Wo muss das hin?

          Wie willst Du die Räume anzeigen ? Zusammen mit dem Kanalnamen (davor / dahinter) oder getrennt ?

          P Offline
          P Offline
          passuff
          wrote on last edited by
          #61

          @paul53 Kanalname + Raum wäre super

          paul53P 1 Reply Last reply
          0
          • P passuff

            @paul53 Kanalname + Raum wäre super

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

            @passuff

                  id = 'hm-rpc.0.' + id[2] + '.' + id[3];
                  var raum = getObject(id, 'rooms').enumNames.join(', ');
                  low.push(getObject(id).common.name + ': ' + raum); // Kanal-Name: Raum
                }
            

            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

            P 1 Reply Last reply
            0
            • paul53P paul53

              @passuff

                    id = 'hm-rpc.0.' + id[2] + '.' + id[3];
                    var raum = getObject(id, 'rooms').enumNames.join(', ');
                    low.push(getObject(id).common.name + ': ' + raum); // Kanal-Name: Raum
                  }
              
              P Offline
              P Offline
              passuff
              wrote on last edited by
              #63

              @paul53 sagte in Script Xiaomi Battery leer ?:

              id = 'hm-rpc.0.' + id[2] + '.' + id[3];
              var raum = getObject(id, 'rooms').enumNames.join(', ');
              low.push(getObject(id).common.name + ': ' + raum); // Kanal-Name: Raum
              }

              Vielen Dank. Funktioniert bestens!

              1 Reply Last reply
              0
              • StM47S Offline
                StM47S Offline
                StM47
                wrote on last edited by
                #64

                Bekomme bei einem Xiaomi Temperatur Sensor keine Werte bei Batterie und Spannung angezeigt.
                Ist das Teil defekt oder die Batterie leer?

                Der Sensor ist ca. 5 Wochen alt.

                Bildschirmfoto 2019-03-26 um 16.08.50.png

                ioBroker im Docker auf Synology DiskStation DS 716+II mit DSM 6.2.1

                • Lightmanager Air / Lupusec XT2 Plus mit div. Fenster- u. Türkontakten, Rauch- u. Bewegungsmelder / Harmony Hub / Fritzbox 7590 OS7
                • schaltbare Steckdosen / Alexa Echo Dot 3 / Zigbee USB Stick / diverse Xiaomi Produkte / Xiaomi Yeelight Birnen
                1 Reply Last reply
                0
                • MyzerATM Offline
                  MyzerATM Offline
                  MyzerAT
                  wrote on last edited by
                  #65

                  hast du ihn erst angelernt? wenn ja dauert das bis zu ein paar stunden!

                  lg Rudi

                  Master Debian 12 (Wien)
                  Intel NUC6CAYH 16GB RAM, 500 GB SSD & auf Proxmox 8. 7. als VM

                  Slave Debian 12. (TULLN) --> OpenVPN to Vienna
                  Intel NUC6CAYH 16GB RAM, 500 GB SSD & auf Proxmox 8.7. als VM

                  Node 20.19.0
                  Nodejs 20.19.0
                  npm 10.8.2
                  js-controller 7.0.6

                  1 Reply Last reply
                  0
                  • StM47S Offline
                    StM47S Offline
                    StM47
                    wrote on last edited by
                    #66

                    Ja habe ich.
                    Die Anderen, welche ich gleichzeitig angelernt habe, liefern aber direkt die Daten

                    ioBroker im Docker auf Synology DiskStation DS 716+II mit DSM 6.2.1

                    • Lightmanager Air / Lupusec XT2 Plus mit div. Fenster- u. Türkontakten, Rauch- u. Bewegungsmelder / Harmony Hub / Fritzbox 7590 OS7
                    • schaltbare Steckdosen / Alexa Echo Dot 3 / Zigbee USB Stick / diverse Xiaomi Produkte / Xiaomi Yeelight Birnen
                    1 Reply Last reply
                    0
                    • MyzerATM Offline
                      MyzerATM Offline
                      MyzerAT
                      wrote on last edited by MyzerAT
                      #67

                      die Temp und Feuchtigkeit liefert er ja, hauch ihn an , dann siehst ja eh ob er reagiert, Status der Batterie kann dennoch ewig dauern!

                      lg Rudi

                      Master Debian 12 (Wien)
                      Intel NUC6CAYH 16GB RAM, 500 GB SSD & auf Proxmox 8. 7. als VM

                      Slave Debian 12. (TULLN) --> OpenVPN to Vienna
                      Intel NUC6CAYH 16GB RAM, 500 GB SSD & auf Proxmox 8.7. als VM

                      Node 20.19.0
                      Nodejs 20.19.0
                      npm 10.8.2
                      js-controller 7.0.6

                      1 Reply Last reply
                      0
                      • StM47S Offline
                        StM47S Offline
                        StM47
                        wrote on last edited by
                        #68

                        Ok! Danke erstmal. Werde ich beobachten.

                        ioBroker im Docker auf Synology DiskStation DS 716+II mit DSM 6.2.1

                        • Lightmanager Air / Lupusec XT2 Plus mit div. Fenster- u. Türkontakten, Rauch- u. Bewegungsmelder / Harmony Hub / Fritzbox 7590 OS7
                        • schaltbare Steckdosen / Alexa Echo Dot 3 / Zigbee USB Stick / diverse Xiaomi Produkte / Xiaomi Yeelight Birnen
                        1 Reply Last reply
                        0
                        • P Offline
                          P Offline
                          passuff
                          wrote on last edited by passuff
                          #69

                          Wollte jetzt den Raumnamen entfernen aber irgendwie habe ich das skript zerschossen:

                          const idVis = 'Batterie.HomematicBatterietausch';
                          const batt = $('hm-rpc.0.*.LOWBAT');
                           
                          createState(idVis, '', {type: 'string'});
                           
                          function lowBatt() {
                          	console.log('lowbat Homematic wird ausgeführt');
                              var low = [];
                              batt.each(function (id, i) {
                          	if(getState(id).val == true) {
                          			id = id.split('.');
                          			id = 'hm-rpc.0.' + id[2];
                                      low.push(getObject(id).common.name); // Kanal-Name: Raum
                              }
                                   	
                          	});
                          	setState(idVis, low.join(','), true);		
                          }
                          
                          
                          schedule('*/5 * * * * *', lowBatt); // jeden Tag 
                          //schedule('{"time":{"exactTime":true,"start":"18:00"},"period":{"days":1}}', lowBatt)
                           
                           
                           
                          

                          Folgendes Warn im Log:

                          javascript.0 2019-08-04 21:53:45.008 warn at Timer.processTimers (timers.js:223:10)
                          javascript.0 2019-08-04 21:53:45.008 warn at listOnTimeout (timers.js:263:5)
                          javascript.0 2019-08-04 21:53:45.008 warn at tryOnTimeout (timers.js:300:5)
                          javascript.0 2019-08-04 21:53:45.007 warn at ontimeout (timers.js:436:11)
                          javascript.0 2019-08-04 21:53:45.007 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                          javascript.0 2019-08-04 21:53:45.007 warn at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                          javascript.0 2019-08-04 21:53:45.007 warn at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                          javascript.0 2019-08-04 21:53:45.007 warn at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1191:34)
                          javascript.0 2019-08-04 21:53:45.007 warn at Object.lowBatt (script.js.common.Batteriestatus.Batteriestatus_Homematic:9:10)
                          javascript.0 2019-08-04 21:53:45.007 warn at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:778:29)
                          javascript.0 2019-08-04 21:53:45.006 warn at script.js.common.Batteriestatus.Batteriestatus_Homematic:10:5
                          javascript.0 2019-08-04 21:53:45.004 warn getState "hm-rpc.0.PEQ0508233.0.LOWBAT" not found (3) states[id]=null
                          javascript.0 2019-08-04 21:53:45.001 info script.js.common.Batteriestatus.Batteriestatus_Homematic: lowbat Homematic wird ausgeführt

                          GlasfaserG paul53P 2 Replies Last reply
                          0
                          • P passuff

                            Wollte jetzt den Raumnamen entfernen aber irgendwie habe ich das skript zerschossen:

                            const idVis = 'Batterie.HomematicBatterietausch';
                            const batt = $('hm-rpc.0.*.LOWBAT');
                             
                            createState(idVis, '', {type: 'string'});
                             
                            function lowBatt() {
                            	console.log('lowbat Homematic wird ausgeführt');
                                var low = [];
                                batt.each(function (id, i) {
                            	if(getState(id).val == true) {
                            			id = id.split('.');
                            			id = 'hm-rpc.0.' + id[2];
                                        low.push(getObject(id).common.name); // Kanal-Name: Raum
                                }
                                     	
                            	});
                            	setState(idVis, low.join(','), true);		
                            }
                            
                            
                            schedule('*/5 * * * * *', lowBatt); // jeden Tag 
                            //schedule('{"time":{"exactTime":true,"start":"18:00"},"period":{"days":1}}', lowBatt)
                             
                             
                             
                            

                            Folgendes Warn im Log:

                            javascript.0 2019-08-04 21:53:45.008 warn at Timer.processTimers (timers.js:223:10)
                            javascript.0 2019-08-04 21:53:45.008 warn at listOnTimeout (timers.js:263:5)
                            javascript.0 2019-08-04 21:53:45.008 warn at tryOnTimeout (timers.js:300:5)
                            javascript.0 2019-08-04 21:53:45.007 warn at ontimeout (timers.js:436:11)
                            javascript.0 2019-08-04 21:53:45.007 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                            javascript.0 2019-08-04 21:53:45.007 warn at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                            javascript.0 2019-08-04 21:53:45.007 warn at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                            javascript.0 2019-08-04 21:53:45.007 warn at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1191:34)
                            javascript.0 2019-08-04 21:53:45.007 warn at Object.lowBatt (script.js.common.Batteriestatus.Batteriestatus_Homematic:9:10)
                            javascript.0 2019-08-04 21:53:45.007 warn at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:778:29)
                            javascript.0 2019-08-04 21:53:45.006 warn at script.js.common.Batteriestatus.Batteriestatus_Homematic:10:5
                            javascript.0 2019-08-04 21:53:45.004 warn getState "hm-rpc.0.PEQ0508233.0.LOWBAT" not found (3) states[id]=null
                            javascript.0 2019-08-04 21:53:45.001 info script.js.common.Batteriestatus.Batteriestatus_Homematic: lowbat Homematic wird ausgeführt

                            GlasfaserG Offline
                            GlasfaserG Offline
                            Glasfaser
                            wrote on last edited by Glasfaser
                            #70

                            @passuff sagte in Script Xiaomi Battery leer ?:

                            …………………….> javascript.0 2019-08-04 21:53:45.004 warn getState "hm-rpc.0.PEQ0508233.0.LOWBAT" not found (3) states[id]=null
                            ………………….

                            Dein Skript macht kein Fehler .

                            Da ist ein Fehler im Datenpunkt hm-rpc.0.PEQ0508233.0.LOWBAT not found (3) states[id]=null

                            Schau mal nach ob da ein Wert vorhanden ist !?

                            Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                            P 1 Reply Last reply
                            0
                            • GlasfaserG Glasfaser

                              @passuff sagte in Script Xiaomi Battery leer ?:

                              …………………….> javascript.0 2019-08-04 21:53:45.004 warn getState "hm-rpc.0.PEQ0508233.0.LOWBAT" not found (3) states[id]=null
                              ………………….

                              Dein Skript macht kein Fehler .

                              Da ist ein Fehler im Datenpunkt hm-rpc.0.PEQ0508233.0.LOWBAT not found (3) states[id]=null

                              Schau mal nach ob da ein Wert vorhanden ist !?

                              P Offline
                              P Offline
                              passuff
                              wrote on last edited by
                              #71

                              @Glasfaser
                              Der Datenpunkt ist ein Homematic Schaltaktor. Der hat, wie andere Geräte auch, keinen Batteriestatus. Warum stört sich das Skript daran?
                              Darüber hinaus funktioniert die Bedingung ( == true) nicht. Es werden schlussendlich alle Homematicgeräte mit LOWBAT gelistet, auch die die false sind...

                              GlasfaserG P 2 Replies Last reply
                              0
                              • P passuff

                                @Glasfaser
                                Der Datenpunkt ist ein Homematic Schaltaktor. Der hat, wie andere Geräte auch, keinen Batteriestatus. Warum stört sich das Skript daran?
                                Darüber hinaus funktioniert die Bedingung ( == true) nicht. Es werden schlussendlich alle Homematicgeräte mit LOWBAT gelistet, auch die die false sind...

                                GlasfaserG Offline
                                GlasfaserG Offline
                                Glasfaser
                                wrote on last edited by
                                #72

                                @passuff

                                Sieht es nicht bei dir so aus !?

                                www.JPG

                                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                P 1 Reply Last reply
                                0
                                • GlasfaserG Glasfaser

                                  @passuff

                                  Sieht es nicht bei dir so aus !?

                                  www.JPG

                                  P Offline
                                  P Offline
                                  passuff
                                  wrote on last edited by
                                  #73

                                  @Glasfaser

                                  Nein, wie gesagt das Gerät ist eine Steckdose. Diese hat keine Batterie und daher auch keinen Batteriestatus...

                                  GlasfaserG 1 Reply Last reply
                                  0
                                  • P passuff

                                    @Glasfaser

                                    Nein, wie gesagt das Gerät ist eine Steckdose. Diese hat keine Batterie und daher auch keinen Batteriestatus...

                                    GlasfaserG Offline
                                    GlasfaserG Offline
                                    Glasfaser
                                    wrote on last edited by
                                    #74

                                    @passuff

                                    Sorry ...mit der Angabe " Homematic Schaltaktor " konnte ich leider nicht erlesen , das es sich um eine Steckdose handelt .

                                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                    GlasfaserG 1 Reply Last reply
                                    0
                                    • GlasfaserG Glasfaser

                                      @passuff

                                      Sorry ...mit der Angabe " Homematic Schaltaktor " konnte ich leider nicht erlesen , das es sich um eine Steckdose handelt .

                                      GlasfaserG Offline
                                      GlasfaserG Offline
                                      Glasfaser
                                      wrote on last edited by
                                      #75

                                      @Glasfaser

                                      Hier die HM Steckdose ( Keine IP )

                                      Es gibt da ein Datenpunkt !

                                      steckdose.JPG

                                      Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                      P 1 Reply Last reply
                                      0
                                      • GlasfaserG Glasfaser

                                        @Glasfaser

                                        Hier die HM Steckdose ( Keine IP )

                                        Es gibt da ein Datenpunkt !

                                        steckdose.JPG

                                        P Offline
                                        P Offline
                                        passuff
                                        wrote on last edited by
                                        #76

                                        @Glasfaser
                                        Muss mich entschuldigen. Ich habe mich im Gerät geirrt. Du hattest völlig recht:

                                        2019-08-04_22-38-43.jpg

                                        Scheint als hat de Fernbedienung keinen Empfang und sendet daher weder true noch false.

                                        GlasfaserG 1 Reply Last reply
                                        0
                                        • P passuff

                                          @Glasfaser
                                          Muss mich entschuldigen. Ich habe mich im Gerät geirrt. Du hattest völlig recht:

                                          2019-08-04_22-38-43.jpg

                                          Scheint als hat de Fernbedienung keinen Empfang und sendet daher weder true noch false.

                                          GlasfaserG Offline
                                          GlasfaserG Offline
                                          Glasfaser
                                          wrote on last edited by
                                          #77

                                          @passuff

                                          Richtig … kein Empfang ….

                                          fern.JPG

                                          Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                          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

                                          706

                                          Online

                                          32.4k

                                          Users

                                          81.5k

                                          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