Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. JSON-Liste - günstigste Tibber-Stunde herausfinden

NEWS

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

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

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

JSON-Liste - günstigste Tibber-Stunde herausfinden

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
13 Beiträge 8 Kommentatoren 2.1k Aufrufe 7 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.
  • C Crazy Com

    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.

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #3

    @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?

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    1 Antwort Letzte Antwort
    0
    • mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #4

      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>
      

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      M 1 Antwort Letzte Antwort
      1
      • L Offline
        L Offline
        lemuba
        schrieb am zuletzt editiert von lemuba
        #5

        @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 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          Crazy Com
          schrieb am zuletzt editiert von
          #6

          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 Antwort Letzte Antwort
          0
          • C Crazy Com

            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 Offline
            L Offline
            lemuba
            schrieb am zuletzt editiert von lemuba
            #7

            @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 Antwort Letzte Antwort
            0
            • L 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 Offline
              M Offline
              mrzee
              schrieb am zuletzt editiert von
              #8

              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 Antwort Letzte Antwort
              0
              • C Crazy Com

                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.

                vowillV Offline
                vowillV Offline
                vowill
                schrieb am zuletzt editiert von vowill
                #9

                @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

                ioBroker im lxc auf NUC / Aktive Instanzen: 38

                1 Antwort Letzte Antwort
                1
                • mickymM 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 Offline
                  M Offline
                  mic4rd
                  schrieb am zuletzt editiert von
                  #10

                  @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?

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • M mic4rd

                    @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?

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von mickym
                    #11

                    @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.

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    M 1 Antwort Letzte Antwort
                    1
                    • mickymM 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 Offline
                      M Offline
                      mic4rd
                      schrieb am zuletzt editiert von
                      #12

                      @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!

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • M mic4rd

                        @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!

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von mickym
                        #13

                        @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.

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        1 Antwort Letzte Antwort
                        3
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        353

                        Online

                        32.4k

                        Benutzer

                        81.5k

                        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