Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Script Xiaomi Battery leer ?

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    267

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

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

Script Xiaomi Battery leer ?

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.
  • NegaleinN Negalein

    @lesiflo sagte in Script Xiaomi Battery leer ?:

    Hier ist es: Zigbee.txt

    Hallo

    Ich hab gerade dein Script in Blockly importiert.
    Mir wird alles angezeigt, aber ich sehe auch einen schwarzen Baustein.
    javascript - ioBroker.png
    Fehlt da bei mir irgendwas?

    Danke

    L Offline
    L Offline
    lesiflo
    Most Active
    wrote on last edited by
    #43

    @Negalein
    Wie sieh der Rest von Script aus?

    NegaleinN 1 Reply Last reply
    0
    • MyzerATM Offline
      MyzerATM Offline
      MyzerAT
      wrote on last edited by
      #44

      f56edd84-9ef2-4e01-af2b-2482dd93b38c-grafik.png

      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
      • L lesiflo

        @Negalein
        Wie sieh der Rest von Script aus?

        NegaleinN Offline
        NegaleinN Offline
        Negalein
        Global Moderator
        wrote on last edited by
        #45

        @lesiflo sagte in Script Xiaomi Battery leer ?:

        @Negalein
        Wie sieh der Rest von Script aus?

        javascript - ioBroker (1).png

        ° Node.js: 20.17.0 NPM: 10.8.2
        ° Proxmox, Ubuntu 22.04.3 LTS
        ° Fixer ---> iob fix

        L 1 Reply Last reply
        0
        • NegaleinN Negalein

          @lesiflo sagte in Script Xiaomi Battery leer ?:

          @Negalein
          Wie sieh der Rest von Script aus?

          javascript - ioBroker (1).png

          L Offline
          L Offline
          lesiflo
          Most Active
          wrote on last edited by
          #46

          @Negalein

          Beim Batteriescript fehlt nichts. Kannst du löschen wenn es denn geht.

          NegaleinN 1 Reply Last reply
          0
          • L lesiflo

            @Negalein

            Beim Batteriescript fehlt nichts. Kannst du löschen wenn es denn geht.

            NegaleinN Offline
            NegaleinN Offline
            Negalein
            Global Moderator
            wrote on last edited by
            #47

            @lesiflo sagte in Script Xiaomi Battery leer ?:

            @Negalein

            Beim Batteriescript fehlt nichts. Kannst du löschen wenn es denn geht.

            Danke

            Aktuell hab ich leider das Problem, dass bei den Blocklys kein "Speichern Button" erscheint.

            ° Node.js: 20.17.0 NPM: 10.8.2
            ° Proxmox, Ubuntu 22.04.3 LTS
            ° Fixer ---> iob fix

            1 Reply Last reply
            0
            • MyzerATM Offline
              MyzerATM Offline
              MyzerAT
              wrote on last edited by
              #48

              verschieb es etwas, dann sollte speichern möglich sein, das speichern ist nur ausgegraut wenn keine änderungen sind!

              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

              NegaleinN 1 Reply Last reply
              0
              • MyzerATM MyzerAT

                verschieb es etwas, dann sollte speichern möglich sein, das speichern ist nur ausgegraut wenn keine änderungen sind!

                NegaleinN Offline
                NegaleinN Offline
                Negalein
                Global Moderator
                wrote on last edited by
                #49

                @MyzerAT sagte in Script Xiaomi Battery leer ?:

                verschieb es etwas, dann sollte speichern möglich sein, das speichern ist nur ausgegraut wenn keine änderungen sind!

                Danke, das wars!

                ° Node.js: 20.17.0 NPM: 10.8.2
                ° Proxmox, Ubuntu 22.04.3 LTS
                ° Fixer ---> iob fix

                1 Reply Last reply
                0
                • ? A Former User

                  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
                  
                  
                  
                  K Offline
                  K Offline
                  karstent
                  wrote on last edited by
                  #50

                  @ilovegym
                  Und wie bekommst Du diese Nachricht das die Batterien sich leeren? Würde gerne das Script benutzen. Danke

                  ? 1 Reply Last reply
                  0
                  • MyzerATM Offline
                    MyzerATM Offline
                    MyzerAT
                    wrote on last edited by
                    #51

                    sieht für mich aus als ob es über vis ausgegeben wird

                    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
                    • iomountainI Offline
                      iomountainI Offline
                      iomountain
                      wrote on last edited by
                      #52

                      @karstent sagte in Script Xiaomi Battery leer ?:

                      Und wie bekommst Du diese Nachricht das die Batterien sich leeren? Würde gerne das Script benutzen. Danke

                      Brauchst dir nur die Variable "Alarmtext" als Text, zum Beispiel mit Telegram, aufs Handy schicken.
                      Funktioniert bei mir 1 A

                      1 Reply Last reply
                      0
                      • K Offline
                        K Offline
                        karstent
                        wrote on last edited by
                        #53

                        Ist das die Variable "Batterie.MiHomeBatterietausch"? Eine andere finde ich nicht.

                        iomountainI 1 Reply Last reply
                        0
                        • K karstent

                          Ist das die Variable "Batterie.MiHomeBatterietausch"? Eine andere finde ich nicht.

                          iomountainI Offline
                          iomountainI Offline
                          iomountain
                          wrote on last edited by
                          #54

                          @karstent die Variable "Alarmtext" aus dem Blockly von @MyzerAT oder @Negalein

                          1 Reply Last reply
                          0
                          • K karstent

                            @ilovegym
                            Und wie bekommst Du diese Nachricht das die Batterien sich leeren? Würde gerne das Script benutzen. Danke

                            ? Offline
                            ? Offline
                            A Former User
                            wrote on last edited by
                            #55

                            @karstent sagte in Script Xiaomi Battery leer ?:

                            @ilovegym
                            Und wie bekommst Du diese Nachricht das die Batterien sich leeren? Würde gerne das Script benutzen. Danke

                            Ich triggere das Objekt javascript.0.Batterie.MiHomeBatterietausch ( habe da noch mehr, -FritzBatterietausch, etc..) mit einem anderen Script, das mir den Wert dann als Message über Telegram schickt.

                            1 Reply Last reply
                            0
                            • iomountainI Offline
                              iomountainI Offline
                              iomountain
                              wrote on last edited by
                              #56

                              @karstent so sieht es bei mir aus:
                              5c518edc-94eb-4cf4-91ce-b130ecbd982d-image.png

                              1 Reply Last reply
                              0
                              • ? A Former User

                                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
                                
                                
                                
                                P Offline
                                P Offline
                                passuff
                                wrote on last edited by passuff
                                #57

                                @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 1 Reply Last reply
                                0
                                • 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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          160

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe