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. [Frage] lowbat Script von paul

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

[Frage] lowbat Script von paul

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptmonitoring
12 Beiträge 2 Kommentatoren 1.3k Aufrufe 1 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.
  • bahnuhrB Online
    bahnuhrB Online
    bahnuhr
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #3

    so richtig ?

    createState('zählenLowbat.möglicheLOWBAT', 0);   // wenn benötigt: Anzahl der vorhandenen LOWBAT
    createState('zählenLowbat.anzahlLOWBAT', 0);     // wenn benötigt: Anzahl der vorhandenen LOWBAT
    createState('zählenLowbat.textLOWBAT', " ");     // Anzahl LOWBAT, die an sind als Variable unter Javascript.0 anlegen
    
    var cacheSelectorLOWBAT  = $('channel[state.id=*.LOWBAT]');
    
    function countLowbat(obj) {
       // Setzt die Zähler vor dem Durchlauf aller Elemente *.LOWBAT auf 0
       var moeglicheLOWBAT = 0;
       var textLOWBAT      = [];
    
       if (obj) {
          log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val);  // Info im Log, welcher Zustand sich geändert hat
       } else {
          log('Ausgelöst bei Timer'); 
       } 
    
       cacheSelectorLOWBAT.each(function (id, i) {                         // Schleife für jedes gefundenen Element *.LOWBAT
          var status = getState(id).val;                                  // Zustand *.LOWBAT abfragen (jedes Element)
          var obj    = getObject(id);
          if (status === true) {                                          // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt
             textLOWBAT.push(obj.common.name);                           // Zu Array hinzufügen
          }                
          log("Geräte Nr. " + i + ": " + getObject(id).common.name + ": " + status);
          ++moeglicheLOWBAT;                                                 // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
       }); 
    
       // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon LOWBAT zutreffend) ausgegeben
       log("Text: " + textLOWBAT.join(', '));
       log("Anzahl Geräte: " + moeglicheLOWBAT + " # davon LOWBAT erkannt: " +  textLOWBAT.length);
    
       // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
       setState("zählenLowbat.textLOWBAT",     textLOWBAT.join(',
    ')); // Schreibt die aktuelle Namen der Geräte mit LOWBAT Meldung
       setState("zählenLowbat.anzahlLOWBAT",   textLOWBAT.length);        // Schreibt die aktuelle Anzahl der Geräte im System
       setState("zählenLowbat.möglicheLOWBAT", moeglicheLOWBAT);          // Schreibt die aktuelle Anzahl der vorhandene Geräte 
    }
    
    cacheSelectorLOWBAT.on(function(obj) {    // bei Zustandänderung *. LOWBAT in allen Gewerken
       countLowbat(obj);
    });
    schedule("*/60 * * * *", function () {                                  //oder!! soll entweder ausgelöst werden alle 10 Minuten
       countLowbat();
    });
    

    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
    Danke.
    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
    ScreenToGif :https://www.screentogif.com/downloads.html

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #4

      @bahnuhr:

      so richtig ? `
      Nein, das ist das Skript. Ich würde gern das Objekt (Reiter "Objekte") sehen.

      493_objekt_raw_enum_functions_batterie.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
      0
      • bahnuhrB Online
        bahnuhrB Online
        bahnuhr
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #5

        ahaaaaaa

        sieht so aus:

        {
          "desc": "",
          "from": "system.adapter.hm-rpc.0",
          "ts": 1521228098628,
          "common": {
            "name": "Batterie betrieben",
            "members": [
              "hm-rpc.0.LEQ0922159.1",
              "hm-rpc.0.LEQ1177607.1",
              "hm-rpc.0.LEQ1176746.1",
              "hm-rpc.0.JEQ0264936.1",
              "hm-rpc.0.KEQ0845003.1",
              "hm-rpc.0.LEQ0030811.1",
              "hm-rpc.0.LEQ0642545.1",
              "hm-rpc.0.KEQ0972353.1",
              "hm-rpc.0.JEQ0263935.1",
              "hm-rpc.0.KEQ0972459.1",
              "hm-rpc.0.LEQ0030556.1",
              "hm-rpc.0.LEQ0642275.1",
              "hm-rpc.0.LEQ0031227.1",
              "hm-rpc.0.LEQ0030758.1",
              "hm-rpc.0.LEQ0031043.1",
              "hm-rpc.0.MEQ1425139.1",
              "hm-rpc.0.NEQ0046063.1",
              "hm-rpc.0.LEQ0031256.1",
              "hm-rpc.0.LEQ0642555.1",
              "hm-rpc.0.LEQ0492702.1",
              "hm-rpc.0.LEQ0031112.1",
              "hm-rpc.0.KEQ0972248.1",
              "hm-rpc.0.KEQ0905371.2",
              "hm-rpc.0.MEQ0172937.1",
              "hm-rpc.0.MEQ0185071.1",
              "hm-rpc.0.MEQ0369906.1",
              "hm-rpc.0.MEQ0369829.1",
              "hm-rpc.0.MEQ0186214.1",
              "hm-rpc.0.MEQ0367128.1",
              "hm-rpc.0.LEQ1469992.1",
              "hm-rpc.0.LEQ1470572.1",
              "hm-rpc.0.LEQ1176525.1",
              "hm-rpc.0.LEQ0175356.1",
              "hm-rpc.0.JEQ0684367.1",
              "hm-rpc.0.GEQ0250711.1",
              "hm-rpc.0.LEQ0175293.1",
              "hm-rpc.0.LEQ0175827.1",
              "hm-rpc.0.NEQ0530138.1",
              "hm-rpc.0.NEQ0530138.2",
              "hm-rpc.0.KEQ0905371.1",
              "hm-rpc.0.KEQ0241184.1",
              "hm-rpc.0.LEQ0175356.2",
              "hm-rpc.0.KEQ0954261.1",
              "hm-rpc.0.LEQ1313457.2",
              "hm-rpc.0.LEQ1313457.1",
              "hm-rpc.0.LEQ1313457.3",
              "hm-rpc.0.KEQ1040434.4",
              "hm-rpc.0.KEQ0576469.4",
              "hm-rpc.0.LEQ0783942.4",
              "hm-rpc.0.KEQ0574459.4",
              "hm-rpc.0.KEQ1040651.4",
              "hm-rpc.0.KEQ1040517.4",
              "hm-rpc.0.KEQ0574613.4",
              "hm-rpc.0.LEQ1200382.4",
              "hm-rpc.0.KEQ0574642.4",
              "hm-rpc.0.LEQ0782624.4",
              "hm-rpc.0.LEQ0784844.4",
              "hm-rpc.0.KEQ1040443.4",
              "hm-rpc.0.KEQ0653104.4",
              "hm-rpc.0.LEQ0635400.1",
              "hm-rpc.0.LEQ0635400.2",
              "hm-rpc.0.LEQ0635400.3",
              "hm-rpc.0.LEQ0635400.4",
              "hm-rpc.0.LEQ0635400.5",
              "hm-rpc.0.LEQ0635400.6",
              "hm-rpc.0.LEQ0636114.1",
              "hm-rpc.0.LEQ0636114.2",
              "hm-rpc.0.LEQ0636114.3",
              "hm-rpc.0.LEQ0636114.4",
              "hm-rpc.0.LEQ0636114.5",
              "hm-rpc.0.LEQ0636114.6",
              "hm-rpc.0.GEQ0250711.2",
              "hm-rpc.0.GEQ0250711.3",
              "hm-rpc.0.GEQ0250711.4",
              "hm-rpc.0.JEQ0684367.2",
              "hm-rpc.0.JEQ0684367.3",
              "hm-rpc.0.JEQ0684367.4",
              "hm-rpc.0.KEQ0056854.2",
              "hm-rpc.0.KEQ0056929.2",
              "hm-rpc.0.KEQ0905371.3",
              "hm-rpc.0.LEQ0028395.1",
              "hm-rpc.0.LEQ0028395.4",
              "hm-rpc.0.LEQ0028395.3",
              "hm-rpc.0.LEQ0028395.2",
              "hm-rpc.0.LEQ0029078.1",
              "hm-rpc.0.LEQ1221393.1",
              "hm-rpc.0.LEQ0175356.3",
              "hm-rpc.0.KEQ0766778.1",
              "hm-rpc.0.NEQ0322651.1",
              "hm-rpc.0.NEQ0322032.1",
              "hm-rpc.0.KEQ0056929.1",
              "hm-rpc.0.KEQ0056854.1",
              "hm-rpc.0.NEQ0530138.3",
              "hm-rpc.0.LTK0100483.1",
              "hm-rpc.0.LTK0016804.1",
              "hm-rpc.0.LTK0009865.1",
              "hm-rpc.0.LTK0008637.1",
              "hm-rpc.0.LTK0009942.1",
              "hm-rpc.0.OEQ1006181.1",
              "hm-rpc.0.OEQ1006181.2",
              "hm-rpc.0.OEQ1006181.3",
              "hm-rpc.0.OEQ1006181.4",
              "hm-rpc.0.LTK0111742.1"
            ]
          },
          "native": {
            "Name": "Batterie betrieben",
            "TypeName": "ENUM",
            "EnumInfo": ""
          },
          "acl": {
            "object": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator"
          },
          "_id": "enum.functions.Batterie betrieben",
          "type": "enum"
        }
        

        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
        Danke.
        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
        ScreenToGif :https://www.screentogif.com/downloads.html

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #6

          Bitte keine Leerzeichen in einer ID !! Das kann Probleme bringen.
          @bahnuhr:

          Mit der "alten" Zeile bekomme ich eine warn-meldung bei meinen cuxd Geräten. Grund dürfte sein, dass dieses manuelle angelegten Geräte kein lowbat haben. `
          Ich sehe bei den Members ausschließlich <u>Kanäle</u> von der Instanz hm-rpc.0 (BidCos-RF), kein CUxD.

          Da die Kanäle mehrere Datenpunkte haben, muss man eingerenzen mit [state.id=*.LOWBAT]. Wenn einige Geräte kein LOWBAT haben, muss es anders gelöst werden:

          Die <u>Datenpunkte</u> müssen dem Gewerk zugeordnet und der Selektor muss angepasst werden:

          var cacheSelectorLOWBAT  = $('state(functions=batterie_betrieben)');
          
          

          EDIT: Ich wundere mich über die Kanalnummern in der Members-Liste: Bei meinen Geräten (Thermostate) befindet sich LOWBAT im Kanal 0.

          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
          • bahnuhrB Online
            bahnuhrB Online
            bahnuhr
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #7

            So, habe nun auf der ccu2 das Gewerk geändert in "Batterie"

            1. folgendes Script (analog paul)
            var cacheSelectorLOWBAT = $('channel[state.id=*.LOWBAT]'); 
            
               cacheSelectorLOWBAT.each(function (id, i) {                         // Schleife für jedes gefundenen Element *.LOWBAT
                  var status = getState(id).val;                                  // Zustand *.LOWBAT abfragen (jedes Element)
                  var obj    = getObject(id);
                  if (status === true) {                                          // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt
                     textLOWBAT.push(obj.common.name);                           // Zu Array hinzufügen
                  }                
                  log("Geräte Nr. " + i + ": " + getObject(id).common.name + ": " + status);
               }); 
            
            

            Folglich cuxd Geräte erzeugen Warnung

            javascript.0	2018-03-19 19:37:27.389	warn	at script.js.Scripte.test1:7:20
            javascript.0	2018-03-19 19:37:27.389	warn	getState "hm-rpc.1.CUX0200010.0.LOWBAT" not found (3) states[id]=null
            javascript.0	2018-03-19 19:37:27.389	info	script.js.Scripte.test1: Geräte Nr. 3: CUX: Wassertränke-Nachlauf:0.LOWBAT: null
            javascript.0	2018-03-19 19:37:27.389	warn	at script.js.Scripte.test1:7:20
            javascript.0	2018-03-19 19:37:27.388	warn	getState "hm-rpc.1.CUX0200009.0.LOWBAT" not found (3) states[id]=null
            javascript.0	2018-03-19 19:37:27.388	info	script.js.Scripte.test1: Geräte Nr. 2: CUX: Beamer-Hide:0.LOWBAT: null
            javascript.0	2018-03-19 19:37:27.388	warn	at script.js.Scripte.test1:7:20
            javascript.0	2018-03-19 19:37:27.388	warn	getState "hm-rpc.1.CUX0200008.0.LOWBAT" not found (3) states[id]=null
            javascript.0	2018-03-19 19:37:27.388	info	script.js.Scripte.test1: Geräte Nr. 1: CUX: Beamer-Power:0.LOWBAT: null
            javascript.0	2018-03-19 19:37:27.387	warn	at script.js.Scripte.test1:7:20
            javascript.0	2018-03-19 19:37:27.387	warn	getState "hm-rpc.1.CUX0200006.0.LOWBAT" not found (3) states[id]=null
            javascript.0	2018-03-19 19:37:27.387	info	script.js.Scripte.test1: Geräte Nr. 0: CUX: Zisterne-Wasser:0.LOWBAT: null
            javascript.0	2018-03-19 19:37:27.387	warn	at script.js.Scripte.test1:7:20
            javascript.0	2018-03-19 19:37:27.386	warn	getState "hm-rpc.1.CUX0200003.0.LOWBAT" not found (3) states[id]=null
            javascript.0	2018-03-19 19:37:27.375	info	Start javascript script.js.Scripte.test1
            javascript.0	2018-03-19 19:37:27.355	info	Stop script script.js.Scripte.test1
            

            Wenn ich den selektor ändere auf:

            var cacheSelectorLOWBAT = $('channel[state.id=*.LOWBAT](functions="Batterie")'); 
            

            kommt gar nichts mehr.

            Das habe ich gemeint.

            Mit "alt" kommt Warnung wg. cuxd.

            Und mit "neu" kommt nichts mehr.

            mfg


            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
            Danke.
            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
            ScreenToGif :https://www.screentogif.com/downloads.html

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #8

              @bahnuhr:

              Wenn ich den selektor ändere auf:

              var cacheSelectorLOWBAT = $('channel[state.id=*.LOWBAT](functions="Batterie")');
              
              

              kommt gar nichts mehr. `
              Lautet die ID "enum.functions.Batterie" oder "enum.functions.batterie" ?

              https://forum.iobroker.net/viewtopic.php?f=21&t=12677&p=134465#p134465, dass man nach Anlegen eines neuen Gewerkes erst ioBroker (Host) neu starten muss, damit es mit dem neuen Gewerk funktioniert.
              @bahnuhr:

              Folglich cuxd Geräte erzeugen Warnung

              javascript.0   2018-03-19 19:37:27.389   warn   at script.js.Scripte.test1:7:20
              javascript.0   2018-03-19 19:37:27.389   warn   getState "hm-rpc.1.CUX0200010.0.LOWBAT" not found (3) states[id]=null
              javascript.0   2018-03-19 19:37:27.389   info   script.js.Scripte.test1: Geräte Nr. 3: CUX: Wassertränke-Nachlauf:0.LOWBAT: null
              ```` `  
              

              Das sieht danach aus, dass es zwar das Objekt "hm-rpc.1.CUX0200010.0.LOWBAT" gibt, aber noch kein Zustand (state) existiert, da noch nie ein Wert gesendet wurde. Ich würde mit einem Hilfsscript die Zustände erzeugen (Script danach wieder löschen / deaktivieren):

              setState("hm-rpc.1.CUX0200010.0.LOWBAT", false);
              

              Entsprechend für die anderen 4 Datenpunkte.

              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
              • bahnuhrB Online
                bahnuhrB Online
                bahnuhr
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #9

                iobroker hab ich komplett neu gestartet.

                Batterie ist bei enum vorhanden; und ja B wird groß geschrieben.

                Und state erzeugen geht nicht; weil es doch den Datenpunkt gar nicht gibt.

                mfg


                Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                Danke.
                gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                ScreenToGif :https://www.screentogif.com/downloads.html

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #10

                  @bahnuhr:

                  Und state erzeugen geht nicht; weil es doch den Datenpunkt gar nicht gibt. `
                  Wirklich nicht ? Wie kommt es dann zu der Warnung ?
                  @bahnuhr:

                  Batterie ist bei enum vorhanden; und ja B wird groß geschrieben. `
                  Die ID ist "enum.functions.Batterie" ? Was ergibt das Log ?

                  var cacheSelectorLOWBAT = $('channel[state.id=*.LOWBAT](functions=Batterie)');
                  log(JSON.stringify(cacheSelectorLOWBAT));
                  

                  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
                  • bahnuhrB Online
                    bahnuhrB Online
                    bahnuhr
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #11

                    @paul53:

                    Wirklich nicht ? Wie kommt es dann zu der Warnung ? `

                    Du hast recht; diesen Punkt gibt es tatsächlich.

                    Hab ich übersehen; komisch!?!?!?

                    @paul53:

                    var cacheSelectorLOWBAT = $('channelstate.id=*.LOWBAT');

                    log(JSON.stringify(cacheSelectorLOWBAT)); `

                    Ergibt:

                    javascript.0	2018-03-19 21:38:44.500	info	script.js.Scripte.test2: {"length":0}
                    

                    Ehrlich gesagt; ich versteh es nicht.

                    unter Aufzählung sind bei "enum.functions.Batterie" zahlreiche Geräte ersichtlich.

                    Und dann kommt 0.

                    Ist mir zu hoch.

                    Vielleicht ist ja die Lösung mit dem "false" schreiben die richtige.

                    Oder man lässt es so; ist ja nur ne Warnung. Und das Script läuft ja.

                    mfg und Danke für deine Hilfe und Unterstützung.


                    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                    Danke.
                    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                    ScreenToGif :https://www.screentogif.com/downloads.html

                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #12

                      @bahnuhr:

                      unter Aufzählung sind bei "enum.functions.Batterie" zahlreiche Geräte ersichtlich.

                      Und dann kommt 0. `
                      Das stimmt. Allerdings ist LOWBAT bei allen Geräten, die ich kenne, dem Kanal 0 zugeordnet. In der Liste ist aber kein Kanal 0 dabei. Ich vermute, dass es damit zusammen hängt. Das Problem ist, dass der Kanal 0 auf der CCU unsichtbar ist (zumindest war es auf meiner CCU1 so).

                      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

                      429

                      Online

                      32.6k

                      Benutzer

                      82.3k

                      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