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

  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. Geräte zu Stundenpreisen (EPEX) oder PV-Überschuss betreiben

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

Geräte zu Stundenpreisen (EPEX) oder PV-Überschuss betreiben

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
awattarbilligbörseepexgünstigstrompreisstündlichtibber
156 Beiträge 24 Kommentatoren 38.2k Aufrufe 33 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.
  • tugsiT tugsi

    @thomkast sagte in Geräte zu Stundenpreisen (EPEX) oder PV-Überschuss betreiben:

    Sofern es Euch hilft und Ihr die Zeit investieren möchtet... Die relevanten Abschnitte finden sich in "FKT_4_..." und "FKT_5_...". Leider schaffe ich es nicht, das Skript umfangreicher zu erläutern... Vielleicht findet sich für Euch aber noch ein Ansatz.

    Habe doch mal kurz Dein Script importiert (wobei Du hier im Thread nur Fkt1 hast, daher aus Deinem Urpsrungsthread genommen)

    Dort ist ja schon sowas, was @Einstein-0 sucht:
    Bildschirmfoto 2023-12-07 um 16.43.34.png

    Aus Deiner Liste nimmst Du doch die entsprechende Stelle dann raus.
    Hast Du mal kurzen Ausschnitt aus der Liste, dann kann @Einstein-0 den Aufbau genau sehen.
    Ich denke das hilft ihm weiter.

    T Offline
    T Offline
    ThomKast
    schrieb am zuletzt editiert von
    #127

    @tugsi
    Das sieht am aktuellen Beispiel dann so aus:

    09f2dcde-6c7d-4307-8d15-35f4b16eb12e-image.png

    1 Antwort Letzte Antwort
    0
    • Q Offline
      Q Offline
      Qlink
      schrieb am zuletzt editiert von
      #128

      @ThomKast

      Ist es möglich deine tolle Arbeit auch für den österreichischen Anbieter SmartEnergy zu nutzen ?

      Hier ist der Link zu deren API: https://www.smartenergy.at/api-schnittstellen

      Lässt sich das mit deinen Scripten machen und falls ja was müsste ich da genau tun ?

      Beste Grüße

      S T 2 Antworten Letzte Antwort
      0
      • Q Qlink

        @ThomKast

        Ist es möglich deine tolle Arbeit auch für den österreichischen Anbieter SmartEnergy zu nutzen ?

        Hier ist der Link zu deren API: https://www.smartenergy.at/api-schnittstellen

        Lässt sich das mit deinen Scripten machen und falls ja was müsste ich da genau tun ?

        Beste Grüße

        S Offline
        S Offline
        Schimi
        schrieb am zuletzt editiert von Schimi
        #129

        @qlink der Börsenstrompreis, sollte überall gleich sein.... das was der Anbieter noch aufschlägt sollte ja auch immer "gleich" sein....

        Somit íst das hier immer zu gebrauchen... :-)

        edit
        ah mist... es muss ja einTiber token benutzt werden... dann ist das natürlich nicht mal eben für was anderes zu benutzen.....

        Bringt dich der Awattar-Adapter nicht auch zum Ziel?

        Q 1 Antwort Letzte Antwort
        0
        • S Schimi

          @qlink der Börsenstrompreis, sollte überall gleich sein.... das was der Anbieter noch aufschlägt sollte ja auch immer "gleich" sein....

          Somit íst das hier immer zu gebrauchen... :-)

          edit
          ah mist... es muss ja einTiber token benutzt werden... dann ist das natürlich nicht mal eben für was anderes zu benutzen.....

          Bringt dich der Awattar-Adapter nicht auch zum Ziel?

          Q Offline
          Q Offline
          Qlink
          schrieb am zuletzt editiert von
          #130

          @schimi

          Leider nein, nur einfach austauschen der API URL im awattar Adapter funktioniert nicht.
          Hab dazu auch schon einen Github Request aufgemacht, aber bei dem awattar Adapter hat sich lt. Github scheinbar seit 3 Jahren nichts mehr getan, daher hab ich da auch eher wenig Hoffnung auf Lösung meiner Anfrage.

          1 Antwort Letzte Antwort
          0
          • Q Qlink

            @ThomKast

            Ist es möglich deine tolle Arbeit auch für den österreichischen Anbieter SmartEnergy zu nutzen ?

            Hier ist der Link zu deren API: https://www.smartenergy.at/api-schnittstellen

            Lässt sich das mit deinen Scripten machen und falls ja was müsste ich da genau tun ?

            Beste Grüße

            T Offline
            T Offline
            ThomKast
            schrieb am zuletzt editiert von
            #131

            @qlink Moin aus dem verregneten Norddeutschland nach Österreich und alles Gute im neuen Jahr 🍀.
            Ich schaue mir die API mal an und melde mich dann. Wenn es nicht zu umfangreich wird, helfe ich gerne.

            Q 1 Antwort Letzte Antwort
            0
            • T ThomKast

              @qlink Moin aus dem verregneten Norddeutschland nach Österreich und alles Gute im neuen Jahr 🍀.
              Ich schaue mir die API mal an und melde mich dann. Wenn es nicht zu umfangreich wird, helfe ich gerne.

              Q Offline
              Q Offline
              Qlink
              schrieb am zuletzt editiert von
              #132

              @thomkast

              Das wäre DER HAMMER !
              Auch dir ein gutes neues Jahr !

              Beste Grüße

              T 1 Antwort Letzte Antwort
              0
              • Q Qlink

                @thomkast

                Das wäre DER HAMMER !
                Auch dir ein gutes neues Jahr !

                Beste Grüße

                T Offline
                T Offline
                ThomKast
                schrieb am zuletzt editiert von
                #133

                @qlink Hi, wenn Du mal schauen möchtest...

                Dieses Blockly-Script holt die Daten von APIS ab (1.Teil) und mit dem 2.Teil hast Du Zugriff auf die Stundenpreise.

                1. Teil speichert die Daten im Datenpunkt unter 0_userdata.0.APIS_AT.Preise_heute

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <variables>
                   <variable id="gUH_-h{VuFlarEGO(jBD">result</variable>
                   <variable type="timeout" id="kurz_warten">kurz_warten</variable>
                   <variable id="4iEXXd([z~lkR3U/0,vs">zähler_stunden</variable>
                 </variables>
                 <block type="comment" id="_;v%2-xxS|AS3,466+8e" x="13" y="13">
                   <field name="COMMENT">1. Preise abholen</field>
                   <next>
                     <block type="request" id="ZpUc_wE.U1@u^#sKoT=t">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                       <field name="WITH_STATEMENT">TRUE</field>
                       <field name="LOG">log</field>
                       <value name="URL">
                         <shadow type="text" id="_`*W@P_.+k[;p8,etm*S">
                           <field name="TEXT">https://apis.smartenergy.at/market/v1/price</field>
                         </shadow>
                       </value>
                       <statement name="STATEMENT">
                         <block type="debug" id="Q44.(O-?m-Z?Q[g0tR_C">
                           <field name="Severity">log</field>
                           <value name="TEXT">
                             <shadow type="text" id=";C%sI/nx{60_[qXp10^;">
                               <field name="TEXT">test</field>
                             </shadow>
                             <block type="variables_get" id="K2;*[c{,SLK-y.*B*|:E">
                               <field name="VAR" id="gUH_-h{VuFlarEGO(jBD">result</field>
                             </block>
                           </value>
                           <next>
                             <block type="control" id="ZzLf[fCAJXUH+-iW_D%3">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">0_userdata.0.APIS_AT.Preise_heute</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="variables_get" id="U3M+]nG9JL1(fPS+G#Fr">
                                   <field name="VAR" id="gUH_-h{VuFlarEGO(jBD">result</field>
                                 </block>
                               </value>
                             </block>
                           </next>
                         </block>
                       </statement>
                       <next>
                         <block type="comment" id="3xuM.Wzif;RXBnNB]`M*">
                           <field name="COMMENT">2. Preise separieren</field>
                           <next>
                             <block type="timeouts_settimeout" id="c1jQJ!`kb@?rD-u**IL,">
                               <field name="NAME">kurz_warten</field>
                               <field name="DELAY">2</field>
                               <field name="UNIT">sec</field>
                               <statement name="STATEMENT">
                                 <block type="controls_for" id="pDcae/K]ayczT1WCcArx">
                                   <field name="VAR" id="4iEXXd([z~lkR3U/0,vs">zähler_stunden</field>
                                   <value name="FROM">
                                     <shadow type="math_number" id="kpTYNb=0QBoukzQwe*5H">
                                       <field name="NUM">0</field>
                                     </shadow>
                                   </value>
                                   <value name="TO">
                                     <shadow type="math_number" id="n0HqGUypSH26UtE]0=UZ">
                                       <field name="NUM">92</field>
                                     </shadow>
                                   </value>
                                   <value name="BY">
                                     <shadow type="math_number" id="b^9vnyQ!yvtMA)gnf+A!">
                                       <field name="NUM">4</field>
                                     </shadow>
                                   </value>
                                   <statement name="DO">
                                     <block type="debug" id="^fD%j$(xfFa*e|`yK7yQ">
                                       <field name="Severity">log</field>
                                       <value name="TEXT">
                                         <shadow type="text" id=";C%sI/nx{60_[qXp10^;">
                                           <field name="TEXT">test</field>
                                         </shadow>
                                         <block type="text_join" id="d?4Fl/b2j%-C[=ajfoc2">
                                           <mutation items="2"></mutation>
                                           <value name="ADD0">
                                             <block type="text" id="!7$r7QV.5Pkc.z;owvJm">
                                               <field name="TEXT">Zähler_Stunden: </field>
                                             </block>
                                           </value>
                                           <value name="ADD1">
                                             <block type="math_arithmetic" id="`9LV8j=#a+V,.tZzuQnW">
                                               <field name="OP">DIVIDE</field>
                                               <value name="A">
                                                 <shadow type="math_number" id="xV,9:o+r[gJHWuD`jq7D">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="variables_get" id="06O5|4FBfZ`d=hMBW`_6">
                                                   <field name="VAR" id="4iEXXd([z~lkR3U/0,vs">zähler_stunden</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <shadow type="math_number" id="{zc1AG`9MM#l96A45j@2">
                                                   <field name="NUM">4</field>
                                                 </shadow>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="debug" id="``Rrs]=`2q^gj@zZl]sM">
                                           <field name="Severity">log</field>
                                           <value name="TEXT">
                                             <shadow type="text" id="zuWT(%4c9/P7BgYRq4cV">
                                               <field name="TEXT">test</field>
                                             </shadow>
                                             <block type="convert_jsonata" id="y5A3]+sG/6s[O-O,uIlx">
                                               <value name="EXPRESSION">
                                                 <shadow type="text" id="I3vtHrq/NASp|=M@^~@}">
                                                   <field name="TEXT">data[0].value</field>
                                                 </shadow>
                                                 <block type="text_join" id=".b5/:!9ZRP$R3*rbeWQD">
                                                   <mutation items="3"></mutation>
                                                   <value name="ADD0">
                                                     <block type="text" id="YO1R-XmpUMj!er{AoI4t">
                                                       <field name="TEXT">data[</field>
                                                     </block>
                                                   </value>
                                                   <value name="ADD1">
                                                     <block type="variables_get" id="QJNBPG1pWaH3n]NgDT=I">
                                                       <field name="VAR" id="4iEXXd([z~lkR3U/0,vs">zähler_stunden</field>
                                                     </block>
                                                   </value>
                                                   <value name="ADD2">
                                                     <block type="text" id="J0V-^y*cQ9Tn^q.AG[@0">
                                                       <field name="TEXT">].value</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <value name="TARGET">
                                                 <block type="convert_json2object" id="{CLuG@^ZuCHrS|LGM2g@">
                                                   <value name="VALUE">
                                                     <block type="get_value" id="6l%jt_PKmB~74v[7,d^a">
                                                       <field name="ATTR">val</field>
                                                       <field name="OID">0_userdata.0.APIS_AT.Preise_heute</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </next>
                                     </block>
                                   </statement>
                                 </block>
                               </statement>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
                </xml>
                

                APIS beschreibt ja, dass die Daten um 1700 für den Folgetag "mit enthalten" sind. Wie das dann aussieht müssen wir noch schauen.
                Lässt Du das Blockly-Script vor 1700 laufen, erhälst Du schon mal die Daten des aktuellen Tages.

                Den 1.Teil würde ich nur 1mal aufrufen und dann mit dem Datenpunkt (2. Teil) arbeiten, damit die API-Quelle nicht unnötig belastet wird.

                ... vielleicht beschreibst Du mal, was Du genau machen möchtest...
                ... warum APIS die Preise 1/4stündlich anbietet erschließt sich mir nicht. Wie ist denn die Preisgestaltung des Anbieters?

                P Q 2 Antworten Letzte Antwort
                1
                • T ThomKast

                  @qlink Hi, wenn Du mal schauen möchtest...

                  Dieses Blockly-Script holt die Daten von APIS ab (1.Teil) und mit dem 2.Teil hast Du Zugriff auf die Stundenpreise.

                  1. Teil speichert die Daten im Datenpunkt unter 0_userdata.0.APIS_AT.Preise_heute

                  <xml xmlns="https://developers.google.com/blockly/xml">
                   <variables>
                     <variable id="gUH_-h{VuFlarEGO(jBD">result</variable>
                     <variable type="timeout" id="kurz_warten">kurz_warten</variable>
                     <variable id="4iEXXd([z~lkR3U/0,vs">zähler_stunden</variable>
                   </variables>
                   <block type="comment" id="_;v%2-xxS|AS3,466+8e" x="13" y="13">
                     <field name="COMMENT">1. Preise abholen</field>
                     <next>
                       <block type="request" id="ZpUc_wE.U1@u^#sKoT=t">
                         <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                         <field name="WITH_STATEMENT">TRUE</field>
                         <field name="LOG">log</field>
                         <value name="URL">
                           <shadow type="text" id="_`*W@P_.+k[;p8,etm*S">
                             <field name="TEXT">https://apis.smartenergy.at/market/v1/price</field>
                           </shadow>
                         </value>
                         <statement name="STATEMENT">
                           <block type="debug" id="Q44.(O-?m-Z?Q[g0tR_C">
                             <field name="Severity">log</field>
                             <value name="TEXT">
                               <shadow type="text" id=";C%sI/nx{60_[qXp10^;">
                                 <field name="TEXT">test</field>
                               </shadow>
                               <block type="variables_get" id="K2;*[c{,SLK-y.*B*|:E">
                                 <field name="VAR" id="gUH_-h{VuFlarEGO(jBD">result</field>
                               </block>
                             </value>
                             <next>
                               <block type="control" id="ZzLf[fCAJXUH+-iW_D%3">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                 <field name="OID">0_userdata.0.APIS_AT.Preise_heute</field>
                                 <field name="WITH_DELAY">FALSE</field>
                                 <value name="VALUE">
                                   <block type="variables_get" id="U3M+]nG9JL1(fPS+G#Fr">
                                     <field name="VAR" id="gUH_-h{VuFlarEGO(jBD">result</field>
                                   </block>
                                 </value>
                               </block>
                             </next>
                           </block>
                         </statement>
                         <next>
                           <block type="comment" id="3xuM.Wzif;RXBnNB]`M*">
                             <field name="COMMENT">2. Preise separieren</field>
                             <next>
                               <block type="timeouts_settimeout" id="c1jQJ!`kb@?rD-u**IL,">
                                 <field name="NAME">kurz_warten</field>
                                 <field name="DELAY">2</field>
                                 <field name="UNIT">sec</field>
                                 <statement name="STATEMENT">
                                   <block type="controls_for" id="pDcae/K]ayczT1WCcArx">
                                     <field name="VAR" id="4iEXXd([z~lkR3U/0,vs">zähler_stunden</field>
                                     <value name="FROM">
                                       <shadow type="math_number" id="kpTYNb=0QBoukzQwe*5H">
                                         <field name="NUM">0</field>
                                       </shadow>
                                     </value>
                                     <value name="TO">
                                       <shadow type="math_number" id="n0HqGUypSH26UtE]0=UZ">
                                         <field name="NUM">92</field>
                                       </shadow>
                                     </value>
                                     <value name="BY">
                                       <shadow type="math_number" id="b^9vnyQ!yvtMA)gnf+A!">
                                         <field name="NUM">4</field>
                                       </shadow>
                                     </value>
                                     <statement name="DO">
                                       <block type="debug" id="^fD%j$(xfFa*e|`yK7yQ">
                                         <field name="Severity">log</field>
                                         <value name="TEXT">
                                           <shadow type="text" id=";C%sI/nx{60_[qXp10^;">
                                             <field name="TEXT">test</field>
                                           </shadow>
                                           <block type="text_join" id="d?4Fl/b2j%-C[=ajfoc2">
                                             <mutation items="2"></mutation>
                                             <value name="ADD0">
                                               <block type="text" id="!7$r7QV.5Pkc.z;owvJm">
                                                 <field name="TEXT">Zähler_Stunden: </field>
                                               </block>
                                             </value>
                                             <value name="ADD1">
                                               <block type="math_arithmetic" id="`9LV8j=#a+V,.tZzuQnW">
                                                 <field name="OP">DIVIDE</field>
                                                 <value name="A">
                                                   <shadow type="math_number" id="xV,9:o+r[gJHWuD`jq7D">
                                                     <field name="NUM">1</field>
                                                   </shadow>
                                                   <block type="variables_get" id="06O5|4FBfZ`d=hMBW`_6">
                                                     <field name="VAR" id="4iEXXd([z~lkR3U/0,vs">zähler_stunden</field>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <shadow type="math_number" id="{zc1AG`9MM#l96A45j@2">
                                                     <field name="NUM">4</field>
                                                   </shadow>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="debug" id="``Rrs]=`2q^gj@zZl]sM">
                                             <field name="Severity">log</field>
                                             <value name="TEXT">
                                               <shadow type="text" id="zuWT(%4c9/P7BgYRq4cV">
                                                 <field name="TEXT">test</field>
                                               </shadow>
                                               <block type="convert_jsonata" id="y5A3]+sG/6s[O-O,uIlx">
                                                 <value name="EXPRESSION">
                                                   <shadow type="text" id="I3vtHrq/NASp|=M@^~@}">
                                                     <field name="TEXT">data[0].value</field>
                                                   </shadow>
                                                   <block type="text_join" id=".b5/:!9ZRP$R3*rbeWQD">
                                                     <mutation items="3"></mutation>
                                                     <value name="ADD0">
                                                       <block type="text" id="YO1R-XmpUMj!er{AoI4t">
                                                         <field name="TEXT">data[</field>
                                                       </block>
                                                     </value>
                                                     <value name="ADD1">
                                                       <block type="variables_get" id="QJNBPG1pWaH3n]NgDT=I">
                                                         <field name="VAR" id="4iEXXd([z~lkR3U/0,vs">zähler_stunden</field>
                                                       </block>
                                                     </value>
                                                     <value name="ADD2">
                                                       <block type="text" id="J0V-^y*cQ9Tn^q.AG[@0">
                                                         <field name="TEXT">].value</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <value name="TARGET">
                                                   <block type="convert_json2object" id="{CLuG@^ZuCHrS|LGM2g@">
                                                     <value name="VALUE">
                                                       <block type="get_value" id="6l%jt_PKmB~74v[7,d^a">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">0_userdata.0.APIS_AT.Preise_heute</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </next>
                                       </block>
                                     </statement>
                                   </block>
                                 </statement>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                  </xml>
                  

                  APIS beschreibt ja, dass die Daten um 1700 für den Folgetag "mit enthalten" sind. Wie das dann aussieht müssen wir noch schauen.
                  Lässt Du das Blockly-Script vor 1700 laufen, erhälst Du schon mal die Daten des aktuellen Tages.

                  Den 1.Teil würde ich nur 1mal aufrufen und dann mit dem Datenpunkt (2. Teil) arbeiten, damit die API-Quelle nicht unnötig belastet wird.

                  ... vielleicht beschreibst Du mal, was Du genau machen möchtest...
                  ... warum APIS die Preise 1/4stündlich anbietet erschließt sich mir nicht. Wie ist denn die Preisgestaltung des Anbieters?

                  P Offline
                  P Offline
                  Peter666666
                  schrieb am zuletzt editiert von Peter666666
                  #134

                  @thomkast Hi,

                  Habe dein erstelltes Skript (SmartEnergy) mal importiert- vielen Dank dafür. Skript funktioniert nach dem Anlegen des DP. Ich würde gerne meinen Warmwasserspeicher mit dem günstigsten Stundenpreis aufheizen. Zur Zeit geht das zwar mit meinem Skript aber dieses vergleicht nicht die kommenden Preise sonder) startet die WP beim unterschreiten der eingestellten Grenze. Hast du eine Idee wie ich das lösen könnte?

                  Bild 04.01.24 um 12.27.jpeg

                  LG Peter

                  Intel NUC i5 / 16GB RAM / 512GB SSD
                  Synology DS220+ 10GB RAM / 8TB

                  T 1 Antwort Letzte Antwort
                  0
                  • T ThomKast

                    @qlink Hi, wenn Du mal schauen möchtest...

                    Dieses Blockly-Script holt die Daten von APIS ab (1.Teil) und mit dem 2.Teil hast Du Zugriff auf die Stundenpreise.

                    1. Teil speichert die Daten im Datenpunkt unter 0_userdata.0.APIS_AT.Preise_heute

                    <xml xmlns="https://developers.google.com/blockly/xml">
                     <variables>
                       <variable id="gUH_-h{VuFlarEGO(jBD">result</variable>
                       <variable type="timeout" id="kurz_warten">kurz_warten</variable>
                       <variable id="4iEXXd([z~lkR3U/0,vs">zähler_stunden</variable>
                     </variables>
                     <block type="comment" id="_;v%2-xxS|AS3,466+8e" x="13" y="13">
                       <field name="COMMENT">1. Preise abholen</field>
                       <next>
                         <block type="request" id="ZpUc_wE.U1@u^#sKoT=t">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                           <field name="WITH_STATEMENT">TRUE</field>
                           <field name="LOG">log</field>
                           <value name="URL">
                             <shadow type="text" id="_`*W@P_.+k[;p8,etm*S">
                               <field name="TEXT">https://apis.smartenergy.at/market/v1/price</field>
                             </shadow>
                           </value>
                           <statement name="STATEMENT">
                             <block type="debug" id="Q44.(O-?m-Z?Q[g0tR_C">
                               <field name="Severity">log</field>
                               <value name="TEXT">
                                 <shadow type="text" id=";C%sI/nx{60_[qXp10^;">
                                   <field name="TEXT">test</field>
                                 </shadow>
                                 <block type="variables_get" id="K2;*[c{,SLK-y.*B*|:E">
                                   <field name="VAR" id="gUH_-h{VuFlarEGO(jBD">result</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="control" id="ZzLf[fCAJXUH+-iW_D%3">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">0_userdata.0.APIS_AT.Preise_heute</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="variables_get" id="U3M+]nG9JL1(fPS+G#Fr">
                                       <field name="VAR" id="gUH_-h{VuFlarEGO(jBD">result</field>
                                     </block>
                                   </value>
                                 </block>
                               </next>
                             </block>
                           </statement>
                           <next>
                             <block type="comment" id="3xuM.Wzif;RXBnNB]`M*">
                               <field name="COMMENT">2. Preise separieren</field>
                               <next>
                                 <block type="timeouts_settimeout" id="c1jQJ!`kb@?rD-u**IL,">
                                   <field name="NAME">kurz_warten</field>
                                   <field name="DELAY">2</field>
                                   <field name="UNIT">sec</field>
                                   <statement name="STATEMENT">
                                     <block type="controls_for" id="pDcae/K]ayczT1WCcArx">
                                       <field name="VAR" id="4iEXXd([z~lkR3U/0,vs">zähler_stunden</field>
                                       <value name="FROM">
                                         <shadow type="math_number" id="kpTYNb=0QBoukzQwe*5H">
                                           <field name="NUM">0</field>
                                         </shadow>
                                       </value>
                                       <value name="TO">
                                         <shadow type="math_number" id="n0HqGUypSH26UtE]0=UZ">
                                           <field name="NUM">92</field>
                                         </shadow>
                                       </value>
                                       <value name="BY">
                                         <shadow type="math_number" id="b^9vnyQ!yvtMA)gnf+A!">
                                           <field name="NUM">4</field>
                                         </shadow>
                                       </value>
                                       <statement name="DO">
                                         <block type="debug" id="^fD%j$(xfFa*e|`yK7yQ">
                                           <field name="Severity">log</field>
                                           <value name="TEXT">
                                             <shadow type="text" id=";C%sI/nx{60_[qXp10^;">
                                               <field name="TEXT">test</field>
                                             </shadow>
                                             <block type="text_join" id="d?4Fl/b2j%-C[=ajfoc2">
                                               <mutation items="2"></mutation>
                                               <value name="ADD0">
                                                 <block type="text" id="!7$r7QV.5Pkc.z;owvJm">
                                                   <field name="TEXT">Zähler_Stunden: </field>
                                                 </block>
                                               </value>
                                               <value name="ADD1">
                                                 <block type="math_arithmetic" id="`9LV8j=#a+V,.tZzuQnW">
                                                   <field name="OP">DIVIDE</field>
                                                   <value name="A">
                                                     <shadow type="math_number" id="xV,9:o+r[gJHWuD`jq7D">
                                                       <field name="NUM">1</field>
                                                     </shadow>
                                                     <block type="variables_get" id="06O5|4FBfZ`d=hMBW`_6">
                                                       <field name="VAR" id="4iEXXd([z~lkR3U/0,vs">zähler_stunden</field>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <shadow type="math_number" id="{zc1AG`9MM#l96A45j@2">
                                                       <field name="NUM">4</field>
                                                     </shadow>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="debug" id="``Rrs]=`2q^gj@zZl]sM">
                                               <field name="Severity">log</field>
                                               <value name="TEXT">
                                                 <shadow type="text" id="zuWT(%4c9/P7BgYRq4cV">
                                                   <field name="TEXT">test</field>
                                                 </shadow>
                                                 <block type="convert_jsonata" id="y5A3]+sG/6s[O-O,uIlx">
                                                   <value name="EXPRESSION">
                                                     <shadow type="text" id="I3vtHrq/NASp|=M@^~@}">
                                                       <field name="TEXT">data[0].value</field>
                                                     </shadow>
                                                     <block type="text_join" id=".b5/:!9ZRP$R3*rbeWQD">
                                                       <mutation items="3"></mutation>
                                                       <value name="ADD0">
                                                         <block type="text" id="YO1R-XmpUMj!er{AoI4t">
                                                           <field name="TEXT">data[</field>
                                                         </block>
                                                       </value>
                                                       <value name="ADD1">
                                                         <block type="variables_get" id="QJNBPG1pWaH3n]NgDT=I">
                                                           <field name="VAR" id="4iEXXd([z~lkR3U/0,vs">zähler_stunden</field>
                                                         </block>
                                                       </value>
                                                       <value name="ADD2">
                                                         <block type="text" id="J0V-^y*cQ9Tn^q.AG[@0">
                                                           <field name="TEXT">].value</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <value name="TARGET">
                                                     <block type="convert_json2object" id="{CLuG@^ZuCHrS|LGM2g@">
                                                       <value name="VALUE">
                                                         <block type="get_value" id="6l%jt_PKmB~74v[7,d^a">
                                                           <field name="ATTR">val</field>
                                                           <field name="OID">0_userdata.0.APIS_AT.Preise_heute</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </next>
                                         </block>
                                       </statement>
                                     </block>
                                   </statement>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                    </xml>
                    

                    APIS beschreibt ja, dass die Daten um 1700 für den Folgetag "mit enthalten" sind. Wie das dann aussieht müssen wir noch schauen.
                    Lässt Du das Blockly-Script vor 1700 laufen, erhälst Du schon mal die Daten des aktuellen Tages.

                    Den 1.Teil würde ich nur 1mal aufrufen und dann mit dem Datenpunkt (2. Teil) arbeiten, damit die API-Quelle nicht unnötig belastet wird.

                    ... vielleicht beschreibst Du mal, was Du genau machen möchtest...
                    ... warum APIS die Preise 1/4stündlich anbietet erschließt sich mir nicht. Wie ist denn die Preisgestaltung des Anbieters?

                    Q Offline
                    Q Offline
                    Qlink
                    schrieb am zuletzt editiert von Qlink
                    #135

                    @thomkast

                    Vielen Dank für deinen Support !

                    Ich habe unter Objekte einen DP "0_userdata.0.APIS_AT.Preise_heute" vom Typ "json" erstellt und danach dein Script gestartet.

                    Daraufhin erhalte ich folgenden Inhalt in dem DP:

                    • {"tariff":"EPEXSPOTAT","unit":"ct/kWh","interval":15,"data":[{"date":"2024-01-04T00:00:00+01:00","value":6.876},{"date":"2024-01-04T00:15:00+01:00","value":6.876},{"date":"2024-01-04T00:30:00+01:00","value":6.876},{"date":"2024-01-04T00:45:00+01:00","value":6.876},{"date":"2024-01-04T01:00:00+01:00","value":6.055},{"date":"2024-01-04T01:15:00+01:00","value":6.055},{"date":"2024-01-04T01:30:00+01:00","value":6.055},{"date":"2024-01-04T01:45:00+01:00","value":6.055},{"date":"2024-01-04T02:00:00+01:00","value":4.800},{"date":"2024-01-04T02:15:00+01:00","value":4.800},{"date":"2024-01-04T02:30:00+01:00","value":4.800},{"date":"2024-01-04T02:45:00+01:00","value":4.800},{"date":"2024-01-04T03:00:00+01:00","value":3.058},{"date":"2024-01-04T03:15:00+01:00","value":3.058},{"date":"2024-01-04T03:30:00+01:00","value":3.058},{"date":"2024-01-04T03:45:00+01:00","value":3.058},{"date":"2024-01-04T04:00:00+01:00","value":4.200},{"date":"2024-01-04T04:15:00+01:00","value":4.200},{"date":"2024-01-04T04:30:00+01:00","value":4.200},{"date":"2024-01-04T04:45:00+01:00","value":4.200},{"date":"2024-01-04T05:00:00+01:00","value":6.928},{"date":"2024-01-04T05:15:00+01:00","value":6.928},{"date":"2024-01-04T05:30:00+01:00","value":6.928},{"date":"2024-01-04T05:45:00+01:00","value":6.928},{"date":"2024-01-04T06:00:00+01:00","value":8.718},{"date":"2024-01-04T06:15:00+01:00","value":8.718},{"date":"2024-01-04T06:30:00+01:00","value":8.718},{"date":"2024-01-04T06:45:00+01:00","value":8.718},{"date":"2024-01-04T07:00:00+01:00","value":10.202},{"date":"2024-01-04T07:15:00+01:00","value":10.202},{"date":"2024-01-04T07:30:00+01:00","value":10.202},{"date":"2024-01-04T07:45:00+01:00","value":10.202},{"date":"2024-01-04T08:00:00+01:00","value":10.976},{"date":"2024-01-04T08:15:00+01:00","value":10.976},{"date":"2024-01-04T08:30:00+01:00","value":10.976},{"date":"2024-01-04T08:45:00+01:00","value":10.976},{"date":"2024-01-04T09:00:00+01:00","value":11.304},{"date":"2024-01-04T09:15:00+01:00","value":11.304},{"date":"2024-01-04T09:30:00+01:00","value":11.304},{"date":"2024-01-04T09:45:00+01:00","value":11.304},{"date":"2024-01-04T10:00:00+01:00","value":10.985},{"date":"2024-01-04T10:15:00+01:00","value":10.985},{"date":"2024-01-04T10:30:00+01:00","value":10.985},{"date":"2024-01-04T10:45:00+01:00","value":10.985},{"date":"2024-01-04T11:00:00+01:00","value":10.794},{"date":"2024-01-04T11:15:00+01:00","value":10.794},{"date":"2024-01-04T11:30:00+01:00","value":10.794},{"date":"2024-01-04T11:45:00+01:00","value":10.794},{"date":"2024-01-04T12:00:00+01:00","value":10.355},{"date":"2024-01-04T12:15:00+01:00","value":10.355},{"date":"2024-01-04T12:30:00+01:00","value":10.355},{"date":"2024-01-04T12:45:00+01:00","value":10.355},{"date":"2024-01-04T13:00:00+01:00","value":10.315},{"date":"2024-01-04T13:15:00+01:00","value":10.315},{"date":"2024-01-04T13:30:00+01:00","value":10.315},{"date":"2024-01-04T13:45:00+01:00","value":10.315},{"date":"2024-01-04T14:00:00+01:00","value":11.053},{"date":"2024-01-04T14:15:00+01:00","value":11.053},{"date":"2024-01-04T14:30:00+01:00","value":11.053},{"date":"2024-01-04T14:45:00+01:00","value":11.053},{"date":"2024-01-04T15:00:00+01:00","value":11.834},{"date":"2024-01-04T15:15:00+01:00","value":11.834},{"date":"2024-01-04T15:30:00+01:00","value":11.834},{"date":"2024-01-04T15:45:00+01:00","value":11.834},{"date":"2024-01-04T16:00:00+01:00","value":12.499},{"date":"2024-01-04T16:15:00+01:00","value":12.499},{"date":"2024-01-04T16:30:00+01:00","value":12.499},{"date":"2024-01-04T16:45:00+01:00","value":12.499},{"date":"2024-01-04T17:00:00+01:00","value":12.592},{"date":"2024-01-04T17:15:00+01:00","value":12.592},{"date":"2024-01-04T17:30:00+01:00","value":12.592},{"date":"2024-01-04T17:45:00+01:00","value":12.592},{"date":"2024-01-04T18:00:00+01:00","value":12.348},{"date":"2024-01-04T18:15:00+01:00","value":12.348},{"date":"2024-01-04T18:30:00+01:00","value":12.348},{"date":"2024-01-04T18:45:00+01:00","value":12.348},{"date":"2024-01-04T19:00:00+01:00","value":12.593},{"date":"2024-01-04T19:15:00+01:00","value":12.593},{"date":"2024-01-04T19:30:00+01:00","value":12.593},{"date":"2024-01-04T19:45:00+01:00","value":12.593},{"date":"2024-01-04T20:00:00+01:00","value":12.012},{"date":"2024-01-04T20:15:00+01:00","value":12.012},{"date":"2024-01-04T20:30:00+01:00","value":12.012},{"date":"2024-01-04T20:45:00+01:00","value":12.012},{"date":"2024-01-04T21:00:00+01:00","value":11.186},{"date":"2024-01-04T21:15:00+01:00","value":11.186},{"date":"2024-01-04T21:30:00+01:00","value":11.186},{"date":"2024-01-04T21:45:00+01:00","value":11.186},{"date":"2024-01-04T22:00:00+01:00","value":10.892},{"date":"2024-01-04T22:15:00+01:00","value":10.892},{"date":"2024-01-04T22:30:00+01:00","value":10.892},{"date":"2024-01-04T22:45:00+01:00","value":10.892},{"date":"2024-01-04T23:00:00+01:00","value":10.634},{"date":"2024-01-04T23:15:00+01:00","value":10.634},{"date":"2024-01-04T23:30:00+01:00","value":10.634},{"date":"2024-01-04T23:45:00+01:00","value":10.634}]}

                    c4cee3e9-1652-403f-903d-2095028b54a1-image.png

                    War das soweit korrekt ?
                    Wenn ja, bin ich mir jetzt nicht ganz sicher wie die nächsten Schritte ausschauen sollen ...

                    Beste Grüße

                    T 1 Antwort Letzte Antwort
                    0
                    • Q Qlink

                      @thomkast

                      Vielen Dank für deinen Support !

                      Ich habe unter Objekte einen DP "0_userdata.0.APIS_AT.Preise_heute" vom Typ "json" erstellt und danach dein Script gestartet.

                      Daraufhin erhalte ich folgenden Inhalt in dem DP:

                      • {"tariff":"EPEXSPOTAT","unit":"ct/kWh","interval":15,"data":[{"date":"2024-01-04T00:00:00+01:00","value":6.876},{"date":"2024-01-04T00:15:00+01:00","value":6.876},{"date":"2024-01-04T00:30:00+01:00","value":6.876},{"date":"2024-01-04T00:45:00+01:00","value":6.876},{"date":"2024-01-04T01:00:00+01:00","value":6.055},{"date":"2024-01-04T01:15:00+01:00","value":6.055},{"date":"2024-01-04T01:30:00+01:00","value":6.055},{"date":"2024-01-04T01:45:00+01:00","value":6.055},{"date":"2024-01-04T02:00:00+01:00","value":4.800},{"date":"2024-01-04T02:15:00+01:00","value":4.800},{"date":"2024-01-04T02:30:00+01:00","value":4.800},{"date":"2024-01-04T02:45:00+01:00","value":4.800},{"date":"2024-01-04T03:00:00+01:00","value":3.058},{"date":"2024-01-04T03:15:00+01:00","value":3.058},{"date":"2024-01-04T03:30:00+01:00","value":3.058},{"date":"2024-01-04T03:45:00+01:00","value":3.058},{"date":"2024-01-04T04:00:00+01:00","value":4.200},{"date":"2024-01-04T04:15:00+01:00","value":4.200},{"date":"2024-01-04T04:30:00+01:00","value":4.200},{"date":"2024-01-04T04:45:00+01:00","value":4.200},{"date":"2024-01-04T05:00:00+01:00","value":6.928},{"date":"2024-01-04T05:15:00+01:00","value":6.928},{"date":"2024-01-04T05:30:00+01:00","value":6.928},{"date":"2024-01-04T05:45:00+01:00","value":6.928},{"date":"2024-01-04T06:00:00+01:00","value":8.718},{"date":"2024-01-04T06:15:00+01:00","value":8.718},{"date":"2024-01-04T06:30:00+01:00","value":8.718},{"date":"2024-01-04T06:45:00+01:00","value":8.718},{"date":"2024-01-04T07:00:00+01:00","value":10.202},{"date":"2024-01-04T07:15:00+01:00","value":10.202},{"date":"2024-01-04T07:30:00+01:00","value":10.202},{"date":"2024-01-04T07:45:00+01:00","value":10.202},{"date":"2024-01-04T08:00:00+01:00","value":10.976},{"date":"2024-01-04T08:15:00+01:00","value":10.976},{"date":"2024-01-04T08:30:00+01:00","value":10.976},{"date":"2024-01-04T08:45:00+01:00","value":10.976},{"date":"2024-01-04T09:00:00+01:00","value":11.304},{"date":"2024-01-04T09:15:00+01:00","value":11.304},{"date":"2024-01-04T09:30:00+01:00","value":11.304},{"date":"2024-01-04T09:45:00+01:00","value":11.304},{"date":"2024-01-04T10:00:00+01:00","value":10.985},{"date":"2024-01-04T10:15:00+01:00","value":10.985},{"date":"2024-01-04T10:30:00+01:00","value":10.985},{"date":"2024-01-04T10:45:00+01:00","value":10.985},{"date":"2024-01-04T11:00:00+01:00","value":10.794},{"date":"2024-01-04T11:15:00+01:00","value":10.794},{"date":"2024-01-04T11:30:00+01:00","value":10.794},{"date":"2024-01-04T11:45:00+01:00","value":10.794},{"date":"2024-01-04T12:00:00+01:00","value":10.355},{"date":"2024-01-04T12:15:00+01:00","value":10.355},{"date":"2024-01-04T12:30:00+01:00","value":10.355},{"date":"2024-01-04T12:45:00+01:00","value":10.355},{"date":"2024-01-04T13:00:00+01:00","value":10.315},{"date":"2024-01-04T13:15:00+01:00","value":10.315},{"date":"2024-01-04T13:30:00+01:00","value":10.315},{"date":"2024-01-04T13:45:00+01:00","value":10.315},{"date":"2024-01-04T14:00:00+01:00","value":11.053},{"date":"2024-01-04T14:15:00+01:00","value":11.053},{"date":"2024-01-04T14:30:00+01:00","value":11.053},{"date":"2024-01-04T14:45:00+01:00","value":11.053},{"date":"2024-01-04T15:00:00+01:00","value":11.834},{"date":"2024-01-04T15:15:00+01:00","value":11.834},{"date":"2024-01-04T15:30:00+01:00","value":11.834},{"date":"2024-01-04T15:45:00+01:00","value":11.834},{"date":"2024-01-04T16:00:00+01:00","value":12.499},{"date":"2024-01-04T16:15:00+01:00","value":12.499},{"date":"2024-01-04T16:30:00+01:00","value":12.499},{"date":"2024-01-04T16:45:00+01:00","value":12.499},{"date":"2024-01-04T17:00:00+01:00","value":12.592},{"date":"2024-01-04T17:15:00+01:00","value":12.592},{"date":"2024-01-04T17:30:00+01:00","value":12.592},{"date":"2024-01-04T17:45:00+01:00","value":12.592},{"date":"2024-01-04T18:00:00+01:00","value":12.348},{"date":"2024-01-04T18:15:00+01:00","value":12.348},{"date":"2024-01-04T18:30:00+01:00","value":12.348},{"date":"2024-01-04T18:45:00+01:00","value":12.348},{"date":"2024-01-04T19:00:00+01:00","value":12.593},{"date":"2024-01-04T19:15:00+01:00","value":12.593},{"date":"2024-01-04T19:30:00+01:00","value":12.593},{"date":"2024-01-04T19:45:00+01:00","value":12.593},{"date":"2024-01-04T20:00:00+01:00","value":12.012},{"date":"2024-01-04T20:15:00+01:00","value":12.012},{"date":"2024-01-04T20:30:00+01:00","value":12.012},{"date":"2024-01-04T20:45:00+01:00","value":12.012},{"date":"2024-01-04T21:00:00+01:00","value":11.186},{"date":"2024-01-04T21:15:00+01:00","value":11.186},{"date":"2024-01-04T21:30:00+01:00","value":11.186},{"date":"2024-01-04T21:45:00+01:00","value":11.186},{"date":"2024-01-04T22:00:00+01:00","value":10.892},{"date":"2024-01-04T22:15:00+01:00","value":10.892},{"date":"2024-01-04T22:30:00+01:00","value":10.892},{"date":"2024-01-04T22:45:00+01:00","value":10.892},{"date":"2024-01-04T23:00:00+01:00","value":10.634},{"date":"2024-01-04T23:15:00+01:00","value":10.634},{"date":"2024-01-04T23:30:00+01:00","value":10.634},{"date":"2024-01-04T23:45:00+01:00","value":10.634}]}

                      c4cee3e9-1652-403f-903d-2095028b54a1-image.png

                      War das soweit korrekt ?
                      Wenn ja, bin ich mir jetzt nicht ganz sicher wie die nächsten Schritte ausschauen sollen ...

                      Beste Grüße

                      T Offline
                      T Offline
                      ThomKast
                      schrieb am zuletzt editiert von
                      #136

                      @qlink Wenn Du meine Fragen beantworten und vor allem auf "... was Du genau machen möchtest..." eingehen würdest könnte ich vielleicht mitdenken...

                      1 Antwort Letzte Antwort
                      0
                      • P Peter666666

                        @thomkast Hi,

                        Habe dein erstelltes Skript (SmartEnergy) mal importiert- vielen Dank dafür. Skript funktioniert nach dem Anlegen des DP. Ich würde gerne meinen Warmwasserspeicher mit dem günstigsten Stundenpreis aufheizen. Zur Zeit geht das zwar mit meinem Skript aber dieses vergleicht nicht die kommenden Preise sonder) startet die WP beim unterschreiten der eingestellten Grenze. Hast du eine Idee wie ich das lösen könnte?

                        Bild 04.01.24 um 12.27.jpeg

                        T Offline
                        T Offline
                        ThomKast
                        schrieb am zuletzt editiert von
                        #137

                        @peter666666 dazu müsste ich Deinen Gedanken erst komplett verstanden haben...

                        Ich vermute mal:

                        • Du möchtest Deinen WW-Speicher zu den günstigsten Stundenpreisen aufheizen
                        • teils auch "überheizen", wenn "in absehbarer Zeit" keine günstige Stunde mehr ansteht

                        Sollte das stimmen, stellt sich die Frage, welche Wärmemenge über welche Zeit aus dem WW-Speicher entnommen werden soll. Und wie viel Energie zum Aufheizen wiederum benötigt wird.

                        Oder anders ausgedrückt... Wie lange es dauert bis die MIN-Temperatur (durch Wärmeentnahme) erreicht wird. Und wie lange es dauert bis die MAX-Temperatur wieder erreicht wird.
                        Und eine weitere Perspektive... Wie lange der Speicher auf MIN-Temperatur verbleiben darf, um auf eine günstige Stunde zu warten.
                        Daraus wiederum die Frage, ob bei zu langer Wartezeit - unabhängig des Stundenpreises - auf eine höhere Temperatur, aber kleiner MAX aufgeheizt werden soll.

                        Dies sind konzeptuale Fragen, zu denen Du bitte Deine Absicht und Abhängigkeiten aufschreiben müsstest...

                        Ich bin gespannt ;-)

                        P 1 Antwort Letzte Antwort
                        0
                        • T ThomKast

                          @peter666666 dazu müsste ich Deinen Gedanken erst komplett verstanden haben...

                          Ich vermute mal:

                          • Du möchtest Deinen WW-Speicher zu den günstigsten Stundenpreisen aufheizen
                          • teils auch "überheizen", wenn "in absehbarer Zeit" keine günstige Stunde mehr ansteht

                          Sollte das stimmen, stellt sich die Frage, welche Wärmemenge über welche Zeit aus dem WW-Speicher entnommen werden soll. Und wie viel Energie zum Aufheizen wiederum benötigt wird.

                          Oder anders ausgedrückt... Wie lange es dauert bis die MIN-Temperatur (durch Wärmeentnahme) erreicht wird. Und wie lange es dauert bis die MAX-Temperatur wieder erreicht wird.
                          Und eine weitere Perspektive... Wie lange der Speicher auf MIN-Temperatur verbleiben darf, um auf eine günstige Stunde zu warten.
                          Daraus wiederum die Frage, ob bei zu langer Wartezeit - unabhängig des Stundenpreises - auf eine höhere Temperatur, aber kleiner MAX aufgeheizt werden soll.

                          Dies sind konzeptuale Fragen, zu denen Du bitte Deine Absicht und Abhängigkeiten aufschreiben müsstest...

                          Ich bin gespannt ;-)

                          P Offline
                          P Offline
                          Peter666666
                          schrieb am zuletzt editiert von Peter666666
                          #138

                          @thomkast Hallo Thomas,

                          meine WP (10 Jahre alt und hat keine Möglichkeit mit Netzwerkkabel oder ähnlichem diese zu steuern) ist zur Zeit so eingestellt das diese ab 40°C WW zu heizen beginnt auf 48°C unabhängig vom Strompreis. Im Sommer habe ich mir mit 2 Shelly1 die Möglichkeit geschaffen die Funktion "Extra Brauchwasser" anzusteuern wodurch die WP beginnt die WW Temp. auf 60°C zu erhitzen und mit dem 2 Shelly wir die Funktion wieder deaktiviert wenn genug PV Überschuss vorhanden ist was auch funktioniert.
                          Jetzt im Winter ist nicht viel mit PV Überschuss und möchte in einem neuen Skript die günstigsten Strompreise je Tag nutzen diese Funktion Extrabrauchwasser zu starten wenn die WWT unter z.b. 54°C ist. Überheizen oder so kann meine WP nicht.

                          LG Peter

                          Intel NUC i5 / 16GB RAM / 512GB SSD
                          Synology DS220+ 10GB RAM / 8TB

                          T 1 Antwort Letzte Antwort
                          0
                          • P Peter666666

                            @thomkast Hallo Thomas,

                            meine WP (10 Jahre alt und hat keine Möglichkeit mit Netzwerkkabel oder ähnlichem diese zu steuern) ist zur Zeit so eingestellt das diese ab 40°C WW zu heizen beginnt auf 48°C unabhängig vom Strompreis. Im Sommer habe ich mir mit 2 Shelly1 die Möglichkeit geschaffen die Funktion "Extra Brauchwasser" anzusteuern wodurch die WP beginnt die WW Temp. auf 60°C zu erhitzen und mit dem 2 Shelly wir die Funktion wieder deaktiviert wenn genug PV Überschuss vorhanden ist was auch funktioniert.
                            Jetzt im Winter ist nicht viel mit PV Überschuss und möchte in einem neuen Skript die günstigsten Strompreise je Tag nutzen diese Funktion Extrabrauchwasser zu starten wenn die WWT unter z.b. 54°C ist. Überheizen oder so kann meine WP nicht.

                            T Offline
                            T Offline
                            ThomKast
                            schrieb am zuletzt editiert von
                            #139

                            @peter666666 ok und interessant. Meine WP könnte ich von extern dazu bringen, auf unterscheidliche Temperaturen zu erhitzen. Ist also ähnlich... Allerdings habe ich dazu noch keine Logik realisiert.

                            Für mich bleibt die Frage unter welchen Bedingungen die WP bis zu welcher Temperatur aufheizen soll? Was wären denn Deiner Meinung nach die Möglichen Parameter oder eine Beschreibung für eine "planbare Aufheizung"... s.o.

                            P 1 Antwort Letzte Antwort
                            0
                            • T ThomKast

                              @peter666666 ok und interessant. Meine WP könnte ich von extern dazu bringen, auf unterscheidliche Temperaturen zu erhitzen. Ist also ähnlich... Allerdings habe ich dazu noch keine Logik realisiert.

                              Für mich bleibt die Frage unter welchen Bedingungen die WP bis zu welcher Temperatur aufheizen soll? Was wären denn Deiner Meinung nach die Möglichen Parameter oder eine Beschreibung für eine "planbare Aufheizung"... s.o.

                              P Offline
                              P Offline
                              Peter666666
                              schrieb am zuletzt editiert von Peter666666
                              #140

                              @thomkast Bedingung wäre für mich wie in meinem bestehenden Skript (steht weiter oben), das das "Aufheizen mit billigem Strom" aktiv sein muss (DP wird manuell am Tablet unter VIS geschalten), die WWT unter einen Wert sinkt (z.Z. 54°C). Dann sollte das Skript die billigste Stunde suchen (wobei ich noch nicht ganz sicher bin in welchen Zeitraum gesucht werden soll vielleicht 6h) wo die WP dann startet. Bei dem Start (Shelly1 schaltet den Kontakt Anforderung "Extra Brauchwasser" durch eine billige Energiestunde bis auf ca. 58°C aufheizen. Wenn diese Temp. erreicht ist (wird durch einen Shelly1+ gemessen) schaltet ein anderer Shelly die WP aus indem ich für 5 Sek. den Kontakt "Tarif Steuerung" oder so ähnlich schalte wodurch der Verdichter ausgeschaltet und die Anforderung "Extra Brauchwasser" zurückgesetzt wird (ohne diesen zweiten Shelly würde die Anforderung "Extra Brauchwasser" nämlich 3h aktiv bleiben und diese lässt sich nicht anders zurück setzten.

                              Die Energiepreise bekomme ich über den Adapter Awattar in DP`s auch in aufsteigender Reihenfolge (billigste Stunde zuerst) und auch über dein Skript von meinem Energieanbieter "Smart Energy" wobei hier die Liste nicht aufsteigend sortiert ist.

                              LG Peter

                              Intel NUC i5 / 16GB RAM / 512GB SSD
                              Synology DS220+ 10GB RAM / 8TB

                              1 Antwort Letzte Antwort
                              0
                              • T Offline
                                T Offline
                                ThomKast
                                schrieb am zuletzt editiert von
                                #141

                                @Peter666666 @Qlink Nur als kurzes Update. Ich bin noch an einem Lösungsansatz dran, hänge aber gerade etwas fest. Melde mich aber auf alle Fälle wieder/noch.

                                1 Antwort Letzte Antwort
                                1
                                • T Offline
                                  T Offline
                                  ThomKast
                                  schrieb am zuletzt editiert von
                                  #142

                                  @Peter666666 @Qlink
                                  Jetzt hat es doch etwas länger gedauert einen Lösungsansatz zu finden. Vielleicht hilft Euch folgende Umsetzung...

                                  Skript: 2024-01-07_APIS_EPEX_sortieren_und_Laden-Aufheizen.json

                                  Dazu ist wieder der Datenpunkt zur Aufnahme der APIS EPEX Preise nötig ;-).

                                  Idee und Ablauf sind wie folgt:

                                    1. Die APEX Daten werden (bitte nur 1malig am Tag) geladen.
                                      Erfolgt dies nach ??:?? Uhr, stehen auch gleich die Daten des Folgetages bereit.
                                    1. Die Daten werden in einem Array aufbereitet und nach Preis aufsteigend sortiert.
                                      Somit stehen die Stunden mit den günstigsten EPEX-Preisen am Anfang des Arrays.
                                    1. Mit dem Wert 93cef3b9-6e40-4a23-a57c-92f6e03efb61-image.png wird festgelegt, für wieviele Stunden eine Ladung/Aufheizung vorgenommen werden soll. Dies sind "NICHT" die "NÄCHSTEN" z.B. 5h, sondern erstmal nur 5 Stunden.
                                    1. Dann werden die günstigsten 5h wieder in die ursprüngliche Reihenfolge gebracht, da die günstigsten Stunden ja nicht unbedingt alle hintereinander liegen müssen.
                                    1. Dann wird ein Zeitplan gestartet, der zu jedem Stundenbeginn 8514ea27-bac9-418a-861e-e806f9b79e1e-image.png prüft, ob die aktuelle Stunde eine der günstigen 5 Stunden ist.
                                    1. Abhängig, ob dies zutrifft, wird die Ladung/Aufheizung gestartet oder beendet.
                                      Dazu werden dann noch Nachrichten abgesetzt, die den Verlauf aufzeigen.
                                      *7. Sind die 5 (im Beispiel) günstigsten Lade-/Aufheizstunden durchlaufen worden, wird eine finale Nachricht 93295ed7-2590-4e71-89b7-129f55c591f9-image.png abgesetzt und der Zeitplan beendet.

                                  Die gesamte Routine muss also wiederkehrend gestartet werden und kalkuliert immer wieder neu.

                                  Hoffe es ist was für Euch dabei und freue mich auf Eure Rückmeldung. Gruß, Thomas

                                  P 1 Antwort Letzte Antwort
                                  1
                                  • T ThomKast

                                    @Peter666666 @Qlink
                                    Jetzt hat es doch etwas länger gedauert einen Lösungsansatz zu finden. Vielleicht hilft Euch folgende Umsetzung...

                                    Skript: 2024-01-07_APIS_EPEX_sortieren_und_Laden-Aufheizen.json

                                    Dazu ist wieder der Datenpunkt zur Aufnahme der APIS EPEX Preise nötig ;-).

                                    Idee und Ablauf sind wie folgt:

                                      1. Die APEX Daten werden (bitte nur 1malig am Tag) geladen.
                                        Erfolgt dies nach ??:?? Uhr, stehen auch gleich die Daten des Folgetages bereit.
                                      1. Die Daten werden in einem Array aufbereitet und nach Preis aufsteigend sortiert.
                                        Somit stehen die Stunden mit den günstigsten EPEX-Preisen am Anfang des Arrays.
                                      1. Mit dem Wert 93cef3b9-6e40-4a23-a57c-92f6e03efb61-image.png wird festgelegt, für wieviele Stunden eine Ladung/Aufheizung vorgenommen werden soll. Dies sind "NICHT" die "NÄCHSTEN" z.B. 5h, sondern erstmal nur 5 Stunden.
                                      1. Dann werden die günstigsten 5h wieder in die ursprüngliche Reihenfolge gebracht, da die günstigsten Stunden ja nicht unbedingt alle hintereinander liegen müssen.
                                      1. Dann wird ein Zeitplan gestartet, der zu jedem Stundenbeginn 8514ea27-bac9-418a-861e-e806f9b79e1e-image.png prüft, ob die aktuelle Stunde eine der günstigen 5 Stunden ist.
                                      1. Abhängig, ob dies zutrifft, wird die Ladung/Aufheizung gestartet oder beendet.
                                        Dazu werden dann noch Nachrichten abgesetzt, die den Verlauf aufzeigen.
                                        *7. Sind die 5 (im Beispiel) günstigsten Lade-/Aufheizstunden durchlaufen worden, wird eine finale Nachricht 93295ed7-2590-4e71-89b7-129f55c591f9-image.png abgesetzt und der Zeitplan beendet.

                                    Die gesamte Routine muss also wiederkehrend gestartet werden und kalkuliert immer wieder neu.

                                    Hoffe es ist was für Euch dabei und freue mich auf Eure Rückmeldung. Gruß, Thomas

                                    P Offline
                                    P Offline
                                    Peter666666
                                    schrieb am zuletzt editiert von
                                    #143

                                    @thomkast vielen Dank Thomas. Ich habe das Skript welches du ein paar Posts weiter oben geschrieben hast bzgl. Preise holen gestartet und das neue Skript läuft jetzt auch. Hab die Anzahl der Heizstunden mal auf 1 gesetzt das meine WP nicht mehr benötigt. Ich lasse das Skript mal laufen und werde dann morgen berichten was im Log steht.

                                    LG Peter

                                    Intel NUC i5 / 16GB RAM / 512GB SSD
                                    Synology DS220+ 10GB RAM / 8TB

                                    T 1 Antwort Letzte Antwort
                                    0
                                    • P Peter666666

                                      @thomkast vielen Dank Thomas. Ich habe das Skript welches du ein paar Posts weiter oben geschrieben hast bzgl. Preise holen gestartet und das neue Skript läuft jetzt auch. Hab die Anzahl der Heizstunden mal auf 1 gesetzt das meine WP nicht mehr benötigt. Ich lasse das Skript mal laufen und werde dann morgen berichten was im Log steht.

                                      T Offline
                                      T Offline
                                      ThomKast
                                      schrieb am zuletzt editiert von
                                      #144

                                      @peter666666 Hi Peter. Anbei das Skript mit den Änderungen, so dass die bereits vergangenen Stunden nicht mehr berücksichtigt werden und die Meldungen der nächsten Aufheiz-/Ladestunde nur einmal abgesetzt wird. Gruß, Thomas

                                      2024-01-10_APIS_EPEX_sortieren_und_Laden-Aufheizen.json

                                      Q P 2 Antworten Letzte Antwort
                                      1
                                      • T ThomKast

                                        @peter666666 Hi Peter. Anbei das Skript mit den Änderungen, so dass die bereits vergangenen Stunden nicht mehr berücksichtigt werden und die Meldungen der nächsten Aufheiz-/Ladestunde nur einmal abgesetzt wird. Gruß, Thomas

                                        2024-01-10_APIS_EPEX_sortieren_und_Laden-Aufheizen.json

                                        Q Offline
                                        Q Offline
                                        Qlink
                                        schrieb am zuletzt editiert von
                                        #145

                                        @thomkast

                                        Vielen Dank für deine Hilfe !
                                        Ich kämpfe grad parallel noch etwas mit der Ansteuerung meiner Wärmepumpe, daher bin ich grad nicht so responsiv.
                                        Sobald ich das Thema gelöst habe werde ich mich deinen Scripten widmen...

                                        Beste Grüße

                                        1 Antwort Letzte Antwort
                                        1
                                        • T ThomKast

                                          @peter666666 Hi Peter. Anbei das Skript mit den Änderungen, so dass die bereits vergangenen Stunden nicht mehr berücksichtigt werden und die Meldungen der nächsten Aufheiz-/Ladestunde nur einmal abgesetzt wird. Gruß, Thomas

                                          2024-01-10_APIS_EPEX_sortieren_und_Laden-Aufheizen.json

                                          P Offline
                                          P Offline
                                          Peter666666
                                          schrieb am zuletzt editiert von
                                          #146

                                          @thomkast Vielen Dank Thomas. Werde ich testen! LG Peter

                                          LG Peter

                                          Intel NUC i5 / 16GB RAM / 512GB SSD
                                          Synology DS220+ 10GB RAM / 8TB

                                          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

                                          735

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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