Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Guest last edited by

      @noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

      @mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

      @noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

      @noah3112 Sorry das stimmt so nicht bei einigen Sensoren bzw Aktoren sind mehrere Daten vorhanden. Kann es sein das ich einfach nur warten muss bis alle mal gesendet haben?

      ggf. - das hat aber mit diesem Thema nichts zu tun - ist, dass Du im zigbee2mqtt die availabilty Option zu nutzen.

      Sorry das meinte ich.

      Na das hat nichts mit der availabilty zu tun - aber Du kannst ein Update der states erzwingen, wenn Du einen get Datenpunkt erstellst:

      https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html#zigbee2mqtt-friendly-name-get

      Wenn Du get mit leerem state setzt, kannst Du quasi ein Update des Status via mqtt erzwingen:

      36205a92-b0c3-4bd4-a674-6d3c81e54301-image.png

      ? 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @Guest last edited by

        @noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

        @noah3112 Bin erst seit kurzem mit zigbee2mqtt unterwegs. Ich hatte sehr viele Probleme mit dem zigbee Adapter und bin bis jetzt sehr angetan. Allerdingt fehlt die Langzeiterfahrung und was damit alles geht.

        Ja da bist Du nicht der Erste. In meinen Augen ist es in diesem Fall sogar ein Vorteil unabhängig von iobroker Updates zu sein. 😉

        ? 1 Reply Last reply Reply Quote 0
        • ?
          A Former User @mickym last edited by

          @mickym Okay ich verstehe, quasi ein manuelles anstoßen um Daten zu erhalten, gut zu wissen 👍

          mickym 1 Reply Last reply Reply Quote 0
          • ?
            A Former User @mickym last edited by

            @mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

            @noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

            @mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

            @noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

            @noah3112 Sorry das stimmt so nicht bei einigen Sensoren bzw Aktoren sind mehrere Daten vorhanden. Kann es sein das ich einfach nur warten muss bis alle mal gesendet haben?

            ggf. - das hat aber mit diesem Thema nichts zu tun - ist, dass Du im zigbee2mqtt die availabilty Option zu nutzen.

            Sorry das meinte ich.

            Na das hat nichts mit der availabilty zu tun - aber Du kannst ein Update der states erzwingen, wenn Du einen get Datenpunkt erstellst:

            https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html#zigbee2mqtt-friendly-name-get

            Wenn Du get mit leerem state setzt, kannst Du quasi ein Update des Status via mqtt erzwingen:

            36205a92-b0c3-4bd4-a674-6d3c81e54301-image.png

            Das mit dem zitieren muss ich noch lernen 😊

            1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @Guest last edited by

              @noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

              @mickym Okay ich verstehe, quasi ein manuelles anstoßen um Daten zu erhalten, gut zu wissen 👍

              Genau, wenn Du also ein Update willst einfach ein get unter dem friendlyName mit {"state": ""} publishen und Du bekommst ein Update.

              1 Reply Last reply Reply Quote 0
              • ?
                A Former User @mickym last edited by A Former User

                @mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

                @noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

                @noah3112 Bin erst seit kurzem mit zigbee2mqtt unterwegs. Ich hatte sehr viele Probleme mit dem zigbee Adapter und bin bis jetzt sehr angetan. Allerdingt fehlt die Langzeiterfahrung und was damit alles geht.

                Ja da bist Du nicht der Erste. In meinen Augen ist es in diesem Fall sogar ein Vorteil unabhängig von iobroker Updates zu sein. 😉

                Ungelogen ich musste jeden Tag mindestens 2 Sensoren wieder anlernen. Unerklärliche Abstürze obwohl keine Änderungen vorgenommen wurden. Ohne Änderungen ist der Adapter wieder gelaufen. Das war nur ein kleiner Einblick der Probleme. Hab lange mit mir gerungen diesen Schritt zu gehen. Bei inzwischen 109 Zigbee Geräten ist es schon ein bissel Arbeit 😉 Aber es ist geschafft...zumindest das anlernen.

                1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @Guest last edited by mickym

                  @noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

                  @noah3112 Bin erst seit kurzem mit zigbee2mqtt unterwegs. Ich hatte sehr viele Probleme mit dem zigbee Adapter und bin bis jetzt sehr angetan. Allerdingt fehlt die Langzeiterfahrung und was damit alles geht.

                  Etwas was mir sehr positiv aufgefallen ist, gerade bei Lampen, dass Du das Einschaltverhalten steuern kannst. Mit dem Zigbee adapter sind nach Stromausfall immer meine Lampen angegangen. Das kann man zwar mit einem Send-Command irgendwie einstellen, aber das gibt es dort direkt einzustellen:

                  951d4279-f89e-4309-b567-5a202a0cef8f-image.png

                  Stabiltät der Verbindungen ist auch besser und das Anlernen ging auch schneller, obwohl ja "eigentlich" die gleiche Technik dahinter steckt. Aber das ist hier off-topic-. Ausserdem wurde der conbee2 Stick bis vor einigen Monaten nicht offiziell unterstützt wurde, das zigbee2mqtt hat es aber getan und mir war das dann irgendwann zu blöd, dass man keine Hilfe bekommt, weil man halt ein nicht unterstütztes Gerät benutzt.

                  ? 2 Replies Last reply Reply Quote 0
                  • ?
                    A Former User @mickym last edited by A Former User

                    @mickym Ich finde das ganze Handling einfach und intuitiv. Ja ich weiß im Prinzip soll es der Zigbee Adapter nichts anderes sein. Aber das Teil läuft einfach besser. Ich habe auf meinen Proxmox System einen LXC Container nur für zigbee2mqtt laufen. Lies sich super leicht einrichten. Selbst das durchreichen des Sticks war kein Problem.

                    mickym 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @Guest last edited by

                      @noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

                      @mickym Ich finde das ganze Handling einfach und intuitiv. Ja ich weiß im Prinzip soll es der Zigbee Adapter nichts anderes sein. Aber das Teil läuft einfach besser. Ich habe auf meinen Proxmox System einen LXC Container nur für zigbee2mqtt laufen. Lies sich super leicht einrichten. Selbst das durchreichen des Sticks war kein Problem.

                      Na um wieder zum Thema zurück zu kommen, dann habe ich ja mit dem Aufbohren des Subflows einen richtigen Mehrwert geschaffen. 😉

                      ? 2 Replies Last reply Reply Quote 0
                      • ?
                        A Former User @mickym last edited by

                        @mickym So ich glaube ich muss mal kurz die Augen zu machen iss schon bissel spät 😉 Ich weiß nicht wie oft ich mich schon bei dir bedankt habe. Macht Spaß dich um Hilfe zu bitten. Man wird nicht gleich nieder gemacht wenn man etwas nicht verstanden hat...DANKE und gute Nacht

                        1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User @mickym last edited by

                          @mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

                          @noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

                          @mickym Ich finde das ganze Handling einfach und intuitiv. Ja ich weiß im Prinzip soll es der Zigbee Adapter nichts anderes sein. Aber das Teil läuft einfach besser. Ich habe auf meinen Proxmox System einen LXC Container nur für zigbee2mqtt laufen. Lies sich super leicht einrichten. Selbst das durchreichen des Sticks war kein Problem.

                          Na um wieder zum Thema zurück zu kommen, dann habe ich ja mit dem Aufbohren des Subflows einen richtigen Mehrwert geschaffen. 😉

                          Ja das hast du 👍

                          1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User @mickym last edited by

                            @mickym Ich muss mich nochmal zum Thema melden 😉 Diese Fehlermeldung kommt hin und wieder...

                            Fehler.png

                            Hast du ein Tipp wie ich dem Verursacher auf die Schliche komme?

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @Guest last edited by mickym

                              @noah3112 Das ist Deine mqtt-IN Node - da hast wahrscheinlich angegeben, dass es sich um ein analysiertes JSON Objekt handelt.

                              bc3bbca0-c313-4237-9707-082a99708bd3-image.png

                              Du musst das nur wieder auf String und Buffer umstellen - der Subflow wandelt Strings automatisch um. Das Problem mit der Analyse eines analysierten JSON Objektes der mqtt-In Node schmeisst den Fehler bei Analyse des Objekts bei normalen Strings. Ich hab das im Node Red Forum schon moniert und hoffe, dass es in der Version 3 behoben wird. Also einfach wieder auf String und Buffer umstellen.

                              Falls es Dich interessiert habe ich das Problem hier beschrieben.
                              https://discourse.nodered.org/t/improvement-of-mqtt-in-nodes/55445/17

                              Falls Du in anderen Situationen trotzdem die Funktion des analysierten JSON Objektes in Deiner mqtt-IN Node nutzen willst und aber auch teilweise Strings hast, dann kann man dass auch mit einer Catch NOde abfangen. In dem Fall kann aber der Subflow damit umgehen, da die erste Switch Node sogar den Typ JSON String kennt. 😉

                              Grundsätzlich kannst Du dich schon verlassen, welche Node einen Fehler verursacht:

                              f73f675a-df9b-4fc3-9a50-1c811db3e033-image.png

                              Also die Node "zigbee2mqtt to iobroker"

                              Also lange Rede - kurzer Sinn - einfach wieder auf Auto-Erkennung (string or buffer) umstellen.

                              ? mickym 2 Replies Last reply Reply Quote 0
                              • ?
                                A Former User @mickym last edited by

                                @mickym Kaum macht man es richtig und schon ist wieder Ruhe 😉 Dankeschön...mal wieder
                                PS: Woher die Meldung kam war mir klar. Ich dachte nur weil es nicht ständig passierte das einer der eingelesenen Datenpunkte den Fehler verursacht. Okay falsch gedacht und dazu gelernt.

                                mickym 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @Guest last edited by mickym

                                  @noah3112 sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

                                  Ich dachte nur weil es nicht ständig passierte das einer der eingelesenen Datenpunkte den Fehler verursacht. Okay falsch

                                  Na ja alle Datenpunkte mit "normalen" Strings haben den Fehler verursacht. Wenn Du diese Diskussion in dem Thread nachverfolgst, sind die Entwickler davon ausgegangen, dass man immer wüßte welche Datentypen eingelesen werden - als entweder JSON Strings oder normale Strings. Das man mit Wildcards ganz unterschiedliche Datentypen einlesen kann, hatten sie nicht auf dem Schirm bzw. wollten bewußt einen Fehler erzeugen, dass ein String eben kein analysierbares JSON Objekt ist. Mit den anderen Datentypen hatten sie damit kein Problem (was ich dann als inkonsequent moniert hatte). Wie Du aber an dem Thread erkennen kannst, haben sie doch ein Einsehen - anscheinend haben sie in der kommenden NodeRed Version 3.0 auch generell einiges an den mqtt-Nodes gemacht. Ich hab da im Moment auch einiges komisches Verhalten entdeckt, was angeblich ab der Version 3 behoben ist. Wir werden dann nur wieder unsere iobroker Entwickler überzeugen müssen, dass sie über den Adapter uns diese Version zur Verfügung in einem absehbaren Zeitraum zur Verfügung stellen. Im Moment ist es immer noch Beta. Aber es kommen Dinge die sehr nützlich sind. So wird man Flows im Editor anhalten kann - um zum Beispiel Probleme zu beheben - ohne das man Node Red komplett neu starten muss. ....

                                  1 Reply Last reply Reply Quote 0
                                  • F
                                    Frank579 @mickym last edited by

                                    Hallo @mickym,
                                    erst mal Danke für den Flow, habe aber noch ein paar Probleme die bestimmt vor dem Bildschirm sitzen 😉 zu aller erst mal das sind meine ersten steh und geh versuche mit NodeRed, also bitte nicht schlagen 😂
                                    habe vor nach und nach alles auf Mqtt zu ändern, da sich so einiges angesammelt hat (sonoff, schelly, owtrack,....) evtl.dann im Winter noch Zigbee.
                                    Habe am Wochenende mal einen Test IOBoker aufgesetzt, um mal zu schauen was auf mich zu kommt...
                                    Habe jetzt den Flow mal soweit eingerichtet, läuft auch fast gut. Als Topic habe ich erstmal nur # genommen, macht das sinn? möchte ja im Prinzip erst alles haben, oder mache ich besser für jedes Gerät der jede Gruppe einen eigenen Flow. Bekomme einige Fehler im Log da er alle States als readonly anlegt, das muss ich bestimmt irgendwo ändern, nur wo ?
                                    dann habe ich bei den shellys ein komisches verhalten, da legt er 2 Ordner für jeden shelly an habe mal ein par Bilder angefügt wie es unter Userdata.0 aussieht und im MQTT Adapter. Bestimmt ist da auch nu was falsch eingestellt 🙈
                                    Hier erst mal die Bilder
                                    Userdata.0
                                    userdata.PNG
                                    MQTT Adapter
                                    mqtt.PNG

                                    könntest du bitte etwas licht ins dunkle bringen 🙂
                                    Vielen Dank
                                    Gruß Frank

                                    mickym 1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @Frank579 last edited by mickym

                                      @frank579

                                      Hallo erstmal - ist immer bissi schwierig das herauszufinden, das herauszufinden.

                                      Habe jetzt den Flow mal soweit eingerichtet, läuft auch fast gut. Als Topic habe ich erstmal nur # genommen, macht das sinn?

                                      Vielleicht solltest Du auch nicht gleich mit # anfangen, um nicht gleich alles zu laden. Aber das nur am Rande.

                                      Ich gehe mal davon aus, dass Du einen mit # das Subscribe Pattern des mqtt Adapters mit einem externen Broker meinst? Oder nutzt Du die mqtt-Nodes ...

                                      Bekomme einige Fehler im Log da er alle States als readonly anlegt, das muss ich bestimmt irgendwo ändern, nur wo ?

                                      Nun das machst Du nur in der iobroker-Out Node - hat mit dem Flow selbst nichts zu tun.
                                      Einfach da fix eintragen. - Ich hätte das zwar auch in dem Flow machen können, aber so ist man ggf. flexibler:

                                      d81f0b2e-0500-4e02-91d4-0f363ca98f31-image.png

                                      dann habe ich bei den shellys ein komisches verhalten, da legt er 2 Ordner für jeden shelly an habe mal ein par Bilder angefügt wie es unter Userdata.0 aussieht und im MQTT Adapter.

                                      Ich hab den Flow überarbeitet, damit sollte der Fehler nicht mehr auftreten. Bitte die Node aus dem nachfolgenden Post importieren und den Subflow wie beschrieben ersetzen.

                                      @frank579 - also vielen Dank - für das Beschreiben des Bugs - das mit dem 2. Ordner sollte nicht mehr auftreten. So wird der Flow immer besser. 😉 - Ich empfehle Dir nochmal den ganzen Objektbaum unter 0_userdata.0 zu löschen, der von dem Flow angelegt wurde und neu zu erstellen - auch wegen den Schreibrechten - ich werde solche Einstellungen aber nicht in dem Flow festlegen, so dass man selbst entscheiden kann über die iobroker-Out Node.

                                      mickym F 2 Replies Last reply Reply Quote 1
                                      • mickym
                                        mickym Most Active @mickym last edited by mickym

                                        @mickym So ich habe es nun selbst getestet und die Änderung durchgeführt.

                                        Hier ist nun eine neue Version des Subflows:

                                        090dce7d-22fb-4ee4-8f6f-61a0ad8e9227-image.png

                                        [
                                           {
                                               "id": "6e802f1553b18149",
                                               "type": "subflow",
                                               "name": "JSON or Obj to IOBroker",
                                               "info": "# Creates an IOBroker tree\n\nThis node creates an IOBroker tree out of an Java-Object or JSON String.\n\nThe object tree will be created under 0_userdata.0\nIn addition to the JSON-String or Java Object as `msg.payload` it is necessary to specify a `msg.top` properity in addition to the msg-Object.\n\nThe object tree will be created under 0_userdata.0\n\nExisting `msg.topic` entries will be deleted.\nAn iobroker-out node has to be appended to this subflow node. It is not part of the subflow itself. No topic should be specified in the iobroker out node.\n\nIs `msg.top` property isn't defined, the `top` property of the subflow-node is used. \n\nIn the properties of the subflow node a new property `keepTopic` has been added. Default is _false_ to keep the current behaviour. If set to _true_ then the originial topic will be placed between the `top` property of the subflow node and the property of the analyzed JSON object.\n\n**Attention:**\nIf msg.top and top is empty, all msg.topics (msg.topic) will be directly prefixed with 0_userdata.0. . \n\n**Update 13.09.2022:**\nSpaces in topics of objects are no longer replaced with underscores in objects. No differences between all data types.\n\n# Erstellt einen Objektbaum im ioBroker\n\nDiese Node erstellt einen Objektbaum im ioBroker aus einem JAVA Objekt bzw. einem JSON String. \n\nDer Baum wird in jedem Fall unter 0_userdata.0 erstellt und zwar unter dem Topic der in` msg.top` mitgegeben wurde. In der `msg.payload` befindet sich dann der JSON String oder das entsprechende Objekt.\n\nExistierende `msg.topic `Einträge werden gelöscht.\nEin entsprechende iobroker-out Node muss an den Flow angehängt werden. Sie ist nicht Bestandteil des Subflows. In dieser iobroker-out Node darf kein Topic angegeben werden. \n\nFalls msg.top nicht definiert wurde, wird der `top`-Wert der Subflow-Node verwendet.\n\nIn den Eigenschaften der Subflow-Node wurde ein neuer Parameter `keepTopic` hinzugefügt. Standardwert ist _false_, um das bisherige Verhalten beizubehalten. Setzt man die Eigenschaft auf _true_, dann wird das originale Topic zwischen der `top` Eigenschaft der Subflow-Node und Eigenschaft des analysierten JSON Objektes eingefügt.\n\n**Achtung:**\nWenn top und msg.top leer ist, werden alle msg.topics (msg.topic) direkt unter dem Präfix 0_userdata.0., angelegt bzw. ausgegeben. \n\n**Update 13.09.2022:**\nLeerzeichen werden in Topics von Objekten nicht mehr durch Unterstriche ersetzt. Es gibt keine Unterschiede mehr zwischen den Datentypen.",
                                               "category": "",
                                               "in": [
                                                   {
                                                       "x": 60,
                                                       "y": 160,
                                                       "wires": [
                                                           {
                                                               "id": "554b8c663bcb46c2"
                                                           }
                                                       ]
                                                   }
                                               ],
                                               "out": [
                                                   {
                                                       "x": 2620,
                                                       "y": 280,
                                                       "wires": [
                                                           {
                                                               "id": "0962842ebd23e0d7",
                                                               "port": 0
                                                           }
                                                       ]
                                                   }
                                               ],
                                               "env": [
                                                   {
                                                       "name": "top",
                                                       "type": "str",
                                                       "value": "objRoot"
                                                   },
                                                   {
                                                       "name": "keepTopic",
                                                       "type": "bool",
                                                       "value": "false"
                                                   }
                                               ],
                                               "meta": {},
                                               "color": "#E2D96E",
                                               "icon": "node-red/batch.svg"
                                           },
                                           {
                                               "id": "3e11e8338f694832",
                                               "type": "split",
                                               "z": "6e802f1553b18149",
                                               "name": "split object",
                                               "splt": "\\n",
                                               "spltType": "str",
                                               "arraySplt": 1,
                                               "arraySpltType": "len",
                                               "stream": false,
                                               "addname": "key",
                                               "x": 1370,
                                               "y": 160,
                                               "wires": [
                                                   [
                                                       "0562a4249c8b856b"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "0562a4249c8b856b",
                                               "type": "change",
                                               "z": "6e802f1553b18149",
                                               "name": "add key to topic",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "stateName",
                                                       "pt": "msg",
                                                       "to": "key",
                                                       "tot": "msg"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "to": "topic  & '.' & key",
                                                       "tot": "jsonata"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 1560,
                                               "y": 160,
                                               "wires": [
                                                   [
                                                       "ddc90985bef0fafa"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "ddc90985bef0fafa",
                                               "type": "switch",
                                               "z": "6e802f1553b18149",
                                               "name": "is type?",
                                               "property": "payload",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "istype",
                                                       "v": "array",
                                                       "vt": "array"
                                                   },
                                                   {
                                                       "t": "istype",
                                                       "v": "object",
                                                       "vt": "object"
                                                   },
                                                   {
                                                       "t": "else"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 3,
                                               "x": 1740,
                                               "y": 160,
                                               "wires": [
                                                   [
                                                       "bfce19b206660fbe"
                                                   ],
                                                   [
                                                       "3e11e8338f694832"
                                                   ],
                                                   [
                                                       "1a8c03d866b85b12"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "bfce19b206660fbe",
                                               "type": "split",
                                               "z": "6e802f1553b18149",
                                               "name": "split array",
                                               "splt": "\\n",
                                               "spltType": "str",
                                               "arraySplt": 1,
                                               "arraySpltType": "len",
                                               "stream": false,
                                               "addname": "",
                                               "x": 780,
                                               "y": 280,
                                               "wires": [
                                                   [
                                                       "e89927810c6d75ec"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "e89927810c6d75ec",
                                               "type": "change",
                                               "z": "6e802f1553b18149",
                                               "name": "add index to topic",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "to": "topic  & '.' & parts.index",
                                                       "tot": "jsonata"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 970,
                                               "y": 280,
                                               "wires": [
                                                   [
                                                       "a4d1a5d04564dc77"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "f5d52c6a57d08904",
                                               "type": "change",
                                               "z": "6e802f1553b18149",
                                               "name": "finalize msg.topic",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "top",
                                                       "pt": "msg",
                                                       "to": "'0_userdata.0.' & top",
                                                       "tot": "jsonata"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "to": "top & '.' & topic",
                                                       "tot": "jsonata"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 2170,
                                               "y": 240,
                                               "wires": [
                                                   [
                                                       "0962842ebd23e0d7"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "c863dd7d651b2272",
                                               "type": "switch",
                                               "z": "6e802f1553b18149",
                                               "name": "is type?",
                                               "property": "payload",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "istype",
                                                       "v": "json",
                                                       "vt": "json"
                                                   },
                                                   {
                                                       "t": "istype",
                                                       "v": "object",
                                                       "vt": "object"
                                                   },
                                                   {
                                                       "t": "istype",
                                                       "v": "array",
                                                       "vt": "array"
                                                   },
                                                   {
                                                       "t": "else"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 4,
                                               "x": 580,
                                               "y": 160,
                                               "wires": [
                                                   [
                                                       "158930afddd0780b"
                                                   ],
                                                   [
                                                       "3e11e8338f694832"
                                                   ],
                                                   [
                                                       "bfce19b206660fbe"
                                                   ],
                                                   [
                                                       "a4d1a5d04564dc77"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "158930afddd0780b",
                                               "type": "json",
                                               "z": "6e802f1553b18149",
                                               "name": "",
                                               "property": "payload",
                                               "action": "",
                                               "pretty": false,
                                               "x": 770,
                                               "y": 120,
                                               "wires": [
                                                   [
                                                       "3649300b4c233b10"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "1a8c03d866b85b12",
                                               "type": "switch",
                                               "z": "6e802f1553b18149",
                                               "name": "is msg.top != null",
                                               "property": "top",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "nnull"
                                                   },
                                                   {
                                                       "t": "null"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 2,
                                               "x": 1950,
                                               "y": 280,
                                               "wires": [
                                                   [
                                                       "f5d52c6a57d08904"
                                                   ],
                                                   [
                                                       "74c895ce724750de"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "e023fe88445ce43e",
                                               "type": "change",
                                               "z": "6e802f1553b18149",
                                               "name": "",
                                               "rules": [
                                                   {
                                                       "t": "delete",
                                                       "p": "topic",
                                                       "pt": "msg"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 350,
                                               "y": 200,
                                               "wires": [
                                                   [
                                                       "c863dd7d651b2272"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "3649300b4c233b10",
                                               "type": "switch",
                                               "z": "6e802f1553b18149",
                                               "name": "is array?",
                                               "property": "payload",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "istype",
                                                       "v": "array",
                                                       "vt": "array"
                                                   },
                                                   {
                                                       "t": "else"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 2,
                                               "x": 900,
                                               "y": 120,
                                               "wires": [
                                                   [
                                                       "bfce19b206660fbe"
                                                   ],
                                                   [
                                                       "3e11e8338f694832"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "1b8480cd2df7ba3f",
                                               "type": "comment",
                                               "z": "6e802f1553b18149",
                                               "name": "Array",
                                               "info": "",
                                               "x": 600,
                                               "y": 280,
                                               "wires": []
                                           },
                                           {
                                               "id": "b3541807672be040",
                                               "type": "comment",
                                               "z": "6e802f1553b18149",
                                               "name": "object",
                                               "info": "",
                                               "x": 1340,
                                               "y": 100,
                                               "wires": []
                                           },
                                           {
                                               "id": "a4d1a5d04564dc77",
                                               "type": "switch",
                                               "z": "6e802f1553b18149",
                                               "name": "is type?",
                                               "property": "payload",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "istype",
                                                       "v": "object",
                                                       "vt": "object"
                                                   },
                                                   {
                                                       "t": "istype",
                                                       "v": "array",
                                                       "vt": "array"
                                                   },
                                                   {
                                                       "t": "else"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 3,
                                               "x": 1160,
                                               "y": 280,
                                               "wires": [
                                                   [
                                                       "3e11e8338f694832"
                                                   ],
                                                   [
                                                       "bfce19b206660fbe"
                                                   ],
                                                   [
                                                       "1a8c03d866b85b12"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "74c895ce724750de",
                                               "type": "change",
                                               "z": "6e802f1553b18149",
                                               "name": "finalize msg.topic",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "top",
                                                       "pt": "msg",
                                                       "to": "top",
                                                       "tot": "env"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "top",
                                                       "pt": "msg",
                                                       "to": "'0_userdata.0.' & top",
                                                       "tot": "jsonata"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "to": "top & '.' & topic",
                                                       "tot": "jsonata"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 2170,
                                               "y": 320,
                                               "wires": [
                                                   [
                                                       "0962842ebd23e0d7"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "554b8c663bcb46c2",
                                               "type": "switch",
                                               "z": "6e802f1553b18149",
                                               "name": "",
                                               "property": "keepTopic",
                                               "propertyType": "env",
                                               "rules": [
                                                   {
                                                       "t": "true"
                                                   },
                                                   {
                                                       "t": "false"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 2,
                                               "x": 170,
                                               "y": 160,
                                               "wires": [
                                                   [
                                                       "e30ba9f0483285e4"
                                                   ],
                                                   [
                                                       "e023fe88445ce43e"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "e30ba9f0483285e4",
                                               "type": "change",
                                               "z": "6e802f1553b18149",
                                               "name": "",
                                               "rules": [
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "/",
                                                       "fromt": "str",
                                                       "to": ".",
                                                       "tot": "str"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 350,
                                               "y": 120,
                                               "wires": [
                                                   [
                                                       "c863dd7d651b2272"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "0962842ebd23e0d7",
                                               "type": "change",
                                               "z": "6e802f1553b18149",
                                               "name": "translate invalid chars in topic",
                                               "rules": [
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "..",
                                                       "fromt": "str",
                                                       "to": ".",
                                                       "tot": "str"
                                                   },
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "€",
                                                       "fromt": "str",
                                                       "to": "EUR",
                                                       "tot": "str"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 2430,
                                               "y": 280,
                                               "wires": [
                                                   []
                                               ]
                                           },
                                           {
                                               "id": "df544262fde22aca",
                                               "type": "subflow:6e802f1553b18149",
                                               "z": "393214410c8f2f15",
                                               "name": "",
                                               "x": 910,
                                               "y": 580,
                                               "wires": [
                                                   []
                                               ]
                                           }
                                        ]
                                        

                                        Für alle die, die Node bereits benutzen - wie folgt vorgehen.

                                        1. Den Code normal in die Zwischenablage kopieren und dann importieren.
                                        2. Da das System erkennst, dass es diesen Subflow/Nodes bereits gibt - bitte auf "Zeige Nodes ... " gehen.

                                        07910a9e-986e-4d20-aa8a-694cf1a0a62e-image.png

                                        1. Anschließend braucht man nur den Subflow ersetzen.

                                        0861d7e5-b997-4960-b83c-309033d5015b-image.png

                                        1. Nach dem man auf "Importiere Auswahl" geklickt hat, wird einem angezeigt, wieviele Nodes ersetzt wurden. Dann noch auf Deploy.
                                        F 2 Replies Last reply Reply Quote 2
                                        • F
                                          Frank579 @mickym last edited by

                                          @mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

                                          @mickym So ich habe es nun selbst getestet und die Änderung durchgeführt.
                                          Hier ist nun eine neue Version des Subflows:

                                          Wow vielen Dank, sorry war gestern nochmal unterwegs, habs gerade mal schnell getestet sieht auf den ersten Blick sehr gut aus, Danke 👍

                                          1 Reply Last reply Reply Quote 0
                                          • F
                                            Frank579 @mickym last edited by

                                            @mickym sagte in JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen:

                                            Ich gehe mal davon aus, dass Du einen mit # das Subscribe Pattern des mqtt Adapters mit einem externen Broker meinst? Oder nutzt Du die mqtt-Nodes ...

                                            Ja genau habe einen Mosquitto server laufen, da laufen aktuell aber erst mal zum testen nur die drei Geräte.
                                            Aber hier komme ich jetzt erst mal weiter die Json zu zerlegen und ich alle Infos schon mal in eigenen Datenpunkten habe.
                                            Muss jetzt mal schauen wie ich das alles umsetze, auch nachher mit der Ansteuerung der Datenpunkte.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            node-red
                                            13
                                            114
                                            18490
                                            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