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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Abfrage des Batteriestatus

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    966

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Abfrage des Batteriestatus

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptmonitoring
6 Beiträge 4 Kommentatoren 868 Aufrufe 3 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.
  • F Offline
    F Offline
    funcarv3r
    schrieb am zuletzt editiert von
    #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 Antworten Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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 Online
          C Online
          Chrunchy
          schrieb am zuletzt editiert von
          #4

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

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

          Gruß Chrunchy

          1 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 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

              869

              Online

              32.6k

              Benutzer

              82.0k

              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