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

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

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

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          786

                                          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