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. [Vorlage] Betriebsstundenzähler & Verbrauchsrechner

NEWS

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

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

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

[Vorlage] Betriebsstundenzähler & Verbrauchsrechner

Scheduled Pinned Locked Moved Skripten / Logik
javascript
333 Posts 51 Posters 96.6k Views 26 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.
  • L Offline
    L Offline
    looxer01
    wrote on last edited by
    #163

    aaah jetzt. Nein, Die Historie Werte brauchst du nicht als Zeile. Du

    hast ja in der zweiten Zeile dann Historie eingeschaltet und brauchst die nicht als Quelle.

    Insgesamt brauchst du also nur zwei Zeilen - nicht drei

    Zeile 0 - Dein Gaszähler

    Zeile 1 die Zeile des Gaszählers aus dem Betriebsstundenzähler - also: BSZ.Counter.Heizung.Delta.GAS

    Zeile 1 stellst du die Historienwerte auf true und dann sollte es gehen.

    vG Looxer

    1 Reply Last reply
    0
    • K Offline
      K Offline
      knopers1
      wrote on last edited by
      #164

      Geil, es ist etwas in Script entstanden. Habe heute aber noch kein Gas entnommen, deshalb die Null.

      Gerade eben die alte Rechnung durchgeschaut und den Brennwert gefunden. 11,432 ist angegeben.

      special[1]  =   [''     ,''     ,'11,432'                     ,''         ,''     ,''                 ,''                 ,''                         ,''             ,''             ,''                 ,''             ,''                 ,''      ]; 
      

      Soll ich nach der 11 eine Komma setzen, oder muß in deinem Script eine Null zwischen tun?

      11,432 oder 11.432 ???

      Edit: wird doch mit dem Punkt getrennt, zumindest schreiben die Meisten ein Punkt dazwischen….
      1526_unbenannt.png
      1526_unbenannt1.png

      HP Microserver Gen8, RPI-4, IoBroker,

      1 Reply Last reply
      0
      • K Offline
        K Offline
        knopers1
        wrote on last edited by
        #165

        @looxer,

        die Tabelle mit KWh ist zwar da, allerdings bleiben die Werte dort beim Null. :(

        Kannst Du meine Konfig überprüffen? Evtl. fällt Dir schnell etwas auf, was nicht o.k sein könnte…
        1526_new_2.txt

        HP Microserver Gen8, RPI-4, IoBroker,

        1 Reply Last reply
        0
        • L Offline
          L Offline
          looxer01
          wrote on last edited by
          #166

          Hi,

          setzt mal special(1)(8) auf false. (auf Bestätigung warten)

          im Standard wird auf eine Bestätigung (acknowledge) gewartet. Da es sich aber um einen Javascript Datenpunkt handelt kommt diese nicht.

          Daher erfolgt bei Aenderung des Datenpunktes Javascript.0.BSZ.Counter.Gas keine Ausführung des updates des Folgedatenpunktes.

          vG Looxer

          1 Reply Last reply
          0
          • K Offline
            K Offline
            knopers1
            wrote on last edited by
            #167

            @looxer

            ich verzweifle an dem Script…

            Das rechnet nicht, aus welchem Grund auch immer...Ich habe auch in der Tabelle Spezial (1) (8) auf false gestellt. :(

            ich will doch einfach den Tageswert in m3, was bereits ohne Probleme hochgezählt wird in KW ausgeben.

            in meinem Bild sieht man doch die 0,1 m3... Diesen Wert einfach mal mit dem Brennwert 11.432 multiplizieren.

            0.1x 11.432=1.14 KW

            Wieso geht es nicht bei mir? Kannst Du mir einen einfachen Beispiel hier zeigen, wie ich eine Zahl aus der Objekt ID mit 11.432 multiplizieren kann?

            Das kann doch nicht so schwer sein. Irgendwo muß ich doch ne Komma mit Punkt oder ähnliches vertauscht haben. Ich kriege es nicht hin das Teil zum Zählen zu bewegen.
            1526_unbenannt.png

            HP Microserver Gen8, RPI-4, IoBroker,

            1 Reply Last reply
            0
            • K Offline
              K Offline
              knopers1
              wrote on last edited by
              #168

              @looxer01

              es geht :mrgreen:

              ich habe den Datenpunkt nicht Komplett ausgeschrieben!

              javascript.0.BSZ.Counter.Heizung.DELTA.GAS sollte es heißen… und ich habe nur BSZ.Counter.Heizung.DELTA.GAS als Datenpunkt gesetzt!

              Ich kenne Deine Beschreibung mitlerweile auswendig, trotzdem kam ich auf die Idee nicht, dass ich unter dem I den ganzen Datenpunkt notieren soll. Gelesen und nicht umgesetzt! :shock:

              Danke für deine Hilfe!

              HP Microserver Gen8, RPI-4, IoBroker,

              1 Reply Last reply
              0
              • N Offline
                N Offline
                noxx
                wrote on last edited by
                #169

                habe bei einigen Datenpunkten nur 000:00:00:00

                stehen

                Script: https://pastebin.com/raw/ZEhZgVcL
                2880_01.png

                1 Reply Last reply
                0
                • L Offline
                  L Offline
                  looxer01
                  wrote on last edited by
                  #170

                  Hi Noxx,

                  die Werte werden erst mit dem Tagesabschluss gefüllt. (also um Mitternacht)

                  Hattest du die Konfig schon über Nacht laufen ?

                  vG Looxer

                  1 Reply Last reply
                  0
                  • N Offline
                    N Offline
                    noxx
                    wrote on last edited by
                    #171

                    @looxer01:

                    Hi Noxx,

                    die Werte werden erst mit dem Tagesabschluss gefüllt. (also um Mitternacht)

                    Hattest du die Konfig schon über Nacht laufen ?

                    vG Looxer ` Läuft seit einer Woche

                    Gesendet von meinem Huawei P10lite mit Tapatalk

                    1 Reply Last reply
                    0
                    • L Offline
                      L Offline
                      looxer01
                      wrote on last edited by
                      #172

                      kannst du mal ins log schauen, ob es Meldungen um 00:04 gab ?

                      Deine Einstellungen sehen erstmal gut aus. Und der kumulierte Wert wird ja offensichtlich gefüllt.

                      Also stimmt was mit dem Tagesabschluss nicht. Wenn due das Programm neu startest muesstest du auch die Anzahl der schedules reported bekommen. Sollten 27 sein.

                      vG Looxer

                      1 Reply Last reply
                      0
                      • N Offline
                        N Offline
                        noxx
                        wrote on last edited by
                        #173

                        erstmal das:

                        
                        16:36:51.925	[info]	javascript.0 Stop script script.js.common.Betriebsstundenzaehler
                        16:36:52.875	[info]	javascript.0 Start javascript script.js.common.Betriebsstundenzaehler
                        16:36:52.876	[info]	javascript.0 script.js.common.Betriebsstundenzaehler: registered 26 subscriptions and 27 schedules
                        
                        `2017-09-22 00:00:00.118  - [32minfo[39m: host.raspberrypi instance system.adapter.dwd.0 started with pid 4336
                        2017-09-22 00:00:00.207  - [32minfo[39m: host.raspberrypi instance system.adapter.tvspielfilm.0 started with pid 4342
                        2017-09-22 00:00:00.257  - [32minfo[39m: host.raspberrypi instance system.adapter.ical.1 started with pid 4348
                        2017-09-22 00:00:00.323  - [32minfo[39m: host.raspberrypi instance system.adapter.ical.0 started with pid 4354
                        2017-09-22 00:00:00.885  - [32minfo[39m: javascript.0 script.js.common.Batteriestatus: Ausgelöst bei Timer
                        2017-09-22 00:00:00.910  - [32minfo[39m: javascript.0 script.js.common.Batteriestatus: Geräte Nr. 0: Cresta_ 1 Low battery: false
                        2017-09-22 00:00:00.911  - [32minfo[39m: javascript.0 script.js.common.Batteriestatus: Geräte Nr. 1: Cresta_ 2 Low battery: false
                        2017-09-22 00:00:00.913  - [32minfo[39m: javascript.0 script.js.common.Batteriestatus: Geräte Nr. 2: Cresta_ 4 Low battery: false
                        2017-09-22 00:00:00.914  - [32minfo[39m: javascript.0 script.js.common.Batteriestatus: Geräte Nr. 3: Cresta_ 5 Low battery: false
                        2017-09-22 00:00:00.916  - [32minfo[39m: javascript.0 script.js.common.Batteriestatus: Geräte Nr. 4: Cresta_ 3 Low battery: false
                        2017-09-22 00:00:00.927  - [32minfo[39m: javascript.0 script.js.common.Batteriestatus: Text: 
                        2017-09-22 00:00:00.928  - [32minfo[39m: javascript.0 script.js.common.Batteriestatus: Anzahl Geräte: 5 # davon LOWBAT erkannt: 0
                        2017-09-22 00:00:06.968  - [32minfo[39m: tvspielfilm.0 starting. Version 0.2.2 in /opt/iobroker/node_modules/iobroker.tvspielfilm, node: v6.11.1
                        2017-09-22 00:00:07.171  - [32minfo[39m: dwd.0 starting. Version 2.1.1 in /opt/iobroker/node_modules/iobroker.dwd, node: v6.11.1
                        2017-09-22 00:00:07.224  - [32minfo[39m: tvspielfilm.0 objects written
                        2017-09-22 00:00:07.809  - [32minfo[39m: ical.1 starting. Version 1.3.2 in /opt/iobroker/node_modules/iobroker.ical, node: v6.11.1
                        2017-09-22 00:00:08.161  - [32minfo[39m: ical.0 starting. Version 1.3.2 in /opt/iobroker/node_modules/iobroker.ical, node: v6.11.1
                        2017-09-22 00:00:08.534  - [32minfo[39m: host.raspberrypi instance system.adapter.dwd.0 terminated with code 0 (OK)
                        2017-09-22 00:00:09.437  - [32minfo[39m: host.raspberrypi instance system.adapter.tvspielfilm.0 terminated with code 0 (OK)
                        ...
                        2017-09-22 00:00:15.363  - [32minfo[39m: host.raspberrypi instance system.adapter.ical.0 terminated with code 0 (OK)
                        2017-09-22 00:00:15.490  - [32minfo[39m: host.raspberrypi instance system.adapter.ical.1 terminated with code 0 (OK)
                        2017-09-22 00:04:00.228  - [32minfo[39m: javascript.0 script.js.common.Betriebsstundenzaehler: EVENT Betriebsstundenzaehler werden zurueckgesetzt TAG:22 Wochentag 5Monat 09
                        2017-09-22 00:05:00.053  - [32minfo[39m: host.raspberrypi instance system.adapter.tvspielfilm.0 started with pid 4396
                        2017-09-22 00:05:00.109  - [32minfo[39m: host.raspberrypi instance system.adapter.dwd.0 started with pid 4403
                        2017-09-22 00:05:05.306  - [32minfo[39m: dwd.0 starting. Version 2.1.1 in /opt/iobroker/node_modules/iobroker.dwd, node: v6.11.1
                        2017-09-22 00:05:05.457  - [32minfo[39m: tvspielfilm.0 starting. Version 0.2.2 in /opt/iobroker/node_modules/iobroker.tvspielfilm, node: v6.11.1
                        2017-09-22 00:05:05.631  - [32minfo[39m: tvspielfilm.0 objects written
                        2017-09-22 00:05:06.349  - [32minfo[39m: host.raspberrypi instance system.adapter.dwd.0 terminated with code 0 (OK)
                        2017-09-22 00:05:07.432  - [32minfo[39m: host.raspberrypi instance system.adapter.tvspielfilm.0 terminated with code 0 (OK)[/code]`
                          [2880_1.png](/assets/uploads/files/2880_1.png)  
                        
                        1 Reply Last reply
                        0
                        • N Offline
                          N Offline
                          noxx
                          wrote on last edited by
                          #174

                          moin

                          woran liegts nun das keine delta-werte da sind?

                          1 Reply Last reply
                          0
                          • L Offline
                            L Offline
                            looxer01
                            wrote on last edited by
                            #175

                            Hi noxx,

                            meine Vermutung, dass der schedule nicht anläuft hat sich nicht bestätigt.

                            Erstens zeigt sagt das der Logeintrag und zweitens sehe ich, dass die Werte ja im systembereich gespeichert wurden.

                            Das heisst, dass zum Zeitpunkt des Tagesabschlusses die Routinen gelaufen sind aber keine Speicherung im counter (umgerechnet und gerundet) erfolgte. Woran das liegt weiss ich noch nicht. Es ist auch das erste mal, dass das auftritt.

                            Ich muss jetzt das Programm mit deinen Einstellungen checken.

                            Könntest du zu dem Folgendes machen: Lösche bitte manuell die Einträge mit den fehlenden Werten und lass das Programm neu anlaufen. Die Zeilen sollten dann neu erzeugt werden.

                            vG Looxer

                            1 Reply Last reply
                            0
                            • N Offline
                              N Offline
                              noxx
                              wrote on last edited by
                              #176

                              löschen hat nichts gebraucht. nach neustart stand der zähler erst auf 0, nun wieder auf 000:00:00:00

                              1 Reply Last reply
                              0
                              • N Offline
                                N Offline
                                noxx
                                wrote on last edited by
                                #177

                                was mich wunder, das bei den kumulierten Werten anscheinend die Delta Werte stehen….
                                2880_01.png
                                2880_01.png

                                1 Reply Last reply
                                0
                                • L Offline
                                  L Offline
                                  looxer01
                                  wrote on last edited by
                                  #178

                                  @noxx:

                                  was mich wunder, das bei den kumulierten Werten anscheinend die Delta Werte stehen…. `
                                  nein, das ist schon absolut ok. es sind die kumulierten delta-Werte.

                                  ich brauche noch etwas Zeit, um das Problem anzugehen.

                                  Ich hoffe, dass ich kommende Woche dazu komme.

                                  vG Looxer

                                  1 Reply Last reply
                                  0
                                  • L Offline
                                    L Offline
                                    looxer01
                                    wrote on last edited by
                                    #179

                                    Hi Noxx,

                                    ich denke, dass ich was gefunden habe.

                                    Eine Zwischenlösung könnte sein, dass du eine Rundung eingibst (z.B. 3 für 3 Nachkommastellen).

                                    Dann sollten die Periodenwerte geschrieben werden. ggf. nochmal die Werte vorher löschen.

                                    Der Fehler liegt also im Programm, tritt aber nur auf, wenn keine Umrechnung hinterlegt ist.

                                    vG Looxer

                                    1 Reply Last reply
                                    0
                                    • N Offline
                                      N Offline
                                      noxx
                                      wrote on last edited by
                                      #180

                                      @looxer01:

                                      Hi Noxx,

                                      ich denke, dass ich was gefunden habe.

                                      Eine Zwischenlösung könnte sein, dass du eine Rundung eingibst (z.B. 3 für 3 Nachkommastellen).

                                      Dann sollten die Periodenwerte geschrieben werden. ggf. nochmal die Werte vorher löschen.

                                      Der Fehler liegt also im Programm, tritt aber nur auf, wenn keine Umrechnung hinterlegt ist.

                                      vG Looxer `

                                      danke, nun gehts mit 3 Nachkommastellen.

                                      1 Reply Last reply
                                      0
                                      • L Offline
                                        L Offline
                                        looxer01
                                        wrote on last edited by
                                        #181

                                        @noxx:

                                        danke, nun gehts mit 3 Nachkommastellen. `
                                        super, ich werde dann demnächst eine neue Version zur Verfügung stellen, allerdings macht es eh Sinn mit Nachkommastellen zu arbeiten.

                                        Rundungsprobleme gibt es nicht, weil ja die ungerundeten Werte im Systembereich gespeichert werden und die Berechnungen mit diesen Zahlen gemacht werden.

                                        vG Looxer

                                        1 Reply Last reply
                                        0
                                        • K Offline
                                          K Offline
                                          knopers1
                                          wrote on last edited by
                                          #182

                                          Hi,

                                          ich lese mein Gaszähler mit einem Wemo aus. Siehe Script unten:

                                          var request = require('request');
                                          var parseString = require('xml2js').parseString;
                                          
                                          var url="http://192.168.1.105"; // hier die Adresse der Webseite eintragen
                                          
                                          var GasMeterId = "GasMeter.Wert"; // Der Wert steht in "javascript.0."
                                          
                                          function processData(body){
                                             parseString(body, function (err, result) {
                                                // log(JSON.stringify(result.MyHome.ESP8266_GasMeter[0].data[4].$.value));
                                                if (!err)
                                                    setState(GasMeterId,result.MyHome.ESP8266_GasMeter[0].data[4].$.value);
                                             });   
                                          }
                                          
                                          createState(GasMeterId,
                                                    0, 
                                                    false,
                                                    {
                                                      type:"number",
                                                      unit:"m^3"
                                                    });
                                          
                                          schedule ("*/3 * * * *", function(){ // alle 3 Minuten aufrufen
                                              request({  
                                                  uri: url,
                                                  method: "GET",
                                                  timeout: 10000,
                                                  followRedirect: true,
                                                  maxRedirects: 10
                                              }, function(error, response, body) {
                                                  if (!error) {
                                                      if (response.statusCode == 200) {
                                                          processData(body);    
                                                      }
                                                  } else log("Fehler: "+error);
                                              });    
                                          });
                                          

                                          Es funktioniert alles wie es soll, leider bekomme ich alle drei minuten eine Warnung im Log.

                                          Kann jemand sehen was dort nicht o.k ist? Kann man die Warnung irgenwie abstellen?

                                          javascript.0	2017-10-05 09:42:01.497	info	script.js.common.GaszaehlerWemo: setForeignState(id=javascript.0.GasMeter.Wert, state="383.50")
                                          javascript.0	2017-10-05 09:42:01.496	warn	at process._tickCallback (internal/process/next_tick.js:104:9)
                                          javascript.0	2017-10-05 09:42:01.496	warn	at _combinedTickCallback (internal/process/next_tick.js:80:11)
                                          javascript.0	2017-10-05 09:42:01.496	warn	at endReadableNT (_stream_readable.js:974:12)
                                          javascript.0	2017-10-05 09:42:01.495	warn	at IncomingMessage.emit (events.js:185:7)
                                          javascript.0	2017-10-05 09:42:01.495	warn	at emitNone (events.js:91:20)
                                          javascript.0	2017-10-05 09:42:01.495	warn	at IncomingMessage.g (events.js:292:16)
                                          javascript.0	2017-10-05 09:42:01.494	warn	at IncomingMessage. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1091:12)
                                          javascript.0	2017-10-05 09:42:01.494	warn	at Request.emit (events.js:188:7)
                                          javascript.0	2017-10-05 09:42:01.494	warn	at emitOne (events.js:96:13)
                                          javascript.0	2017-10-05 09:42:01.493	warn	at Request. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1171:10)
                                          javascript.0	2017-10-05 09:42:01.493	warn	at Request.emit (events.js:191:7)
                                          javascript.0	2017-10-05 09:42:01.492	warn	at emitTwo (events.js:106:13)
                                          javascript.0	2017-10-05 09:42:01.492	warn	at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:188:22)
                                          javascript.0	2017-10-05 09:42:01.492	warn	at Request._callback (script.js.common.GaszaehlerWemo:34:17)
                                          javascript.0	2017-10-05 09:42:01.491	warn	at processData (script.js.common.GaszaehlerWemo:9:4)
                                          javascript.0	2017-10-05 09:42:01.491	warn	at exports.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:354:19)
                                          javascript.0	2017-10-05 09:42:01.491	warn	at Parser.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:5:59)
                                          javascript.0	2017-10-05 09:42:01.490	warn	at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:322:31)
                                          javascript.0	2017-10-05 09:42:01.490	warn	at Object.write (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:1436:13)
                                          javascript.0	2017-10-05 09:42:01.490	warn	at closeTag (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:889:7)
                                          javascript.0	2017-10-05 09:42:01.489	warn	at emitNode (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:629:5)
                                          javascript.0	2017-10-05 09:42:01.489	warn	at emit (/opt/iobroker/node_modules/iobroker.javascript/node_modules/sax/lib/sax.js:624:35)
                                          javascript.0	2017-10-05 09:42:01.488	warn	at Object.onclosetag (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:261:26)
                                          javascript.0	2017-10-05 09:42:01.488	warn	at Parser.emit (events.js:188:7)
                                          javascript.0	2017-10-05 09:42:01.487	warn	at emitOne (events.js:96:13)
                                          javascript.0	2017-10-05 09:42:01.487	warn	at Parser. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:303:18)
                                          javascript.0	2017-10-05 09:42:01.486	warn	at script.js.common.GaszaehlerWemo:12:11
                                          javascript.0	2017-10-05 09:42:01.481	warn	Wrong type of javascript.0.GasMeter.Wert: "string". Please fix, while deprecated and will not work in next versions.
                                          

                                          HP Microserver Gen8, RPI-4, IoBroker,

                                          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

                                          597

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          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