Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JSON-Objekt im RAM allokieren

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    917

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

JSON-Objekt im RAM allokieren

Scheduled Pinned Locked Moved Skripten / Logik
3 Posts 2 Posters 153 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    legro
    wrote on last edited by legro
    #1

    Mal wieder bin ich am Verzweifeln. JavaScript mag anscheinend mich nicht und ich mag JavaScript nicht.

    Was ich gerne möchte ..

    Ein in den Objekten von ioBroker als JSON gespeichertes Chart von FlexCharts möchte ich als Objekt im RAM (via JSON.parse(getState(ID_Chart).val) allokieren, es per Code ändern und mittels setState(ID_Chart,JSON.stringify(Chart),true) wieder als JSON in den Datenpunkt zurückschreiben.

    Dieses Vorgehen habe ich bei der Umsetzung anderer Objekt gleich mehrfach erfolgreich angewandt. In diesem Beispiel ..

    {
      "tooltip": {
        "trigger": "axis",
        "axisPointer": {
          "type": "shadow"
        }
      },
      "legend": {},
      "xAxis": [
        {
          "type": "category",
          "data": [
            "Montag",
            "Dienstag",
            "Mittwoch",
            "Donnerstag",
            "Freitag",
            "Samstag",
            "Sonntag"
          ]
        }
      ],
      "yAxis": [
        {
          "type": "value",
          axisLabel: {
            formatter: '{value} KWh'
          }
        }
      ],
      "dataZoom": [
        {
          "show": true,
          "start": 0,
          "end": 100
        }
      ],
      "series": [
        {
          "name": „Netzbezug",
          "type": "bar",
          "color": "#a30000",
          "stack": "Supply",
          "data": [
            8,
            19,
            21,
            50,
            26,
            0,
            36
          ]
        },
        {
          "name": "PV",
          "type": "bar",
          "color": "#00a300",
          "stack": "Supply",
          "data": [
            30,
            32,
            20,
            8,
            33,
            21,
            36
          ]
        },
        {
          "name": „Hausverbrauch",
          "type": "bar",
          "color": "#0000a3",
          "stack": "Consumption",
          "data": [
            16,
            12,
            11,
            13,
            14,
            9,
            12
          ]
        },
        {
          "name": „Wärmepumpe",
          "type": "bar",
          "color": "#0000ff",
          "stack": "Consumption",
          "data": [
            22,
            24,
            30,
            20,
            22,
            12,
            25
          ]
        },
        {
          "name": "Wallbox",
          "type": "bar",
          "color": "#00a3a3",
          "stack": "Consumption",
          "data": [
            0,
            15,
            0,
            25,
            23,
            0,
            35
          ]
        }
      ]
    }
    

    .. will es mir einfach nicht gelingen.:disappointed:

    Zum Testen habe ich folgendes versucht ..

    e804d7f2-f73d-446c-95a3-438d416833ed-image.png

    .. wobei GenChart zum Testen einfach bloß als return getState(ID_Chart).val kodiert ist. Es müsste doch einfach der Inhalt des mit JSON gefüllten Datenpunktes ID_Chart zurückgegeben werden.

    Was jemand Rat?

    Raspberry Pi 5 mit 8GB + 120GB SSD + Coordinator COD-m + ioBroker ..

    M 1 Reply Last reply
    0
    • L legro

      Mal wieder bin ich am Verzweifeln. JavaScript mag anscheinend mich nicht und ich mag JavaScript nicht.

      Was ich gerne möchte ..

      Ein in den Objekten von ioBroker als JSON gespeichertes Chart von FlexCharts möchte ich als Objekt im RAM (via JSON.parse(getState(ID_Chart).val) allokieren, es per Code ändern und mittels setState(ID_Chart,JSON.stringify(Chart),true) wieder als JSON in den Datenpunkt zurückschreiben.

      Dieses Vorgehen habe ich bei der Umsetzung anderer Objekt gleich mehrfach erfolgreich angewandt. In diesem Beispiel ..

      {
        "tooltip": {
          "trigger": "axis",
          "axisPointer": {
            "type": "shadow"
          }
        },
        "legend": {},
        "xAxis": [
          {
            "type": "category",
            "data": [
              "Montag",
              "Dienstag",
              "Mittwoch",
              "Donnerstag",
              "Freitag",
              "Samstag",
              "Sonntag"
            ]
          }
        ],
        "yAxis": [
          {
            "type": "value",
            axisLabel: {
              formatter: '{value} KWh'
            }
          }
        ],
        "dataZoom": [
          {
            "show": true,
            "start": 0,
            "end": 100
          }
        ],
        "series": [
          {
            "name": „Netzbezug",
            "type": "bar",
            "color": "#a30000",
            "stack": "Supply",
            "data": [
              8,
              19,
              21,
              50,
              26,
              0,
              36
            ]
          },
          {
            "name": "PV",
            "type": "bar",
            "color": "#00a300",
            "stack": "Supply",
            "data": [
              30,
              32,
              20,
              8,
              33,
              21,
              36
            ]
          },
          {
            "name": „Hausverbrauch",
            "type": "bar",
            "color": "#0000a3",
            "stack": "Consumption",
            "data": [
              16,
              12,
              11,
              13,
              14,
              9,
              12
            ]
          },
          {
            "name": „Wärmepumpe",
            "type": "bar",
            "color": "#0000ff",
            "stack": "Consumption",
            "data": [
              22,
              24,
              30,
              20,
              22,
              12,
              25
            ]
          },
          {
            "name": "Wallbox",
            "type": "bar",
            "color": "#00a3a3",
            "stack": "Consumption",
            "data": [
              0,
              15,
              0,
              25,
              23,
              0,
              35
            ]
          }
        ]
      }
      

      .. will es mir einfach nicht gelingen.:disappointed:

      Zum Testen habe ich folgendes versucht ..

      e804d7f2-f73d-446c-95a3-438d416833ed-image.png

      .. wobei GenChart zum Testen einfach bloß als return getState(ID_Chart).val kodiert ist. Es müsste doch einfach der Inhalt des mit JSON gefüllten Datenpunktes ID_Chart zurückgegeben werden.

      Was jemand Rat?

      M Offline
      M Offline
      MCU
      wrote on last edited by MCU
      #2

      @legro Das Beispiel ist falsch. Es kann nicht geparsed werden.

      b40d6cf7-b03c-4862-b5f0-ac1b5652b7f1-image.png

      ee89bc26-168a-4380-80f2-ee2f7cbfc478-image.png

      
      {
        "tooltip": {
          "trigger": "axis",
          "axisPointer": {
            "type": "shadow"
          }
        },
        "legend": {},
        "xAxis": [
          {
            "type": "category",
            "data": [
              "Montag",
              "Dienstag",
              "Mittwoch",
              "Donnerstag",
              "Freitag",
              "Samstag",
              "Sonntag"
            ]
          }
        ],
        "yAxis": [
          {
            "type": "value",
            "axisLabel": {
              "formatter": "{value} KWh"
            }
          }
        ],
        "dataZoom": [
          {
            "show": true,
            "start": 0,
            "end": 100
          }
        ],
        "series": [
          {
            "name": "Netzbezug",
            "type": "bar",
            "color": "#a30000",
            "stack": "Supply",
            "data": [
              8,
              19,
              21,
              50,
              26,
              0,
              36
            ]
          },
          {
            "name": "PV",
            "type": "bar",
            "color": "#00a300",
            "stack": "Supply",
            "data": [
              30,
              32,
              20,
              8,
              33,
              21,
              36
            ]
          },
          {
            "name": "Hausverbrauch",
            "type": "bar",
            "color": "#0000a3",
            "stack": "Consumption",
            "data": [
              16,
              12,
              11,
              13,
              14,
              9,
              12
            ]
          },
          {
            "name": "Wärmepumpe",
            "type": "bar",
            "color": "#0000ff",
            "stack": "Consumption",
            "data": [
              22,
              24,
              30,
              20,
              22,
              12,
              25
            ]
          },
          {
            "name": "Wallbox",
            "type": "bar",
            "color": "#00a3a3",
            "stack": "Consumption",
            "data": [
              0,
              15,
              0,
              25,
              23,
              0,
              35
            ]
          }
        ]
      }
      
      

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      L 1 Reply Last reply
      1
      • M MCU

        @legro Das Beispiel ist falsch. Es kann nicht geparsed werden.

        b40d6cf7-b03c-4862-b5f0-ac1b5652b7f1-image.png

        ee89bc26-168a-4380-80f2-ee2f7cbfc478-image.png

        
        {
          "tooltip": {
            "trigger": "axis",
            "axisPointer": {
              "type": "shadow"
            }
          },
          "legend": {},
          "xAxis": [
            {
              "type": "category",
              "data": [
                "Montag",
                "Dienstag",
                "Mittwoch",
                "Donnerstag",
                "Freitag",
                "Samstag",
                "Sonntag"
              ]
            }
          ],
          "yAxis": [
            {
              "type": "value",
              "axisLabel": {
                "formatter": "{value} KWh"
              }
            }
          ],
          "dataZoom": [
            {
              "show": true,
              "start": 0,
              "end": 100
            }
          ],
          "series": [
            {
              "name": "Netzbezug",
              "type": "bar",
              "color": "#a30000",
              "stack": "Supply",
              "data": [
                8,
                19,
                21,
                50,
                26,
                0,
                36
              ]
            },
            {
              "name": "PV",
              "type": "bar",
              "color": "#00a300",
              "stack": "Supply",
              "data": [
                30,
                32,
                20,
                8,
                33,
                21,
                36
              ]
            },
            {
              "name": "Hausverbrauch",
              "type": "bar",
              "color": "#0000a3",
              "stack": "Consumption",
              "data": [
                16,
                12,
                11,
                13,
                14,
                9,
                12
              ]
            },
            {
              "name": "Wärmepumpe",
              "type": "bar",
              "color": "#0000ff",
              "stack": "Consumption",
              "data": [
                22,
                24,
                30,
                20,
                22,
                12,
                25
              ]
            },
            {
              "name": "Wallbox",
              "type": "bar",
              "color": "#00a3a3",
              "stack": "Consumption",
              "data": [
                0,
                15,
                0,
                25,
                23,
                0,
                35
              ]
            }
          ]
        }
        
        
        L Offline
        L Offline
        legro
        wrote on last edited by legro
        #3

        @mcu

        Vielen Dank für deinen Hinweis.

        Aus Verzweiflung hatte ich den Quelltext des Charts manuell eingetippt. Das hat auf Anhieb funktioniert.

        Auf deinen Hinweis hin, habe ich nun nochmals verglichen: In der Tat hatte ich die Stelle (unbewusst) korrigiert, indem ich die Zeile "formatter": .. vergaß einzugeben.:confused: Das nennt man dann wohl Glück im Unglück haben.

        Gemäß deines Hinweises habe ich das Ganze nun erfolgreich abgeändert.

        PS: Wenn man durchgängig einfache Hochkommata (') anstelle von doppelten (") verwendet, geht's auch. Allein das Mischen dieser beiden Delimeter mag ioBroker/JavaScript nicht.

        Raspberry Pi 5 mit 8GB + 120GB SSD + Coordinator COD-m + ioBroker ..

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        Support us

        ioBroker
        Community Adapters
        Donate

        526

        Online

        32.6k

        Users

        82.2k

        Topics

        1.3m

        Posts
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Home
        • Recent
        • Tags
        • Unread 0
        • Categories
        • Unreplied
        • Popular
        • GitHub
        • Docu
        • Hilfe