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. Abfrage des Batteriestatus

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    566

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

Abfrage des Batteriestatus

Scheduled Pinned Locked Moved Skripten / Logik
javascriptmonitoring
6 Posts 4 Posters 937 Views 3 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.
  • F Offline
    F Offline
    funcarv3r
    wrote on last edited by
    #1

    Ich versuche mich bereits seit einigen Tagen daran den Batteriestatus meiner Homematic-Geräte abzufragen und daraus einen Systemstatus zu generieren den ich dann wieder im VIS anzeigen möchte.

    Ich habe einen z.B. Status BatterieStatusFensterOk erstellt der true oder false sein soll, des lasse ich mir im VIS anzeigen. Nur funktioniert das so wie ich es mache nicht mit dem umschalten. Ich habe bisher versucht:

    schedule("* * * * * *", function () {
    
    // Büro
            var Fenster_EDVFFB_Dach01 = getState('hm-rpc.1.NEQ0627501.0.LOWBAT').val;
              if (Fenster_EDVFFB_Dach01) {
                 setState("System.BatterieStatusFensterOk", false);
              } else if (!Fenster_EDVFFB_Dach01) {
                 setState("System.BatterieStatusFensterOk", true);
              }
            var Fenster_EDVFFB_Dach02 = getState('hm-rpc.1.NEQ0627514.0.LOWBAT').val;
              if (Fenster_EDVFFB_Dach02) {
                 setState("System.BatterieStatusFensterOk", false);
              } else if (!Fenster_EDVFFB_Dach02) {
                 setState("System.BatterieStatusFensterOk", true);
              }
            var Fenster_EDVFFB_Dach03 = getState('hm-rpc.1.NEQ0627595.0.LOWBAT').val;
              if (Fenster_EDVFFB_Dach03) {
                 setState("System.BatterieStatusFensterOk", false);
              } else if (!Fenster_EDVFFB_Dach03) {
                 setState("System.BatterieStatusFensterOk", true);
              }
            var Fenster_EDVFFB_1OG = getState('hm-rpc.1.NEQ0063954.0.LOWBAT').val;
              if (Fenster_EDVFFB_1OG) {
                 setState("System.BatterieStatusFensterOk", false);
              } else if (!Fenster_EDVFFB_1OG) {
                 setState("System.BatterieStatusFensterOk", true);
              }
           var Wandthermostat_EDVFFB = getState('hm-rpc.1.OEQ0578298.0.LOWBAT').val;
              if (Wandthermostat_EDVFFB) {
                 setState("System.BatterieStatusHeizungOk", false);
              } else if (!Wandthermostat_EDVFFB) {
                 setState("System.BatterieStatusHeizungOk", true);
              }
           var Heizung_EDVFFB = getState('hm-rpc.1.OEQ2633740.0.LOWBAT').val;
              if (Heizung_EDVFFB) {
                 setState("System.BatterieStatusHeizungOk", false);
              } else if (!Heizung_EDVFFB) {
                 setState("System.BatterieStatusHeizungOk", true);
              }
            var Lichttaster_EDVFFB_2OG = getState('hm-rpc.1.MEQ0444933.0.LOWBAT').val;
              if (Lichttaster_EDVFFB_2OG) {
                 setState("System.BatterieStatusOk", false);
              } else if (!Lichttaster_EDVFFB_2OG) {
                 setState("System.BatterieStatusOk", true);
              }
            var Lichttaster_EDVFFB_1OG = getState('hm-rpc.1.MEQ0444892.0.LOWBAT').val;
              if (Lichttaster_EDVFFB_1OG) {
                 setState("System.BatterieStatusOk", false);
              } else if (!Lichttaster_EDVFFB_1OG) {
                 setState("System.BatterieStatusOk", true);
              }
    
    });
    

    Funktioniert leider nicht wie gewünscht. Alternativ habe ich noch versucht

    schedule("* * * * * *", function () {
    var status=!(getState("hm-rpc.1.NEQ0063951.0.LOWBAT").val || getState("hm-rpc.1.NEQ0627517.0.LOWBAT").val) || getState('hm-rpc.1.NEQ0064004.0.LOWBAT').val;;
        setState("System.BatterieStatusFensterOk", status);
    });
    

    Funktioniert nur bei 2 Geräten. Die Abfrage jede Sekunde ist nur testweise, wird wenns läuft auf 15 Minuten geändert.

    Was mache ich falsch bzw. hat jemand einen Tip für mich?

    Ich möchte es nicht über die CCU machen da ich zukünftig alles über den ioBroker steuern will, das ist übersichtlicher....

    Grüße
    Norbert

    paul53P C liv-in-skyL 3 Replies Last reply
    0
    • F funcarv3r

      Ich versuche mich bereits seit einigen Tagen daran den Batteriestatus meiner Homematic-Geräte abzufragen und daraus einen Systemstatus zu generieren den ich dann wieder im VIS anzeigen möchte.

      Ich habe einen z.B. Status BatterieStatusFensterOk erstellt der true oder false sein soll, des lasse ich mir im VIS anzeigen. Nur funktioniert das so wie ich es mache nicht mit dem umschalten. Ich habe bisher versucht:

      schedule("* * * * * *", function () {
      
      // Büro
              var Fenster_EDVFFB_Dach01 = getState('hm-rpc.1.NEQ0627501.0.LOWBAT').val;
                if (Fenster_EDVFFB_Dach01) {
                   setState("System.BatterieStatusFensterOk", false);
                } else if (!Fenster_EDVFFB_Dach01) {
                   setState("System.BatterieStatusFensterOk", true);
                }
              var Fenster_EDVFFB_Dach02 = getState('hm-rpc.1.NEQ0627514.0.LOWBAT').val;
                if (Fenster_EDVFFB_Dach02) {
                   setState("System.BatterieStatusFensterOk", false);
                } else if (!Fenster_EDVFFB_Dach02) {
                   setState("System.BatterieStatusFensterOk", true);
                }
              var Fenster_EDVFFB_Dach03 = getState('hm-rpc.1.NEQ0627595.0.LOWBAT').val;
                if (Fenster_EDVFFB_Dach03) {
                   setState("System.BatterieStatusFensterOk", false);
                } else if (!Fenster_EDVFFB_Dach03) {
                   setState("System.BatterieStatusFensterOk", true);
                }
              var Fenster_EDVFFB_1OG = getState('hm-rpc.1.NEQ0063954.0.LOWBAT').val;
                if (Fenster_EDVFFB_1OG) {
                   setState("System.BatterieStatusFensterOk", false);
                } else if (!Fenster_EDVFFB_1OG) {
                   setState("System.BatterieStatusFensterOk", true);
                }
             var Wandthermostat_EDVFFB = getState('hm-rpc.1.OEQ0578298.0.LOWBAT').val;
                if (Wandthermostat_EDVFFB) {
                   setState("System.BatterieStatusHeizungOk", false);
                } else if (!Wandthermostat_EDVFFB) {
                   setState("System.BatterieStatusHeizungOk", true);
                }
             var Heizung_EDVFFB = getState('hm-rpc.1.OEQ2633740.0.LOWBAT').val;
                if (Heizung_EDVFFB) {
                   setState("System.BatterieStatusHeizungOk", false);
                } else if (!Heizung_EDVFFB) {
                   setState("System.BatterieStatusHeizungOk", true);
                }
              var Lichttaster_EDVFFB_2OG = getState('hm-rpc.1.MEQ0444933.0.LOWBAT').val;
                if (Lichttaster_EDVFFB_2OG) {
                   setState("System.BatterieStatusOk", false);
                } else if (!Lichttaster_EDVFFB_2OG) {
                   setState("System.BatterieStatusOk", true);
                }
              var Lichttaster_EDVFFB_1OG = getState('hm-rpc.1.MEQ0444892.0.LOWBAT').val;
                if (Lichttaster_EDVFFB_1OG) {
                   setState("System.BatterieStatusOk", false);
                } else if (!Lichttaster_EDVFFB_1OG) {
                   setState("System.BatterieStatusOk", true);
                }
      
      });
      

      Funktioniert leider nicht wie gewünscht. Alternativ habe ich noch versucht

      schedule("* * * * * *", function () {
      var status=!(getState("hm-rpc.1.NEQ0063951.0.LOWBAT").val || getState("hm-rpc.1.NEQ0627517.0.LOWBAT").val) || getState('hm-rpc.1.NEQ0064004.0.LOWBAT').val;;
          setState("System.BatterieStatusFensterOk", status);
      });
      

      Funktioniert nur bei 2 Geräten. Die Abfrage jede Sekunde ist nur testweise, wird wenns läuft auf 15 Minuten geändert.

      Was mache ich falsch bzw. hat jemand einen Tip für mich?

      Ich möchte es nicht über die CCU machen da ich zukünftig alles über den ioBroker steuern will, das ist übersichtlicher....

      Grüße
      Norbert

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

      @funcarv3r
      Für solche Abfragen gibt es den $Selector.

      const idsLOWBAT = $('hm-rpc.1.*.0.LOWBAT');
      
      function lowbatt() {
         let ok = true;
         idsLOWBAT.each(function(id, i) {
            if(getState(id).val) {
               ok = false;
               break;
            }
         }
         setState("System.BatterieStatusFensterOk", ok, true);
      }
      
      lowbatt(); // Script start
      
      idsLOWBAT.on(lowbatt);
      

      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

      F 1 Reply Last reply
      0
      • paul53P paul53

        @funcarv3r
        Für solche Abfragen gibt es den $Selector.

        const idsLOWBAT = $('hm-rpc.1.*.0.LOWBAT');
        
        function lowbatt() {
           let ok = true;
           idsLOWBAT.each(function(id, i) {
              if(getState(id).val) {
                 ok = false;
                 break;
              }
           }
           setState("System.BatterieStatusFensterOk", ok, true);
        }
        
        lowbatt(); // Script start
        
        idsLOWBAT.on(lowbatt);
        
        F Offline
        F Offline
        funcarv3r
        wrote on last edited by
        #3

        @paul53
        Hm, muss mich da mal einlesen was den $Selector angeht, ich muss hier weiter filtern auf Gewerke da ich unterscheiden will nach Fenster, Heizung und sonstigenGeräten wie z.B. Bewegungsmeldern.

        Bei dem Script von dir bekomme ich nur leider einen Fehler:

        javascript.0 (601) script.js.common.BatterieStatusOk_Test2 compile failed: at script.js.common.BatterieStatusOk_Test2:10
        

        in Zeile 10 steht der break;

        paul53P 1 Reply Last reply
        0
        • F funcarv3r

          Ich versuche mich bereits seit einigen Tagen daran den Batteriestatus meiner Homematic-Geräte abzufragen und daraus einen Systemstatus zu generieren den ich dann wieder im VIS anzeigen möchte.

          Ich habe einen z.B. Status BatterieStatusFensterOk erstellt der true oder false sein soll, des lasse ich mir im VIS anzeigen. Nur funktioniert das so wie ich es mache nicht mit dem umschalten. Ich habe bisher versucht:

          schedule("* * * * * *", function () {
          
          // Büro
                  var Fenster_EDVFFB_Dach01 = getState('hm-rpc.1.NEQ0627501.0.LOWBAT').val;
                    if (Fenster_EDVFFB_Dach01) {
                       setState("System.BatterieStatusFensterOk", false);
                    } else if (!Fenster_EDVFFB_Dach01) {
                       setState("System.BatterieStatusFensterOk", true);
                    }
                  var Fenster_EDVFFB_Dach02 = getState('hm-rpc.1.NEQ0627514.0.LOWBAT').val;
                    if (Fenster_EDVFFB_Dach02) {
                       setState("System.BatterieStatusFensterOk", false);
                    } else if (!Fenster_EDVFFB_Dach02) {
                       setState("System.BatterieStatusFensterOk", true);
                    }
                  var Fenster_EDVFFB_Dach03 = getState('hm-rpc.1.NEQ0627595.0.LOWBAT').val;
                    if (Fenster_EDVFFB_Dach03) {
                       setState("System.BatterieStatusFensterOk", false);
                    } else if (!Fenster_EDVFFB_Dach03) {
                       setState("System.BatterieStatusFensterOk", true);
                    }
                  var Fenster_EDVFFB_1OG = getState('hm-rpc.1.NEQ0063954.0.LOWBAT').val;
                    if (Fenster_EDVFFB_1OG) {
                       setState("System.BatterieStatusFensterOk", false);
                    } else if (!Fenster_EDVFFB_1OG) {
                       setState("System.BatterieStatusFensterOk", true);
                    }
                 var Wandthermostat_EDVFFB = getState('hm-rpc.1.OEQ0578298.0.LOWBAT').val;
                    if (Wandthermostat_EDVFFB) {
                       setState("System.BatterieStatusHeizungOk", false);
                    } else if (!Wandthermostat_EDVFFB) {
                       setState("System.BatterieStatusHeizungOk", true);
                    }
                 var Heizung_EDVFFB = getState('hm-rpc.1.OEQ2633740.0.LOWBAT').val;
                    if (Heizung_EDVFFB) {
                       setState("System.BatterieStatusHeizungOk", false);
                    } else if (!Heizung_EDVFFB) {
                       setState("System.BatterieStatusHeizungOk", true);
                    }
                  var Lichttaster_EDVFFB_2OG = getState('hm-rpc.1.MEQ0444933.0.LOWBAT').val;
                    if (Lichttaster_EDVFFB_2OG) {
                       setState("System.BatterieStatusOk", false);
                    } else if (!Lichttaster_EDVFFB_2OG) {
                       setState("System.BatterieStatusOk", true);
                    }
                  var Lichttaster_EDVFFB_1OG = getState('hm-rpc.1.MEQ0444892.0.LOWBAT').val;
                    if (Lichttaster_EDVFFB_1OG) {
                       setState("System.BatterieStatusOk", false);
                    } else if (!Lichttaster_EDVFFB_1OG) {
                       setState("System.BatterieStatusOk", true);
                    }
          
          });
          

          Funktioniert leider nicht wie gewünscht. Alternativ habe ich noch versucht

          schedule("* * * * * *", function () {
          var status=!(getState("hm-rpc.1.NEQ0063951.0.LOWBAT").val || getState("hm-rpc.1.NEQ0627517.0.LOWBAT").val) || getState('hm-rpc.1.NEQ0064004.0.LOWBAT').val;;
              setState("System.BatterieStatusFensterOk", status);
          });
          

          Funktioniert nur bei 2 Geräten. Die Abfrage jede Sekunde ist nur testweise, wird wenns läuft auf 15 Minuten geändert.

          Was mache ich falsch bzw. hat jemand einen Tip für mich?

          Ich möchte es nicht über die CCU machen da ich zukünftig alles über den ioBroker steuern will, das ist übersichtlicher....

          Grüße
          Norbert

          C Offline
          C Offline
          Chrunchy
          wrote on last edited by
          #4

          @funcarv3r Warum nimmst du nicht das Script von @Pittini?

          https://github.com/Pittini/iobroker-Batterienauswertung

          Gruß Chrunchy

          1 Reply Last reply
          1
          • F funcarv3r

            Ich versuche mich bereits seit einigen Tagen daran den Batteriestatus meiner Homematic-Geräte abzufragen und daraus einen Systemstatus zu generieren den ich dann wieder im VIS anzeigen möchte.

            Ich habe einen z.B. Status BatterieStatusFensterOk erstellt der true oder false sein soll, des lasse ich mir im VIS anzeigen. Nur funktioniert das so wie ich es mache nicht mit dem umschalten. Ich habe bisher versucht:

            schedule("* * * * * *", function () {
            
            // Büro
                    var Fenster_EDVFFB_Dach01 = getState('hm-rpc.1.NEQ0627501.0.LOWBAT').val;
                      if (Fenster_EDVFFB_Dach01) {
                         setState("System.BatterieStatusFensterOk", false);
                      } else if (!Fenster_EDVFFB_Dach01) {
                         setState("System.BatterieStatusFensterOk", true);
                      }
                    var Fenster_EDVFFB_Dach02 = getState('hm-rpc.1.NEQ0627514.0.LOWBAT').val;
                      if (Fenster_EDVFFB_Dach02) {
                         setState("System.BatterieStatusFensterOk", false);
                      } else if (!Fenster_EDVFFB_Dach02) {
                         setState("System.BatterieStatusFensterOk", true);
                      }
                    var Fenster_EDVFFB_Dach03 = getState('hm-rpc.1.NEQ0627595.0.LOWBAT').val;
                      if (Fenster_EDVFFB_Dach03) {
                         setState("System.BatterieStatusFensterOk", false);
                      } else if (!Fenster_EDVFFB_Dach03) {
                         setState("System.BatterieStatusFensterOk", true);
                      }
                    var Fenster_EDVFFB_1OG = getState('hm-rpc.1.NEQ0063954.0.LOWBAT').val;
                      if (Fenster_EDVFFB_1OG) {
                         setState("System.BatterieStatusFensterOk", false);
                      } else if (!Fenster_EDVFFB_1OG) {
                         setState("System.BatterieStatusFensterOk", true);
                      }
                   var Wandthermostat_EDVFFB = getState('hm-rpc.1.OEQ0578298.0.LOWBAT').val;
                      if (Wandthermostat_EDVFFB) {
                         setState("System.BatterieStatusHeizungOk", false);
                      } else if (!Wandthermostat_EDVFFB) {
                         setState("System.BatterieStatusHeizungOk", true);
                      }
                   var Heizung_EDVFFB = getState('hm-rpc.1.OEQ2633740.0.LOWBAT').val;
                      if (Heizung_EDVFFB) {
                         setState("System.BatterieStatusHeizungOk", false);
                      } else if (!Heizung_EDVFFB) {
                         setState("System.BatterieStatusHeizungOk", true);
                      }
                    var Lichttaster_EDVFFB_2OG = getState('hm-rpc.1.MEQ0444933.0.LOWBAT').val;
                      if (Lichttaster_EDVFFB_2OG) {
                         setState("System.BatterieStatusOk", false);
                      } else if (!Lichttaster_EDVFFB_2OG) {
                         setState("System.BatterieStatusOk", true);
                      }
                    var Lichttaster_EDVFFB_1OG = getState('hm-rpc.1.MEQ0444892.0.LOWBAT').val;
                      if (Lichttaster_EDVFFB_1OG) {
                         setState("System.BatterieStatusOk", false);
                      } else if (!Lichttaster_EDVFFB_1OG) {
                         setState("System.BatterieStatusOk", true);
                      }
            
            });
            

            Funktioniert leider nicht wie gewünscht. Alternativ habe ich noch versucht

            schedule("* * * * * *", function () {
            var status=!(getState("hm-rpc.1.NEQ0063951.0.LOWBAT").val || getState("hm-rpc.1.NEQ0627517.0.LOWBAT").val) || getState('hm-rpc.1.NEQ0064004.0.LOWBAT').val;;
                setState("System.BatterieStatusFensterOk", status);
            });
            

            Funktioniert nur bei 2 Geräten. Die Abfrage jede Sekunde ist nur testweise, wird wenns läuft auf 15 Minuten geändert.

            Was mache ich falsch bzw. hat jemand einen Tip für mich?

            Ich möchte es nicht über die CCU machen da ich zukünftig alles über den ioBroker steuern will, das ist übersichtlicher....

            Grüße
            Norbert

            liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            wrote on last edited by
            #5

            @funcarv3r in diesem script gibt es beispiele für selektoren und homematic - https://forum.iobroker.net/topic/28789/script-fürtabelle-der-batterie-zustände

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            1 Reply Last reply
            0
            • F funcarv3r

              @paul53
              Hm, muss mich da mal einlesen was den $Selector angeht, ich muss hier weiter filtern auf Gewerke da ich unterscheiden will nach Fenster, Heizung und sonstigenGeräten wie z.B. Bewegungsmeldern.

              Bei dem Script von dir bekomme ich nur leider einen Fehler:

              javascript.0 (601) script.js.common.BatterieStatusOk_Test2 compile failed: at script.js.common.BatterieStatusOk_Test2:10
              

              in Zeile 10 steht der break;

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

              @funcarv3r sagte:

              in Zeile 10 steht der break;

              Dann lass die Zeile weg.

              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

              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

              521

              Online

              32.7k

              Users

              82.6k

              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