Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. JSON-Liste - günstigste Tibber-Stunde herausfinden

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    JSON-Liste - günstigste Tibber-Stunde herausfinden

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

      Hallo zusammen,

      ich habe eine kleine Idee, die mit ioBroker wahrscheinlich umsetzbar wäre - nur leider bin ich im Scripting blutiger Anfänger.

      Folgendes Ziel: Beim dynamischen Stromtarif von Tibber gibt es jede Stunde einen anderen Preis / kWh. Mit dem Adapter "TibberConnect" kann ich die Tagespreise in den ioBroker laden. In der günstigsten Stunde am Tag soll jetzt ein Luftentfeuchter für diese eine Stunde laufen.

      TibberConnect gibt mir in den Objekten eine JSON-Liste, bereits sortiert nach Preis. Heute sieht sie so aus:

      [{"total":0.274,"energy":0.0742,"tax":0.1998,"startsAt":"2023-09-22T14:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2783,"energy":0.0778,"tax":0.2005,"startsAt":"2023-09-22T13:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2798,"energy":0.079,"tax":0.2008,"startsAt":"2023-09-22T15:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2877,"energy":0.0856,"tax":0.2021,"startsAt":"2023-09-22T12:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2895,"energy":0.0872,"tax":0.2023,"startsAt":"2023-09-22T01:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2905,"energy":0.088,"tax":0.2025,"startsAt":"2023-09-22T02:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2908,"energy":0.0883,"tax":0.2025,"startsAt":"2023-09-22T00:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2908,"energy":0.0882,"tax":0.2026,"startsAt":"2023-09-22T16:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2914,"energy":0.0888,"tax":0.2026,"startsAt":"2023-09-22T03:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.294,"energy":0.091,"tax":0.203,"startsAt":"2023-09-22T04:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.294,"energy":0.0909,"tax":0.2031,"startsAt":"2023-09-22T11:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2948,"energy":0.0917,"tax":0.2031,"startsAt":"2023-09-22T05:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3043,"energy":0.0996,"tax":0.2047,"startsAt":"2023-09-22T10:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3084,"energy":0.1031,"tax":0.2053,"startsAt":"2023-09-22T23:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3118,"energy":0.1059,"tax":0.2059,"startsAt":"2023-09-22T22:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3131,"energy":0.107,"tax":0.2061,"startsAt":"2023-09-22T17:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3198,"energy":0.1126,"tax":0.2072,"startsAt":"2023-09-22T06:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3221,"energy":0.1146,"tax":0.2075,"startsAt":"2023-09-22T21:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3265,"energy":0.1183,"tax":0.2082,"startsAt":"2023-09-22T09:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3446,"energy":0.1334,"tax":0.2112,"startsAt":"2023-09-22T20:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3473,"energy":0.1358,"tax":0.2115,"startsAt":"2023-09-22T08:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3481,"energy":0.1364,"tax":0.2117,"startsAt":"2023-09-22T18:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.35,"energy":0.138,"tax":0.212,"startsAt":"2023-09-22T07:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.376,"energy":0.1599,"tax":0.2161,"startsAt":"2023-09-22T19:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"}]
      

      Hier erkennt man, dass die günstigste Stunde heute ab 14 Uhr war. Und da hört mein Wissen für mich auf. Ich möchte ein Script erstellen, was mir diesen Wert ausgibt - ich habe aber nichtmal eine Idee, mit welcher Funktion ich so eine Liste "parsen" kann.

      Homoran paul53 vowill 3 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Crazy Com last edited by Homoran

        @crazy-com sagte in JSON-Liste - günstigste Tibber-Stunde herausfinden:

        ich habe aber nichtmal eine Idee, mit welcher Funktion ich so eine Liste "parsen" kann.

        im Prinzip müsstest du aus allen Attribut xxx.total von JSON, wobei xxx von 0 bis 23 ist, das minimum finden und dann ist xxx die billigste Stunde

        EDIT: BLÖDSINN!
        ist doch bereits sortiert
        Screenshot_20230922-165811_Firefox.jpg

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @Crazy Com last edited by paul53

          @crazy-com sagte: JSON-Liste, bereits sortiert nach Preis ... günstigste Stunde heute ab 14 Uhr war. Und da hört mein Wissen für mich auf. Ich möchte ein Script erstellen, was mir diesen Wert ausgibt

          Blockly_temp.JPG

          Oder lieber Javascript?

          1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active last edited by mickym

            Ich würde sowas mit JSONATA lösen.#

            $[total=$min($$.total)].startsAt
            

            d709d21b-5e60-4b66-93ce-417acc8bac96-image.png

            <xml xmlns="https://developers.google.com/blockly/xml">
             <block type="debug" id="c=0Ev,.Lf2VL/]$u@;:|" x="-613" y="-162">
               <field name="Severity">log</field>
               <value name="TEXT">
                 <shadow type="text" id="^HBfRb,DeK,*xX.uG[4T">
                   <field name="TEXT">test</field>
                 </shadow>
                 <block type="convert_jsonata" id="4Q?i99iF+3X?6j0Uh.mi">
                   <value name="EXPRESSION">
                     <shadow type="text" id="`Al=UMroj;tMS~u=*cfJ">
                       <field name="TEXT">$[total=$min($$.total)].startsAt</field>
                     </shadow>
                   </value>
                   <value name="TARGET">
                     <block type="convert_json2object" id="kzz^-zfHR4IH44F.Q=nO">
                       <value name="VALUE">
                         <block type="text" id="])oGXSKIO5c~Q:JvFBz6">
                           <field name="TEXT">[{"total":0.274,"energy":0.0742,"tax":0.1998,"startsAt":"2023-09-22T14:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2783,"energy":0.0778,"tax":0.2005,"startsAt":"2023-09-22T13:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2798,"energy":0.079,"tax":0.2008,"startsAt":"2023-09-22T15:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2877,"energy":0.0856,"tax":0.2021,"startsAt":"2023-09-22T12:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2895,"energy":0.0872,"tax":0.2023,"startsAt":"2023-09-22T01:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2905,"energy":0.088,"tax":0.2025,"startsAt":"2023-09-22T02:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2908,"energy":0.0883,"tax":0.2025,"startsAt":"2023-09-22T00:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2908,"energy":0.0882,"tax":0.2026,"startsAt":"2023-09-22T16:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2914,"energy":0.0888,"tax":0.2026,"startsAt":"2023-09-22T03:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.294,"energy":0.091,"tax":0.203,"startsAt":"2023-09-22T04:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.294,"energy":0.0909,"tax":0.2031,"startsAt":"2023-09-22T11:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2948,"energy":0.0917,"tax":0.2031,"startsAt":"2023-09-22T05:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3043,"energy":0.0996,"tax":0.2047,"startsAt":"2023-09-22T10:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3084,"energy":0.1031,"tax":0.2053,"startsAt":"2023-09-22T23:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3118,"energy":0.1059,"tax":0.2059,"startsAt":"2023-09-22T22:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3131,"energy":0.107,"tax":0.2061,"startsAt":"2023-09-22T17:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3198,"energy":0.1126,"tax":0.2072,"startsAt":"2023-09-22T06:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3221,"energy":0.1146,"tax":0.2075,"startsAt":"2023-09-22T21:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3265,"energy":0.1183,"tax":0.2082,"startsAt":"2023-09-22T09:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3446,"energy":0.1334,"tax":0.2112,"startsAt":"2023-09-22T20:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3473,"energy":0.1358,"tax":0.2115,"startsAt":"2023-09-22T08:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3481,"energy":0.1364,"tax":0.2117,"startsAt":"2023-09-22T18:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.35,"energy":0.138,"tax":0.212,"startsAt":"2023-09-22T07:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.376,"energy":0.1599,"tax":0.2161,"startsAt":"2023-09-22T19:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"}]</field>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </value>
             </block>
            </xml>
            

            Mit NodeRed halt entsprechend.

            Wenn man will kann man dann ein eigenes Objekt erstellen (gelb markiert)

            $[total=$min($$.total)].{"Start":startsAt, "Wert":total}
            

            und dieses dann im Blockly nach Belieben weiter zu verarbeiten um die gleiche interpretierte Ausgabe wie @Homoran zu erhalten:

            a70113b5-475c-4fc2-acbb-b446982bd01e-image.png

            <xml xmlns="https://developers.google.com/blockly/xml">
             <variables>
               <variable id="k29Ksrg0bbjP1^[uaDHZ">Minimum</variable>
             </variables>
             <block type="variables_set" id="+ed2p;s6]-q!Kd%cN7V8" x="-662" y="-162">
               <field name="VAR" id="k29Ksrg0bbjP1^[uaDHZ">Minimum</field>
               <value name="VALUE">
                 <block type="convert_jsonata" id="4Q?i99iF+3X?6j0Uh.mi">
                   <value name="EXPRESSION">
                     <shadow type="text" id="`Al=UMroj;tMS~u=*cfJ">
                       <field name="TEXT">$[total=$min($$.total)].{"Start":startsAt, "Wert":total}</field>
                     </shadow>
                   </value>
                   <value name="TARGET">
                     <block type="convert_json2object" id="kzz^-zfHR4IH44F.Q=nO">
                       <value name="VALUE">
                         <block type="text" id="])oGXSKIO5c~Q:JvFBz6">
                           <field name="TEXT">[{"total":0.274,"energy":0.0742,"tax":0.1998,"startsAt":"2023-09-22T14:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2783,"energy":0.0778,"tax":0.2005,"startsAt":"2023-09-22T13:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2798,"energy":0.079,"tax":0.2008,"startsAt":"2023-09-22T15:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2877,"energy":0.0856,"tax":0.2021,"startsAt":"2023-09-22T12:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2895,"energy":0.0872,"tax":0.2023,"startsAt":"2023-09-22T01:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2905,"energy":0.088,"tax":0.2025,"startsAt":"2023-09-22T02:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2908,"energy":0.0883,"tax":0.2025,"startsAt":"2023-09-22T00:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2908,"energy":0.0882,"tax":0.2026,"startsAt":"2023-09-22T16:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2914,"energy":0.0888,"tax":0.2026,"startsAt":"2023-09-22T03:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.294,"energy":0.091,"tax":0.203,"startsAt":"2023-09-22T04:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.294,"energy":0.0909,"tax":0.2031,"startsAt":"2023-09-22T11:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2948,"energy":0.0917,"tax":0.2031,"startsAt":"2023-09-22T05:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3043,"energy":0.0996,"tax":0.2047,"startsAt":"2023-09-22T10:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3084,"energy":0.1031,"tax":0.2053,"startsAt":"2023-09-22T23:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3118,"energy":0.1059,"tax":0.2059,"startsAt":"2023-09-22T22:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3131,"energy":0.107,"tax":0.2061,"startsAt":"2023-09-22T17:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3198,"energy":0.1126,"tax":0.2072,"startsAt":"2023-09-22T06:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3221,"energy":0.1146,"tax":0.2075,"startsAt":"2023-09-22T21:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3265,"energy":0.1183,"tax":0.2082,"startsAt":"2023-09-22T09:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3446,"energy":0.1334,"tax":0.2112,"startsAt":"2023-09-22T20:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3473,"energy":0.1358,"tax":0.2115,"startsAt":"2023-09-22T08:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3481,"energy":0.1364,"tax":0.2117,"startsAt":"2023-09-22T18:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.35,"energy":0.138,"tax":0.212,"startsAt":"2023-09-22T07:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.376,"energy":0.1599,"tax":0.2161,"startsAt":"2023-09-22T19:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"}]</field>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </value>
               <next>
                 <block type="debug" id="c=0Ev,.Lf2VL/]$u@;:|">
                   <field name="Severity">log</field>
                   <value name="TEXT">
                     <shadow type="text" id="^HBfRb,DeK,*xX.uG[4T">
                       <field name="TEXT">test</field>
                     </shadow>
                     <block type="variables_get" id="sp5ksx4nXb7y`qZRh;}6">
                       <field name="VAR" id="k29Ksrg0bbjP1^[uaDHZ">Minimum</field>
                     </block>
                   </value>
                   <next>
                     <block type="debug" id="QKZA(K`S7T(xd~/*2;yP">
                       <field name="Severity">log</field>
                       <value name="TEXT">
                         <shadow type="text" id="VPEE_H1;WnTjag1u2EK6">
                           <field name="TEXT">test</field>
                         </shadow>
                         <block type="text_join" id="eeCizGy~Yip(Bo@s~::c">
                           <mutation items="4"></mutation>
                           <value name="ADD0">
                             <block type="text" id="}12kw4*Z%{3dN7LX2/Ia">
                               <field name="TEXT">um: </field>
                             </block>
                           </value>
                           <value name="ADD1">
                             <block type="convert_from_date" id="6clf}@oVM~xII?,9C/!n">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                               <field name="OPTION">hh:mm</field>
                               <value name="VALUE">
                                 <block type="get_attr" id="Sei-Lh#B[,#`^g.#UAiP">
                                   <value name="PATH">
                                     <shadow type="text" id="GZa@0Dd~]a{qo3xuQGSL">
                                       <field name="TEXT">Start</field>
                                     </shadow>
                                   </value>
                                   <value name="OBJECT">
                                     <block type="variables_get" id="zD!=tW/S3.!1g*?=l/Bs">
                                       <field name="VAR" id="k29Ksrg0bbjP1^[uaDHZ">Minimum</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <value name="ADD2">
                             <block type="text" id="}L;_GK5`POZ)+Y%D{9+4">
                               <field name="TEXT"> für: </field>
                             </block>
                           </value>
                           <value name="ADD3">
                             <block type="get_attr" id="e4*+TKkxrfL}i{=(L`mo">
                               <value name="PATH">
                                 <shadow type="text" id="qVSAYyQjQotkKZ_W4@As">
                                   <field name="TEXT">Wert</field>
                                 </shadow>
                               </value>
                               <value name="OBJECT">
                                 <block type="variables_get" id="Be_jowB61ndEPNngwyT;">
                                   <field name="VAR" id="k29Ksrg0bbjP1^[uaDHZ">Minimum</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                         </block>
                       </value>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
            </xml>
            

            M 1 Reply Last reply Reply Quote 1
            • L
              lemuba last edited by lemuba

              @Crazy-Com Ich habe das ganz anders gelöst und erledige das nun im IoBroker unter NodeRed nach dieser Anleitung:

              https://www.youtube.com/watch?v=dmmdUPjTopI

              Letzendlich schaut dann mein NodeRed Flow im Iobroker so aus:

              Tibber_NodeRed.jpg

              Der Flow erzeugt dann auch 10 Datenpunkte unter Objekte/nodered im Iobroker, welche je nach Anzahl der benötigten Stunden True oder False sind.
              Am Beispiel, siehe Debug gelb markiert für die günstigsten 2 Stunden morgen am 24.9. wäre dann der Datenpunkt "tibber_2std" morgen in der Zeit von 13:00 Uhr bis 15:00 Uhr auf "true".

              Passt dann auch mit der Tibber App Vorhersage für morgen:

              Tibber_24092023.png

              Hier mal mein Flow zum möglichen Import (ohne meinen Tibber Token) 😉 :

              [
                 {
                     "id": "d25f6c3bea911417",
                     "type": "tab",
                     "label": "Tibber Günstigste Stunden Kopie",
                     "disabled": false,
                     "info": "",
                     "env": []
                 },
                 {
                     "id": "6eb7884cd0854d3a",
                     "type": "inject",
                     "z": "d25f6c3bea911417",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "0 0-23 * * *",
                     "once": true,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "",
                     "payloadType": "date",
                     "x": 170,
                     "y": 260,
                     "wires": [
                         [
                             "e93148b7d43dae9c"
                         ]
                     ]
                 },
                 {
                     "id": "e93148b7d43dae9c",
                     "type": "template",
                     "z": "d25f6c3bea911417",
                     "name": "",
                     "field": "payload",
                     "fieldType": "msg",
                     "format": "handlebars",
                     "syntax": "mustache",
                     "template": "{\n  viewer {\n    homes {\n      currentSubscription {\n        priceInfo {\n          today {\n            total\n            startsAt\n          }\n          tomorrow {\n            total\n            startsAt\n          }\n        }\n      }\n    }\n  }\n}",
                     "output": "str",
                     "x": 340,
                     "y": 260,
                     "wires": [
                         [
                             "8af19a60b6e714a6"
                         ]
                     ]
                 },
                 {
                     "id": "8af19a60b6e714a6",
                     "type": "tibber-query",
                     "z": "d25f6c3bea911417",
                     "name": "Tibber Query",
                     "active": true,
                     "apiEndpointRef": "6c0ebed9c4db1a3b",
                     "x": 510,
                     "y": 260,
                     "wires": [
                         [
                             "d3c04fabfb4b5943"
                         ]
                     ]
                 },
                 {
                     "id": "d3c04fabfb4b5943",
                     "type": "ps-receive-price",
                     "z": "d25f6c3bea911417",
                     "name": "Price Receiver",
                     "x": 700,
                     "y": 260,
                     "wires": [
                         [
                             "88524f8c43c1c74c",
                             "e3e3c60f2b2285ab",
                             "7c973d32633ff880",
                             "e501e66b96b4c383",
                             "4ffa63e2198744a8",
                             "7057e070d21d978b",
                             "ae9b1d8156d58175",
                             "fd60e852ebfa0c67",
                             "5174e8931f5ebf18",
                             "51212c56b27874ae"
                         ]
                     ]
                 },
                 {
                     "id": "88524f8c43c1c74c",
                     "type": "ps-strategy-lowest-price",
                     "z": "d25f6c3bea911417",
                     "name": "Lowest Price 2hrs",
                     "fromTime": "00",
                     "toTime": "00",
                     "hoursOn": "2",
                     "maxPrice": "0.6",
                     "doNotSplit": false,
                     "sendCurrentValueWhenRescheduling": true,
                     "outputValueForOn": "true",
                     "outputValueForOff": "false",
                     "outputValueForOntype": "bool",
                     "outputValueForOfftype": "bool",
                     "outputIfNoSchedule": "false",
                     "outputOutsidePeriod": "false",
                     "contextStorage": "memory",
                     "x": 910,
                     "y": 320,
                     "wires": [
                         [
                             "7fcd3dec9c52f2f5"
                         ],
                         [
                             "7fcd3dec9c52f2f5"
                         ],
                         [
                             "c3adc592dc098b58"
                         ]
                     ]
                 },
                 {
                     "id": "7fcd3dec9c52f2f5",
                     "type": "ioBroker out",
                     "z": "d25f6c3bea911417",
                     "name": "tibber_2std",
                     "topic": "tibber_2std",
                     "ack": "false",
                     "autoCreate": "true",
                     "stateName": "tibber_2std",
                     "role": "",
                     "payloadType": "boolean",
                     "readonly": "",
                     "stateUnit": "",
                     "stateMin": "",
                     "stateMax": "",
                     "x": 1130,
                     "y": 320,
                     "wires": []
                 },
                 {
                     "id": "e3e3c60f2b2285ab",
                     "type": "ps-strategy-lowest-price",
                     "z": "d25f6c3bea911417",
                     "name": "Lowest Price 3hrs",
                     "fromTime": "00",
                     "toTime": "00",
                     "hoursOn": "3",
                     "maxPrice": "0.6",
                     "doNotSplit": false,
                     "sendCurrentValueWhenRescheduling": true,
                     "outputValueForOn": "true",
                     "outputValueForOff": "false",
                     "outputValueForOntype": "bool",
                     "outputValueForOfftype": "bool",
                     "outputIfNoSchedule": "false",
                     "outputOutsidePeriod": "false",
                     "contextStorage": "memory",
                     "x": 910,
                     "y": 380,
                     "wires": [
                         [
                             "3d45ecadf54c7a22"
                         ],
                         [
                             "3d45ecadf54c7a22"
                         ],
                         []
                     ]
                 },
                 {
                     "id": "3d45ecadf54c7a22",
                     "type": "ioBroker out",
                     "z": "d25f6c3bea911417",
                     "name": "tibber_3std",
                     "topic": "tibber_3std",
                     "ack": "false",
                     "autoCreate": "true",
                     "stateName": "tibber_3std",
                     "role": "",
                     "payloadType": "boolean",
                     "readonly": "",
                     "stateUnit": "",
                     "stateMin": "",
                     "stateMax": "",
                     "x": 1130,
                     "y": 380,
                     "wires": []
                 },
                 {
                     "id": "7c973d32633ff880",
                     "type": "ps-strategy-lowest-price",
                     "z": "d25f6c3bea911417",
                     "name": "Lowest Price 4hrs",
                     "fromTime": "00",
                     "toTime": "00",
                     "hoursOn": "4",
                     "maxPrice": "0.6",
                     "doNotSplit": false,
                     "sendCurrentValueWhenRescheduling": true,
                     "outputValueForOn": "true",
                     "outputValueForOff": "false",
                     "outputValueForOntype": "bool",
                     "outputValueForOfftype": "bool",
                     "outputIfNoSchedule": "false",
                     "outputOutsidePeriod": "false",
                     "contextStorage": "memory",
                     "x": 910,
                     "y": 440,
                     "wires": [
                         [
                             "2143aac22e4e3405"
                         ],
                         [
                             "2143aac22e4e3405"
                         ],
                         []
                     ]
                 },
                 {
                     "id": "2143aac22e4e3405",
                     "type": "ioBroker out",
                     "z": "d25f6c3bea911417",
                     "name": "tibber_4std",
                     "topic": "tibber_4std",
                     "ack": "false",
                     "autoCreate": "true",
                     "stateName": "tibber_4std",
                     "role": "",
                     "payloadType": "boolean",
                     "readonly": "",
                     "stateUnit": "",
                     "stateMin": "",
                     "stateMax": "",
                     "x": 1130,
                     "y": 440,
                     "wires": []
                 },
                 {
                     "id": "e501e66b96b4c383",
                     "type": "ps-strategy-lowest-price",
                     "z": "d25f6c3bea911417",
                     "name": "Lowest Price 5hrs",
                     "fromTime": "00",
                     "toTime": "00",
                     "hoursOn": "5",
                     "maxPrice": "0.6",
                     "doNotSplit": false,
                     "sendCurrentValueWhenRescheduling": true,
                     "outputValueForOn": "true",
                     "outputValueForOff": "false",
                     "outputValueForOntype": "bool",
                     "outputValueForOfftype": "bool",
                     "outputIfNoSchedule": "false",
                     "outputOutsidePeriod": "false",
                     "contextStorage": "memory",
                     "x": 910,
                     "y": 500,
                     "wires": [
                         [
                             "6cdc1d44e7ddb215"
                         ],
                         [
                             "6cdc1d44e7ddb215"
                         ],
                         []
                     ]
                 },
                 {
                     "id": "6cdc1d44e7ddb215",
                     "type": "ioBroker out",
                     "z": "d25f6c3bea911417",
                     "name": "tibber_5std",
                     "topic": "tibber_5std",
                     "ack": "false",
                     "autoCreate": "true",
                     "stateName": "tibber_5std",
                     "role": "",
                     "payloadType": "boolean",
                     "readonly": "",
                     "stateUnit": "",
                     "stateMin": "",
                     "stateMax": "",
                     "x": 1130,
                     "y": 500,
                     "wires": []
                 },
                 {
                     "id": "4ffa63e2198744a8",
                     "type": "ps-strategy-lowest-price",
                     "z": "d25f6c3bea911417",
                     "name": "Lowest Price 6hrs",
                     "fromTime": "00",
                     "toTime": "00",
                     "hoursOn": "6",
                     "maxPrice": "0.6",
                     "doNotSplit": false,
                     "sendCurrentValueWhenRescheduling": true,
                     "outputValueForOn": "true",
                     "outputValueForOff": "false",
                     "outputValueForOntype": "bool",
                     "outputValueForOfftype": "bool",
                     "outputIfNoSchedule": "false",
                     "outputOutsidePeriod": "false",
                     "contextStorage": "memory",
                     "x": 910,
                     "y": 560,
                     "wires": [
                         [
                             "26791eca7bf72bd0"
                         ],
                         [
                             "26791eca7bf72bd0"
                         ],
                         []
                     ]
                 },
                 {
                     "id": "26791eca7bf72bd0",
                     "type": "ioBroker out",
                     "z": "d25f6c3bea911417",
                     "name": "tibber_6std",
                     "topic": "tibber_6std",
                     "ack": "false",
                     "autoCreate": "true",
                     "stateName": "tibber_6std",
                     "role": "",
                     "payloadType": "boolean",
                     "readonly": "",
                     "stateUnit": "",
                     "stateMin": "",
                     "stateMax": "",
                     "x": 1130,
                     "y": 560,
                     "wires": []
                 },
                 {
                     "id": "5174e8931f5ebf18",
                     "type": "ps-strategy-lowest-price",
                     "z": "d25f6c3bea911417",
                     "name": "Lowest Price 7hrs",
                     "fromTime": "00",
                     "toTime": "00",
                     "hoursOn": "7",
                     "maxPrice": "0.6",
                     "doNotSplit": false,
                     "sendCurrentValueWhenRescheduling": true,
                     "outputValueForOn": "true",
                     "outputValueForOff": "false",
                     "outputValueForOntype": "bool",
                     "outputValueForOfftype": "bool",
                     "outputIfNoSchedule": "false",
                     "outputOutsidePeriod": "false",
                     "contextStorage": "memory",
                     "x": 910,
                     "y": 620,
                     "wires": [
                         [
                             "95a88f7a5a413f52"
                         ],
                         [
                             "95a88f7a5a413f52"
                         ],
                         []
                     ]
                 },
                 {
                     "id": "95a88f7a5a413f52",
                     "type": "ioBroker out",
                     "z": "d25f6c3bea911417",
                     "name": "tibber_7std",
                     "topic": "tibber_7std",
                     "ack": "false",
                     "autoCreate": "true",
                     "stateName": "tibber_7std",
                     "role": "",
                     "payloadType": "boolean",
                     "readonly": "",
                     "stateUnit": "",
                     "stateMin": "",
                     "stateMax": "",
                     "x": 1130,
                     "y": 620,
                     "wires": []
                 },
                 {
                     "id": "7057e070d21d978b",
                     "type": "ps-strategy-lowest-price",
                     "z": "d25f6c3bea911417",
                     "name": "Lowest Price 8hrs",
                     "fromTime": "00",
                     "toTime": "00",
                     "hoursOn": "8",
                     "maxPrice": "0.6",
                     "doNotSplit": false,
                     "sendCurrentValueWhenRescheduling": true,
                     "outputValueForOn": "true",
                     "outputValueForOff": "false",
                     "outputValueForOntype": "bool",
                     "outputValueForOfftype": "bool",
                     "outputIfNoSchedule": "false",
                     "outputOutsidePeriod": "false",
                     "contextStorage": "memory",
                     "x": 910,
                     "y": 680,
                     "wires": [
                         [
                             "c2b5176e76efc709"
                         ],
                         [
                             "c2b5176e76efc709"
                         ],
                         []
                     ]
                 },
                 {
                     "id": "c2b5176e76efc709",
                     "type": "ioBroker out",
                     "z": "d25f6c3bea911417",
                     "name": "tibber_8std",
                     "topic": "tibber_8std",
                     "ack": "false",
                     "autoCreate": "true",
                     "stateName": "tibber_8std",
                     "role": "",
                     "payloadType": "boolean",
                     "readonly": "",
                     "stateUnit": "",
                     "stateMin": "",
                     "stateMax": "",
                     "x": 1130,
                     "y": 680,
                     "wires": []
                 },
                 {
                     "id": "ae9b1d8156d58175",
                     "type": "ps-strategy-lowest-price",
                     "z": "d25f6c3bea911417",
                     "name": "Lowest Price 9hrs",
                     "fromTime": "00",
                     "toTime": "00",
                     "hoursOn": "9",
                     "maxPrice": "0.6",
                     "doNotSplit": false,
                     "sendCurrentValueWhenRescheduling": true,
                     "outputValueForOn": "true",
                     "outputValueForOff": "false",
                     "outputValueForOntype": "bool",
                     "outputValueForOfftype": "bool",
                     "outputIfNoSchedule": "false",
                     "outputOutsidePeriod": "false",
                     "contextStorage": "memory",
                     "x": 910,
                     "y": 740,
                     "wires": [
                         [
                             "efd1b98f800d52d1"
                         ],
                         [
                             "efd1b98f800d52d1"
                         ],
                         []
                     ]
                 },
                 {
                     "id": "efd1b98f800d52d1",
                     "type": "ioBroker out",
                     "z": "d25f6c3bea911417",
                     "name": "tibber_9std",
                     "topic": "tibber_9std",
                     "ack": "false",
                     "autoCreate": "true",
                     "stateName": "tibber_9std",
                     "role": "",
                     "payloadType": "boolean",
                     "readonly": "",
                     "stateUnit": "",
                     "stateMin": "",
                     "stateMax": "",
                     "x": 1130,
                     "y": 740,
                     "wires": []
                 },
                 {
                     "id": "fd60e852ebfa0c67",
                     "type": "ps-strategy-lowest-price",
                     "z": "d25f6c3bea911417",
                     "name": "Lowest Price 10hrs",
                     "fromTime": "00",
                     "toTime": "00",
                     "hoursOn": "10",
                     "maxPrice": "0.6",
                     "doNotSplit": false,
                     "sendCurrentValueWhenRescheduling": true,
                     "outputValueForOn": "true",
                     "outputValueForOff": "false",
                     "outputValueForOntype": "bool",
                     "outputValueForOfftype": "bool",
                     "outputIfNoSchedule": "false",
                     "outputOutsidePeriod": "false",
                     "contextStorage": "memory",
                     "x": 910,
                     "y": 800,
                     "wires": [
                         [
                             "40e9c40a991eee4b"
                         ],
                         [
                             "40e9c40a991eee4b"
                         ],
                         []
                     ]
                 },
                 {
                     "id": "40e9c40a991eee4b",
                     "type": "ioBroker out",
                     "z": "d25f6c3bea911417",
                     "name": "tibber_10std",
                     "topic": "tibber_10std",
                     "ack": "false",
                     "autoCreate": "true",
                     "stateName": "tibber_10std",
                     "role": "",
                     "payloadType": "boolean",
                     "readonly": "",
                     "stateUnit": "",
                     "stateMin": "",
                     "stateMax": "",
                     "x": 1130,
                     "y": 800,
                     "wires": []
                 },
                 {
                     "id": "51212c56b27874ae",
                     "type": "ps-strategy-lowest-price",
                     "z": "d25f6c3bea911417",
                     "name": "Lowest Price 1hrs",
                     "fromTime": "00",
                     "toTime": "00",
                     "hoursOn": "1",
                     "maxPrice": "0.6",
                     "doNotSplit": false,
                     "sendCurrentValueWhenRescheduling": true,
                     "outputValueForOn": "true",
                     "outputValueForOff": "false",
                     "outputValueForOntype": "bool",
                     "outputValueForOfftype": "bool",
                     "outputIfNoSchedule": "false",
                     "outputOutsidePeriod": "false",
                     "contextStorage": "memory",
                     "x": 910,
                     "y": 260,
                     "wires": [
                         [
                             "64256411a1ab22e5"
                         ],
                         [
                             "64256411a1ab22e5"
                         ],
                         []
                     ]
                 },
                 {
                     "id": "64256411a1ab22e5",
                     "type": "ioBroker out",
                     "z": "d25f6c3bea911417",
                     "name": "tibber_1std",
                     "topic": "tibber_1std",
                     "ack": "false",
                     "autoCreate": "true",
                     "stateName": "tibber_1std",
                     "role": "",
                     "payloadType": "boolean",
                     "readonly": "",
                     "stateUnit": "",
                     "stateMin": "",
                     "stateMax": "",
                     "x": 1130,
                     "y": 260,
                     "wires": []
                 },
                 {
                     "id": "c3adc592dc098b58",
                     "type": "debug",
                     "z": "d25f6c3bea911417",
                     "name": "debug 1",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "false",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 1140,
                     "y": 180,
                     "wires": []
                 },
                 {
                     "id": "6c0ebed9c4db1a3b",
                     "type": "tibber-api-endpoint",
                     "queryUrl": "https://api.tibber.com/v1-beta/gql",
                     "feedConnectionTimeout": "30",
                     "feedTimeout": "60",
                     "queryRequestTimeout": "30",
                     "name": "Test",
                     "credentials": {}
                 }
              ]
              

              Der eigene Tibber Token müsste dann noch hier eingefügt werden:

              Tibber Query Node.jpg

              Ggf. viel Spaß beim Testen...

              Ich starte jetzt auch erst damit zu testen, sobald unsere PV ab Ende Oktober u.a. nicht mehr genug PV-Überschuss produziert, um dann u.a. 1-2 2kW-Nachtspeicheröfen smart aufzuladen. Daher auch in meinem Flow bis zu 10 günstigste Stunden zur Auswahl.

              1 Reply Last reply Reply Quote 0
              • C
                Crazy Com last edited by

                Hallo zusammen,

                war nicht so clever, hier einen Thread zu öffnen und dann eine Woche in den Urlaub zu fahren und die Antworten nicht mitzubekommen. 🙂

                Erst einmal vielen Dank euch allen. Ich schaue mir das alles mal an und melde mich dann nochmal!

                L 1 Reply Last reply Reply Quote 0
                • L
                  lemuba @Crazy Com last edited by lemuba

                  @crazy-com

                  Ausgehend von meinen NodeRed 10 günstigsten Std. Datenpunkten, hatte ich nun auch noch ein kleines Blockly geschrieben, welches mir auf meinem Ulanzi Matrix Display unter anderem den Std. aktuellen Strompreis in Cent ausgibt und dahinter die Einordnung welche der günstigsten Stunden das ist (1-10). Nicht schön aber funktioniert.

                  IMG_2871.jpeg

                  IMG_2872.jpeg

                  Jetzt um 14:15 Uhr 33 Cent und eine der 2 günstigsten Tagesstunden.

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

                    Ich hab mir jetzt auch sowas gebaut... aber ich habe ein Problem damit: Wie geht ihr damit um, wenn während einer GRID CHARGE Phase die Sonne doch rauskommt? Ich möchte ja dann nicht mehr weiter über das Netz laden

                    1 Reply Last reply Reply Quote 0
                    • vowill
                      vowill @Crazy Com last edited by vowill

                      @crazy-com
                      Vielleicht noch ein Ansatz: Um den Verlauf der Tibberpreise über die jeweils 24h von heute und morgen grafisch mit ECharts darzustellen, habe ich ein Skript verfasst (siehe im Forum hier). Dort sind die Werte (val) dann mit Zeitstempel (ts) in der Form "{"ts": 1701644400000, "val": 0.2566}" als JSON-String abgelegt, können also relativ leicht ausgewertet werden.
                      Nachtrag 25.12.2023: Hier ein Foto des zugehörigen Pop-up-Views in vis:

                      20231225 Tibber-Ansicht.jpg

                      1 Reply Last reply Reply Quote 1
                      • M
                        mic4rd @mickym last edited by

                        @mickym said in JSON-Liste - günstigste Tibber-Stunde herausfinden:

                        Ich würde sowas mit JSONATA lösen.#

                        $[total=$min($$.total)].startsAt
                        

                        d709d21b-5e60-4b66-93ce-417acc8bac96-image.png

                        <xml xmlns="https://developers.google.com/blockly/xml">
                         <block type="debug" id="c=0Ev,.Lf2VL/]$u@;:|" x="-613" y="-162">
                           <field name="Severity">log</field>
                           <value name="TEXT">
                             <shadow type="text" id="^HBfRb,DeK,*xX.uG[4T">
                               <field name="TEXT">test</field>
                             </shadow>
                             <block type="convert_jsonata" id="4Q?i99iF+3X?6j0Uh.mi">
                               <value name="EXPRESSION">
                                 <shadow type="text" id="`Al=UMroj;tMS~u=*cfJ">
                                   <field name="TEXT">$[total=$min($$.total)].startsAt</field>
                                 </shadow>
                               </value>
                               <value name="TARGET">
                                 <block type="convert_json2object" id="kzz^-zfHR4IH44F.Q=nO">
                                   <value name="VALUE">
                                     <block type="text" id="])oGXSKIO5c~Q:JvFBz6">
                                       <field name="TEXT">[{"total":0.274,"energy":0.0742,"tax":0.1998,"startsAt":"2023-09-22T14:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2783,"energy":0.0778,"tax":0.2005,"startsAt":"2023-09-22T13:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2798,"energy":0.079,"tax":0.2008,"startsAt":"2023-09-22T15:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2877,"energy":0.0856,"tax":0.2021,"startsAt":"2023-09-22T12:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2895,"energy":0.0872,"tax":0.2023,"startsAt":"2023-09-22T01:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2905,"energy":0.088,"tax":0.2025,"startsAt":"2023-09-22T02:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2908,"energy":0.0883,"tax":0.2025,"startsAt":"2023-09-22T00:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2908,"energy":0.0882,"tax":0.2026,"startsAt":"2023-09-22T16:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2914,"energy":0.0888,"tax":0.2026,"startsAt":"2023-09-22T03:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.294,"energy":0.091,"tax":0.203,"startsAt":"2023-09-22T04:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.294,"energy":0.0909,"tax":0.2031,"startsAt":"2023-09-22T11:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2948,"energy":0.0917,"tax":0.2031,"startsAt":"2023-09-22T05:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3043,"energy":0.0996,"tax":0.2047,"startsAt":"2023-09-22T10:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3084,"energy":0.1031,"tax":0.2053,"startsAt":"2023-09-22T23:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3118,"energy":0.1059,"tax":0.2059,"startsAt":"2023-09-22T22:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3131,"energy":0.107,"tax":0.2061,"startsAt":"2023-09-22T17:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3198,"energy":0.1126,"tax":0.2072,"startsAt":"2023-09-22T06:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3221,"energy":0.1146,"tax":0.2075,"startsAt":"2023-09-22T21:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3265,"energy":0.1183,"tax":0.2082,"startsAt":"2023-09-22T09:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3446,"energy":0.1334,"tax":0.2112,"startsAt":"2023-09-22T20:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3473,"energy":0.1358,"tax":0.2115,"startsAt":"2023-09-22T08:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3481,"energy":0.1364,"tax":0.2117,"startsAt":"2023-09-22T18:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.35,"energy":0.138,"tax":0.212,"startsAt":"2023-09-22T07:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.376,"energy":0.1599,"tax":0.2161,"startsAt":"2023-09-22T19:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"}]</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </value>
                         </block>
                        </xml>
                        

                        Ich hänge an einem ähnlichen Problem und bin fasziniert von JSONata, komme aber echt schlecht damit zurecht. ;(

                        Wie würde man den JSONata-Ausdruck erweitern, um z.B. die 5 teuersten, in der Zukunft liegenden Stunden zu erhalten?

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @mic4rd last edited by mickym

                          @mic4rd Du kannst immer den JSONATA Exerciser nehmen. Ich habe mal aus dem 1. Posting diese Quelle und sortiere wieder nach total diesesmal absteigend, um die teuersten zuerst zu haben. Anschliessend nehme ich nur die ersten 5 Objekte.

                          Hier kannst Du das selbst ausprobieren: https://try.jsonata.org/iupoLlhhu

                          $^(>total)#$i[$i<=4]
                          

                          Also alles nach total sortiert und dann die ersten 5 Elemente genommen ($i von 0 bis 4, also die ersten 5 Elemente).
                          Will man dann nur die Uhrzeiten haben, dann einfach selektieren:

                          $^(>total)#$i[$i<=4].startsAt
                          

                          Will man diese dann auch noch sortieren, dann einfach den order Operator verwenden

                          $^(>total)#$i[$i<=4].startsAt^($)
                          

                          cc1f258e-9e87-4930-8086-d4b1a8cc4fe7-image.png

                          Um zu zeigen, dass dies auch in Blockly funktioniert, hier der Beweis :

                          eedf9ff9-d664-4115-8441-d3ee9580a05f-image.png

                          Hier zum Import:

                          <xml xmlns="https://developers.google.com/blockly/xml">
                           <variables>
                             <variable id="EOJ4*0:|Gac4$sNJ6F}z">obj</variable>
                           </variables>
                           <block type="variables_set" id="{c.GD@;*Xg1KFL,@Ul2`" x="63" y="138">
                             <field name="VAR" id="EOJ4*0:|Gac4$sNJ6F}z">obj</field>
                             <value name="VALUE">
                               <block type="convert_json2object" id="4|VOw$XSSXKL6zfI;WEJ">
                                 <value name="VALUE">
                                   <block type="text" id="Eb(AvJLhHnCv2d-|4ZTJ">
                                     <field name="TEXT">[{"total":0.274,"energy":0.0742,"tax":0.1998,"startsAt":"2023-09-22T14:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2783,"energy":0.0778,"tax":0.2005,"startsAt":"2023-09-22T13:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2798,"energy":0.079,"tax":0.2008,"startsAt":"2023-09-22T15:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2877,"energy":0.0856,"tax":0.2021,"startsAt":"2023-09-22T12:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2895,"energy":0.0872,"tax":0.2023,"startsAt":"2023-09-22T01:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2905,"energy":0.088,"tax":0.2025,"startsAt":"2023-09-22T02:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2908,"energy":0.0883,"tax":0.2025,"startsAt":"2023-09-22T00:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2908,"energy":0.0882,"tax":0.2026,"startsAt":"2023-09-22T16:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2914,"energy":0.0888,"tax":0.2026,"startsAt":"2023-09-22T03:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.294,"energy":0.091,"tax":0.203,"startsAt":"2023-09-22T04:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.294,"energy":0.0909,"tax":0.2031,"startsAt":"2023-09-22T11:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.2948,"energy":0.0917,"tax":0.2031,"startsAt":"2023-09-22T05:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3043,"energy":0.0996,"tax":0.2047,"startsAt":"2023-09-22T10:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3084,"energy":0.1031,"tax":0.2053,"startsAt":"2023-09-22T23:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3118,"energy":0.1059,"tax":0.2059,"startsAt":"2023-09-22T22:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3131,"energy":0.107,"tax":0.2061,"startsAt":"2023-09-22T17:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3198,"energy":0.1126,"tax":0.2072,"startsAt":"2023-09-22T06:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3221,"energy":0.1146,"tax":0.2075,"startsAt":"2023-09-22T21:00:00.000+02:00","currency":"EUR","level":"NORMAL"},{"total":0.3265,"energy":0.1183,"tax":0.2082,"startsAt":"2023-09-22T09:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3446,"energy":0.1334,"tax":0.2112,"startsAt":"2023-09-22T20:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3473,"energy":0.1358,"tax":0.2115,"startsAt":"2023-09-22T08:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.3481,"energy":0.1364,"tax":0.2117,"startsAt":"2023-09-22T18:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.35,"energy":0.138,"tax":0.212,"startsAt":"2023-09-22T07:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"},{"total":0.376,"energy":0.1599,"tax":0.2161,"startsAt":"2023-09-22T19:00:00.000+02:00","currency":"EUR","level":"EXPENSIVE"}]</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <next>
                               <block type="comment" id="+j10:AzTj,${aq@Hg%+V">
                                 <field name="COMMENT">unsortierte Liste</field>
                                 <next>
                                   <block type="debug" id="2ptRFlCYIJ|DzcK7)5`S">
                                     <field name="Severity">info</field>
                                     <value name="TEXT">
                                       <shadow type="text" id="LDl/3!S6+ucYjHHQQ#s1">
                                         <field name="TEXT">test</field>
                                       </shadow>
                                       <block type="variables_get" id="ZRH=pb?,N%+N`DUbp-L%">
                                         <field name="VAR" id="EOJ4*0:|Gac4$sNJ6F}z">obj</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="debug" id="[xZ@b#8D:N2rm=K5n^sy">
                                         <field name="Severity">info</field>
                                         <value name="TEXT">
                                           <shadow type="text" id="43@*K5pW258a^X6LYa~/">
                                             <field name="TEXT">test</field>
                                           </shadow>
                                           <block type="convert_jsonata" id="PIP7}Nr-b^ptWp@BpLw)">
                                             <value name="EXPRESSION">
                                               <shadow type="text" id="*ck`*6zg8[wjRyJ`8^y(">
                                                 <field name="TEXT">$^(&gt;total)#$i[$i&lt;=4].startsAt^($)</field>
                                               </shadow>
                                             </value>
                                             <value name="TARGET">
                                               <block type="variables_get" id="xjb9LXDEdnor26?:zL?T">
                                                 <field name="VAR" id="EOJ4*0:|Gac4$sNJ6F}z">obj</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                          </xml>
                          

                          Das sequence: true kommt irgendwie vom Blockly. Dann muss man halt die Liste ohne das letzte element nehmen. Das ist wohl eine Blockly Eigenart.

                          M 1 Reply Last reply Reply Quote 1
                          • M
                            mic4rd @mickym last edited by

                            @mickym Wow vielen Dank, das ist ja der Oberhammer wie einfach das funktioniert!

                            Muss mich glaub einfach noch ein bisschen mehr in JSONata einlesen, das muss man unbedingt können. Hast mir eine großartige Starthilfe gegeben!

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @mic4rd last edited by mickym

                              @mic4rd sagte in JSON-Liste - günstigste Tibber-Stunde herausfinden:

                              @mickym Wow vielen Dank, das ist ja der Oberhammer wie einfach das funktioniert!

                              Muss mich glaub einfach noch ein bisschen mehr in JSONata einlesen, das muss man unbedingt können. Hast mir eine großartige Starthilfe gegeben!

                              Der Vorteil von dem Exerciser ist, dass Du siehst, wie man Schritt für Schritt das Ganze entwickelt. Ausserdem kannst Du halt sofort ausprobieren und siehst das Ergebnis. Also ich schreib das auch nicht einfach immer so hin, sondern verwende den Exerciser zum Entwickeln der Ausdrücke. Damit kontrolliere ich dann halt auch immer, ob sich das auch so umsetzen läßt, wie ich es mir denke.

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              808
                              Online

                              31.7k
                              Users

                              79.8k
                              Topics

                              1.3m
                              Posts

                              8
                              13
                              1539
                              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