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. Script zum hochrechnen des Stromverbrauchs

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Script zum hochrechnen des Stromverbrauchs

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
11 Beiträge 3 Kommentatoren 845 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.
  • ChaotC Chaot

    Ich habe mir vorgestellt das ich meinen voraussichtlichen Jahresverbrauch hochrechnen und den dann in einen Datenpunkt schreiben möchte.
    Also nach dem aktuellen Zählerstand bzw. bisherigen Verbrauch möchte ich den simpel auf das volle Jahr hochrechnen. Das allerdings möglichst Taggenau.
    Mir ist klar dass das nie ein genaues Ergebnis ergeben wird, weil ja im Herbst und Winter länger Licht usw. an ist und deshalb das nur ein grober Schätzwert werden wird.
    Dazu suche ich jetzt also nach einer Formel bzw. einem Skript mit dem ich das umsetzen kann.
    So in etwa:
    Aktueller Verbrauch / Tage bisher * 365

    Hat jemand eine Idee wie man das in ein Skript packen kann? Vor allem die Abfrage "Tage bisher" bereitet mir da Kopfzerbrechen.

    ChaotC Offline
    ChaotC Offline
    Chaot
    schrieb am zuletzt editiert von
    #2

    Kann sowas funktionieren oder ist da ein Denkfehler drin?

    schedule('{"time":{"exactTime":true,"start":"00:01"},"period":{"days":1}}', async function () {
      setState("0_userdata.0.Strom.Hochrechnung"/*Hochrechnung*/, (parseFloat((parseFloat(getState("0_userdata.0.Stromverbrauch.Verbrauch_Abrechnungsjahr").val) / formatDate(new Date(), "j"))) * 365));
    });
    

    Soweit ich das gelesen habe müsste ich mit dem Befehl
    date +%j
    ja den aktuellen Tag des Jahres ausggeben bekommen. Aber ich habe keine Ahnung ob das unter Javascript so umsetzbar ist.

    ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

    1 Antwort Letzte Antwort
    0
    • arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von
      #3

      @chaot gesehen

      https://forum.iobroker.net/topic/13600/erledigt-aktuellen-tag-des-jahres-errechnen

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      ChaotC 1 Antwort Letzte Antwort
      0
      • arteckA arteck

        @chaot gesehen

        https://forum.iobroker.net/topic/13600/erledigt-aktuellen-tag-des-jahres-errechnen

        ChaotC Offline
        ChaotC Offline
        Chaot
        schrieb am zuletzt editiert von
        #4

        @arteck
        Danke für den Link. Den habe ich gestern gesehen und ausprobiert.
        Mit der Konsolenausgabe kam irgendwie nichts und wenn ich es versucht habe in einen Datenpunkt zu schreiben kam eine Fehlermeldung:

        
        javascript.0 2022-06-27 08:38:00.048	error	at processTimers (node:internal/timers:502:7)
        javascript.0 2022-06-27 08:38:00.048	error	at listOnTimeout (node:internal/timers:559:17)
        javascript.0 2022-06-27 08:38:00.048	error	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
        javascript.0 2022-06-27 08:38:00.047	error	at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
        javascript.0 2022-06-27 08:38:00.047	error	at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:171:15)
        javascript.0 2022-06-27 08:38:00.046	error	at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1408:34)
        javascript.0 2022-06-27 08:38:00.046	error	at Object.<anonymous> (script.js.Strom.TagDesJahres:9:58)
        javascript.0 2022-06-27 08:38:00.040	error	Error in callback: TypeError: tag is not a function
        
        schedule("* * * * *", function () {
        // Tag des Jahres
           var jetzt = new Date();
           var Jahr = jetzt.getFullYear();
           var heutestart = new Date(jetzt.setHours(0,0,0,0));
           var neujahr = new Date(Jahr,0,1);
           var difftage = (heutestart - neujahr) / (24*60*60*1000) + 1;
           var tag = Math.ceil(difftage);
           setState("0_userdata.0.TagDesJahres"/*TagDesJahres*/, tag(tag));
        });
        
        

        ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

        arteckA 1 Antwort Letzte Antwort
        0
        • mickymM Offline
          mickymM Offline
          mickym
          Most Active
          schrieb am zuletzt editiert von mickym
          #5

          Gelöscht

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          1 Antwort Letzte Antwort
          0
          • ChaotC Chaot

            @arteck
            Danke für den Link. Den habe ich gestern gesehen und ausprobiert.
            Mit der Konsolenausgabe kam irgendwie nichts und wenn ich es versucht habe in einen Datenpunkt zu schreiben kam eine Fehlermeldung:

            
            javascript.0 2022-06-27 08:38:00.048	error	at processTimers (node:internal/timers:502:7)
            javascript.0 2022-06-27 08:38:00.048	error	at listOnTimeout (node:internal/timers:559:17)
            javascript.0 2022-06-27 08:38:00.048	error	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
            javascript.0 2022-06-27 08:38:00.047	error	at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
            javascript.0 2022-06-27 08:38:00.047	error	at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:171:15)
            javascript.0 2022-06-27 08:38:00.046	error	at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1408:34)
            javascript.0 2022-06-27 08:38:00.046	error	at Object.<anonymous> (script.js.Strom.TagDesJahres:9:58)
            javascript.0 2022-06-27 08:38:00.040	error	Error in callback: TypeError: tag is not a function
            
            schedule("* * * * *", function () {
            // Tag des Jahres
               var jetzt = new Date();
               var Jahr = jetzt.getFullYear();
               var heutestart = new Date(jetzt.setHours(0,0,0,0));
               var neujahr = new Date(Jahr,0,1);
               var difftage = (heutestart - neujahr) / (24*60*60*1000) + 1;
               var tag = Math.ceil(difftage);
               setState("0_userdata.0.TagDesJahres"/*TagDesJahres*/, tag(tag));
            });
            
            
            arteckA Offline
            arteckA Offline
            arteck
            Developer Most Active
            schrieb am zuletzt editiert von arteck
            #6

            @chaot sagte in Script zum hochrechnen des Stromverbrauchs:

            setState("0_userdata.0.TagDesJahres"/TagDesJahres/, tag(tag));

            mach doch nicht so kopliziert

            hier ist der Fehler, so muss es sein

            setState("0_userdata.0.TagDesJahres"/*TagDesJahres*/, tag);
            

            aber schau erst obs geht.. ohne den schedule geraffel

            // Tag des Jahres
               var jetzt = new Date();
               var Jahr = jetzt.getFullYear();
               var heutestart = new Date(jetzt.setHours(0,0,0,0));
               var neujahr = new Date(Jahr,0,1);
               var difftage = (heutestart - neujahr) / (24*60*60*1000) + 1;
               var tag = Math.ceil(difftage);
               log.console("tag ----------> " + tag);
            

            zigbee hab ich, zwave auch, nuc's genauso und HA auch

            ChaotC 1 Antwort Letzte Antwort
            0
            • arteckA arteck

              @chaot sagte in Script zum hochrechnen des Stromverbrauchs:

              setState("0_userdata.0.TagDesJahres"/TagDesJahres/, tag(tag));

              mach doch nicht so kopliziert

              hier ist der Fehler, so muss es sein

              setState("0_userdata.0.TagDesJahres"/*TagDesJahres*/, tag);
              

              aber schau erst obs geht.. ohne den schedule geraffel

              // Tag des Jahres
                 var jetzt = new Date();
                 var Jahr = jetzt.getFullYear();
                 var heutestart = new Date(jetzt.setHours(0,0,0,0));
                 var neujahr = new Date(Jahr,0,1);
                 var difftage = (heutestart - neujahr) / (24*60*60*1000) + 1;
                 var tag = Math.ceil(difftage);
                 log.console("tag ----------> " + tag);
              
              ChaotC Offline
              ChaotC Offline
              Chaot
              schrieb am zuletzt editiert von
              #7

              @arteck sagte in Script zum hochrechnen des Stromverbrauchs:

              log.console("tag ----------> " + tag);

              Mag mich nicht :angry:
              Ich hatte noch eine Fehlermeldung in der Rechenzeile (6) die ich mit .getTime wegbekommen habe.
              log.console gibt eine Fehlermeldung und unter console.log kommt keine Ausgabe.

              // Tag des Jahres
                 var jetzt = new Date();
                 var Jahr = jetzt.getFullYear();
                 var heutestart = new Date(jetzt.setHours(0,0,0,0)).getTime();
                 var neujahr = new Date(Jahr,0,1).getTime();
                 var difftage = (heutestart - neujahr) / (24*60*60*1000) + 1;
                 var tag = Math.ceil(difftage);
                 console.log("tag ----------> " + tag);
              

              ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

              arteckA 1 Antwort Letzte Antwort
              0
              • ChaotC Chaot

                @arteck sagte in Script zum hochrechnen des Stromverbrauchs:

                log.console("tag ----------> " + tag);

                Mag mich nicht :angry:
                Ich hatte noch eine Fehlermeldung in der Rechenzeile (6) die ich mit .getTime wegbekommen habe.
                log.console gibt eine Fehlermeldung und unter console.log kommt keine Ausgabe.

                // Tag des Jahres
                   var jetzt = new Date();
                   var Jahr = jetzt.getFullYear();
                   var heutestart = new Date(jetzt.setHours(0,0,0,0)).getTime();
                   var neujahr = new Date(Jahr,0,1).getTime();
                   var difftage = (heutestart - neujahr) / (24*60*60*1000) + 1;
                   var tag = Math.ceil(difftage);
                   console.log("tag ----------> " + tag);
                
                arteckA Offline
                arteckA Offline
                arteck
                Developer Most Active
                schrieb am zuletzt editiert von arteck
                #8

                @chaot dann andersrum.. verwechsel ich immrt

                log.console("tag ----------> " + tag);
                

                zigbee hab ich, zwave auch, nuc's genauso und HA auch

                ChaotC 1 Antwort Letzte Antwort
                0
                • arteckA arteck

                  @chaot dann andersrum.. verwechsel ich immrt

                  log.console("tag ----------> " + tag);
                  
                  ChaotC Offline
                  ChaotC Offline
                  Chaot
                  schrieb am zuletzt editiert von
                  #9

                  @arteck
                  Kommt zwar auch nichts in der Konsole, aber das Teil läuft!!!!!!

                  // Hochrechnung
                     var jetzt = new Date();
                     var Jahr = jetzt.getFullYear();
                     var heutestart = new Date(jetzt.setHours(0,0,0,0)).getTime();
                     var neujahr = new Date(Jahr,0,1).getTime();
                     var difftage = (heutestart - neujahr) / (24*60*60*1000) + 1;
                     var tag = Math.ceil(difftage);
                      setState("0_userdata.0.Strom.Hochrechnung"/*Hochrechnung*/, ((getState("0_userdata.0.Stromverbrauch.Verbrauch_Abrechnungsjahr").val) / tag) * 365);
                  
                  

                  ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                  ChaotC 1 Antwort Letzte Antwort
                  0
                  • ChaotC Chaot

                    @arteck
                    Kommt zwar auch nichts in der Konsole, aber das Teil läuft!!!!!!

                    // Hochrechnung
                       var jetzt = new Date();
                       var Jahr = jetzt.getFullYear();
                       var heutestart = new Date(jetzt.setHours(0,0,0,0)).getTime();
                       var neujahr = new Date(Jahr,0,1).getTime();
                       var difftage = (heutestart - neujahr) / (24*60*60*1000) + 1;
                       var tag = Math.ceil(difftage);
                        setState("0_userdata.0.Strom.Hochrechnung"/*Hochrechnung*/, ((getState("0_userdata.0.Stromverbrauch.Verbrauch_Abrechnungsjahr").val) / tag) * 365);
                    
                    
                    ChaotC Offline
                    ChaotC Offline
                    Chaot
                    schrieb am zuletzt editiert von
                    #10

                    @chaot
                    Jetzt noch die Kommastellen wegbekommen und ich bin zufrieden :blush:

                    ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                    ChaotC 1 Antwort Letzte Antwort
                    0
                    • ChaotC Chaot

                      @chaot
                      Jetzt noch die Kommastellen wegbekommen und ich bin zufrieden :blush:

                      ChaotC Offline
                      ChaotC Offline
                      Chaot
                      schrieb am zuletzt editiert von
                      #11

                      Das Script funktioniert so wie ich das will.
                      Danke @arteck für die Tips und Hinweise in die richtige Richtung.

                      // Hochrechnung Jahresverbrauch
                      schedule("0,1 0 * * *", async function () {
                         var jetzt = new Date();
                         var Jahr = jetzt.getFullYear();
                         var heutestart = new Date(jetzt.setHours(0,0,0,0)).getTime();
                         var neujahr = new Date(Jahr,0,1).getTime();
                         var difftage = (heutestart - neujahr) / (24*60*60*1000) + 1;
                         var tag = Math.ceil(difftage);
                         setState("0_userdata.0.Strom.Hochrechnung"/*Hochrechnung*/, (((getState("0_userdata.0.Stromverbrauch.Verbrauch_Abrechnungsjahr").val) / tag) * 365).toFixed(0));
                      });
                      

                      ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                      1 Antwort Letzte Antwort
                      1
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      577

                      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