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. NodeRed function node soll toipc übernehmen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    334

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

NodeRed function node soll toipc übernehmen

Geplant Angeheftet Gesperrt Verschoben Node-Red
29 Beiträge 2 Kommentatoren 3.7k 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.
  • mickymM mickym

    @frank-traut Verstehe zwar nicht, warum Du das macht und wofür man da eine Function Node braucht - geschweige für mqtt. Aber so wie es ausschaut willst Du ein Message Object in die payload schreiben. 13 steht in msg.payload.msg.topic

    Wenn Du einen topic einfach als payload übernehmen willst - dann nimmt man eine Change Node. Was willst Du denn mit Deiner "Function" machen. Mach lieber einen anständigen Flow ohne Function Node.

    Frank TrautF Offline
    Frank TrautF Offline
    Frank Traut
    schrieb am zuletzt editiert von Frank Traut
    #5

    @mickym converter.JPG
    Der Converter brauche ich, damit die Daten in das Thingsboard laufen. Den Aufriss mache ich, damit die Geräte im Thingsboard richtig angelegt werden. Jetzt legt Thingsboard ein Gerät an mit dem Namen "hier muss das Topic....". Da möchte ich den Topic-Namen der Node drin haben. Dann heißt jedes Gerät automatisch richtig.
    Wie kann ich das mit einer Change-Node machen?
    bg

    mickymM 1 Antwort Letzte Antwort
    0
    • Frank TrautF Frank Traut

      @mickym converter.JPG
      Der Converter brauche ich, damit die Daten in das Thingsboard laufen. Den Aufriss mache ich, damit die Geräte im Thingsboard richtig angelegt werden. Jetzt legt Thingsboard ein Gerät an mit dem Namen "hier muss das Topic....". Da möchte ich den Topic-Namen der Node drin haben. Dann heißt jedes Gerät automatisch richtig.
      Wie kann ich das mit einer Change-Node machen?
      bg

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

      @frank-traut Setze in der ChangeNode - msg.payload auf msg.topic. Wenn Du das noch mit einem String oder der alten payload anhängen möchtest dann sieht das so aus:

      f5af18f5-91f1-4bf1-8fe9-bb325c2d01f5-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.

      Frank TrautF 1 Antwort Letzte Antwort
      1
      • mickymM mickym

        @frank-traut Setze in der ChangeNode - msg.payload auf msg.topic. Wenn Du das noch mit einem String oder der alten payload anhängen möchtest dann sieht das so aus:

        f5af18f5-91f1-4bf1-8fe9-bb325c2d01f5-image.png

        Frank TrautF Offline
        Frank TrautF Offline
        Frank Traut
        schrieb am zuletzt editiert von
        #7

        4.JPG
        Knapp daneben. Jetzt steht der Name mit in dem Wert.

        mickymM 1 Antwort Letzte Antwort
        0
        • Frank TrautF Frank Traut

          4.JPG
          Knapp daneben. Jetzt steht der Name mit in dem Wert.

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

          @frank-traut War das eine Frage? Was macht die Function Node noch? Wie sieht es in der Change NOde aus? Was willst Du erreichen - einen JSON String zu schreiben? Du willst die Keys programmatisch erzeugen?

          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.

          Frank TrautF 1 Antwort Letzte Antwort
          1
          • mickymM mickym

            @frank-traut War das eine Frage? Was macht die Function Node noch? Wie sieht es in der Change NOde aus? Was willst Du erreichen - einen JSON String zu schreiben? Du willst die Keys programmatisch erzeugen?

            Frank TrautF Offline
            Frank TrautF Offline
            Frank Traut
            schrieb am zuletzt editiert von
            #9

            @mickym 8.JPG
            Links haben ich viele Geräte. Alles geben unterschiedliche Werte aus und haben unterscheidliche Namen.
            Dann gehen die Werte auf die Funtion node und dann in die iot.
            Was die Funtion-note noch macht, weißt ich nicht. Ohne geht es aber nicht.
            Die Werte müssen dann wie beschireben aus der Funktion in das MQTT-In Node laufen. Nur so werden die Werte richtig zugeordnet und können im Thingsboard verwendet werden.

            mickymM 1 Antwort Letzte Antwort
            0
            • Frank TrautF Frank Traut

              @mickym 8.JPG
              Links haben ich viele Geräte. Alles geben unterschiedliche Werte aus und haben unterscheidliche Namen.
              Dann gehen die Werte auf die Funtion node und dann in die iot.
              Was die Funtion-note noch macht, weißt ich nicht. Ohne geht es aber nicht.
              Die Werte müssen dann wie beschireben aus der Funktion in das MQTT-In Node laufen. Nur so werden die Werte richtig zugeordnet und können im Thingsboard verwendet werden.

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

              @frank-traut So mein Ansatz wäre ein komplett anderer.

              Mach mal in Deine Inject Nodes unter msg.topic wie das später wirklich reinkommt und ein Beispielwert - dann gibst Du alles in eine JOIN Node und wandelst es vielleicht noch in einen JSON String um.

              Ich zeigs Dir mal anhand von 2 Inject Nodes.

              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.

              Frank TrautF 1 Antwort Letzte Antwort
              1
              • mickymM mickym

                @frank-traut So mein Ansatz wäre ein komplett anderer.

                Mach mal in Deine Inject Nodes unter msg.topic wie das später wirklich reinkommt und ein Beispielwert - dann gibst Du alles in eine JOIN Node und wandelst es vielleicht noch in einen JSON String um.

                Ich zeigs Dir mal anhand von 2 Inject Nodes.

                Frank TrautF Offline
                Frank TrautF Offline
                Frank Traut
                schrieb am zuletzt editiert von
                #11

                Das klingt super :)
                @mickym aa.JPG
                so kommen die Werte rein.

                mickymM 1 Antwort Letzte Antwort
                0
                • Frank TrautF Frank Traut

                  Das klingt super :)
                  @mickym aa.JPG
                  so kommen die Werte rein.

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

                  @frank-traut Ganz ohne Programmieren - das was halt NodeRed kann. ;)

                  c2b823da-7a39-450e-8068-0a46e6b2d7db-image.png

                  Hier der Flow zum inportieren:

                  [
                      {
                          "id": "31bdef5c.ed36e",
                          "type": "inject",
                          "z": "dce8fa20.2e93c8",
                          "name": "",
                          "props": [
                              {
                                  "p": "payload"
                              },
                              {
                                  "p": "topic",
                                  "vt": "str"
                              }
                          ],
                          "repeat": "",
                          "crontab": "",
                          "once": false,
                          "onceDelay": 0.1,
                          "topic": "Gerät1",
                          "payload": "Ein Wert von Gerät 1",
                          "payloadType": "str",
                          "x": 1860,
                          "y": 3040,
                          "wires": [
                              [
                                  "ba02a6fc.2c0998",
                                  "bc331dbc.1c7b9"
                              ]
                          ]
                      },
                      {
                          "id": "1e2a7c04.762824",
                          "type": "inject",
                          "z": "dce8fa20.2e93c8",
                          "name": "",
                          "props": [
                              {
                                  "p": "payload"
                              },
                              {
                                  "p": "topic",
                                  "vt": "str"
                              }
                          ],
                          "repeat": "",
                          "crontab": "",
                          "once": false,
                          "onceDelay": 0.1,
                          "topic": "Gerät2",
                          "payload": "Ein Wert von Gerät 2",
                          "payloadType": "str",
                          "x": 1860,
                          "y": 3100,
                          "wires": [
                              [
                                  "ba02a6fc.2c0998",
                                  "d116cd15.ec076"
                              ]
                          ]
                      },
                      {
                          "id": "ba02a6fc.2c0998",
                          "type": "join",
                          "z": "dce8fa20.2e93c8",
                          "name": "",
                          "mode": "custom",
                          "build": "object",
                          "property": "payload",
                          "propertyType": "msg",
                          "key": "topic",
                          "joiner": "\\n",
                          "joinerType": "str",
                          "accumulate": true,
                          "timeout": "",
                          "count": "1",
                          "reduceRight": false,
                          "reduceExp": "",
                          "reduceInit": "",
                          "reduceInitType": "",
                          "reduceFixup": "",
                          "x": 2140,
                          "y": 3060,
                          "wires": [
                              [
                                  "66680e32.0877c",
                                  "f087dbc4.94a158"
                              ]
                          ]
                      },
                      {
                          "id": "bc331dbc.1c7b9",
                          "type": "debug",
                          "z": "dce8fa20.2e93c8",
                          "name": "Input Gerät1",
                          "active": true,
                          "tosidebar": true,
                          "console": false,
                          "tostatus": false,
                          "complete": "true",
                          "targetType": "full",
                          "statusVal": "",
                          "statusType": "auto",
                          "x": 2160,
                          "y": 2980,
                          "wires": []
                      },
                      {
                          "id": "d116cd15.ec076",
                          "type": "debug",
                          "z": "dce8fa20.2e93c8",
                          "name": "Input Gerät2",
                          "active": true,
                          "tosidebar": true,
                          "console": false,
                          "tostatus": false,
                          "complete": "true",
                          "targetType": "full",
                          "statusVal": "",
                          "statusType": "auto",
                          "x": 2150,
                          "y": 3140,
                          "wires": []
                      },
                      {
                          "id": "66680e32.0877c",
                          "type": "debug",
                          "z": "dce8fa20.2e93c8",
                          "name": "Aufbau Objekt",
                          "active": true,
                          "tosidebar": true,
                          "console": false,
                          "tostatus": false,
                          "complete": "true",
                          "targetType": "full",
                          "statusVal": "",
                          "statusType": "auto",
                          "x": 2400,
                          "y": 3140,
                          "wires": []
                      },
                      {
                          "id": "f087dbc4.94a158",
                          "type": "json",
                          "z": "dce8fa20.2e93c8",
                          "name": "",
                          "property": "payload",
                          "action": "",
                          "pretty": false,
                          "x": 2370,
                          "y": 3060,
                          "wires": [
                              [
                                  "fb6c9ca8.21775"
                              ]
                          ]
                      },
                      {
                          "id": "fb6c9ca8.21775",
                          "type": "debug",
                          "z": "dce8fa20.2e93c8",
                          "name": "JSON String - MQTT",
                          "active": true,
                          "tosidebar": true,
                          "console": false,
                          "tostatus": false,
                          "complete": "payload",
                          "targetType": "msg",
                          "statusVal": "",
                          "statusType": "auto",
                          "x": 2620,
                          "y": 3060,
                          "wires": []
                      }
                  ]
                  

                  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
                  • Frank TrautF Frank Traut

                    Moin Moin,
                    für MQTT benötige ich ein kleines "function-Node".
                    Ich muss die Topic (gebe ich bei Name1 und Name2 als "msg.topic" mit) in der Ausgabe irgendwie in den unterstrichenen Bereich bekommen. Die Topic wird aber leider immer nur als extra Spalte angegeben. Was mache ich falsch?

                    [{"id":"4450e5d7.0d18e4","type":"inject","z":"14474411.77103c","name":"Name1","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"Name1","payload":"13","payloadType":"num","x":90,"y":200,"wires":[["5116cd51.95a45c"]]}]
                    

                    bg Frank

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

                    @frank-traut sagte in NodeRed function node soll toipc übernehmen:

                    Moin Moin,
                    für MQTT benötige ich ein kleines "function-Node".
                    Ich muss die Topic (gebe ich bei Name1 und Name2 als "msg.topic" mit) in der Ausgabe irgendwie in den unterstrichenen Bereich bekommen. Die Topic wird aber leider immer nur als extra Spalte angegeben. Was mache ich falsch?

                    bg Frank

                    Funktioniert es oder brauchst Du immer noch eine Function Node?

                    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.

                    Frank TrautF 1 Antwort Letzte Antwort
                    1
                    • mickymM mickym

                      @frank-traut sagte in NodeRed function node soll toipc übernehmen:

                      Moin Moin,
                      für MQTT benötige ich ein kleines "function-Node".
                      Ich muss die Topic (gebe ich bei Name1 und Name2 als "msg.topic" mit) in der Ausgabe irgendwie in den unterstrichenen Bereich bekommen. Die Topic wird aber leider immer nur als extra Spalte angegeben. Was mache ich falsch?

                      bg Frank

                      Funktioniert es oder brauchst Du immer noch eine Function Node?

                      Frank TrautF Offline
                      Frank TrautF Offline
                      Frank Traut
                      schrieb am zuletzt editiert von
                      #14

                      @mickym Sahnemäßig! Kann man dir irgendwo nin Kaffee ausgeben?

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • Frank TrautF Frank Traut

                        @mickym Sahnemäßig! Kann man dir irgendwo nin Kaffee ausgeben?

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

                        @frank-traut sagte in NodeRed function node soll toipc übernehmen:

                        @mickym Sahnemäßig! Kann man dir irgendwo nin Kaffee ausgeben?

                        Passt scho. ;) Es freut mich ja selbst, wenn ich helfen konnte. Ich musste ja auch Lernen.

                        Nur ein kleiner Tipp für die Zukunft ;) :
                        Wenn Du Dir mal Dein Eingangsposting anschaust und was nun dabei rausgekommen ist. Manchmal ist es einfacher das Problem im Großen zu schildern, dann kann man oft besser helfen, als wenn ich Dir nur beschreibe, wie Du eine payload aus unterschiedlichen Strings zusammensetzt und Du ja auch noch soviel anderes hättes unnötigerweise programmieren müssen. Es reicht ja nicht nur, dass Du diese Strings dann zusammengesetzt hättest, sondern Du hättest ja jedes Mal nach dem Key in Deinen Strings suchen müssen, wenn sich der Wert geändert hätte.

                        Da hättest Du Dir Stunden und Tage Programmierarbeit aufgehalst, die die Node-Entwickler der JOIN Node bereits gemacht haben.

                        Also viel Spaß weiterhin mit NodeRed. Ich kann immer nur wieder sagen, ich liebe es inzwischen. ;)

                        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.

                        Frank TrautF 2 Antworten Letzte Antwort
                        1
                        • mickymM mickym

                          @frank-traut sagte in NodeRed function node soll toipc übernehmen:

                          @mickym Sahnemäßig! Kann man dir irgendwo nin Kaffee ausgeben?

                          Passt scho. ;) Es freut mich ja selbst, wenn ich helfen konnte. Ich musste ja auch Lernen.

                          Nur ein kleiner Tipp für die Zukunft ;) :
                          Wenn Du Dir mal Dein Eingangsposting anschaust und was nun dabei rausgekommen ist. Manchmal ist es einfacher das Problem im Großen zu schildern, dann kann man oft besser helfen, als wenn ich Dir nur beschreibe, wie Du eine payload aus unterschiedlichen Strings zusammensetzt und Du ja auch noch soviel anderes hättes unnötigerweise programmieren müssen. Es reicht ja nicht nur, dass Du diese Strings dann zusammengesetzt hättest, sondern Du hättest ja jedes Mal nach dem Key in Deinen Strings suchen müssen, wenn sich der Wert geändert hätte.

                          Da hättest Du Dir Stunden und Tage Programmierarbeit aufgehalst, die die Node-Entwickler der JOIN Node bereits gemacht haben.

                          Also viel Spaß weiterhin mit NodeRed. Ich kann immer nur wieder sagen, ich liebe es inzwischen. ;)

                          Frank TrautF Offline
                          Frank TrautF Offline
                          Frank Traut
                          schrieb am zuletzt editiert von
                          #16

                          @mickym Super! Werde ich mir zu Herzen nehmen!

                          1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            @frank-traut sagte in NodeRed function node soll toipc übernehmen:

                            @mickym Sahnemäßig! Kann man dir irgendwo nin Kaffee ausgeben?

                            Passt scho. ;) Es freut mich ja selbst, wenn ich helfen konnte. Ich musste ja auch Lernen.

                            Nur ein kleiner Tipp für die Zukunft ;) :
                            Wenn Du Dir mal Dein Eingangsposting anschaust und was nun dabei rausgekommen ist. Manchmal ist es einfacher das Problem im Großen zu schildern, dann kann man oft besser helfen, als wenn ich Dir nur beschreibe, wie Du eine payload aus unterschiedlichen Strings zusammensetzt und Du ja auch noch soviel anderes hättes unnötigerweise programmieren müssen. Es reicht ja nicht nur, dass Du diese Strings dann zusammengesetzt hättest, sondern Du hättest ja jedes Mal nach dem Key in Deinen Strings suchen müssen, wenn sich der Wert geändert hätte.

                            Da hättest Du Dir Stunden und Tage Programmierarbeit aufgehalst, die die Node-Entwickler der JOIN Node bereits gemacht haben.

                            Also viel Spaß weiterhin mit NodeRed. Ich kann immer nur wieder sagen, ich liebe es inzwischen. ;)

                            Frank TrautF Offline
                            Frank TrautF Offline
                            Frank Traut
                            schrieb am zuletzt editiert von
                            #17

                            @mickym
                            Hi, ich hätte da noch eine Sache.
                            Ich würde gerne bei der Nachrichten einen Timestep nach folgender Vorgabe mitgeben:

                            {"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}}
                            Quelle: https://thingsboard.io/docs/reference/mqtt-api/ (Telemetry upload API)

                            Ich brauche also den "values"-Teil und den Timestep-Teil.
                            Mit einem Timestep und dem Join-node komme ich leider nicht weiter, weil ja der Timestep immer dann auslösen muss, wenn Nachrichten reinkommen - Ich habe aber leider keinen festen Auslöspunkt.
                            Mein Subflow für die Übertragung sieht jetzt so aus:

                            [{"id":"bf4174a4.dbbe6","type":"subflow","name":"NodeRed->TB","info":"","category":"","in":[{"x":240,"y":220,"wires":[{"id":"5b19eba3.5f6444"}]}],"out":[{"x":840,"y":220,"wires":[{"id":"40eaa341.edd0d4","port":0}]}],"env":[],"color":"#DDAA99"},{"id":"5b19eba3.5f6444","type":"join","z":"bf4174a4.dbbe6","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"1","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":390,"y":220,"wires":[["48cab473.26637c","40eaa341.edd0d4"]]},{"id":"48cab473.26637c","type":"debug","z":"bf4174a4.dbbe6","name":"Aufbau Objekt","active":true,"tosidebar":false,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":540,"y":280,"wires":[]},{"id":"40eaa341.edd0d4","type":"json","z":"bf4174a4.dbbe6","name":"","property":"payload","action":"","pretty":false,"x":570,"y":220,"wires":[["c385db35.b5a488"]]},{"id":"c385db35.b5a488","type":"debug","z":"bf4174a4.dbbe6","name":"JSON String - MQTT","active":true,"tosidebar":false,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":560,"y":160,"wires":[]}]
                            

                            Hast du ne Idee? Der Subflow ist quasi genau dein Code.
                            bg

                            mickymM 1 Antwort Letzte Antwort
                            0
                            • Frank TrautF Frank Traut

                              @mickym
                              Hi, ich hätte da noch eine Sache.
                              Ich würde gerne bei der Nachrichten einen Timestep nach folgender Vorgabe mitgeben:

                              {"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}}
                              Quelle: https://thingsboard.io/docs/reference/mqtt-api/ (Telemetry upload API)

                              Ich brauche also den "values"-Teil und den Timestep-Teil.
                              Mit einem Timestep und dem Join-node komme ich leider nicht weiter, weil ja der Timestep immer dann auslösen muss, wenn Nachrichten reinkommen - Ich habe aber leider keinen festen Auslöspunkt.
                              Mein Subflow für die Übertragung sieht jetzt so aus:

                              [{"id":"bf4174a4.dbbe6","type":"subflow","name":"NodeRed->TB","info":"","category":"","in":[{"x":240,"y":220,"wires":[{"id":"5b19eba3.5f6444"}]}],"out":[{"x":840,"y":220,"wires":[{"id":"40eaa341.edd0d4","port":0}]}],"env":[],"color":"#DDAA99"},{"id":"5b19eba3.5f6444","type":"join","z":"bf4174a4.dbbe6","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"1","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":390,"y":220,"wires":[["48cab473.26637c","40eaa341.edd0d4"]]},{"id":"48cab473.26637c","type":"debug","z":"bf4174a4.dbbe6","name":"Aufbau Objekt","active":true,"tosidebar":false,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":540,"y":280,"wires":[]},{"id":"40eaa341.edd0d4","type":"json","z":"bf4174a4.dbbe6","name":"","property":"payload","action":"","pretty":false,"x":570,"y":220,"wires":[["c385db35.b5a488"]]},{"id":"c385db35.b5a488","type":"debug","z":"bf4174a4.dbbe6","name":"JSON String - MQTT","active":true,"tosidebar":false,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":560,"y":160,"wires":[]}]
                              

                              Hast du ne Idee? Der Subflow ist quasi genau dein Code.
                              bg

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

                              @frank-traut Ehrlich gesagt im ersten Moment verstand ich nur Bahnhof. Du hast mir jedenfalls alles andere als "meinen Subflow" gepostet. ;) ;) Inzwischen hoffe ich aber, einfach Deine Anforderung umgesetzt zu haben. ;)

                              Also hier mein ursprünglicher Flow mit dem Timestamp ergänzt.

                              [
                                  {
                                      "id": "cc5a699c.5b95e8",
                                      "type": "inject",
                                      "z": "2821dd31.a0dd62",
                                      "name": "",
                                      "props": [
                                          {
                                              "p": "payload"
                                          },
                                          {
                                              "p": "topic",
                                              "vt": "str"
                                          }
                                      ],
                                      "repeat": "",
                                      "crontab": "",
                                      "once": false,
                                      "onceDelay": 0.1,
                                      "topic": "key1",
                                      "payload": "value1",
                                      "payloadType": "str",
                                      "x": 510,
                                      "y": 1580,
                                      "wires": [
                                          [
                                              "535efea7.5d7d2"
                                          ]
                                      ]
                                  },
                                  {
                                      "id": "cc5cf91d.e86dd8",
                                      "type": "inject",
                                      "z": "2821dd31.a0dd62",
                                      "name": "",
                                      "props": [
                                          {
                                              "p": "payload"
                                          },
                                          {
                                              "p": "topic",
                                              "vt": "str"
                                          }
                                      ],
                                      "repeat": "",
                                      "crontab": "",
                                      "once": false,
                                      "onceDelay": 0.1,
                                      "topic": "key2",
                                      "payload": "value2",
                                      "payloadType": "str",
                                      "x": 510,
                                      "y": 1640,
                                      "wires": [
                                          [
                                              "535efea7.5d7d2"
                                          ]
                                      ]
                                  },
                                  {
                                      "id": "535efea7.5d7d2",
                                      "type": "join",
                                      "z": "2821dd31.a0dd62",
                                      "name": "",
                                      "mode": "custom",
                                      "build": "object",
                                      "property": "payload",
                                      "propertyType": "msg",
                                      "key": "topic",
                                      "joiner": "\\n",
                                      "joinerType": "str",
                                      "accumulate": true,
                                      "timeout": "",
                                      "count": "1",
                                      "reduceRight": false,
                                      "reduceExp": "",
                                      "reduceInit": "",
                                      "reduceInitType": "",
                                      "reduceFixup": "",
                                      "x": 700,
                                      "y": 1600,
                                      "wires": [
                                          [
                                              "a78ff8d6.108498"
                                          ]
                                      ]
                                  },
                                  {
                                      "id": "ccbb833c.4dcc7",
                                      "type": "debug",
                                      "z": "2821dd31.a0dd62",
                                      "name": "JSON String - MQTT",
                                      "active": true,
                                      "tosidebar": true,
                                      "console": false,
                                      "tostatus": false,
                                      "complete": "true",
                                      "targetType": "full",
                                      "statusVal": "",
                                      "statusType": "auto",
                                      "x": 1360,
                                      "y": 1600,
                                      "wires": []
                                  },
                                  {
                                      "id": "a78ff8d6.108498",
                                      "type": "change",
                                      "z": "2821dd31.a0dd62",
                                      "name": "Timestamp setzen und Objekt bilden",
                                      "rules": [
                                          {
                                              "t": "move",
                                              "p": "payload",
                                              "pt": "msg",
                                              "to": "values",
                                              "tot": "msg"
                                          },
                                          {
                                              "t": "set",
                                              "p": "payload.ts",
                                              "pt": "msg",
                                              "to": "",
                                              "tot": "date"
                                          },
                                          {
                                              "t": "move",
                                              "p": "values",
                                              "pt": "msg",
                                              "to": "payload.values",
                                              "tot": "msg"
                                          }
                                      ],
                                      "action": "",
                                      "property": "",
                                      "from": "",
                                      "to": "",
                                      "reg": false,
                                      "x": 950,
                                      "y": 1600,
                                      "wires": [
                                          [
                                              "5ef66e6c.2549f"
                                          ]
                                      ]
                                  },
                                  {
                                      "id": "5ef66e6c.2549f",
                                      "type": "json",
                                      "z": "2821dd31.a0dd62",
                                      "name": "",
                                      "property": "payload",
                                      "action": "",
                                      "pretty": false,
                                      "x": 1170,
                                      "y": 1600,
                                      "wires": [
                                          [
                                              "ccbb833c.4dcc7"
                                          ]
                                      ]
                                  }
                              ]
                              

                              9153c55d-70d5-443d-b679-db733ef7e24e-image.png

                              Damit sieht das Objekt bzw. der JSON-String exakt so aus, wie in Deiner Vorgabe:

                              screen.png

                              Da die JOIN Node ja mit jeder Nachricht diese sofort weitergibt, wird der Timestamp auch immer aktualisiert.

                              Im Prinip also nur die Change Node zwischen die JOIN Node und die JSON Node schieben und das wars!

                              Das würde ja dann diesem Bild aus Deinem Link entsprechen:

                              16f13dcf-6943-4f8f-99c9-057dc3a80aca-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.

                              Frank TrautF 1 Antwort Letzte Antwort
                              1
                              • mickymM mickym

                                @frank-traut Ehrlich gesagt im ersten Moment verstand ich nur Bahnhof. Du hast mir jedenfalls alles andere als "meinen Subflow" gepostet. ;) ;) Inzwischen hoffe ich aber, einfach Deine Anforderung umgesetzt zu haben. ;)

                                Also hier mein ursprünglicher Flow mit dem Timestamp ergänzt.

                                [
                                    {
                                        "id": "cc5a699c.5b95e8",
                                        "type": "inject",
                                        "z": "2821dd31.a0dd62",
                                        "name": "",
                                        "props": [
                                            {
                                                "p": "payload"
                                            },
                                            {
                                                "p": "topic",
                                                "vt": "str"
                                            }
                                        ],
                                        "repeat": "",
                                        "crontab": "",
                                        "once": false,
                                        "onceDelay": 0.1,
                                        "topic": "key1",
                                        "payload": "value1",
                                        "payloadType": "str",
                                        "x": 510,
                                        "y": 1580,
                                        "wires": [
                                            [
                                                "535efea7.5d7d2"
                                            ]
                                        ]
                                    },
                                    {
                                        "id": "cc5cf91d.e86dd8",
                                        "type": "inject",
                                        "z": "2821dd31.a0dd62",
                                        "name": "",
                                        "props": [
                                            {
                                                "p": "payload"
                                            },
                                            {
                                                "p": "topic",
                                                "vt": "str"
                                            }
                                        ],
                                        "repeat": "",
                                        "crontab": "",
                                        "once": false,
                                        "onceDelay": 0.1,
                                        "topic": "key2",
                                        "payload": "value2",
                                        "payloadType": "str",
                                        "x": 510,
                                        "y": 1640,
                                        "wires": [
                                            [
                                                "535efea7.5d7d2"
                                            ]
                                        ]
                                    },
                                    {
                                        "id": "535efea7.5d7d2",
                                        "type": "join",
                                        "z": "2821dd31.a0dd62",
                                        "name": "",
                                        "mode": "custom",
                                        "build": "object",
                                        "property": "payload",
                                        "propertyType": "msg",
                                        "key": "topic",
                                        "joiner": "\\n",
                                        "joinerType": "str",
                                        "accumulate": true,
                                        "timeout": "",
                                        "count": "1",
                                        "reduceRight": false,
                                        "reduceExp": "",
                                        "reduceInit": "",
                                        "reduceInitType": "",
                                        "reduceFixup": "",
                                        "x": 700,
                                        "y": 1600,
                                        "wires": [
                                            [
                                                "a78ff8d6.108498"
                                            ]
                                        ]
                                    },
                                    {
                                        "id": "ccbb833c.4dcc7",
                                        "type": "debug",
                                        "z": "2821dd31.a0dd62",
                                        "name": "JSON String - MQTT",
                                        "active": true,
                                        "tosidebar": true,
                                        "console": false,
                                        "tostatus": false,
                                        "complete": "true",
                                        "targetType": "full",
                                        "statusVal": "",
                                        "statusType": "auto",
                                        "x": 1360,
                                        "y": 1600,
                                        "wires": []
                                    },
                                    {
                                        "id": "a78ff8d6.108498",
                                        "type": "change",
                                        "z": "2821dd31.a0dd62",
                                        "name": "Timestamp setzen und Objekt bilden",
                                        "rules": [
                                            {
                                                "t": "move",
                                                "p": "payload",
                                                "pt": "msg",
                                                "to": "values",
                                                "tot": "msg"
                                            },
                                            {
                                                "t": "set",
                                                "p": "payload.ts",
                                                "pt": "msg",
                                                "to": "",
                                                "tot": "date"
                                            },
                                            {
                                                "t": "move",
                                                "p": "values",
                                                "pt": "msg",
                                                "to": "payload.values",
                                                "tot": "msg"
                                            }
                                        ],
                                        "action": "",
                                        "property": "",
                                        "from": "",
                                        "to": "",
                                        "reg": false,
                                        "x": 950,
                                        "y": 1600,
                                        "wires": [
                                            [
                                                "5ef66e6c.2549f"
                                            ]
                                        ]
                                    },
                                    {
                                        "id": "5ef66e6c.2549f",
                                        "type": "json",
                                        "z": "2821dd31.a0dd62",
                                        "name": "",
                                        "property": "payload",
                                        "action": "",
                                        "pretty": false,
                                        "x": 1170,
                                        "y": 1600,
                                        "wires": [
                                            [
                                                "ccbb833c.4dcc7"
                                            ]
                                        ]
                                    }
                                ]
                                

                                9153c55d-70d5-443d-b679-db733ef7e24e-image.png

                                Damit sieht das Objekt bzw. der JSON-String exakt so aus, wie in Deiner Vorgabe:

                                screen.png

                                Da die JOIN Node ja mit jeder Nachricht diese sofort weitergibt, wird der Timestamp auch immer aktualisiert.

                                Im Prinip also nur die Change Node zwischen die JOIN Node und die JSON Node schieben und das wars!

                                Das würde ja dann diesem Bild aus Deinem Link entsprechen:

                                16f13dcf-6943-4f8f-99c9-057dc3a80aca-image.png

                                Frank TrautF Offline
                                Frank TrautF Offline
                                Frank Traut
                                schrieb am zuletzt editiert von
                                #19

                                @mickym Sieht gut aus! Auf dem Testsystem klappt das schon Mal ohne Probleme :)

                                Frank TrautF 1 Antwort Letzte Antwort
                                0
                                • Frank TrautF Frank Traut

                                  @mickym Sieht gut aus! Auf dem Testsystem klappt das schon Mal ohne Probleme :)

                                  Frank TrautF Offline
                                  Frank TrautF Offline
                                  Frank Traut
                                  schrieb am zuletzt editiert von
                                  #20

                                  @mickym
                                  Ich hab da mal noch eine Frage :dog:
                                  Ich möchte Daten aus Thindgsboard in die S7 schicken:
                                  Unbenannt.JPG
                                  Links Thingsboard -> rechts S7
                                  Die Daten werden korrekt aus TB aboniert und auch an die Nodes für die S7 weitergegeben. Immer mit dem Schema "Name" "Satus". Unter den S7-Nodes sieht man auch, dass Werte ankommen. Die S7-Nodes übernhemen aber die Werte nicht.
                                  Was gehen würde: Mit Split und Switch-Node von Hand die Werte trennen. Das wäre extrem aufwendig, weil ich mehr als nur die 4 Eingänge habe. Ich hatte schon Mal eine Lösung dafür - finde diese aber leider nicht wider.
                                  Nachfolgend mein Code:

                                  [{"id":"e6b2f5a5.f67e4","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"5832dbde.f274f4","type":"comment","z":"e6b2f5a5.f67e4","name":"Test: TB -> NodeRed -> S7","info":"","x":720,"y":160,"wires":[]},{"id":"7b6c8520.abff4c","type":"mqtt in","z":"e6b2f5a5.f67e4","name":"","topic":"v1/devices/me/attributes","qos":"1","datatype":"auto","broker":"d6a1db0.7bf03a8","x":570,"y":240,"wires":[["fb3e812f.5f3518","10d7ba9c.c296b5","169520d1.0b58af","cafa5741.a85778","af40042.86e75f8"]]},{"id":"fb3e812f.5f3518","type":"debug","z":"e6b2f5a5.f67e4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":790,"y":540,"wires":[]},{"id":"10d7ba9c.c296b5","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1555)_betriebsstunden_p1","name":"","x":960,"y":240,"wires":[]},{"id":"7b14759d.8b13bc","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1555)_betriebsstunden_p1","name":"","x":860,"y":840,"wires":[]},{"id":"b774c83c.f619d8","type":"inject","z":"e6b2f5a5.f67e4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":578,"y":841,"wires":[["7b14759d.8b13bc","ba50d833.15818"]]},{"id":"9120c446.14b768","type":"inject","z":"e6b2f5a5.f67e4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"2","payloadType":"num","x":588,"y":901,"wires":[["7b14759d.8b13bc","ba50d833.15818"]]},{"id":"ba50d833.15818","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1556)_betriebsstunden_p2","name":"","x":870,"y":900,"wires":[]},{"id":"169520d1.0b58af","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1501)_run_stop","name":"","x":930,"y":300,"wires":[]},{"id":"cafa5741.a85778","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1541)_anlagenlaufzeit_monat_8","name":"","x":980,"y":360,"wires":[]},{"id":"af40042.86e75f8","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1563)_betriebsstunden_09","name":"","x":960,"y":420,"wires":[]},{"id":"d6a1db0.7bf03a8","type":"mqtt-broker","name":"NodeRed_out","broker":"138.197.182.168","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"5dd03a7c.af7b9c","type":"s7 endpoint","transport":"iso-on-tcp","address":"172.16.58.1","port":"102","rack":"0","slot":"0","localtsaphi":"01","localtsaplo":"00","remotetsaphi":"01","remotetsaplo":"00","connmode":"rack-slot","adapter":"","busaddr":"2","cycletime":"3000","timeout":"2000","name":"TB_NodeRed_S7","vartable":[{"addr":"DB1500,X0.0","name":"(1501)_run_stop"},{"addr":"DB1500,X0.1","name":"(1502)_anlagentyp1_2"},{"addr":"DB1500,X0.2","name":"(1503)_basic_03"},{"addr":"DB1500,X0.3","name":"(1504)_basic_04"},{"addr":"DB1500,X0.4","name":"(1505)_basic_05"},{"addr":"DB1500,X0.5","name":"(1506)_basic_06"},{"addr":"DB1500,X0.6","name":"(1507)_basic_07"},{"addr":"DB1500,X0.7","name":"(1508)_basic_08"},{"addr":"DB1500,X1.0","name":"(1509)_basic_09"},{"addr":"DB1500,WORD2","name":"(1510)_anlagenleistung_monat_1"},{"addr":"DB1500,WORD4","name":"(1511)_anlagenleistung_monat_2"},{"addr":"DB1500,WORD6","name":"(1512)_anlagenleistung_monat_3"},{"addr":"DB1500,WORD8","name":"(1513)_anlagenleistung_monat_4"},{"addr":"DB1500,WORD10","name":"(1514)_anlagenleistung_monat_5"},{"addr":"DB1500,WORD12","name":"(1515)_anlagenleistung_monat_6"},{"addr":"DB1500,WORD14","name":"(1516)_anlagenleistung_monat_7"},{"addr":"DB1500,WORD16","name":"(1517)_anlagenleistung_monat_8"},{"addr":"DB1500,WORD18","name":"(1518)_anlagenleistung_monat_9"},{"addr":"DB1500,WORD20","name":"(1519)_anlagenleistung_monat_10"},{"addr":"DB1500,WORD22","name":"(1520)_anlagenleistung_monat_11"},{"addr":"DB1500,WORD24","name":"(1521)_anlagenleistung_monat_12"},{"addr":"DB1500,X26.0","name":"(1522)_anzahl_pumpen_monat_1"},{"addr":"DB1500,X26.1","name":"(1523)_anzahl_pumpen_monat_2"},{"addr":"DB1500,X26.2","name":"(1524)_anzahl_pumpen_monat_3"},{"addr":"DB1500,X26.3","name":"(1525)_anzahl_pumpen_monat_4"},{"addr":"DB1500,X26.4","name":"(1526)_anzahl_pumpen_monat_5"},{"addr":"DB1500,X26.5","name":"(1527)_anzahl_pumpen_monat_6"},{"addr":"DB1500,X26.6","name":"(1528)_anzahl_pumpen_monat_7"},{"addr":"DB1500,X26.7","name":"(1529)_anzahl_pumpen_monat_8"},{"addr":"DB1500,X27.0","name":"(1530)_anzahl_pumpen_monat_9"},{"addr":"DB1500,X27.1","name":"(1531)_anzahl_pumpen_monat_10"},{"addr":"DB1500,X27.2","name":"(1532)_anzahl_pumpen_monat_11"},{"addr":"DB1500,X27.3","name":"(1533)_anzahl_pumpen_monat_12"},{"addr":"DB1500,WORD28","name":"(1534)_anlagenlaufzeit_monat_1"},{"addr":"DB1500,WORD30","name":"(1535)_anlagenlaufzeit_monat_2"},{"addr":"DB1500,WORD32","name":"(1536)_anlagenlaufzeit_monat_3"},{"addr":"DB1500,WORD34","name":"(1537)_anlagenlaufzeit_monat_4"},{"addr":"DB1500,WORD36","name":"(1538)_anlagenlaufzeit_monat_5"},{"addr":"DB1500,WORD38","name":"(1539)_anlagenlaufzeit_monat_6"},{"addr":"DB1500,WORD40","name":"(1540)_anlagenlaufzeit_monat_7"},{"addr":"DB1500,WORD42","name":"(1541)_anlagenlaufzeit_monat_8"},{"addr":"DB1500,WORD44","name":"(1542)_anlagenlaufzeit_monat_9"},{"addr":"DB1500,WORD46","name":"(1543)_anlagenlaufzeit_monat_10"},{"addr":"DB1500,WORD48","name":"(1544)_anlagenlaufzeit_monat_11"},{"addr":"DB1500,WORD50","name":"(1545)_anlagenlaufzeit_monat_12"},{"addr":"DB1500,WORD52","name":"(1546)_temp_luft_1"},{"addr":"DB1500,WORD54","name":"(1547)_temp_luft_2"},{"addr":"DB1500,WORD56","name":"(1548)_temp_wasser_1"},{"addr":"DB1500,WORD58","name":"(1549)_temp_wasser_2"},{"addr":"DB1500,WORD60","name":"(1550)_messwert_05"},{"addr":"DB1500,WORD62","name":"(1551)_messwert_06"},{"addr":"DB1500,WORD64","name":"(1552)_messwert_07"},{"addr":"DB1500,WORD66","name":"(1553)_messwert_08"},{"addr":"DB1500,WORD68","name":"(1554)_messwert_09"},{"addr":"DB1500,WORD70","name":"(1555)_betriebsstunden_p1"},{"addr":"DB1500,WORD72","name":"(1556)_betriebsstunden_p2"},{"addr":"DB1500,WORD74","name":"(1557)_betriebsstunden_03"},{"addr":"DB1500,WORD76","name":"(1558)_betriebsstunden_04"},{"addr":"DB1500,WORD78","name":"(1559)_betriebsstunden_05"},{"addr":"DB1500,WORD80","name":"(1560)_betriebsstunden_06"},{"addr":"DB1500,WORD82","name":"(1561)_betriebsstunden_07"},{"addr":"DB1500,WORD84","name":"(1562)_betriebsstunden_08"},{"addr":"DB1500,WORD86","name":"(1563)_betriebsstunden_09"},{"addr":"DB1500,X106.0","name":"(1564)_alarm_ms_p1"},{"addr":"DB1500,X106.1","name":"(1565)_alarm_ms_p2"},{"addr":"DB1500,X106.2","name":"(1566)_temp_luft_1_hoch"},{"addr":"DB1500,X106.3","name":"(1567)_temp_luft_1_niedrig"},{"addr":"DB1500,X106.4","name":"(1568)_messfehler_temp_luft_1"},{"addr":"DB1500,X106.5","name":"(1569)_messfehler_temp_luft_2"},{"addr":"DB1500,X106.6","name":"(1570)_messfehler_temp_wasser_1"},{"addr":"DB1500,X106.7","name":"(1571)_messfehler_temp_wasser_2"},{"addr":"DB1500,X107.0","name":"(1572)_alarm_08"},{"addr":"DB1500,X107.1","name":"(1573)_alarm_09"}]}]
                                  
                                  mickymM 1 Antwort Letzte Antwort
                                  0
                                  • Frank TrautF Frank Traut

                                    @mickym
                                    Ich hab da mal noch eine Frage :dog:
                                    Ich möchte Daten aus Thindgsboard in die S7 schicken:
                                    Unbenannt.JPG
                                    Links Thingsboard -> rechts S7
                                    Die Daten werden korrekt aus TB aboniert und auch an die Nodes für die S7 weitergegeben. Immer mit dem Schema "Name" "Satus". Unter den S7-Nodes sieht man auch, dass Werte ankommen. Die S7-Nodes übernhemen aber die Werte nicht.
                                    Was gehen würde: Mit Split und Switch-Node von Hand die Werte trennen. Das wäre extrem aufwendig, weil ich mehr als nur die 4 Eingänge habe. Ich hatte schon Mal eine Lösung dafür - finde diese aber leider nicht wider.
                                    Nachfolgend mein Code:

                                    [{"id":"e6b2f5a5.f67e4","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"5832dbde.f274f4","type":"comment","z":"e6b2f5a5.f67e4","name":"Test: TB -> NodeRed -> S7","info":"","x":720,"y":160,"wires":[]},{"id":"7b6c8520.abff4c","type":"mqtt in","z":"e6b2f5a5.f67e4","name":"","topic":"v1/devices/me/attributes","qos":"1","datatype":"auto","broker":"d6a1db0.7bf03a8","x":570,"y":240,"wires":[["fb3e812f.5f3518","10d7ba9c.c296b5","169520d1.0b58af","cafa5741.a85778","af40042.86e75f8"]]},{"id":"fb3e812f.5f3518","type":"debug","z":"e6b2f5a5.f67e4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":790,"y":540,"wires":[]},{"id":"10d7ba9c.c296b5","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1555)_betriebsstunden_p1","name":"","x":960,"y":240,"wires":[]},{"id":"7b14759d.8b13bc","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1555)_betriebsstunden_p1","name":"","x":860,"y":840,"wires":[]},{"id":"b774c83c.f619d8","type":"inject","z":"e6b2f5a5.f67e4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":578,"y":841,"wires":[["7b14759d.8b13bc","ba50d833.15818"]]},{"id":"9120c446.14b768","type":"inject","z":"e6b2f5a5.f67e4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"2","payloadType":"num","x":588,"y":901,"wires":[["7b14759d.8b13bc","ba50d833.15818"]]},{"id":"ba50d833.15818","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1556)_betriebsstunden_p2","name":"","x":870,"y":900,"wires":[]},{"id":"169520d1.0b58af","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1501)_run_stop","name":"","x":930,"y":300,"wires":[]},{"id":"cafa5741.a85778","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1541)_anlagenlaufzeit_monat_8","name":"","x":980,"y":360,"wires":[]},{"id":"af40042.86e75f8","type":"s7 out","z":"e6b2f5a5.f67e4","endpoint":"5dd03a7c.af7b9c","variable":"(1563)_betriebsstunden_09","name":"","x":960,"y":420,"wires":[]},{"id":"d6a1db0.7bf03a8","type":"mqtt-broker","name":"NodeRed_out","broker":"138.197.182.168","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"5dd03a7c.af7b9c","type":"s7 endpoint","transport":"iso-on-tcp","address":"172.16.58.1","port":"102","rack":"0","slot":"0","localtsaphi":"01","localtsaplo":"00","remotetsaphi":"01","remotetsaplo":"00","connmode":"rack-slot","adapter":"","busaddr":"2","cycletime":"3000","timeout":"2000","name":"TB_NodeRed_S7","vartable":[{"addr":"DB1500,X0.0","name":"(1501)_run_stop"},{"addr":"DB1500,X0.1","name":"(1502)_anlagentyp1_2"},{"addr":"DB1500,X0.2","name":"(1503)_basic_03"},{"addr":"DB1500,X0.3","name":"(1504)_basic_04"},{"addr":"DB1500,X0.4","name":"(1505)_basic_05"},{"addr":"DB1500,X0.5","name":"(1506)_basic_06"},{"addr":"DB1500,X0.6","name":"(1507)_basic_07"},{"addr":"DB1500,X0.7","name":"(1508)_basic_08"},{"addr":"DB1500,X1.0","name":"(1509)_basic_09"},{"addr":"DB1500,WORD2","name":"(1510)_anlagenleistung_monat_1"},{"addr":"DB1500,WORD4","name":"(1511)_anlagenleistung_monat_2"},{"addr":"DB1500,WORD6","name":"(1512)_anlagenleistung_monat_3"},{"addr":"DB1500,WORD8","name":"(1513)_anlagenleistung_monat_4"},{"addr":"DB1500,WORD10","name":"(1514)_anlagenleistung_monat_5"},{"addr":"DB1500,WORD12","name":"(1515)_anlagenleistung_monat_6"},{"addr":"DB1500,WORD14","name":"(1516)_anlagenleistung_monat_7"},{"addr":"DB1500,WORD16","name":"(1517)_anlagenleistung_monat_8"},{"addr":"DB1500,WORD18","name":"(1518)_anlagenleistung_monat_9"},{"addr":"DB1500,WORD20","name":"(1519)_anlagenleistung_monat_10"},{"addr":"DB1500,WORD22","name":"(1520)_anlagenleistung_monat_11"},{"addr":"DB1500,WORD24","name":"(1521)_anlagenleistung_monat_12"},{"addr":"DB1500,X26.0","name":"(1522)_anzahl_pumpen_monat_1"},{"addr":"DB1500,X26.1","name":"(1523)_anzahl_pumpen_monat_2"},{"addr":"DB1500,X26.2","name":"(1524)_anzahl_pumpen_monat_3"},{"addr":"DB1500,X26.3","name":"(1525)_anzahl_pumpen_monat_4"},{"addr":"DB1500,X26.4","name":"(1526)_anzahl_pumpen_monat_5"},{"addr":"DB1500,X26.5","name":"(1527)_anzahl_pumpen_monat_6"},{"addr":"DB1500,X26.6","name":"(1528)_anzahl_pumpen_monat_7"},{"addr":"DB1500,X26.7","name":"(1529)_anzahl_pumpen_monat_8"},{"addr":"DB1500,X27.0","name":"(1530)_anzahl_pumpen_monat_9"},{"addr":"DB1500,X27.1","name":"(1531)_anzahl_pumpen_monat_10"},{"addr":"DB1500,X27.2","name":"(1532)_anzahl_pumpen_monat_11"},{"addr":"DB1500,X27.3","name":"(1533)_anzahl_pumpen_monat_12"},{"addr":"DB1500,WORD28","name":"(1534)_anlagenlaufzeit_monat_1"},{"addr":"DB1500,WORD30","name":"(1535)_anlagenlaufzeit_monat_2"},{"addr":"DB1500,WORD32","name":"(1536)_anlagenlaufzeit_monat_3"},{"addr":"DB1500,WORD34","name":"(1537)_anlagenlaufzeit_monat_4"},{"addr":"DB1500,WORD36","name":"(1538)_anlagenlaufzeit_monat_5"},{"addr":"DB1500,WORD38","name":"(1539)_anlagenlaufzeit_monat_6"},{"addr":"DB1500,WORD40","name":"(1540)_anlagenlaufzeit_monat_7"},{"addr":"DB1500,WORD42","name":"(1541)_anlagenlaufzeit_monat_8"},{"addr":"DB1500,WORD44","name":"(1542)_anlagenlaufzeit_monat_9"},{"addr":"DB1500,WORD46","name":"(1543)_anlagenlaufzeit_monat_10"},{"addr":"DB1500,WORD48","name":"(1544)_anlagenlaufzeit_monat_11"},{"addr":"DB1500,WORD50","name":"(1545)_anlagenlaufzeit_monat_12"},{"addr":"DB1500,WORD52","name":"(1546)_temp_luft_1"},{"addr":"DB1500,WORD54","name":"(1547)_temp_luft_2"},{"addr":"DB1500,WORD56","name":"(1548)_temp_wasser_1"},{"addr":"DB1500,WORD58","name":"(1549)_temp_wasser_2"},{"addr":"DB1500,WORD60","name":"(1550)_messwert_05"},{"addr":"DB1500,WORD62","name":"(1551)_messwert_06"},{"addr":"DB1500,WORD64","name":"(1552)_messwert_07"},{"addr":"DB1500,WORD66","name":"(1553)_messwert_08"},{"addr":"DB1500,WORD68","name":"(1554)_messwert_09"},{"addr":"DB1500,WORD70","name":"(1555)_betriebsstunden_p1"},{"addr":"DB1500,WORD72","name":"(1556)_betriebsstunden_p2"},{"addr":"DB1500,WORD74","name":"(1557)_betriebsstunden_03"},{"addr":"DB1500,WORD76","name":"(1558)_betriebsstunden_04"},{"addr":"DB1500,WORD78","name":"(1559)_betriebsstunden_05"},{"addr":"DB1500,WORD80","name":"(1560)_betriebsstunden_06"},{"addr":"DB1500,WORD82","name":"(1561)_betriebsstunden_07"},{"addr":"DB1500,WORD84","name":"(1562)_betriebsstunden_08"},{"addr":"DB1500,WORD86","name":"(1563)_betriebsstunden_09"},{"addr":"DB1500,X106.0","name":"(1564)_alarm_ms_p1"},{"addr":"DB1500,X106.1","name":"(1565)_alarm_ms_p2"},{"addr":"DB1500,X106.2","name":"(1566)_temp_luft_1_hoch"},{"addr":"DB1500,X106.3","name":"(1567)_temp_luft_1_niedrig"},{"addr":"DB1500,X106.4","name":"(1568)_messfehler_temp_luft_1"},{"addr":"DB1500,X106.5","name":"(1569)_messfehler_temp_luft_2"},{"addr":"DB1500,X106.6","name":"(1570)_messfehler_temp_wasser_1"},{"addr":"DB1500,X106.7","name":"(1571)_messfehler_temp_wasser_2"},{"addr":"DB1500,X107.0","name":"(1572)_alarm_08"},{"addr":"DB1500,X107.1","name":"(1573)_alarm_09"}]}]
                                    
                                    mickymM Offline
                                    mickymM Offline
                                    mickym
                                    Most Active
                                    schrieb am zuletzt editiert von mickym
                                    #21

                                    siehe nächster Beitrag

                                    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.

                                    mickymM 1 Antwort Letzte Antwort
                                    1
                                    • mickymM mickym

                                      siehe nächster Beitrag

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

                                      habs schon gesehen -

                                      [
                                          {
                                              "id": "c6a50eae.ea43c",
                                              "type": "json",
                                              "z": "6e170384.60c96c",
                                              "name": "",
                                              "property": "payload",
                                              "action": "",
                                              "pretty": false,
                                              "x": 1740,
                                              "y": 4220,
                                              "wires": [
                                                  [
                                                      "e45442d.763bdc"
                                                  ]
                                              ]
                                          },
                                          {
                                              "id": "e45442d.763bdc",
                                              "type": "change",
                                              "z": "6e170384.60c96c",
                                              "name": "",
                                              "rules": [
                                                  {
                                                      "t": "set",
                                                      "p": "payload",
                                                      "pt": "msg",
                                                      "to": "payload.(1555)_betriebsstunden_p1",
                                                      "tot": "msg"
                                                  }
                                              ],
                                              "action": "",
                                              "property": "",
                                              "from": "",
                                              "to": "",
                                              "reg": false,
                                              "x": 1960,
                                              "y": 4220,
                                              "wires": [
                                                  []
                                              ]
                                          }
                                      ]
                                      

                                      klemm diese beiden Nodes hinter Deine mqtt Node - dann müsste es gehen.

                                      Also um es nochmal zu erklären, was die beiden Nodes machen. Der erste konvertiert den JSON String in ein Objekt. Der Change Node extrahiert die gewünschte Eigenschaft und kopiert die in die payload.

                                      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.

                                      Frank TrautF 1 Antwort Letzte Antwort
                                      1
                                      • mickymM mickym

                                        habs schon gesehen -

                                        [
                                            {
                                                "id": "c6a50eae.ea43c",
                                                "type": "json",
                                                "z": "6e170384.60c96c",
                                                "name": "",
                                                "property": "payload",
                                                "action": "",
                                                "pretty": false,
                                                "x": 1740,
                                                "y": 4220,
                                                "wires": [
                                                    [
                                                        "e45442d.763bdc"
                                                    ]
                                                ]
                                            },
                                            {
                                                "id": "e45442d.763bdc",
                                                "type": "change",
                                                "z": "6e170384.60c96c",
                                                "name": "",
                                                "rules": [
                                                    {
                                                        "t": "set",
                                                        "p": "payload",
                                                        "pt": "msg",
                                                        "to": "payload.(1555)_betriebsstunden_p1",
                                                        "tot": "msg"
                                                    }
                                                ],
                                                "action": "",
                                                "property": "",
                                                "from": "",
                                                "to": "",
                                                "reg": false,
                                                "x": 1960,
                                                "y": 4220,
                                                "wires": [
                                                    []
                                                ]
                                            }
                                        ]
                                        

                                        klemm diese beiden Nodes hinter Deine mqtt Node - dann müsste es gehen.

                                        Also um es nochmal zu erklären, was die beiden Nodes machen. Der erste konvertiert den JSON String in ein Objekt. Der Change Node extrahiert die gewünschte Eigenschaft und kopiert die in die payload.

                                        Frank TrautF Offline
                                        Frank TrautF Offline
                                        Frank Traut
                                        schrieb am zuletzt editiert von
                                        #23

                                        @mickym Moin, wenn ich das mache bekomme ich doch ich vor und nach dem cahnge Node genau die gleiche Nachricht: node.JPG
                                        Müsste ich dann für jede Variable diesen Baum aufbauen?

                                        mickymM 1 Antwort Letzte Antwort
                                        0
                                        • Frank TrautF Frank Traut

                                          @mickym Moin, wenn ich das mache bekomme ich doch ich vor und nach dem cahnge Node genau die gleiche Nachricht: node.JPG
                                          Müsste ich dann für jede Variable diesen Baum aufbauen?

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

                                          @frank-traut ich habe festgestellt, dass die Change Node Probleme mit den Klammern im Objekt hat.

                                          [
                                              {
                                                  "id": "c6a50eae.ea43c",
                                                  "type": "json",
                                                  "z": "6e170384.60c96c",
                                                  "name": "",
                                                  "property": "payload",
                                                  "action": "",
                                                  "pretty": false,
                                                  "x": 3310,
                                                  "y": 1220,
                                                  "wires": [
                                                      [
                                                          "e45442d.763bdc"
                                                      ]
                                                  ]
                                              },
                                              {
                                                  "id": "e45442d.763bdc",
                                                  "type": "change",
                                                  "z": "6e170384.60c96c",
                                                  "name": "",
                                                  "rules": [
                                                      {
                                                          "t": "set",
                                                          "p": "payload",
                                                          "pt": "msg",
                                                          "to": "payload.1555_betriebsstunden_p1",
                                                          "tot": "msg"
                                                      }
                                                  ],
                                                  "action": "",
                                                  "property": "",
                                                  "from": "",
                                                  "to": "",
                                                  "reg": false,
                                                  "x": 3490,
                                                  "y": 1220,
                                                  "wires": [
                                                      []
                                                  ]
                                              },
                                              {
                                                  "id": "7c121490.b9004c",
                                                  "type": "change",
                                                  "z": "6e170384.60c96c",
                                                  "name": "",
                                                  "rules": [
                                                      {
                                                          "t": "change",
                                                          "p": "payload",
                                                          "pt": "msg",
                                                          "from": "(",
                                                          "fromt": "str",
                                                          "to": "",
                                                          "tot": "str"
                                                      },
                                                      {
                                                          "t": "change",
                                                          "p": "payload",
                                                          "pt": "msg",
                                                          "from": ")",
                                                          "fromt": "str",
                                                          "to": "",
                                                          "tot": "str"
                                                      }
                                                  ],
                                                  "action": "",
                                                  "property": "",
                                                  "from": "",
                                                  "to": "",
                                                  "reg": false,
                                                  "x": 3120,
                                                  "y": 1220,
                                                  "wires": [
                                                      [
                                                          "c6a50eae.ea43c"
                                                      ]
                                                  ]
                                              }
                                          ]
                                          

                                          So müsste es nun funktionieren.

                                          Auf Dein Frage, ob Du das für jede Variable machen musst - das kann ich Dir so nicht beantworten - ich weiß weder was aus der mqtt Node rauskommen kann, welche Variablen da rauskommen noch welche Werte dann weitergegeben werden müssen. Ich habe Dir nun gezeigt, wie Du aus dem String, dann Objekt, die entsprechenden Werte aus bestimmten Eigenschaften (properties - Objektnamen) rausbekommst.

                                          Falls das in dem String auch grundsätzlich so rausbekommt und der 1. Teil im Prinzip das Topic also die 1555 ist - kann man das auch anders machen. Das heißt wenn immer "betriebsstunden_p1" rauskommt - sich aber das Gerät über die Klammer unterscheidet, dann macht man aus dem Inhalt der Klammer das topic - und aus dem Rest direkt die Zahl. Irgendwo musst Du ja immer nach Gerät und nach Eigenschaft aufteilen.

                                          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.

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          468

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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