Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Java Script - Objekt JSON

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Java Script - Objekt JSON

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

      Hallo Forum,

      ich würde gerne ein JSON Objekt als Datenspeicher nutzen. Das Datenformat habe ich in den Objekten angelegt und entsprechend angepasst. Die Werte "erzeugteLeistungHeute"... möchte ich per Java Script bearbeiten.

      Im Script müsste ich den Wert aus dem JSON File zunächst lesen, dann bearbeiten und letztlich zurückschreiben. Ist das überhaupt möglich? Gibt es ein einfaches Beispiel? Danke dafür!

      {
        "common": {
          "name": "jsonPVdata",
          "desc": "Manuell erzeugt",
          "role": "state",
          "type": "json",
          "read": true,
          "write": true
        },
        "type": "state",
        "native": {},
        "_id": "javascript.0.VarTracePV-Anlage.jsonPVdata",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator",
          "erzeugteLeistungHeute": 0,
          "erzeugteLeistungGestern": 0,
          "erzeugteLeistungWoche": 0,
          "erzeugteLeistungMonat": 0
        },
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1738592436301
      }
      

      MOD-EDIT: Code in code-tags gesetzt!

      paul53 OliverIO 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @SchmidiV last edited by

        @schmidiv sagte: in den Objekten angelegt und entsprechend angepasst.

        Diese "Anpassung" ist unzulässig!
        Zur die Ermittlung von Periodenwerten der Energie dient der Sourceanalytix-Adapter.

        1 Reply Last reply Reply Quote 0
        • S
          SchmidiV last edited by

          @paul53 said in Java Script - Objekt JSON:

          Diese "Anpassung" ist unzulässig!

          Fehlermeldung kam keine und JSON ist ein frei definierbarer Datentyp. Funktioniert das so überhaupt nicht oder gibt es Möglichkeiten?

          paul53 Codierknecht 2 Replies Last reply Reply Quote 0
          • paul53
            paul53 @SchmidiV last edited by paul53

            @schmidiv sagte: JSON ist ein frei definierbarer Datentyp.

            Ja, wenn der Datenpunkt-Wert ein JSON enthalten soll, ist das in Ordnung. Das Datenpunkt-Objekt darf nicht unter "acl" manipuliert werden. Außerdem erstellt man eigene Datenpunkte unter "0_userdata.0".
            Sourceanalytix erzeugt für "erzeugteEnergieHeute", "erzeugteEnergieGestern", "erzeugteEnergieWoche" und "erzeugteEnergieMonat" getrennte Datenpunkte. Das hat den Vorteil, dass die Periodenwerte historisiert und im Chart dargestellt werden können. Der Datenspeicher ist die History-DB.

            1 Reply Last reply Reply Quote 0
            • T
              ticaki Developer last edited by ticaki

              Wenn man im Objekt etwas einfügen will gehört das nach native alles andere ist definiert. Aber Datenpunkt ist definitiv die bessere Wahl. Im native "versteckt" man Daten die niemanden interessieren und intern im Adapter/Skript verwendet werden. 🙂

              mit JSON.Parse() JSON.stringify() kann man JSONs in String-Datenpunkte mit der role: 'json' schreiben.

              1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @SchmidiV last edited by Codierknecht

                @schmidiv sagte in Java Script - Objekt JSON:

                JSON ist ein frei definierbarer Datentyp

                Ja - aber man manipuliert keine JSON-Struktur, die andere (ioBroker) sich ausgedacht haben.
                Eigene Inhalte kommen in den Inhalt eines DP.

                Den kann man - wie @ticaki schon schrieb - mit JSON.parse() auslesen, manipulieren und mit JSON.stringify() wieder in einen String wandeln und zurückschreiben.
                Der Typ "string" hat den Vorteil, dass man da auch mal schnell "mit der Hand am Arm" eingreifen kann.

                Ansonsten würde auch ich eher Sourceanalytics empfehlen. Der ist genau für sowas gemacht.

                T 1 Reply Last reply Reply Quote 0
                • T
                  ticaki Developer @Codierknecht last edited by

                  @codierknecht
                  Die role: 'json' sorgt dafür das der Admin das hübsch formatiert zum manuellen Editieren. Falls du es nicht wusstest. 🙂

                  1 Reply Last reply Reply Quote 2
                  • OliverIO
                    OliverIO @SchmidiV last edited by

                    @schmidiv

                    Da es jetzt noch nicht so deutlich da stand.
                    Du legst einen Datenpunkt unter 0_userdata mit Typ String/Text an
                    Den Wert kannst du mit getState und setState lesen und schreiben.
                    Ein json Objekt das als Text vorliegt kannst du mit JSON.parse in ein Objekt umwandeln und vor dem Schreiben wieder mit JSON.stringify in Text umwandeln.

                    Das ist einfacher wie mit getObject und extendObject zu hantieren.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    720
                    Online

                    31.8k
                    Users

                    80.0k
                    Topics

                    1.3m
                    Posts

                    5
                    8
                    215
                    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