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. Blockly
  5. Script für autom. Benachrichtigung bei low Batteriestand

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Script für autom. Benachrichtigung bei low Batteriestand

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
18 Beiträge 4 Kommentatoren 1.4k Aufrufe 6 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.
  • AtifanA Atifan

    Hi, ich habe viele Xiaomi Sensoren über Zigbee eingebunden.
    Diese werden ja über eine CR2032 Batterie betrieben, welche auch irgendwann mal ausgetauscht werden muss.
    Damit ich rechtzeitig bemerke, habe ich mir ein Script gebaut das den Batteriestand überwacht und bei <=20% eine E-Mail an mich versendet.
    Ich habe im Moment 14 Sensoren eingebunden, es werden aber demnächst noch mal ca.16 Stück dazukommen.
    Für jedes Gerät habe ich ein "eigenes Script laufen".
    Es funktioniert zwar wunderbar, aber das geht doch bestimmt auch etwas übersichtlicher vom Code her oder?

    on({id: 'zigbee.0.00158d000421e240.battery', change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if (getState("zigbee.0.00158d000421e240.battery").val <= 20) {
        sendTo("email", "send", {
           text: 'Batterien bei Zigbee-Geräten prüfen, eine Batterie ist fast leer.',
           to: 'xxx@t-online.de',
           subject: 'Batterien bei Zigbee-Geräten prüfen, eine Batterie ist fast leer.'
        });
      }
    });
    
    on({id: 'zigbee.0.00158d0004445915.battery', change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if (getState("zigbee.0.00158d0004445915.battery").val <= 20) {
        sendTo("email", "send", {
           text: 'Batterien bei Zigbee-Geräten prüfen, eine Batterie ist fast leer.',
           to: 'xxx@t-online.de',
           subject: 'Batterien bei Zigbee-Geräten prüfen, eine Batterie ist fast leer.'
        });
      }
    });
    

    2d1c57dd-7d2b-4e7e-9e8d-9605dd530e66-image.png

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

    @Atifan

    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!

    1 Antwort Letzte Antwort
    0
    • AtifanA Offline
      AtifanA Offline
      Atifan
      schrieb am zuletzt editiert von
      #3

      Hi, Danke für den Tipp, das ist aber wenn ich das richtig sehe ein Script für eine visuelle Darstellung als Tabelle in einer VIS. Das ist was anderes als das was ich möchte.

      1 Antwort Letzte Antwort
      0
      • AtifanA Atifan

        Hi, ich habe viele Xiaomi Sensoren über Zigbee eingebunden.
        Diese werden ja über eine CR2032 Batterie betrieben, welche auch irgendwann mal ausgetauscht werden muss.
        Damit ich rechtzeitig bemerke, habe ich mir ein Script gebaut das den Batteriestand überwacht und bei <=20% eine E-Mail an mich versendet.
        Ich habe im Moment 14 Sensoren eingebunden, es werden aber demnächst noch mal ca.16 Stück dazukommen.
        Für jedes Gerät habe ich ein "eigenes Script laufen".
        Es funktioniert zwar wunderbar, aber das geht doch bestimmt auch etwas übersichtlicher vom Code her oder?

        on({id: 'zigbee.0.00158d000421e240.battery', change: "any"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if (getState("zigbee.0.00158d000421e240.battery").val <= 20) {
            sendTo("email", "send", {
               text: 'Batterien bei Zigbee-Geräten prüfen, eine Batterie ist fast leer.',
               to: 'xxx@t-online.de',
               subject: 'Batterien bei Zigbee-Geräten prüfen, eine Batterie ist fast leer.'
            });
          }
        });
        
        on({id: 'zigbee.0.00158d0004445915.battery', change: "any"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if (getState("zigbee.0.00158d0004445915.battery").val <= 20) {
            sendTo("email", "send", {
               text: 'Batterien bei Zigbee-Geräten prüfen, eine Batterie ist fast leer.',
               to: 'xxx@t-online.de',
               subject: 'Batterien bei Zigbee-Geräten prüfen, eine Batterie ist fast leer.'
            });
          }
        });
        

        2d1c57dd-7d2b-4e7e-9e8d-9605dd530e66-image.png

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #4

        @Atifan sagte:

        das geht doch bestimmt auch etwas übersichtlicher vom Code her oder?

        Ja.

        const ids = $('zigbee.0.*.battery');
        
        ids.on(function(dp) {
          if (dp.state.val <= 20 && dp.oldState.val > 20) {
            sendTo("email", "send", {
               text: 'Batterien bei Zigbee-Geräten prüfen, eine Batterie ist fast leer: ' + dp.id,
               to: 'xxx@t-online.de',
               subject: 'Batterien bei Zigbee-Geräten prüfen, eine Batterie ist fast leer.'
            });
          }
        });
        

        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
        • buggybeastB Offline
          buggybeastB Offline
          buggybeast
          schrieb am zuletzt editiert von
          #5

          @Atifan Mit Aqara Sensoren habe ich das in Blockly so gemacht
          Bildschirmfoto 2020-06-28 um 11.10.08.png
          Die Trigger Liste wird mit Deinen >30 Sensoren dabei zwar sehr lang, aber ich wüsste nicht, wie man die Lösung von paul53 in Blockly realisieren könnte. Da musst Du dann im JS Code Hand anlegen.

          paul53P AtifanA 2 Antworten Letzte Antwort
          0
          • AtifanA Offline
            AtifanA Offline
            Atifan
            schrieb am zuletzt editiert von
            #6

            Hi, ja das ist genau das was ich gesucht hab, Danke!
            Klar wird die Liste relativ lang, aber das ist immer noch viel übersichtlicher als das was ich hab :)

            1 Antwort Letzte Antwort
            0
            • buggybeastB buggybeast

              @Atifan Mit Aqara Sensoren habe ich das in Blockly so gemacht
              Bildschirmfoto 2020-06-28 um 11.10.08.png
              Die Trigger Liste wird mit Deinen >30 Sensoren dabei zwar sehr lang, aber ich wüsste nicht, wie man die Lösung von paul53 in Blockly realisieren könnte. Da musst Du dann im JS Code Hand anlegen.

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #7

              @buggybeast sagte:

              wie man die Lösung von paul53 in Blockly realisieren könnte.

              Mit RegExp.

              Blockly_temp.JPG

              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
              1
              • buggybeastB Offline
                buggybeastB Offline
                buggybeast
                schrieb am zuletzt editiert von
                #8

                @paul53 ach das ist ja cool. Und auf regexp kann man triggern?
                Kann man womöglich auf alle System Bausteine triggern, die sich an dem Trigger andocken lassen?

                paul53P 1 Antwort Letzte Antwort
                0
                • buggybeastB buggybeast

                  @paul53 ach das ist ja cool. Und auf regexp kann man triggern?
                  Kann man womöglich auf alle System Bausteine triggern, die sich an dem Trigger andocken lassen?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von paul53
                  #9

                  @buggybeast sagte:

                  auf alle System Bausteine triggern, die sich an dem Trigger andocken lassen?

                  Nein, laut Doku kann man triggern auf

                  • ID-String
                  • Array of IDs
                  • RegExp, dessen Ausdruck auf IDs verweist.

                  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
                  • buggybeastB buggybeast

                    @Atifan Mit Aqara Sensoren habe ich das in Blockly so gemacht
                    Bildschirmfoto 2020-06-28 um 11.10.08.png
                    Die Trigger Liste wird mit Deinen >30 Sensoren dabei zwar sehr lang, aber ich wüsste nicht, wie man die Lösung von paul53 in Blockly realisieren könnte. Da musst Du dann im JS Code Hand anlegen.

                    AtifanA Offline
                    AtifanA Offline
                    Atifan
                    schrieb am zuletzt editiert von
                    #10

                    @buggybeast sagte in Script für autom. Benachrichtigung bei low Batteriestand:

                    @Atifan Mit Aqara Sensoren habe ich das in Blockly so gemacht
                    Bildschirmfoto 2020-06-28 um 11.10.08.png
                    Die Trigger Liste wird mit Deinen >30 Sensoren dabei zwar sehr lang, aber ich wüsste nicht, wie man die Lösung von paul53 in Blockly realisieren könnte. Da musst Du dann im JS Code Hand anlegen.

                    Bei mir funktioniert das Script so nicht, worauf bezieht sich denn deine Variable "Wert" ?

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • AtifanA Atifan

                      @buggybeast sagte in Script für autom. Benachrichtigung bei low Batteriestand:

                      @Atifan Mit Aqara Sensoren habe ich das in Blockly so gemacht
                      Bildschirmfoto 2020-06-28 um 11.10.08.png
                      Die Trigger Liste wird mit Deinen >30 Sensoren dabei zwar sehr lang, aber ich wüsste nicht, wie man die Lösung von paul53 in Blockly realisieren könnte. Da musst Du dann im JS Code Hand anlegen.

                      Bei mir funktioniert das Script so nicht, worauf bezieht sich denn deine Variable "Wert" ?

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #11

                      @Atifan
                      Wert und Gerätename findet man unter "Trigger".

                      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
                      • AtifanA Offline
                        AtifanA Offline
                        Atifan
                        schrieb am zuletzt editiert von Atifan
                        #12

                        Super vielen Dank! Jetzt funktioniert es :) Und sieht gleich viel übersichtlicher aus als meine 14x bzw. später 30x Blöcke.

                        7e8db94e-2b9c-446c-acb2-52e51b45d2d5-image.png

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • AtifanA Atifan

                          Super vielen Dank! Jetzt funktioniert es :) Und sieht gleich viel übersichtlicher aus als meine 14x bzw. später 30x Blöcke.

                          7e8db94e-2b9c-446c-acb2-52e51b45d2d5-image.png

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #13

                          @Atifan
                          Die Objekt ID ist ein String. Da Du ausführliche Namen vergeben hast, sollten besser die Namen gesendet werden.

                          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
                          • AtifanA Offline
                            AtifanA Offline
                            Atifan
                            schrieb am zuletzt editiert von
                            #14

                            Ja thx, habe es noch etwas angepasst. Jetzt ist es optimal :) Thx

                            6224baf0-e949-47b0-8879-055acbeceffc-image.png

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • AtifanA Atifan

                              Ja thx, habe es noch etwas angepasst. Jetzt ist es optimal :) Thx

                              6224baf0-e949-47b0-8879-055acbeceffc-image.png

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #15

                              @Atifan sagte:

                              Jetzt ist es optimal

                              Nicht ganz, denn der Name ist auch bereits ein String.

                              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
                              • buggybeastB Offline
                                buggybeastB Offline
                                buggybeast
                                schrieb am zuletzt editiert von
                                #16

                                @Atifan außerdem würde ich auf „wurde geändert“ prüfen. Zumindest meine Aqara Sensoren aktualisieren sich alle paar Sekunden, dann würde dein Skript auch alle paar Sekunden einmal kurz laufen, auch wenn keine Nachricht versendet wird.
                                Das ist unnötig.

                                1 Antwort Letzte Antwort
                                0
                                • AtifanA Offline
                                  AtifanA Offline
                                  Atifan
                                  schrieb am zuletzt editiert von
                                  #17

                                  Hi, ja ich weiß :D Effizienter wäre es mit "geändert". Ich nutze aber absichtlich irgendwie lieber "aktualisiert". Klar wird viel öfter getriggert, aber mein NUC langweilt sich sowieso.
                                  Ich möchte damit einfach vermeiden, dass aufgrund von ungünstigen Konstellationen evtl. mal nicht getriggert wird :) Wie gesagt effizienter wäre es anders :)
                                  Und ich hab versucht bei "Wert" und "Name" ohne in String zu konvertieren, dann funktioniert das Script irgendwie nicht.

                                  1 Antwort Letzte Antwort
                                  0
                                  • AtifanA Offline
                                    AtifanA Offline
                                    Atifan
                                    schrieb am zuletzt editiert von
                                    #18

                                    OK habe bei "Name" die Stringumwandlung entfernt, das ging :)

                                    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

                                    530

                                    Online

                                    32.7k

                                    Benutzer

                                    82.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