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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Batteriescripterweiterung Mihome auf Zigbee-Ad.

NEWS

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

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

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

Batteriescripterweiterung Mihome auf Zigbee-Ad.

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascriptmonitoring
15 Beiträge 5 Kommentatoren 1.0k Aufrufe 5 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.
  • D DocGame

    Hab jetzt wirklich alles versucht.... ich bekomme es nicht hin.
    @paul53 von dir hatte ich ja das Ursprungsscript für die MiHub Abfrage. Was muss ich ändern um auch die Zigbee-Adapter Batteriewerte rein zu bekommen?

    Gruß Ralf

    T Nicht stören
    T Nicht stören
    ticaki
    schrieb am zuletzt editiert von ticaki
    #3

    @DocGame
    Kannst du mir mal den kompletten Datenpfad für zigbee.0.*.battery als Beispiel posten mit Wert? Wollte nachher sowas ähnliches für mich schreiben. Kann ich mir sparen :)

    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

    Spenden

    D 1 Antwort Letzte Antwort
    0
    • T ticaki

      @DocGame
      Kannst du mir mal den kompletten Datenpfad für zigbee.0.*.battery als Beispiel posten mit Wert? Wollte nachher sowas ähnliches für mich schreiben. Kann ich mir sparen :)

      D Offline
      D Offline
      DocGame
      schrieb am zuletzt editiert von
      #4

      @ticaki Hier das Script, das mit den MiHome Geräten einwandfrei läuft:

      const mihome = $('channel[state.id=mihome.0.devices.*.percent]');
      var Infos = [];
      var Values = [];
      function checkBatt(id, i) {
          var value = getState(id).val;
          if(value < 101) { // Anpassen !
              var pathname = id.substring(0, id.lastIndexOf('.'));
              var name = getObject(pathname).common.name;
              if(Infos.indexOf(name) == -1) {
                  Infos.push(name);
                  Values.push(value);
              }
          }
      }
      
      function lowBatt() {
         Infos = []; 
         Values= [];    
         var InfoMessage = 'Batterien Stand Liste:\n';
         mihome.each(checkBatt);
      
         if(Infos.length) {
            for(let i = 0; i < Infos.length; i++) {
               InfoMessage = InfoMessage + Infos[i] + ': ' + Values[i] + ' %\n';
            }  
            sendTo("telegram", "send", {user: 'Ralf', text: InfoMessage});
         }
      }
      on({id: /^mihome\.0\.devices\..+\.percent$/, valLt: 30, oldValGe: 30}, lowBatt); // Triggert bei Erreichen des Grenzwertes
      
      lowBatt(); // Aufruf bei Skriptstart
      

      Das will ich noch für die Batteriegeräte der Zigbee (am wichtigsten), Hue und Deconz-Adapter erweitern, damit ich alles in der Liste habe.
      Hier scheitere ich allerdings mit meinen Künsten.
      PS: Den Wert von 101 habe ich drin, damit ich bei Start des Scripts eine gesamtliste (egal welcher Stand) bekomme. Die Leermeldung kommt ja weiter unten.

      sigi234S T 2 Antworten Letzte Antwort
      0
      • D DocGame

        @ticaki Hier das Script, das mit den MiHome Geräten einwandfrei läuft:

        const mihome = $('channel[state.id=mihome.0.devices.*.percent]');
        var Infos = [];
        var Values = [];
        function checkBatt(id, i) {
            var value = getState(id).val;
            if(value < 101) { // Anpassen !
                var pathname = id.substring(0, id.lastIndexOf('.'));
                var name = getObject(pathname).common.name;
                if(Infos.indexOf(name) == -1) {
                    Infos.push(name);
                    Values.push(value);
                }
            }
        }
        
        function lowBatt() {
           Infos = []; 
           Values= [];    
           var InfoMessage = 'Batterien Stand Liste:\n';
           mihome.each(checkBatt);
        
           if(Infos.length) {
              for(let i = 0; i < Infos.length; i++) {
                 InfoMessage = InfoMessage + Infos[i] + ': ' + Values[i] + ' %\n';
              }  
              sendTo("telegram", "send", {user: 'Ralf', text: InfoMessage});
           }
        }
        on({id: /^mihome\.0\.devices\..+\.percent$/, valLt: 30, oldValGe: 30}, lowBatt); // Triggert bei Erreichen des Grenzwertes
        
        lowBatt(); // Aufruf bei Skriptstart
        

        Das will ich noch für die Batteriegeräte der Zigbee (am wichtigsten), Hue und Deconz-Adapter erweitern, damit ich alles in der Liste habe.
        Hier scheitere ich allerdings mit meinen Künsten.
        PS: Den Wert von 101 habe ich drin, damit ich bei Start des Scripts eine gesamtliste (egal welcher Stand) bekomme. Die Leermeldung kommt ja weiter unten.

        sigi234S Online
        sigi234S Online
        sigi234
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #5

        @DocGame

        https://forum.iobroker.net/topic/28789/script-fürtabelle-der-batterie-zustände

        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Immer Daten sichern!

        D 1 Antwort Letzte Antwort
        0
        • T Offline
          T Offline
          Tictactoo
          schrieb am zuletzt editiert von
          #6

          Also so funktioniert es bei mir mit den Zigbee-Geräten. Mit MiHome, keine Ahnung, hab das leider so nicht drin.

          const mihome = $('mihome.0.devices.*.percent');
          const zigbee = $('zigbee.0.*.battery');
          
          var Infos = [];
          var Values = [];
          
          function checkBatt(id, i) {
              var value = getState(id).val;
          
              if(value < 101) { // Anpassen !
                  var pathname = id.substring(0, id.lastIndexOf('.'));
                  var name = getObject(pathname).common.name;
                  if(Infos.indexOf(name) == -1) {
                      Infos.push(name);
                      Values.push(value);
          
                  }
              }
          }
          
          function lowBatt() {
             Infos = []; 
             Values= [];    
          
             var InfoMessage = 'Batterien Stand Liste:\n';
          
             mihome.each(checkBatt);
             zigbee.each(checkBatt);
          
             if(Infos.length) {
                for(let i = 0; i < Infos.length; i++) {
                   InfoMessage = InfoMessage + Infos[i] + ': ' + Values[i] + ' %\n';
                }  
                sendTo("telegram", "send", {user: 'Ralf', text: InfoMessage});
             }
          }
          
          on({id: /^mihome\.0\.devices\..+\.percent$/, valLt: 30, oldValGe: 30}, lowBatt); // Triggert bei Erreichen des Grenzwertes
          on({id: /^zigbee\.0\.devices\..+\.battery$/, valLt: 30, oldValGe: 30}, lowBatt); // Triggert bei Erreichen des Grenzwertes
          
          lowBatt(); // Aufruf bei Skriptstart
          
          
          1 Antwort Letzte Antwort
          0
          • D DocGame

            @ticaki Hier das Script, das mit den MiHome Geräten einwandfrei läuft:

            const mihome = $('channel[state.id=mihome.0.devices.*.percent]');
            var Infos = [];
            var Values = [];
            function checkBatt(id, i) {
                var value = getState(id).val;
                if(value < 101) { // Anpassen !
                    var pathname = id.substring(0, id.lastIndexOf('.'));
                    var name = getObject(pathname).common.name;
                    if(Infos.indexOf(name) == -1) {
                        Infos.push(name);
                        Values.push(value);
                    }
                }
            }
            
            function lowBatt() {
               Infos = []; 
               Values= [];    
               var InfoMessage = 'Batterien Stand Liste:\n';
               mihome.each(checkBatt);
            
               if(Infos.length) {
                  for(let i = 0; i < Infos.length; i++) {
                     InfoMessage = InfoMessage + Infos[i] + ': ' + Values[i] + ' %\n';
                  }  
                  sendTo("telegram", "send", {user: 'Ralf', text: InfoMessage});
               }
            }
            on({id: /^mihome\.0\.devices\..+\.percent$/, valLt: 30, oldValGe: 30}, lowBatt); // Triggert bei Erreichen des Grenzwertes
            
            lowBatt(); // Aufruf bei Skriptstart
            

            Das will ich noch für die Batteriegeräte der Zigbee (am wichtigsten), Hue und Deconz-Adapter erweitern, damit ich alles in der Liste habe.
            Hier scheitere ich allerdings mit meinen Künsten.
            PS: Den Wert von 101 habe ich drin, damit ich bei Start des Scripts eine gesamtliste (egal welcher Stand) bekomme. Die Leermeldung kommt ja weiter unten.

            T Nicht stören
            T Nicht stören
            ticaki
            schrieb am zuletzt editiert von
            #7

            @DocGame
            ich werde das Skript nachher auf Devonz und MQTT erweitern, kann es ja posten. Zigbee hab ich nicht installiert.

            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

            Spenden

            D 1 Antwort Letzte Antwort
            0
            • sigi234S sigi234

              @DocGame

              https://forum.iobroker.net/topic/28789/script-fürtabelle-der-batterie-zustände

              D Offline
              D Offline
              DocGame
              schrieb am zuletzt editiert von
              #8

              @sigi234 Das habe ich vor einigen Tagen versucht zum laufen zu bringen, weil es toll aussieht....bin aber schon an der 1. Zeile(Pfad für HTML) gescheitert.
              Siehr gut und interessant aus. Ich bin normal in Blockly unterwegs und das klappt auch recht gut. Leider ist nicht alles so toll umzusetzen wie mit deinem Script.
              Muss mich nochmal daran versuchen. Ich würde es für IQControl verwenden.

              1 Antwort Letzte Antwort
              0
              • T ticaki

                @DocGame
                ich werde das Skript nachher auf Devonz und MQTT erweitern, kann es ja posten. Zigbee hab ich nicht installiert.

                D Offline
                D Offline
                DocGame
                schrieb am zuletzt editiert von
                #9

                @ticaki MQTT hab ich hauptsächlich auf meinen Tasmotageräte und die haben keine Batterie. Dann hätte ich ja aber schon MiHome, Zigbee und Deconz. Da bekomme ich bestimmt auch noch Hue rein. Wäre toll.

                T 1 Antwort Letzte Antwort
                0
                • D DocGame

                  @ticaki MQTT hab ich hauptsächlich auf meinen Tasmotageräte und die haben keine Batterie. Dann hätte ich ja aber schon MiHome, Zigbee und Deconz. Da bekomme ich bestimmt auch noch Hue rein. Wäre toll.

                  T Nicht stören
                  T Nicht stören
                  ticaki
                  schrieb am zuletzt editiert von ticaki
                  #10

                  @DocGame
                  Habs umgeändert das es die Ladestände sortiert.

                  const deconz = $('channel[state.id=deconz.0.*.battery]');
                  var Infos = [[]];
                  function checkBatt(id, i) {
                      var value = getState(id).val;
                      if(value < 101) { // Anpassen !
                          var pathname = id.substring(0, id.lastIndexOf('.'));
                          var name = getObject(pathname).common.name;
                          for(let i = 0; i < Infos.length; i++) {
                              if (Infos[i][0] == name) break;
                              if (i == Infos.length-1) Infos.push([name,value]);
                          }
                      }
                  }
                  
                  function lowBatt() {
                      Infos = [[]]; 
                      var InfoMessage = 'Ladestand der Batterien:\n';
                      deconz.each(checkBatt);
                      Infos.shift();
                      Infos.sort(SortArray);
                      if(Infos.length) {
                          for(let i = 0; i < Infos.length; i++) {
                              InfoMessage += Infos[i][0] + ': ' + Infos[i][1] + '%\n';
                          }  
                          sendTo("telegram", "send", {user: 'Tim', text: InfoMessage});
                          //log(Infos);
                      }
                  }
                  on({id: /^deconz\.0\..*\.battery$/, valLt: 20, oldValGe: 20}, lowBatt); // Triggert bei Erreichen des Grenzwertes
                   
                  lowBatt(); // Aufruf bei Skriptstart... dat nervt aber wenn man den rechner jede nacht neustartet :P
                   
                  function SortArray(a,b) {
                      return a[1]-b[1];
                  }
                  

                  hue und zigbee hab ich leider nicht. Hue ging mir auf die Nerven und der Zigbee stick kam erst vor ein paar Tagen.

                  EDIT: Ne war in Ordnung

                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                  Spenden

                  D 1 Antwort Letzte Antwort
                  0
                  • T ticaki

                    @DocGame
                    Habs umgeändert das es die Ladestände sortiert.

                    const deconz = $('channel[state.id=deconz.0.*.battery]');
                    var Infos = [[]];
                    function checkBatt(id, i) {
                        var value = getState(id).val;
                        if(value < 101) { // Anpassen !
                            var pathname = id.substring(0, id.lastIndexOf('.'));
                            var name = getObject(pathname).common.name;
                            for(let i = 0; i < Infos.length; i++) {
                                if (Infos[i][0] == name) break;
                                if (i == Infos.length-1) Infos.push([name,value]);
                            }
                        }
                    }
                    
                    function lowBatt() {
                        Infos = [[]]; 
                        var InfoMessage = 'Ladestand der Batterien:\n';
                        deconz.each(checkBatt);
                        Infos.shift();
                        Infos.sort(SortArray);
                        if(Infos.length) {
                            for(let i = 0; i < Infos.length; i++) {
                                InfoMessage += Infos[i][0] + ': ' + Infos[i][1] + '%\n';
                            }  
                            sendTo("telegram", "send", {user: 'Tim', text: InfoMessage});
                            //log(Infos);
                        }
                    }
                    on({id: /^deconz\.0\..*\.battery$/, valLt: 20, oldValGe: 20}, lowBatt); // Triggert bei Erreichen des Grenzwertes
                     
                    lowBatt(); // Aufruf bei Skriptstart... dat nervt aber wenn man den rechner jede nacht neustartet :P
                     
                    function SortArray(a,b) {
                        return a[1]-b[1];
                    }
                    

                    hue und zigbee hab ich leider nicht. Hue ging mir auf die Nerven und der Zigbee stick kam erst vor ein paar Tagen.

                    EDIT: Ne war in Ordnung

                    D Offline
                    D Offline
                    DocGame
                    schrieb am zuletzt editiert von DocGame
                    #11

                    @ticaki Hab jetzt Deconz, Zigbee und MiHome und deinen Sort drin.....klappt gut.
                    Morgen werde ich noch Hue reinbasteln.
                    Welchen Zigbee hast du denn bekommen. Ich habe seit 4 Wochen den CC1352P2 und bin so zufrieden, das ich fast alles vom Deconz umgezogen habe.
                    Auf den 5 MiHubs habe ich noch ca. 70 Geräte. Da besteht kein Handlungsbedarf zum Umziehen. Die Hue-Bridge habe ich mir erst vor eine Woche zugelegt, weil ich den Philips Outdor BWM nicht vernünftig in die anderen reinbekommen habe. Jetzt habe ich zumindest im Zigbeebereich quasi "Vollausstattung" :blush:

                    Nachtrag: Jetzt ist Hue auch noch drin.

                    @sigi234 dein Projekt sieht zu interessant aus um es zu ignorieren. Werde mich ab morgen nochmals daran versuchen.

                    sigi234S T 2 Antworten Letzte Antwort
                    0
                    • D DocGame

                      @ticaki Hab jetzt Deconz, Zigbee und MiHome und deinen Sort drin.....klappt gut.
                      Morgen werde ich noch Hue reinbasteln.
                      Welchen Zigbee hast du denn bekommen. Ich habe seit 4 Wochen den CC1352P2 und bin so zufrieden, das ich fast alles vom Deconz umgezogen habe.
                      Auf den 5 MiHubs habe ich noch ca. 70 Geräte. Da besteht kein Handlungsbedarf zum Umziehen. Die Hue-Bridge habe ich mir erst vor eine Woche zugelegt, weil ich den Philips Outdor BWM nicht vernünftig in die anderen reinbekommen habe. Jetzt habe ich zumindest im Zigbeebereich quasi "Vollausstattung" :blush:

                      Nachtrag: Jetzt ist Hue auch noch drin.

                      @sigi234 dein Projekt sieht zu interessant aus um es zu ignorieren. Werde mich ab morgen nochmals daran versuchen.

                      sigi234S Online
                      sigi234S Online
                      sigi234
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von sigi234
                      #12

                      @DocGame sagte in Batteriescripterweiterung Mihome auf Zigbee-Ad.:

                      @sigi234 dein Projekt sieht zu interessant aus um es zu ignorieren. Werde mich ab morgen nochmals daran versuchen.

                      Ist von @liv-in-sky ! Coole Sache.

                      Screenshot (1504).png

                      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                      Immer Daten sichern!

                      D 1 Antwort Letzte Antwort
                      0
                      • sigi234S sigi234

                        @DocGame sagte in Batteriescripterweiterung Mihome auf Zigbee-Ad.:

                        @sigi234 dein Projekt sieht zu interessant aus um es zu ignorieren. Werde mich ab morgen nochmals daran versuchen.

                        Ist von @liv-in-sky ! Coole Sache.

                        Screenshot (1504).png

                        D Offline
                        D Offline
                        DocGame
                        schrieb am zuletzt editiert von
                        #13

                        @sigi234 Stimmt... Sorry. Habe zwar in meiner Verzweiflung es zum laufen zu bringen zwar alle Posts durchgekaut, mit eure Namen aber leider nicht gemerkt.

                        1 Antwort Letzte Antwort
                        0
                        • D DocGame

                          @ticaki Hab jetzt Deconz, Zigbee und MiHome und deinen Sort drin.....klappt gut.
                          Morgen werde ich noch Hue reinbasteln.
                          Welchen Zigbee hast du denn bekommen. Ich habe seit 4 Wochen den CC1352P2 und bin so zufrieden, das ich fast alles vom Deconz umgezogen habe.
                          Auf den 5 MiHubs habe ich noch ca. 70 Geräte. Da besteht kein Handlungsbedarf zum Umziehen. Die Hue-Bridge habe ich mir erst vor eine Woche zugelegt, weil ich den Philips Outdor BWM nicht vernünftig in die anderen reinbekommen habe. Jetzt habe ich zumindest im Zigbeebereich quasi "Vollausstattung" :blush:

                          Nachtrag: Jetzt ist Hue auch noch drin.

                          @sigi234 dein Projekt sieht zu interessant aus um es zu ignorieren. Werde mich ab morgen nochmals daran versuchen.

                          T Nicht stören
                          T Nicht stören
                          ticaki
                          schrieb am zuletzt editiert von
                          #14

                          @DocGame
                          CC2540 der der in diesem Projekt empfohlen wurde. Bin aber jetzt mit dekonz zufrieden und spiel erstmal mit meinen ESP rum.

                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                          Spenden

                          1 Antwort Letzte Antwort
                          0
                          • madjack84M Offline
                            madjack84M Offline
                            madjack84
                            schrieb am zuletzt editiert von
                            #15

                            Hallo,
                            hab mir eben auch ein Skrip für Batteriecheckup gebastelt und möchte das sharen.

                            Prüfung einmal in der Woche nach Schedule.

                            Ausgabe in Telegram ist:
                            Low Battery @ sensor_ht_wz im Wohnzimmer = 56.9 (mihome.0.devices.sensor_ht_158d0002b8e917.percent)

                            // Battery check
                            
                            schedule('0 8 * * 0', function () {
                            
                                var itemfound = false;
                            
                                //find Xiaomi battery percent
                                $('state[state.id=*.percent][role=battery.percent]').each(function (id, i) {
                                    //console.log(id);
                                    if (getState(id).val < 40){
                                        sendTo("telegram.0", "send", {
                                            text: '🔋 Low Battery @ ' 
                                                + getObject(id.substring(0, id.lastIndexOf('.'))).common.name
                                                + ' im '
                                                + getObject( id, "rooms").enumNames
                                                +  ' = ' + getState(id).val
                                                + ' (' + id + ')',
                                            user: 'Michael'
                                        });
                                        itemfound = true;
                                    }
                                });
                            
                                // find Homematic lowBat
                                $('state[state.id=LOWBAT][role=indicator.lowbat]').each(function (id, i) {
                                    //console.log(id);
                                    if (getState(id).val){
                                        sendTo("telegram.0", "send", {
                                            text: '🔋 Low Battery @ ' 
                                                + getObject(id.substring(0, id.lastIndexOf('.'))).common.name
                                                + ' im '
                                                + getObject( id, "rooms").enumNames
                                                +  ' = ' + getState(id).val
                                                + ' (' + id + ')',
                                            user: 'Michael'
                                        });
                                        itemfound = true;
                                    }
                                });
                            
                                if (!itemfound){
                                    sendTo("telegram.0", "send", {
                                            text: '🔋 Batteries checked. Everything alright.',
                                            user: 'Michael'
                                        });
                                }
                            
                                itemfound = false;
                            
                            });
                            

                            nuc i3, Proxmox, raspimatic (PI3), 15 shellies, shelly 4pro/25/RGB, wled sonoff, 7x xiaomi sensoren, 4xEchos, 4 Tasmota Steckdosen, motionEye, nspanel, Ring, hoymiles usw

                            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

                            867

                            Online

                            32.4k

                            Benutzer

                            81.4k

                            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