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. Skripten / Logik
  4. JavaScript
  5. Gelöst: Sein oder nicht sein, öhm Json oder nicht ;-)

NEWS

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

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

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

Gelöst: Sein oder nicht sein, öhm Json oder nicht ;-)

Geplant Angeheftet Gesperrt Verschoben JavaScript
11 Beiträge 6 Kommentatoren 383 Aufrufe 2 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.
  • M mendikant

    Ich möchte einen Datenpunkt für meine Viessmann Heizung setzen. Die Viessmann Api erwartet an der Stelle ein JSON-Object.
    Nennt man das so?

    Im Folgenden mein Testaufbau. die var Temp_Diff ziehe ich mir natürlich produktiv aus einer Rechnung.

    var Temp_Diff = 2
    const Kurve = {"slope":0.4,"shift":Temp_Diff};
    const KKurve = JSON.stringify(Kurve);
    setState("viessmannapi.0.XXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue",KKurve);
    

    Wenn ich "Kurve" in den Setstate schreibe, bekomme ich von der Api zurück, dass ich bitte einen json setzen soll.
    Bei KKurve meckert die API nicht, offensichtlich ist es also ein JSON geworden.

    ABER: Das Logfile vom Iobroker Javascript sagt mir dann:
    You are assigning a string to the state "viessmannapi.0.XXXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue" which expects a object. Please fix your code to use a object or change the state type to string. This warning might become an error in future versions.

    Ist das jetzt nen String oder nicht? Muss ich da für die Zukunft was beachten?

    Danke und Gruß

    Mendikant

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

    @mendikant sagte: Please fix your code to use a object

    Lass JSON.stringify() weg. Der Javascript-Adapter wandelt es selbst in ein JSON, wenn der Datenpunkt vom Typ "object" ist.

    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
    • M mendikant

      Ich möchte einen Datenpunkt für meine Viessmann Heizung setzen. Die Viessmann Api erwartet an der Stelle ein JSON-Object.
      Nennt man das so?

      Im Folgenden mein Testaufbau. die var Temp_Diff ziehe ich mir natürlich produktiv aus einer Rechnung.

      var Temp_Diff = 2
      const Kurve = {"slope":0.4,"shift":Temp_Diff};
      const KKurve = JSON.stringify(Kurve);
      setState("viessmannapi.0.XXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue",KKurve);
      

      Wenn ich "Kurve" in den Setstate schreibe, bekomme ich von der Api zurück, dass ich bitte einen json setzen soll.
      Bei KKurve meckert die API nicht, offensichtlich ist es also ein JSON geworden.

      ABER: Das Logfile vom Iobroker Javascript sagt mir dann:
      You are assigning a string to the state "viessmannapi.0.XXXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue" which expects a object. Please fix your code to use a object or change the state type to string. This warning might become an error in future versions.

      Ist das jetzt nen String oder nicht? Muss ich da für die Zukunft was beachten?

      Danke und Gruß

      Mendikant

      T Nicht stören
      T Nicht stören
      ticaki
      schrieb am zuletzt editiert von ticaki
      #3

      @mendikant

      Soweit mir bekannt ist wird ein Json mit JSON.stringify in einen State geschrieben mit common.type = 'string', common.role = 'json'

      https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/stateroles.md#common

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      paul53P 1 Antwort Letzte Antwort
      1
      • T ticaki

        @mendikant

        Soweit mir bekannt ist wird ein Json mit JSON.stringify in einen State geschrieben mit common.type = 'string', common.role = 'json'

        https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/stateroles.md#common

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

        @ticaki sagte: common.type = 'string', common.role = 'json'

        Ja, aber offenbar ist der Datenpunkt vom Typ "object" (vom Adapter so vorgegeben?).

        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
        • M mendikant

          Ich möchte einen Datenpunkt für meine Viessmann Heizung setzen. Die Viessmann Api erwartet an der Stelle ein JSON-Object.
          Nennt man das so?

          Im Folgenden mein Testaufbau. die var Temp_Diff ziehe ich mir natürlich produktiv aus einer Rechnung.

          var Temp_Diff = 2
          const Kurve = {"slope":0.4,"shift":Temp_Diff};
          const KKurve = JSON.stringify(Kurve);
          setState("viessmannapi.0.XXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue",KKurve);
          

          Wenn ich "Kurve" in den Setstate schreibe, bekomme ich von der Api zurück, dass ich bitte einen json setzen soll.
          Bei KKurve meckert die API nicht, offensichtlich ist es also ein JSON geworden.

          ABER: Das Logfile vom Iobroker Javascript sagt mir dann:
          You are assigning a string to the state "viessmannapi.0.XXXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue" which expects a object. Please fix your code to use a object or change the state type to string. This warning might become an error in future versions.

          Ist das jetzt nen String oder nicht? Muss ich da für die Zukunft was beachten?

          Danke und Gruß

          Mendikant

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

          @mendikant sagte: bekomme ich von der Api zurück, dass ich bitte einen json setzen soll.

          Dann ist es ein Fehler des Adapters, denn im Datenpunkt steht ein JSON.

          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

          M 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @mendikant sagte: bekomme ich von der Api zurück, dass ich bitte einen json setzen soll.

            Dann ist es ein Fehler des Adapters, denn im Datenpunkt steht ein JSON.

            M Offline
            M Offline
            mendikant
            schrieb am zuletzt editiert von
            #6

            @paul53

            wie geschrieben: Ohne den Stringify meckert die Api:

            viessmannapi.0   2023-09-28 13:23:32.950	  info	Please use a valid JSON: {"slope": x, "shift": y}
            viessmannapi.0  2023-09-28 13:23:32.949	  error	SyntaxError: Unexpected token o in JSON at position 1
            

            Mit Stringify meckert der JS Adapter, aber die API nimmt die Werte an.

            javascript.02023-09-28 13:25:40.970	warn	You are assigning a string to the state "viessmannapi.0.XXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue" which expects a object. Please fix your code to use a object or change the state type to string. This warning might become an error in future versions.
            

            Hier nochmal die Eigenschaften des Datenpunktes.

            {
              "type": "state",
              "common": {
                "name": "Einstellungen sind hier änderbar / You can change the settings here",
                "role": "value",
                "type": "object",
                "write": true,
                "read": true,
                "param": [
                  {
                    "param": "slope",
                    "type": "number",
                    "min": 0.2,
                    "max": 3.5
                  },
                  {
                    "param": "shift",
                    "type": "number",
                    "min": -13,
                    "max": 40
                  }
                ]
              },
              "native": {},
              "from": "system.adapter.viessmannapi.0",
              "user": "system.user.admin",
              "ts": XXXXXXXX,
              "_id": "viessmannapi.0.XXXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue",
              "acl": {
                "object": 1636,
                "state": 1636,
                "file": 1632,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator"
              }
            }
            

            Also Issue beim JS Adapter aufmachen?

            VG
            Mendikant

            mickymM 1 Antwort Letzte Antwort
            0
            • M mendikant

              @paul53

              wie geschrieben: Ohne den Stringify meckert die Api:

              viessmannapi.0   2023-09-28 13:23:32.950	  info	Please use a valid JSON: {"slope": x, "shift": y}
              viessmannapi.0  2023-09-28 13:23:32.949	  error	SyntaxError: Unexpected token o in JSON at position 1
              

              Mit Stringify meckert der JS Adapter, aber die API nimmt die Werte an.

              javascript.02023-09-28 13:25:40.970	warn	You are assigning a string to the state "viessmannapi.0.XXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue" which expects a object. Please fix your code to use a object or change the state type to string. This warning might become an error in future versions.
              

              Hier nochmal die Eigenschaften des Datenpunktes.

              {
                "type": "state",
                "common": {
                  "name": "Einstellungen sind hier änderbar / You can change the settings here",
                  "role": "value",
                  "type": "object",
                  "write": true,
                  "read": true,
                  "param": [
                    {
                      "param": "slope",
                      "type": "number",
                      "min": 0.2,
                      "max": 3.5
                    },
                    {
                      "param": "shift",
                      "type": "number",
                      "min": -13,
                      "max": 40
                    }
                  ]
                },
                "native": {},
                "from": "system.adapter.viessmannapi.0",
                "user": "system.user.admin",
                "ts": XXXXXXXX,
                "_id": "viessmannapi.0.XXXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue",
                "acl": {
                  "object": 1636,
                  "state": 1636,
                  "file": 1632,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                }
              }
              

              Also Issue beim JS Adapter aufmachen?

              VG
              Mendikant

              mickymM Offline
              mickymM Offline
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #7

              @mendikant Ändere halt einfach den Datenpunkt auf string oder json und nutze stringify. Ich schreibe Objekte auch immer als string in Datenpunkte.

              af6492ba-d22e-4992-84b2-1fdc216ccbec-image.png

              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
              0
              • mickymM mickym

                @mendikant Ändere halt einfach den Datenpunkt auf string oder json und nutze stringify. Ich schreibe Objekte auch immer als string in Datenpunkte.

                af6492ba-d22e-4992-84b2-1fdc216ccbec-image.png

                M Offline
                M Offline
                mendikant
                schrieb am zuletzt editiert von
                #8

                @mickym Danke, so geht es. Auf die Idee hätte ich kommen können....

                1 Antwort Letzte Antwort
                0
                • R Offline
                  R Offline
                  Robert 6
                  schrieb am zuletzt editiert von
                  #9

                  Hallo
                  hier steig ich leider aus: "Ändere halt einfach den Datenpunkt auf string oder json und nutze stringify. Ich schreibe Objekte auch immer als string in Datenpunkte."
                  Wie bzw. Wo kann ich "einfach" den Datenpunkt ändern?

                  grafik.png

                  HomoranH 1 Antwort Letzte Antwort
                  0
                  • R Robert 6

                    Hallo
                    hier steig ich leider aus: "Ändere halt einfach den Datenpunkt auf string oder json und nutze stringify. Ich schreibe Objekte auch immer als string in Datenpunkte."
                    Wie bzw. Wo kann ich "einfach" den Datenpunkt ändern?

                    grafik.png

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #10

                    @Robert-6 sagte in Gelöst: Sein oder nicht sein, öhm Json oder nicht ;-):

                    Wie bzw. Wo kann ich "einfach" den Datenpunkt ändern?

                    Expertenmodus - Bleistift rechts außen

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Antwort Letzte Antwort
                    0
                    • R Offline
                      R Offline
                      Robert 6
                      schrieb am zuletzt editiert von
                      #11

                      Easy - wenn man weiß wie - vielen Dank

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


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      594

                      Online

                      32.5k

                      Benutzer

                      81.6k

                      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