Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

NodeRed function node soll toipc übernehmen

Scheduled Pinned Locked Moved Node-Red
29 Posts 2 Posters 3.7k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 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 Online
    mickymM Online
    mickym
    Most Active
    wrote on last edited by 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 Reply Last reply
    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
      wrote on last edited by
      #19

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

      Frank TrautF 1 Reply Last reply
      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
        wrote on last edited by
        #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 Reply Last reply
        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 Online
          mickymM Online
          mickym
          Most Active
          wrote on last edited by 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 Reply Last reply
          1
          • mickymM mickym

            siehe nächster Beitrag

            mickymM Online
            mickymM Online
            mickym
            Most Active
            wrote on last edited by 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 Reply Last reply
            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
              wrote on last edited by
              #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 Reply Last reply
              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 Online
                mickymM Online
                mickym
                Most Active
                wrote on last edited by 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 Reply Last reply
                1
                • mickymM mickym

                  @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.

                  Frank TrautF Offline
                  Frank TrautF Offline
                  Frank Traut
                  wrote on last edited by
                  #25

                  @mickym okay sehr cool das klappt. Ich habe jetzt vor der Umwandlung die entsprechenden Routen augebaut. So kommt dann immer nur genau der Wert beim Eingang an.
                  Gibt es noch eine Möglichkeit den Inhalt der "change-Node" "global" zu halten. Die macht ja nicht anderes als das Objekt in Number zu wechseln. Da müsste doch der Name egal sein, oder? Kann man da evtl. mit Sternchen o.ä. arbeiten?

                  mickymM 3 Replies Last reply
                  0
                  • Frank TrautF Frank Traut

                    @mickym okay sehr cool das klappt. Ich habe jetzt vor der Umwandlung die entsprechenden Routen augebaut. So kommt dann immer nur genau der Wert beim Eingang an.
                    Gibt es noch eine Möglichkeit den Inhalt der "change-Node" "global" zu halten. Die macht ja nicht anderes als das Objekt in Number zu wechseln. Da müsste doch der Name egal sein, oder? Kann man da evtl. mit Sternchen o.ä. arbeiten?

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    wrote on last edited by mickym
                    #26

                    gelöscht - da bessere finale Lösung oben

                    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 Reply Last reply
                    1
                    • Frank TrautF Frank Traut

                      @mickym okay sehr cool das klappt. Ich habe jetzt vor der Umwandlung die entsprechenden Routen augebaut. So kommt dann immer nur genau der Wert beim Eingang an.
                      Gibt es noch eine Möglichkeit den Inhalt der "change-Node" "global" zu halten. Die macht ja nicht anderes als das Objekt in Number zu wechseln. Da müsste doch der Name egal sein, oder? Kann man da evtl. mit Sternchen o.ä. arbeiten?

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      wrote on last edited by mickym
                      #27

                      gelöscht - da bessere finale Lösung oben

                      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 Reply Last reply
                      1
                      • Frank TrautF Frank Traut

                        @mickym okay sehr cool das klappt. Ich habe jetzt vor der Umwandlung die entsprechenden Routen augebaut. So kommt dann immer nur genau der Wert beim Eingang an.
                        Gibt es noch eine Möglichkeit den Inhalt der "change-Node" "global" zu halten. Die macht ja nicht anderes als das Objekt in Number zu wechseln. Da müsste doch der Name egal sein, oder? Kann man da evtl. mit Sternchen o.ä. arbeiten?

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        wrote on last edited by mickym
                        #28

                        @frank-traut

                        Hier mal ein JSON String mit mehreren Objekten:

                        {"(1522)_betriebsstunden_p1":39, "(1711)_betriebsstunden_p1":3569, "(2534)_betriebsstunden_p1":8839 }
                        

                        Mit dem unteren Beispiel bekommst Du auch dann die Werte nacheinander zurück, wenn dich die Eigenschaften nicht interessieren.

                        2aaa3072-bdc4-47e2-8103-40b9c3638ecb-image.png

                        willst Du die Eigenschaften nicht verlieren - lässt Du die Split Node das in den topic kopieren, dann bleibt Dir das für einen späteren switch Node erhalten:

                        Das ist das gleiche wie oben nur die split Node wie folgt angepaßt:

                        screen.png

                        Insofern ist das wohl die Universallösung - also diese beiden Nodes hinter Dein mqtt:

                        [
                            {
                                "id": "6163defd.b392b",
                                "type": "json",
                                "z": "6e170384.60c96c",
                                "name": "",
                                "property": "payload",
                                "action": "",
                                "pretty": false,
                                "x": 2610,
                                "y": 2040,
                                "wires": [
                                    [
                                        "6d2ebecd.0a80b"
                                    ]
                                ]
                            },
                            {
                                "id": "6d2ebecd.0a80b",
                                "type": "split",
                                "z": "6e170384.60c96c",
                                "name": "",
                                "splt": "\\n",
                                "spltType": "str",
                                "arraySplt": 1,
                                "arraySpltType": "len",
                                "stream": false,
                                "addname": "topic",
                                "x": 2780,
                                "y": 2040,
                                "wires": [
                                    [
                                        "422bae3b.6ab82"
                                    ]
                                ]
                            }
                        ]
                        

                        Manchmal habe ich selbst ein Brett vorm Kopf :thinking_face:

                        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 Reply Last reply
                        1
                        • Frank TrautF Offline
                          Frank TrautF Offline
                          Frank Traut
                          wrote on last edited by
                          #29

                          @mickym Hast die Versionen zu spät gelöscht :D hab dann mal alle durchgespielt :) aber die letzte Version klappt super!

                          1 Reply Last reply
                          1
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          591

                          Online

                          32.6k

                          Users

                          82.1k

                          Topics

                          1.3m

                          Posts
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                          ioBroker Community 2014-2025
                          logo
                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Home
                          • Recent
                          • Tags
                          • Unread 0
                          • Categories
                          • Unreplied
                          • Popular
                          • GitHub
                          • Docu
                          • Hilfe