Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. History Wert zu bestimmtem Zeitpunkt

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    History Wert zu bestimmtem Zeitpunkt

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Matzeit last edited by Matzeit

      Hallo,
      ich erstelle gerade ein Skript um die Tagesarbeitszahl der Wärmepumpe zu berechnen. Leider erhalte ich "schlechte" Werte wenn ich um 0 Uhr die aktuellen Zählerstände subtrahiert von den Vortageswerten in einen Datenpunkt wegschreibe.
      Jetzt würde ich gerne die History Werte der Datenpunkte verwenden:

      Verbrauch_elektrisch_Historywert_Zeitpunkt(17.02.2023 0:00) - Histoywert_Zeitpunkt(16.02.2023 0:00Uhr) = Verbrauch_elektrisch_Vortag

      ist das in Blockly möglich?

      ps: mein Problem ist, dass die Berechnung der Werte vom Vortag sich aufzukommulieren scheinen. Vielleicht ein Rundungsproblem etc.
      Screenshot 2023-02-18 092301.jpg Screenshot 2023-02-18 092152.jpg
      edit: Der cron job ist normal um 0:00Uhr. Zu testzwecken habe ich den auf 8:06 gestellt.

      M 1 Reply Last reply Reply Quote 0
      • M
        Matzeit @Matzeit last edited by Matzeit

        Da ich noch keine Hilfe erhalten habe, habe ich das Script etwas abgeändert. Leider erhalte ich in meinem Script immer den Wert "(null)" für den Datenpunkt "Tagesarbeitszahl".

        Mein Script lautet:

        var W_thermisch_gesamt, W_elektrisch_gesamt, W_elektrisch_Vortag, w_thermisch_Vortag;
        
        
        // Speichere Vortageszählerstände
        schedule("49 17 * * *", async function () {
          // Setzte die Variablen für die Tagesdaten.
          W_thermisch_gesamt = parseFloat(parseFloat(getState("nibeuplink.0.UNIT_0.HEAT_METER.HEATING_COMPR_ONLY_EP14").val)) + parseFloat(getState("nibeuplink.0.UNIT_0.HEAT_METER.HOTWATER_COMPR_ONLY_EP14").val);
          W_elektrisch_gesamt = parseFloat(parseFloat(getState("sonoff.0.Tasmota_Stromzaehler_Heizung.Heizung_zahlstand_HT").val)) + parseFloat(getState("sonoff.0.Tasmota_Stromzaehler_Heizung.Heizung_zahlstand_NT").val);
          // wenn Vortageswerte 0 sind, dann speichere aktuelle Tagesdaten als Vortagesdaten
          if (getState("0_userdata.0.Heizung.Wel_Vortag").val == 0) {
            setState("0_userdata.0.Heizung.Wel_Vortag"/*Wel_Vortag*/, W_elektrisch_gesamt, true);
          }
          if (getState("0_userdata.0.Heizung.Wth_Vortag").val == 0) {
            setState("0_userdata.0.Heizung.Wth_Vortag"/*Wth_Vortag*/, W_thermisch_gesamt, true);
          }
          // ermittle rechnerisch die Vortageswerte
          setState("0_userdata.0.Heizung.Wel_Vortag"/*Wel_Vortag*/, (parseFloat(W_elektrisch_gesamt) - getState("0_userdata.0.Heizung.Wel_Vortag").val), true);
          setState("0_userdata.0.Heizung.Wth_Vortag"/*Wth_Vortag*/, (parseFloat(W_thermisch_gesamt) - getState("0_userdata.0.Heizung.Wth_Vortag").val), true);
        });
        // Berechnet Tagesarbeitszahl
        schedule("50 17 * * *", async function () {
          W_elektrisch_Vortag = Math.round(getState("0_userdata.0.Heizung.Wel_Vortag").val*100)/100;
          w_thermisch_Vortag = Math.round(getState("0_userdata.0.Heizung.Wth_Vortag").val*100)/100;
          setState("0_userdata.0.Heizung.Tagesarbeitszahl"/*Tagesarbeitszahl*/, (parseFloat(w_thermisch_Vortag) / W_elektrisch_Vortag), true);
          sendTo("telegram.0", "send", {
              text: (['Tagesarbeitszahl:',getState("0_userdata.0.Heizung.Tagesarbeitszahl").val,'W_elektrisch; W_thermisch:',W_elektrisch_Vortag,w_thermisch_Vortag].join(''))
          });
        });
        

        Alle Datenpunkte besitzen reale Werte.

        Blockly sieht so aus:
        Screenshot 2023-02-21 181114.jpg

        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        828
        Online

        32.0k
        Users

        80.5k
        Topics

        1.3m
        Posts

        1
        2
        152
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo