Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]Schaltwert anhand von Integral?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst]Schaltwert anhand von Integral?

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

      Hallo, ich versuch mal mein Anliegen zu erklären:

      Ausgangssituation ist, das die WP anhand von entweder PV-Überschuss oder des günstigsten Strompreises das Warmwasser einmal täglich macht. Dazu habe ich ein Blockly gebaut welches auch sehr gut funktioniert.

      wwControl1211.png

      Nun kann es vorkommen, das grade die Heizung gelaufen ist oder noch läuft, die Warmwasserbereitung startet. Das finde ich etwas suboptimal und würde dies gern ändern.

      Bei einer Vaillant Wärmepumpe wird anhand eines Energie Integral gearbeitet, jetzt wäre es optimal wenn man die Warmwasserbereitung startet, wenn das Integral abgelaufen ist und eigentlich die Heizung starten sollte.

      Das ganze mit dem Integral sieht so aus:

      integral_working_iob.png

      Immer bei den gelben Kreisen, wenn das Integral einen Wert von -100 erreicht hat, und die Vorlauf-Isttemperatur = Vorlauf-Solltemperatur fängt die WP an zu laufen.

      Jetzt würde ich gern, das mein Blockly zum einschalten der Warmwasserbereitung (zur besten Zeit) entweder diese vorzieht oder wartet bis das nächstemal das Integral die -100 erreicht.
      Der Wert des Energie Integrals liegt als DP vor. Das Problem was ich hab ist, wenn ich jetzt auf PV-Überschuss oder Preis prüfe und dann sage, 'und EI = -100' weiß ich ja nicht fällt das Integral grad ab, oder steigt es an.

      Ich hoffe ich habs einigermaßen verständlich erklärt.

      Kann man das irgendwie lösen?

      Marc Berg B 2 Replies Last reply Reply Quote 0
      • Marc Berg
        Marc Berg Most Active @icebear last edited by

        @icebear sagte in Schaltwert anhand von Integral?:

        Kann man das irgendwie lösen?

        Eine von wahrscheinlich hundert möglichen Lösungen wäre, mit dem Trigger "Integral <=-100" in die Datenbank zu schauen und zu prüfen, ob die Werte gerade steigen oder fallen:

        from(bucket: "dein_bucket")
            |> range(start: -1h)  // Zeitraum anpassen, falls nötig
            |> filter(fn: (r) => r["_measurement"] == "deine_messung")
            |> filter(fn: (r) => r["_field"] == "value")
            |> sort(columns: ["_time"], desc: true)
            |> limit(n: 2)
            |> difference()
            |> map(fn: (r) => ({
                _time: r._time,
                _value: if r._value > 0 then "steigend" else "fallend"
            }))
        
        1 Reply Last reply Reply Quote 0
        • B
          badsnoopy667 @icebear last edited by badsnoopy667

          @icebear said in Schaltwert anhand von Integral?:

          Der Wert des Energie Integrals liegt als DP vor. Das Problem was ich hab ist, wenn ich jetzt auf PV-Überschuss oder Preis prüfe und dann sage, 'und EI = -100' weiß ich ja nicht fällt das Integral grad ab, oder steigt es an.

          Könntest du nicht einfach den Trigger von "wurde geändert" auf "ist kleiner als letztes" ändern? Dann löst er nur aus, wenn der Wert vorher größer war, sprich wenn der Wert fällt.
          Bzw. wenn das Integral gar nicht dein Trigger ist, sondern der PV-Überschuss, dann mach dir eine Hilfsvariable "integral_faellt". Und die setzt du mit dem "Integral ist kleiner als letztes" Trigger auf "true". Dann kannst du die Bedingung "integral_faellt" = true in deiner abfrage verwenden.

          icebear 1 Reply Last reply Reply Quote 0
          • icebear
            icebear @badsnoopy667 last edited by

            @badsnoopy667

            Sorry das ich mich jetzt erst melde. Danke für deinen Hinweis, manchmal sieht man den Wald vor lauter Bäumen nicht.

            Ich habs jetzt so umgesetzt und das funktioniert so wie ich es brauche, mal testen ob's was bringt.

            blockly_Integral.png

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

            Support us

            ioBroker
            Community Adapters
            Donate

            900
            Online

            31.7k
            Users

            79.7k
            Topics

            1.3m
            Posts

            3
            4
            240
            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