Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]JSONata hilfe bei sortierung erbeten

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    [gelöst]JSONata hilfe bei sortierung erbeten

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

      Hallo, ich habe folgendes JSON aus dem ich nur die Werte des aktuellen Monats haben möchte.

      {
        "startDate": "2025-08-10T21:54:12.06Z",
        "endDate": "2025-09-19T21:54:12.06Z",
        "resolution": "DAY",
        "operationMode": "DOMESTIC_HOT_WATER",
        "energyType": "CONSUMED_ELECTRICAL_ENERGY",
        "totalConsumption": 41408,
        "data": [
          {
            "startDate": "2025-09-19T00:00:00Z",
            "endDate": "2025-09-20T00:00:00Z",
            "value": 1002.1875
          },
          {
            "startDate": "2025-09-18T00:00:00Z",
            "endDate": "2025-09-19T00:00:00Z",
            "value": 1003.8125
          },
          {
            "startDate": "2025-09-17T00:00:00Z",
            "endDate": "2025-09-18T00:00:00Z",
            "value": 1062.5
          },
          {
            "startDate": "2025-09-16T00:00:00Z",
            "endDate": "2025-09-17T00:00:00Z",
            "value": 1009.8125
          },
          {
            "startDate": "2025-09-15T00:00:00Z",
            "endDate": "2025-09-16T00:00:00Z",
            "value": 1219.5625
          },
          {
            "startDate": "2025-09-14T00:00:00Z",
            "endDate": "2025-09-15T00:00:00Z",
            "value": 1047.5
          },
          {
            "startDate": "2025-09-13T00:00:00Z",
            "endDate": "2025-09-14T00:00:00Z",
            "value": 1104.5
          },
          {
            "startDate": "2025-09-12T00:00:00Z",
            "endDate": "2025-09-13T00:00:00Z",
            "value": 1062.5625
          },
          {
            "startDate": "2025-09-11T00:00:00Z",
            "endDate": "2025-09-12T00:00:00Z",
            "value": 1017.5
          },
          {
            "startDate": "2025-09-10T00:00:00Z",
            "endDate": "2025-09-11T00:00:00Z",
            "value": 1133.375
          },
          {
            "startDate": "2025-09-09T00:00:00Z",
            "endDate": "2025-09-10T00:00:00Z",
            "value": 0
          },
          {
            "startDate": "2025-09-08T00:00:00Z",
            "endDate": "2025-09-09T00:00:00Z",
            "value": 2234.375
          },
          {
            "startDate": "2025-09-07T00:00:00Z",
            "endDate": "2025-09-08T00:00:00Z",
            "value": 974.0625
          },
          {
            "startDate": "2025-09-06T00:00:00Z",
            "endDate": "2025-09-07T00:00:00Z",
            "value": 1055.4375
          },
          {
            "startDate": "2025-09-05T00:00:00Z",
            "endDate": "2025-09-06T00:00:00Z",
            "value": 993.9375
          },
          {
            "startDate": "2025-09-04T00:00:00Z",
            "endDate": "2025-09-05T00:00:00Z",
            "value": 1056.625
          },
          {
            "startDate": "2025-09-03T00:00:00Z",
            "endDate": "2025-09-04T00:00:00Z",
            "value": 928.0625
          },
          {
            "startDate": "2025-09-02T00:00:00Z",
            "endDate": "2025-09-03T00:00:00Z",
            "value": 924.5
          },
          {
            "startDate": "2025-09-01T00:00:00Z",
            "endDate": "2025-09-02T00:00:00Z",
            "value": 893.8125
          },
          {
            "startDate": "2025-08-31T00:00:00Z",
            "endDate": "2025-09-01T00:00:00Z",
            "value": 1083.75
          },
          {
            "startDate": "2025-08-30T00:00:00Z",
            "endDate": "2025-08-31T00:00:00Z",
            "value": 1071
          },
          {
            "startDate": "2025-08-29T00:00:00Z",
            "endDate": "2025-08-30T00:00:00Z",
            "value": 896.125
          },
          {
            "startDate": "2025-08-28T00:00:00Z",
            "endDate": "2025-08-29T00:00:00Z",
            "value": 1059.9375
          },
          {
            "startDate": "2025-08-27T00:00:00Z",
            "endDate": "2025-08-28T00:00:00Z",
            "value": 920.8125
          },
          {
            "startDate": "2025-08-26T00:00:00Z",
            "endDate": "2025-08-27T00:00:00Z",
            "value": 1120.8125
          },
          {
            "startDate": "2025-08-25T00:00:00Z",
            "endDate": "2025-08-26T00:00:00Z",
            "value": 1081.8125
          },
          {
            "startDate": "2025-08-24T00:00:00Z",
            "endDate": "2025-08-25T00:00:00Z",
            "value": 1062.125
          },
          {
            "startDate": "2025-08-23T00:00:00Z",
            "endDate": "2025-08-24T00:00:00Z",
            "value": 1007
          },
          {
            "startDate": "2025-08-22T00:00:00Z",
            "endDate": "2025-08-23T00:00:00Z",
            "value": 1035.625
          },
          {
            "startDate": "2025-08-21T00:00:00Z",
            "endDate": "2025-08-22T00:00:00Z",
            "value": 963
          },
          {
            "startDate": "2025-08-20T00:00:00Z",
            "endDate": "2025-08-21T00:00:00Z",
            "value": 942.5
          },
          {
            "startDate": "2025-08-19T00:00:00Z",
            "endDate": "2025-08-20T00:00:00Z",
            "value": 1007.4375
          },
          {
            "startDate": "2025-08-18T00:00:00Z",
            "endDate": "2025-08-19T00:00:00Z",
            "value": 1032.4375
          },
          {
            "startDate": "2025-08-17T00:00:00Z",
            "endDate": "2025-08-18T00:00:00Z",
            "value": 919.3125
          },
          {
            "startDate": "2025-08-16T00:00:00Z",
            "endDate": "2025-08-17T00:00:00Z",
            "value": 864.375
          },
          {
            "startDate": "2025-08-15T00:00:00Z",
            "endDate": "2025-08-16T00:00:00Z",
            "value": 974.9375
          },
          {
            "startDate": "2025-08-14T00:00:00Z",
            "endDate": "2025-08-15T00:00:00Z",
            "value": 872.8125
          },
          {
            "startDate": "2025-08-13T00:00:00Z",
            "endDate": "2025-08-14T00:00:00Z",
            "value": 824.6875
          },
          {
            "startDate": "2025-08-12T00:00:00Z",
            "endDate": "2025-08-13T00:00:00Z",
            "value": 936.0625
          },
          {
            "startDate": "2025-08-11T00:00:00Z",
            "endDate": "2025-08-12T00:00:00Z",
            "value": 873.1875
          },
          {
            "startDate": "2025-08-10T00:00:00Z",
            "endDate": "2025-08-11T00:00:00Z",
            "value": 1134.125
          }
        ]
      }
      

      Mit dem folgenden JSONata-Ausdruck bekomme ich auch die Werte des aktuellen Monats, leider sind die verkehrt herum sortiert. An erster Stelle steht jetzt der letzte Tag (also in dem Fall der 19.09.2025) ich möchte das JSON aber so haben das es mit dem 01.09 beginnt (also in dem Fall müsste 0.89 an erster Stelle stehen).

      Hier der JSONata Ausdruck:

      data[$substring(startDate, 0, 7) = $substring($now(), 0, 7)].value.($ / 1000 ~> $round(2))
      

      und hier das Ergebnis:

      [
        1,
        1,
        1.06,
        1.01,
        1.22,
        1.05,
        1.1,
        1.06,
        1.02,
        1.13,
        0,
        2.23,
        0.97,
        1.06,
        0.99,
        1.06,
        0.93,
        0.92,
        0.89
      ]
      

      Ich bekomms einfach hin hin, das die Ergebnisse genau andersrum im JSON stehen.

      Hat einer eine Idee?

      Marc Berg 1 Reply Last reply Reply Quote 0
      • Marc Berg
        Marc Berg Most Active @icebear last edited by Marc Berg

        @icebear sagte in JSONata hilfe bei sortierung erbeten:

        Hat einer eine Idee?

        So wird' nach Datum sortiert:

        data[$substring(startDate, 0, 7) = $substring($now(), 0, 7)]^(startDate).value.($ / 1000 ~> $round(2))
        

        oder einfach nur "andersrum":

        $reverse(data[$substring(startDate, 0, 7) = $substring($now(), 0, 7)].value.($ / 1000 ~> $round(2)))
        
        icebear 1 Reply Last reply Reply Quote 0
        • icebear
          icebear @Marc Berg last edited by

          @marc-berg

          Perfekt, vielen Dank dafür.

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

          Support us

          ioBroker
          Community Adapters
          Donate

          617
          Online

          32.1k
          Users

          80.7k
          Topics

          1.3m
          Posts

          2
          3
          45
          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