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. JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen

NEWS

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

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

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

JSON oder JavaScript Objekt in iobroker Datenpunkte zerlegen

Geplant Angeheftet Gesperrt Verschoben Node-Red
node-red
114 Beiträge 13 Kommentatoren 26.5k Aufrufe 12 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.
  • mickymM mickym

    @merlin123 wenn Fremdobjekte in der Adapterkonfiguration erlaubt sind, dann topic in der iobroker-out Node rauslöschen das topic wird durch die neue Node gesetzt. Readonly würde ich noch setzen. Keep topic in der subflow node auf false lassen. Selbst einen Namen in der iobroker Out Node vergeben oder rauslöschen

    Merlin123M Offline
    Merlin123M Offline
    Merlin123
    schrieb am zuletzt editiert von
    #103

    @mickym Dank Dir vielmals! das topic war das Problem :)

    Und allgemein Danke für die Mühe, die Du dir machst :)

    Beta-Tester

    1 Antwort Letzte Antwort
    0
    • mickymM mickym

      @merlin123 wenn Fremdobjekte in der Adapterkonfiguration erlaubt sind, dann topic in der iobroker-out Node rauslöschen das topic wird durch die neue Node gesetzt. Readonly würde ich noch setzen. Keep topic in der subflow node auf false lassen. Selbst einen Namen in der iobroker Out Node vergeben oder rauslöschen

      E Offline
      E Offline
      Einstein2002
      schrieb am zuletzt editiert von
      #104

      @mickym
      Hallo Mickym

      so das würde ich jetzt gerne vertiefen und fange mal von oben an zu lesen.

      Wenn es dazu Hilfe benötigt werde ich sehr gerne auf Dich zukommen! Wenn ich darf.

      Oder hast Du eine bessere Idee wie und wo ich anfangen sollte?

      Proxmox, VM`s Windows, IoBroker im unprivilegiert LXC, Openmediavault; LXC `s Tasmota, PiHole, , InfluxDB, Motioneye, WireguardVPN, UniFi:
      Smarthome...Sonoff, Alexa, Wled, raspberrymatic,...

      mickymM 1 Antwort Letzte Antwort
      0
      • E Einstein2002

        @mickym
        Hallo Mickym

        so das würde ich jetzt gerne vertiefen und fange mal von oben an zu lesen.

        Wenn es dazu Hilfe benötigt werde ich sehr gerne auf Dich zukommen! Wenn ich darf.

        Oder hast Du eine bessere Idee wie und wo ich anfangen sollte?

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

        @einstein2002 Na wenn es Dir nicht nur um das Zerlegen von Objekten geht - dann solltest Du lieber einen eigenen Thread aufmachen und dann können wir das Durchgehen. Was nutzt Du denn bis jetzt für Deine Logikmaschine?

        Blockly oder Javascript?

        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.

        E 1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @einstein2002 Na wenn es Dir nicht nur um das Zerlegen von Objekten geht - dann solltest Du lieber einen eigenen Thread aufmachen und dann können wir das Durchgehen. Was nutzt Du denn bis jetzt für Deine Logikmaschine?

          Blockly oder Javascript?

          E Offline
          E Offline
          Einstein2002
          schrieb am zuletzt editiert von
          #106

          @mickym
          Ich nenne den dann mal Anfänger fragen?? Oder?

          Proxmox, VM`s Windows, IoBroker im unprivilegiert LXC, Openmediavault; LXC `s Tasmota, PiHole, , InfluxDB, Motioneye, WireguardVPN, UniFi:
          Smarthome...Sonoff, Alexa, Wled, raspberrymatic,...

          mickymM 1 Antwort Letzte Antwort
          0
          • E Einstein2002

            @mickym
            Ich nenne den dann mal Anfänger fragen?? Oder?

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

            @einstein2002 Vielleicht NodeRed für Anfänger und dann ins Einsteigerforum. Was nutzt Du denn jetzt?

            Du kannst auch erst mal den Artikel lesen - der ist schon bissi älter aber in Summe funktioniert der noch.

            https://www.smarthome-tricks.de/uebersicht-iobroker-node-red/

            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.

            E 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @einstein2002 Vielleicht NodeRed für Anfänger und dann ins Einsteigerforum. Was nutzt Du denn jetzt?

              Du kannst auch erst mal den Artikel lesen - der ist schon bissi älter aber in Summe funktioniert der noch.

              https://www.smarthome-tricks.de/uebersicht-iobroker-node-red/

              E Offline
              E Offline
              Einstein2002
              schrieb am zuletzt editiert von
              #108

              @mickym
              Sorry hab schon einen neuen Thread aufgemacht! Aber dann lese ich mich mal dort ein...

              Proxmox, VM`s Windows, IoBroker im unprivilegiert LXC, Openmediavault; LXC `s Tasmota, PiHole, , InfluxDB, Motioneye, WireguardVPN, UniFi:
              Smarthome...Sonoff, Alexa, Wled, raspberrymatic,...

              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                Marv21
                schrieb am zuletzt editiert von Marv21
                #109

                hey @mickym
                Danke fpr den tollen Subflow. Bin jetzt auch neu bei ioBroker dabei und versuche grade ein paar meiner MQTT Geschichten in einzelne Datenpunkte zu bekommen.

                Jetzt hab ich das Problem das ich ein Gerät habe, welches mehrere UnterTopics hat. Ich würde jetzt gerne einen Ordner für jedes unterTopic haben.

                /MeinGerät/TopicA hier sind mehrere Jsons
                /MeinGerät/TopicA/TopicB/ hier sind mehrere Jsons usw.
                Mit "KeepTopic" auf false legt dein flow keine weiteren "unterordner" an, die Jsons aus TopicA und TopicB werden zusammengewürfelt.
                Mit "KeepTopic" auf true, funktioniert es, ich bekomme unterordner für die Untertopics. Hier ist aber das Problem, dass der gesamte Baum vor meinen gewünschten Topic mit erscheint.

                Ist mein ioBrokerIN zB. auf MeinGerät.TopicA.TopicB.* und mein msg.top auf TopicB/, dann hab ich :
                0_userdata.0.TopicB.MeinGerät.TopicA.TopicB.* statt 0_userdata.0.TopicB.*

                Im Prinzip will ich KeepTopic, aber erst ab meinem ausgewählten Topic :)

                hast du einen Tipp? (Sorry bin hier beim schreiben mit der notierung von / . * # durcheinander gekommen, hab aber alle Kombinationen eigentlich gestestet)

                mickymM 1 Antwort Letzte Antwort
                0
                • M Marv21

                  hey @mickym
                  Danke fpr den tollen Subflow. Bin jetzt auch neu bei ioBroker dabei und versuche grade ein paar meiner MQTT Geschichten in einzelne Datenpunkte zu bekommen.

                  Jetzt hab ich das Problem das ich ein Gerät habe, welches mehrere UnterTopics hat. Ich würde jetzt gerne einen Ordner für jedes unterTopic haben.

                  /MeinGerät/TopicA hier sind mehrere Jsons
                  /MeinGerät/TopicA/TopicB/ hier sind mehrere Jsons usw.
                  Mit "KeepTopic" auf false legt dein flow keine weiteren "unterordner" an, die Jsons aus TopicA und TopicB werden zusammengewürfelt.
                  Mit "KeepTopic" auf true, funktioniert es, ich bekomme unterordner für die Untertopics. Hier ist aber das Problem, dass der gesamte Baum vor meinen gewünschten Topic mit erscheint.

                  Ist mein ioBrokerIN zB. auf MeinGerät.TopicA.TopicB.* und mein msg.top auf TopicB/, dann hab ich :
                  0_userdata.0.TopicB.MeinGerät.TopicA.TopicB.* statt 0_userdata.0.TopicB.*

                  Im Prinzip will ich KeepTopic, aber erst ab meinem ausgewählten Topic :)

                  hast du einen Tipp? (Sorry bin hier beim schreiben mit der notierung von / . * # durcheinander gekommen, hab aber alle Kombinationen eigentlich gestestet)

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

                  @marv21 Nun das musst Du dann wie folgt selbst implementieren, wenn einerseits der Baum erhalten werden soll, Du aber nur einen Teil des Baumpfades schreiben willst. Also einfach aus dem gewünschten Teil des gesamten Topics ausschneiden.

                  Nehmen wir mal meine Struktur an - ich habe nur statt TopicA.TopicB - einfach folgende Struktur:

                  fbbeb7e7-8459-4aa5-a067-99763e3f4476-image.png

                  Du möchtest nun nur den Teilbaum ab buero schreiben. Also top Ordner für computer und decke direkt unter 0_userdata.0. . Du konfigurierst den Subflow so, dass Du gar kein Basistopic angibst - also auch kein leeres Topic :

                  edb13675-de38-4968-8b85-6a8434c423d0-image.png

                  sprich auch schauen, dass in top auch kein Leerzeichen drin ist. Dann bekommst Du auch den ganzen Pfad wie Du sagst:

                  8b5df35a-4d7c-471f-83cb-ed4073cdff50-image.png

                  Das ist ja auch von dem Subflow so gewollt. Willst Du nun nur den hinteren Teil haben und schreiben, dann musst Du das topic halt einfach neu zusammensetzen, also selbst wie gewünscht kürzen. (Der Subflow kann nicht wissen, wo Du deine Wildcards setzt, die werden ja von der iobroker In Node verarbeitet). Klemm also einfach noch eine Change-Node dahinter und verändere das topic nach Deinen Wünschen.

                  d9a81e0c-280f-4bc0-b06a-354de2520c5a-image.png

                  Daraus machst Du dann aus den ursprünglichen topics die topics Deiner Wahl:

                  d78d6d62-e520-4c69-9ba2-8c058eca8900-image.png

                  Du bekommst also sowohl decke, als auch computer als eigene Ordner auf der Top-Ebene Deiner 0_userdata.0 Struktur.

                  Hier die Change Node zum Import

                  [
                      {
                          "id": "c2f09210b53d775b",
                          "type": "change",
                          "z": "7e6af0015415146d",
                          "name": "",
                          "rules": [
                              {
                                  "t": "change",
                                  "p": "topic",
                                  "pt": "msg",
                                  "from": ".*buero(.*)$",
                                  "fromt": "re",
                                  "to": "0_userdata.0$1",
                                  "tot": "str"
                              }
                          ],
                          "action": "",
                          "property": "",
                          "from": "",
                          "to": "",
                          "reg": false,
                          "x": 770,
                          "y": 3420,
                          "wires": [
                              [
                                  "60ac7b3cd26e0579"
                              ]
                          ]
                      }
                  ]
                  

                  Alternativ kannst Du natürlich Deine Wildcards bei topicB beginnen lassen und dann ohne keepTopic mehrere Subflow mit unterschiedlichen msg.tops verwenden.

                  PS.: Man könnte zwar so eine Kürzung in den Subflow einarbeitet, aber da das mit der ChangeNode so einfach ist, glaube ich, dass man das besser direkt macht - also lange Erklärungen zu einem Subflow zu schreiben.

                  Exakt funktioniert das mit dem Topic wie oben zwar so:

                  ebcc3bc7-6eb3-4a3b-a8bc-f08b2001be3e-image.png

                  aber das ist nur eine Schönheitsfrage.

                  Bei Dir würde also die ChangeNode wie folgt aussehen:
                  061a71b0-48ba-441f-894f-720905930cba-image.png

                  und TopicB, sowie alle Topics auf der Ebene TopicB würden also direkt unter 0_userdata.0 angelegt.

                  Als Wildcard würdest Du Dir alles ab TopicA ausgeben lassen:

                  974ce472-e8d4-4eef-a21f-75f8e798570f-image.png

                  Das Schöne ist in diesem Fall, dass Du Dir ja über eine Debug Node die topics ausgeben lassen kannst, um zu sehen, ob sie Deinen Wünschen entsprechen, bevor Du eine iobroker-Out Node eingibst.

                  07041fd1-515b-4a0d-8691-5c6c51bc2019-image.png

                  Das topic wird ja auch bei der Debug Ausgabe der payload immer mitausgegeben, so dass man das leicht kontrollieren kann.

                  In meinem Beispiel kannst Du auch ab Licht nach unten gehen. Wie gesagt sobald der gesamte Pfad - durch KeepTopic erhalten bleibt - stehen Dir ja an Manipulation der Topics alle Möglichkeiten offen!!!

                  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.

                  1 Antwort Letzte Antwort
                  1
                  • M Offline
                    M Offline
                    Marv21
                    schrieb am zuletzt editiert von Marv21
                    #111

                    @mickym

                    Hi,
                    wow danke für die Ausführliche und detailierte Antwort!
                    Ich habs mit der changenode hinbekommen.
                    Wenn ich allerdings wie du im beispiel 0_userdata.0$1 eingebe, dann bekomme ich unter dem 0_userdata Ordner einen neuen Unterordner mit 0_userdata :D.
                    Ich hab den userdata Ordner weggelassen und nur meine gewünschten Ordner hinterlegt (topicA.TopicB.$1).
                    Damit geht es einwandfrei.

                    EDIT: Bin zu doof zum lesen ;), hatte das Changenode VOR deinem Subflow :)

                    Ich habs versucht zu googeln, aber es nicht verstanden. Wofür steht das $, bzw $1?

                    Danke dir!

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • M Marv21

                      @mickym

                      Hi,
                      wow danke für die Ausführliche und detailierte Antwort!
                      Ich habs mit der changenode hinbekommen.
                      Wenn ich allerdings wie du im beispiel 0_userdata.0$1 eingebe, dann bekomme ich unter dem 0_userdata Ordner einen neuen Unterordner mit 0_userdata :D.
                      Ich hab den userdata Ordner weggelassen und nur meine gewünschten Ordner hinterlegt (topicA.TopicB.$1).
                      Damit geht es einwandfrei.

                      EDIT: Bin zu doof zum lesen ;), hatte das Changenode VOR deinem Subflow :)

                      Ich habs versucht zu googeln, aber es nicht verstanden. Wofür steht das $, bzw $1?

                      Danke dir!

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

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

                      EDIT: Bin zu doof zum lesen ;), hatte das Changenode VOR deinem Subflow

                      Deswegen mache ich eigentlich immer Screenshot von den Flows

                      Ich habs versucht zu googeln, aber es nicht verstanden. Wofür steht das $, bzw $1?

                      Dann schau Dir mal die Hilfe zu der Change Node an.

                      43b1f723-91ff-426b-a7f6-e6865f482ef1-image.png

                      Wenn Du also reguläre Ausdrücke verwendest, kannst Du in dem "Ändern Feld" über $1 die 1. Klammer innerhalb des regulären Ausdrucks referenzieren, mit $2 die 2. Klammer usw.

                      0b70e696-70d1-405c-b49a-c854743a2e44-image.png

                      Um reguläre Ausdrücke zu testen - und damit Du siehst wie das funktioniert hier mal der Link, mit dem du reguläre Ausdrücke ausprobieren kannst: https://regex101.com/r/qatrYo/1

                      c904dd1b-81ed-41f6-be75-59bdae36c667-image.png

                      Du siehst alles gelb unterstrichen, was ich über die 1. Capture Group eingefangen habe und wie das unten mit $1 referenziert wird.

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

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

                        EDIT: Bin zu doof zum lesen ;), hatte das Changenode VOR deinem Subflow

                        Deswegen mache ich eigentlich immer Screenshot von den Flows

                        Ich habs versucht zu googeln, aber es nicht verstanden. Wofür steht das $, bzw $1?

                        Dann schau Dir mal die Hilfe zu der Change Node an.

                        43b1f723-91ff-426b-a7f6-e6865f482ef1-image.png

                        Wenn Du also reguläre Ausdrücke verwendest, kannst Du in dem "Ändern Feld" über $1 die 1. Klammer innerhalb des regulären Ausdrucks referenzieren, mit $2 die 2. Klammer usw.

                        0b70e696-70d1-405c-b49a-c854743a2e44-image.png

                        Um reguläre Ausdrücke zu testen - und damit Du siehst wie das funktioniert hier mal der Link, mit dem du reguläre Ausdrücke ausprobieren kannst: https://regex101.com/r/qatrYo/1

                        c904dd1b-81ed-41f6-be75-59bdae36c667-image.png

                        Du siehst alles gelb unterstrichen, was ich über die 1. Capture Group eingefangen habe und wie das unten mit $1 referenziert wird.

                        M Offline
                        M Offline
                        Marv21
                        schrieb am zuletzt editiert von
                        #113

                        @mickym

                        Danke nochmals,
                        den Hilfetext hatte ich nicht verstanden, deine Erklärung jetzt schon :)
                        Du bist TOP!

                        1 Antwort Letzte Antwort
                        0
                        • mickymM Online
                          mickymM Online
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von mickym
                          #114

                          DIESER Flow mit dem neuen NodeRed Adapter 5.0 funktioniert WEITER - allerdings ist in NodeRed 3.1.1 ein Bug bei der Überprüfung der Nodes.

                          https://github.com/node-red/node-red/issues/4464

                          Für weitere Details - siehe Diskussion im NodeRed Forum:
                          https://discourse.nodered.org/t/bug-with-version-3-1-1-in-nodered-i-have-an-error-using-the-switch-node/83346

                          Das Ganze zeigt also einen Fehler bei der Übernahme an, wenn man diesen Flow nutzt - obwohl es funktioniert:

                          ccb37541-00ab-49cf-ad1f-f1a37f714a4a-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.

                          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

                          446

                          Online

                          32.4k

                          Benutzer

                          81.5k

                          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