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

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

[Vorlage] Betriebsstundenzähler & Verbrauchsrechner

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
333 Beiträge 51 Kommentatoren 92.8k Aufrufe 26 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.
  • K Online
    K Online
    knopers1
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • N Offline
      N Offline
      noxx
      schrieb am zuletzt editiert von
      #169

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

      stehen

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

      1 Antwort Letzte Antwort
      0
      • L Offline
        L Offline
        looxer01
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • N Offline
          N Offline
          noxx
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • L Offline
            L Offline
            looxer01
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • N Offline
              N Offline
              noxx
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • N Offline
                N Offline
                noxx
                schrieb am zuletzt editiert von
                #174

                moin

                woran liegts nun das keine delta-werte da sind?

                1 Antwort Letzte Antwort
                0
                • L Offline
                  L Offline
                  looxer01
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • N Offline
                    N Offline
                    noxx
                    schrieb am zuletzt editiert von
                    #176

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

                    1 Antwort Letzte Antwort
                    0
                    • N Offline
                      N Offline
                      noxx
                      schrieb am zuletzt editiert von
                      #177

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

                      1 Antwort Letzte Antwort
                      0
                      • L Offline
                        L Offline
                        looxer01
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • L Offline
                          L Offline
                          looxer01
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • N Offline
                            N Offline
                            noxx
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            0
                            • L Offline
                              L Offline
                              looxer01
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • K Online
                                K Online
                                knopers1
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • L Offline
                                  L Offline
                                  looxer01
                                  schrieb am zuletzt editiert von
                                  #183

                                  Hi,

                                  das hat nichts mit dem Betriebsstundenzähler zu tun.

                                  scheint irgendwas beim parsen zu passieren.

                                  Ich kann dir auf die Schnelle das Problem nicht lösen. Die Warnungen könnte man zwar prinzipiell über den log level unterdrücken. Allerdings ist dass das kurieren von Symptomen. (und andere Warnmeldungen willst du vielleicht sehen)

                                  zu dieser Warnmeldung:

                                  Wrong type of javascript.0.GasMeter.Wert: "string". Please fix, while deprecated and will not work in next versions.

                                  stelle das objekt javascript.0.GasMeter.Wert auf number um.

                                  vG Looxer

                                  1 Antwort Letzte Antwort
                                  0
                                  • K Online
                                    K Online
                                    knopers1
                                    schrieb am zuletzt editiert von
                                    #184

                                    Danke Dir, kann Dir aber nicht ganz folgen….

                                    im Script ist ein "number" eingetragen.

                                    createState(GasMeterId,
                                              0, 
                                              false,
                                              {
                                                type:"number",
                                                unit:"m^3"
                                              });
                                    

                                    Unter type (siehe Bild), kann ich nur:

                                    Logikwert

                                    Zeichenkette

                                    Zahl

                                    Feld

                                    Objekt

                                    gemischt

                                    eintragen…. ;)
                                    1526_unbenannt3.png

                                    HP Microserver Gen8, RPI-4, IoBroker,

                                    1 Antwort Letzte Antwort
                                    0
                                    • L Offline
                                      L Offline
                                      looxer01
                                      schrieb am zuletzt editiert von
                                      #185

                                      @knopers1:

                                      Unter type (siehe Bild), kann ich nur:

                                      Logikwert

                                      Zeichenkette

                                      Zahl

                                      Feld

                                      Objekt

                                      gemischt `

                                      genau. Zahl wäre vermutlich der richtige Wert…

                                      aaeh sorry, ist ja schon eingetragen. Dann ist es wohl so, dass versucht wird einen string zu verwenden.

                                      Stelle es mal testweise auf String. Ist aber nicht die Lösung. Das muss dann im Programm umgewandelt werden.

                                      vG Looxer

                                      1 Antwort Letzte Antwort
                                      0
                                      • K Online
                                        K Online
                                        knopers1
                                        schrieb am zuletzt editiert von
                                        #186

                                        Danke, habe jetzt auf "gemischt" eingestellt und die Warnungen sind jetzt vollkommen verschwunden.

                                        Jetzt kommt nur alle drei min. das hier…

                                        javascript.0	2017-10-05 11:51:01.401	info	script.js.common.GaszaehlerWemo: setForeignState(id=javascript.0.GasMeter.Wert, state="383.50")
                                        

                                        ich glaube, dass es damit beseitigt ist. :mrgreen:

                                        HP Microserver Gen8, RPI-4, IoBroker,

                                        1 Antwort Letzte Antwort
                                        0
                                        • L Offline
                                          L Offline
                                          looxer01
                                          schrieb am zuletzt editiert von
                                          #187

                                          @knopers1:

                                          Jetzt kommt nur alle drei min. das hier… `
                                          ich habe bei mir den loglevel auf WARN stehen. Damit werden Info ausgeblendet.

                                          ist aber Geschmackssache

                                          vG Looxer

                                          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

                                          487

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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