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. Node-Red
  5. korrektes Anlegen/Lesen von states aus node-red

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

korrektes Anlegen/Lesen von states aus node-red

Geplant Angeheftet Gesperrt Verschoben Node-Red
3 Beiträge 2 Kommentatoren 229 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.
  • R Offline
    R Offline
    rewenode
    schrieb am zuletzt editiert von rewenode
    #1

    Ich hab da mal ein Problem mit dem iob-Node-red Adapter, das ich nicht gelöst bekomme.
    Ich möchte aus node-red mit einem iob-state arbeiten, welcher ein Array of Object aufnimmt.

    Was gut ist, das klappt und ich arbeite seit langer Zeit problemlos damit.
    Was nicht so gut ist, ich mülle mir dabei das Log mit folgender Meldung zu:

    State value to set for "0_userdata.0.ArrayOfObjects" has to be stringified but received type "object"
    

    [
       {
           "id": "d527dcd47cd4eced",
           "type": "ioBroker out",
           "z": "0bb9d63c2142e02e",
           "name": "ArrayOfObjects",
           "topic": "",
           "ack": "true",
           "autoCreate": "true",
           "stateName": "ArrayOfObjectsList",
           "role": "list",
           "payloadType": "object",
           "readonly": "false",
           "stateUnit": "",
           "stateMin": "",
           "stateMax": "",
           "x": 300,
           "y": 220,
           "wires": []
       },
       {
           "id": "d7009d8b7b3cbbcf",
           "type": "inject",
           "z": "0bb9d63c2142e02e",
           "name": "inject Array and topic \\n topic = 0_userdata.0.ArrayOfObjects",
           "props": [
               {
                   "p": "payload"
               },
               {
                   "p": "topic",
                   "vt": "str"
               }
           ],
           "repeat": "",
           "crontab": "",
           "once": false,
           "onceDelay": 0.1,
           "topic": "0_userdata.0.ArrayOfObjects",
           "payload": "[{\"window\":\"Zwischentür_vorn\",\"status\":\"open\",\"ts\":\"21.04.25 08:46:31\",\"ort\":\"Aussen\"},{\"window\":\"Büro_WGn\",\"status\":\"open\",\"ts\":\"21.04.25 10:36:41\",\"ort\":\"EG\"}]",
           "payloadType": "json",
           "x": 360,
           "y": 120,
           "wires": [
               [
                   "a0f7ee98683cb2e5",
                   "d527dcd47cd4eced"
               ]
           ]
       },
       {
           "id": "a0f7ee98683cb2e5",
           "type": "debug",
           "z": "0bb9d63c2142e02e",
           "name": "plain msg",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "true",
           "targetType": "full",
           "statusVal": "",
           "statusType": "auto",
           "x": 640,
           "y": 120,
           "wires": []
       }
    ]
    

    2025-04-21_11-09-38.png

    Jetzt würde ich gern wissen, ob ich da was falsch mache bzw wie ich das vermeiden kann.
    Es ist egal, ob ich den Payload type dabei als Array oder Object einstelle.
    Natürlich kann ich das per stringify als String machen, aber das würde den Komplett flow unnötig vergrößern zumal der ja anstandslos das ArrayOfObjects speichert und ließt.

    Gruß und noch einen schönen Ostermontag

    mickymM 1 Antwort Letzte Antwort
    0
    • R rewenode

      Ich hab da mal ein Problem mit dem iob-Node-red Adapter, das ich nicht gelöst bekomme.
      Ich möchte aus node-red mit einem iob-state arbeiten, welcher ein Array of Object aufnimmt.

      Was gut ist, das klappt und ich arbeite seit langer Zeit problemlos damit.
      Was nicht so gut ist, ich mülle mir dabei das Log mit folgender Meldung zu:

      State value to set for "0_userdata.0.ArrayOfObjects" has to be stringified but received type "object"
      

      [
         {
             "id": "d527dcd47cd4eced",
             "type": "ioBroker out",
             "z": "0bb9d63c2142e02e",
             "name": "ArrayOfObjects",
             "topic": "",
             "ack": "true",
             "autoCreate": "true",
             "stateName": "ArrayOfObjectsList",
             "role": "list",
             "payloadType": "object",
             "readonly": "false",
             "stateUnit": "",
             "stateMin": "",
             "stateMax": "",
             "x": 300,
             "y": 220,
             "wires": []
         },
         {
             "id": "d7009d8b7b3cbbcf",
             "type": "inject",
             "z": "0bb9d63c2142e02e",
             "name": "inject Array and topic \\n topic = 0_userdata.0.ArrayOfObjects",
             "props": [
                 {
                     "p": "payload"
                 },
                 {
                     "p": "topic",
                     "vt": "str"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "0_userdata.0.ArrayOfObjects",
             "payload": "[{\"window\":\"Zwischentür_vorn\",\"status\":\"open\",\"ts\":\"21.04.25 08:46:31\",\"ort\":\"Aussen\"},{\"window\":\"Büro_WGn\",\"status\":\"open\",\"ts\":\"21.04.25 10:36:41\",\"ort\":\"EG\"}]",
             "payloadType": "json",
             "x": 360,
             "y": 120,
             "wires": [
                 [
                     "a0f7ee98683cb2e5",
                     "d527dcd47cd4eced"
                 ]
             ]
         },
         {
             "id": "a0f7ee98683cb2e5",
             "type": "debug",
             "z": "0bb9d63c2142e02e",
             "name": "plain msg",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "true",
             "targetType": "full",
             "statusVal": "",
             "statusType": "auto",
             "x": 640,
             "y": 120,
             "wires": []
         }
      ]
      

      2025-04-21_11-09-38.png

      Jetzt würde ich gern wissen, ob ich da was falsch mache bzw wie ich das vermeiden kann.
      Es ist egal, ob ich den Payload type dabei als Array oder Object einstelle.
      Natürlich kann ich das per stringify als String machen, aber das würde den Komplett flow unnötig vergrößern zumal der ja anstandslos das ArrayOfObjects speichert und ließt.

      Gruß und noch einen schönen Ostermontag

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

      @rewenode meines Erachtens war es schon immer so, dass du alle Objekte als JSON Strings im iob speichern bzw. auslesen musst. Deshalb halr einfach eine JSON Node vor die iobroker-out und hinter iobroker-in schalten. Das war meines Erachtens schon immer so.

      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.

      R 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @rewenode meines Erachtens war es schon immer so, dass du alle Objekte als JSON Strings im iob speichern bzw. auslesen musst. Deshalb halr einfach eine JSON Node vor die iobroker-out und hinter iobroker-in schalten. Das war meines Erachtens schon immer so.

        R Offline
        R Offline
        rewenode
        schrieb am zuletzt editiert von
        #3

        @mickym Ja, war schon immer so. Da es auch ohne stringify bis auf den Logeintrag klappt hatte ich gehofft, dass ist irgend eine Einstellungssache.
        Da werde ich meine Flows mal anpassen bevor die implizite Konvertierung in zukünftigen Versionen mal wegfällt.

        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

        662

        Online

        32.6k

        Benutzer

        82.0k

        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