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 Offline
    ChaotC Offline
    Chaot
    schrieb am zuletzt editiert von
    #1

    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.

    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

      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 Online
            mickymM Online
            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

                        552

                        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