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. String aufteilen

NEWS

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

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

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

String aufteilen

Geplant Angeheftet Gesperrt Verschoben Node-Red
141 Beiträge 3 Kommentatoren 12.4k 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

    @hafo sagte in String aufteilen:

    @mickym Ich würde noch gerne bei meinen Rechner aufräumen. Es gibt folgende 4 Operationen:

    1. (Number(msg.payload) - 1) * 60;
    2. (Number(msg.payload) + Number(msg.min)) * 60000;
    3. payload x 60000;
    4. Number(msg.payload) + Number(msg.lauf)

    Für die Nummer 3 habe ich Testweise den Calculator genommen, die anderen Laufen im Functions Node. Macht es Sinn alle in das Functions Node zu setzen, oder wie macht man das am besten? Mit dem Change Nod habe ich seltsame Resultate erhalten und das Aggregator Node scheint nicht dafür gedacht zu sein.

    Ehrlich gesagt verstehe ich es nicht.

    1. Was macht denn die Aggregator Node nicht, was der Calculator macht?
    2. Ja ich würde alle übrigen Rechenoperation mit der Change Node machen.

    Gib mir einfach mal eine Inject Node mit
    msg.payload, msg.min und msg.lauf
    und ich führe Dir die 4 Rechenoperationen in einer Change Node aus und gebe das Ergebnis in der msg.payload aus.

    Warum wandelst Du alles in eine Nummer / Zahl um, hast Du etwa den Haken in der Adapterkonfig nicht rausgemacht?
    Das sage ich jedem immer als aller Erstes!!!!

    H Offline
    H Offline
    hafo
    schrieb am zuletzt editiert von
    #86

    @mickym Hier das inject

    [
       {
           "id": "5a297e8e.abb9d8",
           "type": "inject",
           "z": "f70e8494.8c2a98",
           "name": "Payload",
           "props": [
               {
                   "p": "payload"
               },
               {
                   "p": "min",
                   "v": "45",
                   "vt": "num"
               },
               {
                   "p": "lauf",
                   "v": "20",
                   "vt": "num"
               }
           ],
           "repeat": "",
           "crontab": "",
           "once": false,
           "onceDelay": 0.1,
           "topic": "",
           "payload": "8",
           "payloadType": "num",
           "x": 240,
           "y": 360,
           "wires": [
               [
                   "7f2b9df4.d30d04",
                   "d45a1c2a.6a7508",
                   "c93fa4d4.3573a"
               ]
           ]
       },
       {
           "id": "7f2b9df4.d30d04",
           "type": "debug",
           "z": "f70e8494.8c2a98",
           "name": "",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "false",
           "statusVal": "",
           "statusType": "auto",
           "x": 460,
           "y": 300,
           "wires": []
       },
       {
           "id": "d45a1c2a.6a7508",
           "type": "debug",
           "z": "f70e8494.8c2a98",
           "name": "",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "min",
           "targetType": "msg",
           "statusVal": "",
           "statusType": "auto",
           "x": 470,
           "y": 360,
           "wires": []
       },
       {
           "id": "c93fa4d4.3573a",
           "type": "debug",
           "z": "f70e8494.8c2a98",
           "name": "",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "lauf",
           "targetType": "msg",
           "statusVal": "",
           "statusType": "auto",
           "x": 460,
           "y": 400,
           "wires": []
       }
    ]
    


    Ich habe im Changenod einmal Payload * 60000 getestet und ein etwas seltsames Resultat erhalten.

    Ich habe gerade keine Ahnung was du mit dem Haken in der Adapterkonfig meinst.
    Gemäss Beschreibung dient das Aggregator Node eher zum sammeln von Nachrichten über einen längeren Zeitraum.

    mickymM 1 Antwort Letzte Antwort
    0
    • mickymM mickym

      @hafo Ich habe aber auch gerade mal die sort Node getestet und die funktioniert schon, aber nachdem ich sie nicht genutzt hatte habe ich auch etwas gebraucht.

      Wenn Du die split Node nicht anfasst - dann kannst Du einfach folgende Sort Node vorne dran hängen. Da Du Deine Datenpunkte ja durchnummeriert hast, bleibt die Reihenfolge.

      Hier mal eine Demo:

      2e8b00b1-fc1b-4e1d-96a3-813127a4d707-image.png

      Mit dieser Inject-Node habe ich Objekt indem die Eigenschaften unsortiert im Objekt stehen

      33d87b24-04ef-47c4-b038-72903a5bdcb0-image.png

      Zur Veranschaulichung habe ich in der split Node den key (also die Eigenschaft oder der Name des Datenpunktes in den Topic kopieren lassen). Das braucht man aber nicht, da ich wie Du sieht in der sort Node ein anderes Sortierkriterium genommen habe.

      Also das dient nur zur Illustration:

      14e82a5b-0a82-443f-adef-9a736af76330-image.png

      Die Ausgabe des Split-Nodes ist deshalb auch in der Reihenfolge des Objekts und deshalb durcheinander:

      e0b4a2c6-d46c-487a-b008-22db7f5b7d20-image.png

      Die Debug Node nach der Sort Node gibt es in der IMMER richtigen Reihenfolge aus - es wäre also in Deinem Fall die SICHERERE METHODE

      712db563-a144-4ff9-8108-70565990959d-image.png

      Was man verstehen muss - dass die Standardeinstellung ein Array sortiert und wir wollen aber eine Nachrichtensequenz und können uns an msg.part.keys zunutze machen, die die split Node automatisch generiert:

      70eaf246-3360-4614-8b79-7d5e641e968c-image.png

      so habe ich auch wieder was gelernt.

      Hier der Flow zum Spielen:

      [
         {
             "id": "6e1e2d6a.21b184",
             "type": "change",
             "z": "4922e7ed.227918",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "days",
                     "pt": "flow",
                     "to": "payload",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 940,
             "y": 2220,
             "wires": [
                 []
             ]
         },
         {
             "id": "d9bf3c45.6eebd",
             "type": "sort",
             "z": "4922e7ed.227918",
             "name": "",
             "order": "ascending",
             "as_num": false,
             "target": "",
             "targetType": "seq",
             "msgKey": "key",
             "msgKeyType": "jsonata",
             "seqKey": "parts.key",
             "seqKeyType": "msg",
             "x": 1110,
             "y": 2300,
             "wires": [
                 [
                     "8074a579.0391a8"
                 ]
             ]
         },
         {
             "id": "37a0fdb1.052192",
             "type": "split",
             "z": "4922e7ed.227918",
             "name": "",
             "splt": "\\n",
             "spltType": "str",
             "arraySplt": 1,
             "arraySpltType": "len",
             "stream": false,
             "addname": "topic",
             "x": 950,
             "y": 2300,
             "wires": [
                 [
                     "d9bf3c45.6eebd",
                     "459d5bbd.053f24"
                 ]
             ]
         },
         {
             "id": "8074a579.0391a8",
             "type": "debug",
             "z": "4922e7ed.227918",
             "name": "sort",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1330,
             "y": 2220,
             "wires": []
         },
         {
             "id": "4b8b567.d4b40a8",
             "type": "inject",
             "z": "4922e7ed.227918",
             "name": "Init flow Days",
             "props": [
                 {
                     "p": "payload"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "payload": "{\"7So\":false,\"3Mi\":false,\"5Fr\":false,\"2Di\":false,\"1Mo\":false,\"4Do\":false,\"6Sa\":false}",
             "payloadType": "json",
             "x": 710,
             "y": 2300,
             "wires": [
                 [
                     "37a0fdb1.052192",
                     "6e1e2d6a.21b184"
                 ]
             ]
         },
         {
             "id": "459d5bbd.053f24",
             "type": "debug",
             "z": "4922e7ed.227918",
             "name": "split",
             "active": false,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1150,
             "y": 2220,
             "wires": []
         }
      ]
      

      EDIT:
      Wenn man die sort Node, wie im Standard nutzt, dann sortiert man innerhalb einer Nachricht - zum Beispiel ein Array:
      60854eb6-c037-4f6f-8a40-d51de944a69b-image.png
      71391e5e-2092-4ea0-9bce-f05d6aebd80e-image.png

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

      @hafo

      Ich habe noch ein bisschen mit der sort Node rumgespielt und dabei ein paar ganz gute Erkenntnisse gewonnen. Wenn Du willst dann poste ich sie hier mal im Thread - später. ;)

      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.

      H mickymM 2 Antworten Letzte Antwort
      0
      • H hafo

        @mickym Hier das inject

        [
           {
               "id": "5a297e8e.abb9d8",
               "type": "inject",
               "z": "f70e8494.8c2a98",
               "name": "Payload",
               "props": [
                   {
                       "p": "payload"
                   },
                   {
                       "p": "min",
                       "v": "45",
                       "vt": "num"
                   },
                   {
                       "p": "lauf",
                       "v": "20",
                       "vt": "num"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "8",
               "payloadType": "num",
               "x": 240,
               "y": 360,
               "wires": [
                   [
                       "7f2b9df4.d30d04",
                       "d45a1c2a.6a7508",
                       "c93fa4d4.3573a"
                   ]
               ]
           },
           {
               "id": "7f2b9df4.d30d04",
               "type": "debug",
               "z": "f70e8494.8c2a98",
               "name": "",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "false",
               "statusVal": "",
               "statusType": "auto",
               "x": 460,
               "y": 300,
               "wires": []
           },
           {
               "id": "d45a1c2a.6a7508",
               "type": "debug",
               "z": "f70e8494.8c2a98",
               "name": "",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "min",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 470,
               "y": 360,
               "wires": []
           },
           {
               "id": "c93fa4d4.3573a",
               "type": "debug",
               "z": "f70e8494.8c2a98",
               "name": "",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "lauf",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 460,
               "y": 400,
               "wires": []
           }
        ]
        


        Ich habe im Changenod einmal Payload * 60000 getestet und ein etwas seltsames Resultat erhalten.

        Ich habe gerade keine Ahnung was du mit dem Haken in der Adapterkonfig meinst.
        Gemäss Beschreibung dient das Aggregator Node eher zum sammeln von Nachrichten über einen längeren Zeitraum.

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

        @hafo sagte in String aufteilen:

        @mickym Hier das inject

        [
           {
               "id": "5a297e8e.abb9d8",
               "type": "inject",
               "z": "f70e8494.8c2a98",
               "name": "Payload",
               "props": [
                   {
                       "p": "payload"
                   },
                   {
                       "p": "min",
                       "v": "45",
                       "vt": "num"
                   },
                   {
                       "p": "lauf",
                       "v": "20",
                       "vt": "num"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "8",
               "payloadType": "num",
               "x": 240,
               "y": 360,
               "wires": [
                   [
                       "7f2b9df4.d30d04",
                       "d45a1c2a.6a7508",
                       "c93fa4d4.3573a"
                   ]
               ]
           },
           {
               "id": "7f2b9df4.d30d04",
               "type": "debug",
               "z": "f70e8494.8c2a98",
               "name": "",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "false",
               "statusVal": "",
               "statusType": "auto",
               "x": 460,
               "y": 300,
               "wires": []
           },
           {
               "id": "d45a1c2a.6a7508",
               "type": "debug",
               "z": "f70e8494.8c2a98",
               "name": "",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "min",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 470,
               "y": 360,
               "wires": []
           },
           {
               "id": "c93fa4d4.3573a",
               "type": "debug",
               "z": "f70e8494.8c2a98",
               "name": "",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "lauf",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 460,
               "y": 400,
               "wires": []
           }
        ]
        


        Ich habe im Changenod einmal Payload * 60000 getestet und ein etwas seltsames Resultat erhalten.

        Ich habe gerade keine Ahnung was du mit dem Haken in der Adapterkonfig meinst.
        Gemäss Beschreibung dient das Aggregator Node eher zum sammeln von Nachrichten über einen längeren Zeitraum.

        Und damit führe ich jetzt die 4 Rechenoperationen von unten aus?

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @hafo

          Ich habe noch ein bisschen mit der sort Node rumgespielt und dabei ein paar ganz gute Erkenntnisse gewonnen. Wenn Du willst dann poste ich sie hier mal im Thread - später. ;)

          H Offline
          H Offline
          hafo
          schrieb am zuletzt editiert von
          #89

          @mickym Genau, damit bin ich gerade fertig geworden. Ich habe nun den Flow gelöscht welcher die Flow Variable bei einem Neustart neu initialisiert. Aber der String wird immer noch richtig generiert, von daher habe ich das Sort Node einfach zum sicher sein eingebaut.

          H 1 Antwort Letzte Antwort
          0
          • H hafo

            @mickym Genau, damit bin ich gerade fertig geworden. Ich habe nun den Flow gelöscht welcher die Flow Variable bei einem Neustart neu initialisiert. Aber der String wird immer noch richtig generiert, von daher habe ich das Sort Node einfach zum sicher sein eingebaut.

            H Offline
            H Offline
            hafo
            schrieb am zuletzt editiert von
            #90

            @hafo Moment, ich bereite dir gerade den original Flow vor.

            mickymM 1 Antwort Letzte Antwort
            0
            • H hafo

              @hafo Moment, ich bereite dir gerade den original Flow vor.

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

              @hafo sagte in String aufteilen:

              @hafo Moment, ich bereite dir gerade den original Flow vor.

              Na brauchst nicht - ich mach Dir für jeder Operation eine Change Node und von mir aus zum Schluss nochmal ein mit allen zusammen.

              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.

              H 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                @hafo sagte in String aufteilen:

                @hafo Moment, ich bereite dir gerade den original Flow vor.

                Na brauchst nicht - ich mach Dir für jeder Operation eine Change Node und von mir aus zum Schluss nochmal ein mit allen zusammen.

                H Offline
                H Offline
                hafo
                schrieb am zuletzt editiert von
                #92

                @mickym Ich hätte es sonst hier

                [
                   {
                       "id": "5a297e8e.abb9d8",
                       "type": "inject",
                       "z": "f70e8494.8c2a98",
                       "name": "Payload",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "min",
                               "v": "45",
                               "vt": "num"
                           },
                           {
                               "p": "lauf",
                               "v": "20",
                               "vt": "num"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "8",
                       "payloadType": "num",
                       "x": 260,
                       "y": 520,
                       "wires": [
                           [
                               "8c07b9d.02c72c8"
                           ]
                       ]
                   },
                   {
                       "id": "ff4f5ab8.50b5c8",
                       "type": "change",
                       "z": "f70e8494.8c2a98",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "send.tomstart",
                               "pt": "flow",
                               "to": "payload",
                               "tot": "msg"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 930,
                       "y": 620,
                       "wires": [
                           [
                               "1d8b361f.e2080a"
                           ]
                       ]
                   },
                   {
                       "id": "613f3272.a40554",
                       "type": "function",
                       "z": "f70e8494.8c2a98",
                       "name": "",
                       "func": "var math = Number(msg.payload) + Number(msg.lauf);\nmsg.payload = math;\nreturn msg;",
                       "outputs": 1,
                       "noerr": 0,
                       "initialize": "",
                       "finalize": "",
                       "libs": [],
                       "x": 720,
                       "y": 660,
                       "wires": [
                           [
                               "1a57a95b.78d267"
                           ]
                       ]
                   },
                   {
                       "id": "1a57a95b.78d267",
                       "type": "change",
                       "z": "f70e8494.8c2a98",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "send.tomend",
                               "pt": "flow",
                               "to": "payload",
                               "tot": "msg"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 930,
                       "y": 660,
                       "wires": [
                           [
                               "1d8b361f.e2080a"
                           ]
                       ]
                   },
                   {
                       "id": "1d8b361f.e2080a",
                       "type": "change",
                       "z": "f70e8494.8c2a98",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "send",
                               "tot": "flow"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 1190,
                       "y": 660,
                       "wires": [
                           [
                               "d1cb8c1a.20b868"
                           ]
                       ]
                   },
                   {
                       "id": "d1cb8c1a.20b868",
                       "type": "template",
                       "z": "f70e8494.8c2a98",
                       "name": "Create timer",
                       "field": "payload",
                       "fieldType": "msg",
                       "format": "handlebars",
                       "syntax": "mustache",
                       "template": "{\"timers\":[{\"starttime\":{{payload.tomstart}},\"days\":[{{payload.tomtag}}],\"output\":\"0\",\"endtime\":{{payload.tomend}}}],\"settings\":{\"disabledDevices\":[]}}",
                       "output": "str",
                       "x": 1390,
                       "y": 660,
                       "wires": [
                           [
                               "cafc6f1d.b72b88"
                           ]
                       ]
                   },
                   {
                       "id": "e29d0be5.53d3d",
                       "type": "function",
                       "z": "f70e8494.8c2a98",
                       "name": "",
                       "func": "var math = (Number(msg.payload) + Number(msg.min)) * 60000;\nmsg.payload = math;\nreturn msg;",
                       "outputs": 1,
                       "noerr": 0,
                       "initialize": "",
                       "finalize": "",
                       "libs": [],
                       "x": 640,
                       "y": 520,
                       "wires": [
                           [
                               "ff4f5ab8.50b5c8",
                               "237b16ca.6c1e82"
                           ]
                       ]
                   },
                   {
                       "id": "8c07b9d.02c72c8",
                       "type": "function",
                       "z": "f70e8494.8c2a98",
                       "name": "",
                       "func": "var math = (Number(msg.payload) - 1) * 60;\nmsg.payload = math;\nreturn msg;",
                       "outputs": 1,
                       "noerr": 0,
                       "initialize": "",
                       "finalize": "",
                       "libs": [],
                       "x": 470,
                       "y": 520,
                       "wires": [
                           [
                               "e29d0be5.53d3d"
                           ]
                       ]
                   },
                   {
                       "id": "237b16ca.6c1e82",
                       "type": "calculator",
                       "z": "f70e8494.8c2a98",
                       "name": "",
                       "inputMsgField": "lauf",
                       "outputMsgField": "lauf",
                       "operation": "mult",
                       "constant": "60000",
                       "round": false,
                       "decimals": 0,
                       "x": 580,
                       "y": 660,
                       "wires": [
                           [
                               "613f3272.a40554"
                           ]
                       ]
                   },
                   {
                       "id": "cafc6f1d.b72b88",
                       "type": "debug",
                       "z": "f70e8494.8c2a98",
                       "name": "",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "false",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 1680,
                       "y": 660,
                       "wires": []
                   }
                ]
                


                1.jpg
                2.jpg

                mickymM H 2 Antworten Letzte Antwort
                0
                • H hafo

                  @mickym Ich hätte es sonst hier

                  [
                     {
                         "id": "5a297e8e.abb9d8",
                         "type": "inject",
                         "z": "f70e8494.8c2a98",
                         "name": "Payload",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "min",
                                 "v": "45",
                                 "vt": "num"
                             },
                             {
                                 "p": "lauf",
                                 "v": "20",
                                 "vt": "num"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "",
                         "payload": "8",
                         "payloadType": "num",
                         "x": 260,
                         "y": 520,
                         "wires": [
                             [
                                 "8c07b9d.02c72c8"
                             ]
                         ]
                     },
                     {
                         "id": "ff4f5ab8.50b5c8",
                         "type": "change",
                         "z": "f70e8494.8c2a98",
                         "name": "",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "send.tomstart",
                                 "pt": "flow",
                                 "to": "payload",
                                 "tot": "msg"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 930,
                         "y": 620,
                         "wires": [
                             [
                                 "1d8b361f.e2080a"
                             ]
                         ]
                     },
                     {
                         "id": "613f3272.a40554",
                         "type": "function",
                         "z": "f70e8494.8c2a98",
                         "name": "",
                         "func": "var math = Number(msg.payload) + Number(msg.lauf);\nmsg.payload = math;\nreturn msg;",
                         "outputs": 1,
                         "noerr": 0,
                         "initialize": "",
                         "finalize": "",
                         "libs": [],
                         "x": 720,
                         "y": 660,
                         "wires": [
                             [
                                 "1a57a95b.78d267"
                             ]
                         ]
                     },
                     {
                         "id": "1a57a95b.78d267",
                         "type": "change",
                         "z": "f70e8494.8c2a98",
                         "name": "",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "send.tomend",
                                 "pt": "flow",
                                 "to": "payload",
                                 "tot": "msg"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 930,
                         "y": 660,
                         "wires": [
                             [
                                 "1d8b361f.e2080a"
                             ]
                         ]
                     },
                     {
                         "id": "1d8b361f.e2080a",
                         "type": "change",
                         "z": "f70e8494.8c2a98",
                         "name": "",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "send",
                                 "tot": "flow"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 1190,
                         "y": 660,
                         "wires": [
                             [
                                 "d1cb8c1a.20b868"
                             ]
                         ]
                     },
                     {
                         "id": "d1cb8c1a.20b868",
                         "type": "template",
                         "z": "f70e8494.8c2a98",
                         "name": "Create timer",
                         "field": "payload",
                         "fieldType": "msg",
                         "format": "handlebars",
                         "syntax": "mustache",
                         "template": "{\"timers\":[{\"starttime\":{{payload.tomstart}},\"days\":[{{payload.tomtag}}],\"output\":\"0\",\"endtime\":{{payload.tomend}}}],\"settings\":{\"disabledDevices\":[]}}",
                         "output": "str",
                         "x": 1390,
                         "y": 660,
                         "wires": [
                             [
                                 "cafc6f1d.b72b88"
                             ]
                         ]
                     },
                     {
                         "id": "e29d0be5.53d3d",
                         "type": "function",
                         "z": "f70e8494.8c2a98",
                         "name": "",
                         "func": "var math = (Number(msg.payload) + Number(msg.min)) * 60000;\nmsg.payload = math;\nreturn msg;",
                         "outputs": 1,
                         "noerr": 0,
                         "initialize": "",
                         "finalize": "",
                         "libs": [],
                         "x": 640,
                         "y": 520,
                         "wires": [
                             [
                                 "ff4f5ab8.50b5c8",
                                 "237b16ca.6c1e82"
                             ]
                         ]
                     },
                     {
                         "id": "8c07b9d.02c72c8",
                         "type": "function",
                         "z": "f70e8494.8c2a98",
                         "name": "",
                         "func": "var math = (Number(msg.payload) - 1) * 60;\nmsg.payload = math;\nreturn msg;",
                         "outputs": 1,
                         "noerr": 0,
                         "initialize": "",
                         "finalize": "",
                         "libs": [],
                         "x": 470,
                         "y": 520,
                         "wires": [
                             [
                                 "e29d0be5.53d3d"
                             ]
                         ]
                     },
                     {
                         "id": "237b16ca.6c1e82",
                         "type": "calculator",
                         "z": "f70e8494.8c2a98",
                         "name": "",
                         "inputMsgField": "lauf",
                         "outputMsgField": "lauf",
                         "operation": "mult",
                         "constant": "60000",
                         "round": false,
                         "decimals": 0,
                         "x": 580,
                         "y": 660,
                         "wires": [
                             [
                                 "613f3272.a40554"
                             ]
                         ]
                     },
                     {
                         "id": "cafc6f1d.b72b88",
                         "type": "debug",
                         "z": "f70e8494.8c2a98",
                         "name": "",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "false",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1680,
                         "y": 660,
                         "wires": []
                     }
                  ]
                  


                  1.jpg
                  2.jpg

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

                  @hafo Nun ich verstehe einfach das Problem nicht??

                  Habe hier 4 mal das gerechnet was Du unten angegeben hast:

                  a07f3377-1af8-40cd-8380-e01c68aea0f0-image.png

                  [
                     {
                         "id": "5a297e8e.abb9d8",
                         "type": "inject",
                         "z": "f19174b9.aa88f8",
                         "name": "Payload",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "min",
                                 "v": "45",
                                 "vt": "num"
                             },
                             {
                                 "p": "lauf",
                                 "v": "20",
                                 "vt": "num"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "",
                         "payload": "8",
                         "payloadType": "num",
                         "x": 580,
                         "y": 1260,
                         "wires": [
                             [
                                 "7f2b9df4.d30d04",
                                 "d45a1c2a.6a7508",
                                 "c93fa4d4.3573a",
                                 "6e679c0.c2cb864",
                                 "6f0bb159.6ecbe",
                                 "3549ae59.415702",
                                 "a625c6c2.2ddfa8"
                             ]
                         ]
                     },
                     {
                         "id": "7f2b9df4.d30d04",
                         "type": "debug",
                         "z": "f19174b9.aa88f8",
                         "name": "",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "false",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 800,
                         "y": 1200,
                         "wires": []
                     },
                     {
                         "id": "d45a1c2a.6a7508",
                         "type": "debug",
                         "z": "f19174b9.aa88f8",
                         "name": "",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "min",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 810,
                         "y": 1260,
                         "wires": []
                     },
                     {
                         "id": "c93fa4d4.3573a",
                         "type": "debug",
                         "z": "f19174b9.aa88f8",
                         "name": "",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "lauf",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 800,
                         "y": 1300,
                         "wires": []
                     },
                     {
                         "id": "6e679c0.c2cb864",
                         "type": "change",
                         "z": "f19174b9.aa88f8",
                         "name": "payload * 60000",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "payload * 60000",
                                 "tot": "jsonata"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 820,
                         "y": 1400,
                         "wires": [
                             [
                                 "7e6953dd.b53aec"
                             ]
                         ]
                     },
                     {
                         "id": "7e6953dd.b53aec",
                         "type": "debug",
                         "z": "f19174b9.aa88f8",
                         "name": "payload * 60000",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1070,
                         "y": 1400,
                         "wires": []
                     },
                     {
                         "id": "6f0bb159.6ecbe",
                         "type": "change",
                         "z": "f19174b9.aa88f8",
                         "name": "(payload - 1) * 60",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "(payload - 1) * 60",
                                 "tot": "jsonata"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 830,
                         "y": 1460,
                         "wires": [
                             [
                                 "c033f0e3.dd226"
                             ]
                         ]
                     },
                     {
                         "id": "c033f0e3.dd226",
                         "type": "debug",
                         "z": "f19174b9.aa88f8",
                         "name": "(payload - 1) * 60",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1070,
                         "y": 1460,
                         "wires": []
                     },
                     {
                         "id": "3549ae59.415702",
                         "type": "change",
                         "z": "f19174b9.aa88f8",
                         "name": "(payload + min) * 60000;",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "(payload + min) * 60000",
                                 "tot": "jsonata"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 850,
                         "y": 1520,
                         "wires": [
                             [
                                 "1ddb1d5.a41cce3"
                             ]
                         ]
                     },
                     {
                         "id": "1ddb1d5.a41cce3",
                         "type": "debug",
                         "z": "f19174b9.aa88f8",
                         "name": "(payload + min) * 60000",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1130,
                         "y": 1520,
                         "wires": []
                     },
                     {
                         "id": "a625c6c2.2ddfa8",
                         "type": "change",
                         "z": "f19174b9.aa88f8",
                         "name": "payload + lauf",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "payload + lauf",
                                 "tot": "jsonata"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 830,
                         "y": 1580,
                         "wires": [
                             [
                                 "2dfa315e.be413e"
                             ]
                         ]
                     },
                     {
                         "id": "2dfa315e.be413e",
                         "type": "debug",
                         "z": "f19174b9.aa88f8",
                         "name": "payload + lauf",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1080,
                         "y": 1580,
                         "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
                  0
                  • H hafo

                    @mickym Ich hätte es sonst hier

                    [
                       {
                           "id": "5a297e8e.abb9d8",
                           "type": "inject",
                           "z": "f70e8494.8c2a98",
                           "name": "Payload",
                           "props": [
                               {
                                   "p": "payload"
                               },
                               {
                                   "p": "min",
                                   "v": "45",
                                   "vt": "num"
                               },
                               {
                                   "p": "lauf",
                                   "v": "20",
                                   "vt": "num"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "",
                           "payload": "8",
                           "payloadType": "num",
                           "x": 260,
                           "y": 520,
                           "wires": [
                               [
                                   "8c07b9d.02c72c8"
                               ]
                           ]
                       },
                       {
                           "id": "ff4f5ab8.50b5c8",
                           "type": "change",
                           "z": "f70e8494.8c2a98",
                           "name": "",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "send.tomstart",
                                   "pt": "flow",
                                   "to": "payload",
                                   "tot": "msg"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 930,
                           "y": 620,
                           "wires": [
                               [
                                   "1d8b361f.e2080a"
                               ]
                           ]
                       },
                       {
                           "id": "613f3272.a40554",
                           "type": "function",
                           "z": "f70e8494.8c2a98",
                           "name": "",
                           "func": "var math = Number(msg.payload) + Number(msg.lauf);\nmsg.payload = math;\nreturn msg;",
                           "outputs": 1,
                           "noerr": 0,
                           "initialize": "",
                           "finalize": "",
                           "libs": [],
                           "x": 720,
                           "y": 660,
                           "wires": [
                               [
                                   "1a57a95b.78d267"
                               ]
                           ]
                       },
                       {
                           "id": "1a57a95b.78d267",
                           "type": "change",
                           "z": "f70e8494.8c2a98",
                           "name": "",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "send.tomend",
                                   "pt": "flow",
                                   "to": "payload",
                                   "tot": "msg"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 930,
                           "y": 660,
                           "wires": [
                               [
                                   "1d8b361f.e2080a"
                               ]
                           ]
                       },
                       {
                           "id": "1d8b361f.e2080a",
                           "type": "change",
                           "z": "f70e8494.8c2a98",
                           "name": "",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "payload",
                                   "pt": "msg",
                                   "to": "send",
                                   "tot": "flow"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 1190,
                           "y": 660,
                           "wires": [
                               [
                                   "d1cb8c1a.20b868"
                               ]
                           ]
                       },
                       {
                           "id": "d1cb8c1a.20b868",
                           "type": "template",
                           "z": "f70e8494.8c2a98",
                           "name": "Create timer",
                           "field": "payload",
                           "fieldType": "msg",
                           "format": "handlebars",
                           "syntax": "mustache",
                           "template": "{\"timers\":[{\"starttime\":{{payload.tomstart}},\"days\":[{{payload.tomtag}}],\"output\":\"0\",\"endtime\":{{payload.tomend}}}],\"settings\":{\"disabledDevices\":[]}}",
                           "output": "str",
                           "x": 1390,
                           "y": 660,
                           "wires": [
                               [
                                   "cafc6f1d.b72b88"
                               ]
                           ]
                       },
                       {
                           "id": "e29d0be5.53d3d",
                           "type": "function",
                           "z": "f70e8494.8c2a98",
                           "name": "",
                           "func": "var math = (Number(msg.payload) + Number(msg.min)) * 60000;\nmsg.payload = math;\nreturn msg;",
                           "outputs": 1,
                           "noerr": 0,
                           "initialize": "",
                           "finalize": "",
                           "libs": [],
                           "x": 640,
                           "y": 520,
                           "wires": [
                               [
                                   "ff4f5ab8.50b5c8",
                                   "237b16ca.6c1e82"
                               ]
                           ]
                       },
                       {
                           "id": "8c07b9d.02c72c8",
                           "type": "function",
                           "z": "f70e8494.8c2a98",
                           "name": "",
                           "func": "var math = (Number(msg.payload) - 1) * 60;\nmsg.payload = math;\nreturn msg;",
                           "outputs": 1,
                           "noerr": 0,
                           "initialize": "",
                           "finalize": "",
                           "libs": [],
                           "x": 470,
                           "y": 520,
                           "wires": [
                               [
                                   "e29d0be5.53d3d"
                               ]
                           ]
                       },
                       {
                           "id": "237b16ca.6c1e82",
                           "type": "calculator",
                           "z": "f70e8494.8c2a98",
                           "name": "",
                           "inputMsgField": "lauf",
                           "outputMsgField": "lauf",
                           "operation": "mult",
                           "constant": "60000",
                           "round": false,
                           "decimals": 0,
                           "x": 580,
                           "y": 660,
                           "wires": [
                               [
                                   "613f3272.a40554"
                               ]
                           ]
                       },
                       {
                           "id": "cafc6f1d.b72b88",
                           "type": "debug",
                           "z": "f70e8494.8c2a98",
                           "name": "",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "false",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 1680,
                           "y": 660,
                           "wires": []
                       }
                    ]
                    


                    1.jpg
                    2.jpg

                    H Offline
                    H Offline
                    hafo
                    schrieb am zuletzt editiert von
                    #94

                    Ich sehe gerade dass ich da besser zuerst alle Daten einsammle und dann durch die Rechner laufen lasse. So langsam verstehe ich das Prinzip.

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • H hafo

                      Ich sehe gerade dass ich da besser zuerst alle Daten einsammle und dann durch die Rechner laufen lasse. So langsam verstehe ich das Prinzip.

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

                      @hafo Na Du kannst sie HuckePack nehmen - das geht auch oder sammelst wieder in Flow Variable und schreibst zum Schluss. ;)

                      Ich sags immer wieder - Nachrichten warten nicht auf Dich und wenn nichts gespeichert wird, ist die Nachricht, hat sie mal eine Node passiert, Schall und Rauch. ;)

                      HuckePack kannst Du sie nehmen, wenn Du Deine Get-Nodes alle in unterschiedliche Eigenschaften speichern lässt, dann schleppst Du die im Nachrichtenobjekt mit und kannst dann damit rechnen!

                      Hier in Deinen get NOdes unterschiedliche Eigenschaften benennen, dann werden die mitgeschleift, sonst überschreibst Du die payload ja immer wieder:

                      42d8ae64-f1ef-4956-8358-58e6a5b8cc42-image.png

                      Schau Dir halt auch in den Debug Nodes in solchen Fällen nicht nur die Payload sondern das gesamte Nachrichtenobjekt an!!!

                      aacb980f-69c5-4590-bca1-693fa605db46-image.png

                      Ich weiß am Anfang braucht es etwas - damit man versteht was Nachrichten und ein Nachrichtenobjekt ist. Aber wenn Du das mal verstanden hast, dann spielst Du in NodeRed wie ein Pianist auf dem Klavier. ;)

                      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.

                      H 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        @hafo Na Du kannst sie HuckePack nehmen - das geht auch oder sammelst wieder in Flow Variable und schreibst zum Schluss. ;)

                        Ich sags immer wieder - Nachrichten warten nicht auf Dich und wenn nichts gespeichert wird, ist die Nachricht, hat sie mal eine Node passiert, Schall und Rauch. ;)

                        HuckePack kannst Du sie nehmen, wenn Du Deine Get-Nodes alle in unterschiedliche Eigenschaften speichern lässt, dann schleppst Du die im Nachrichtenobjekt mit und kannst dann damit rechnen!

                        Hier in Deinen get NOdes unterschiedliche Eigenschaften benennen, dann werden die mitgeschleift, sonst überschreibst Du die payload ja immer wieder:

                        42d8ae64-f1ef-4956-8358-58e6a5b8cc42-image.png

                        Schau Dir halt auch in den Debug Nodes in solchen Fällen nicht nur die Payload sondern das gesamte Nachrichtenobjekt an!!!

                        aacb980f-69c5-4590-bca1-693fa605db46-image.png

                        Ich weiß am Anfang braucht es etwas - damit man versteht was Nachrichten und ein Nachrichtenobjekt ist. Aber wenn Du das mal verstanden hast, dann spielst Du in NodeRed wie ein Pianist auf dem Klavier. ;)

                        H Offline
                        H Offline
                        hafo
                        schrieb am zuletzt editiert von
                        #96

                        @mickym Danke, das habe ich schon mal gemacht mit dem HuckePack.
                        Ich habe nun aber dein "Nummer / Zahl" Problem.

                        "Invalid JSONata expression: The left side of the "-" operator must evaluate to a number"

                        mickymM 1 Antwort Letzte Antwort
                        0
                        • H hafo

                          @mickym Danke, das habe ich schon mal gemacht mit dem HuckePack.
                          Ich habe nun aber dein "Nummer / Zahl" Problem.

                          "Invalid JSONata expression: The left side of the "-" operator must evaluate to a number"

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

                          @hafo Wie gesagt - Du bist nicht meiner Empfehlung gefolgt und hast die Stringkonvertierung in dem Adapter ausgeschaltet.

                          Du kannst das entweder jetzt machen - musst halt aufpassen, ob Du nicht schon viel konvertiert hast oder musst halt immer weiter konvertieren.

                          Wenn Du weiter konvertieren willst, dann musst halt alles mit $number() in JSONATA umwandeln oder Du liest Zahlen, die im iobroker als Zahl definiert sind auch als Zahl aus und machst diesen unsäglichen Haken raus!!!

                          Ansonsten kannst Du auch in JSONATA weiterhin Zahlen konvertieren:

                          2576f1a2-0448-4b1c-8e0c-c7ae17f21dec-image.png

                          e165e145-1937-4806-83fd-60223bba1011-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.

                          H 1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            @hafo Wie gesagt - Du bist nicht meiner Empfehlung gefolgt und hast die Stringkonvertierung in dem Adapter ausgeschaltet.

                            Du kannst das entweder jetzt machen - musst halt aufpassen, ob Du nicht schon viel konvertiert hast oder musst halt immer weiter konvertieren.

                            Wenn Du weiter konvertieren willst, dann musst halt alles mit $number() in JSONATA umwandeln oder Du liest Zahlen, die im iobroker als Zahl definiert sind auch als Zahl aus und machst diesen unsäglichen Haken raus!!!

                            Ansonsten kannst Du auch in JSONATA weiterhin Zahlen konvertieren:

                            2576f1a2-0448-4b1c-8e0c-c7ae17f21dec-image.png

                            e165e145-1937-4806-83fd-60223bba1011-image.png

                            H Offline
                            H Offline
                            hafo
                            schrieb am zuletzt editiert von
                            #98

                            @mickym Nein, der Haken ist bei mir gesetzt. Aber vielleicht habe ich bei den Objekten etwas falsches eingestellt.

                            mickymM 1 Antwort Letzte Antwort
                            0
                            • H hafo

                              @mickym Nein, der Haken ist bei mir gesetzt. Aber vielleicht habe ich bei den Objekten etwas falsches eingestellt.

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

                              @hafo sagte in String aufteilen:

                              @mickym Nein, der Haken ist bei mir gesetzt. :angry: :rage: Aber vielleicht habe ich bei den Objekten etwas falsches eingestellt.

                              Das ist doch das Problem!!!! Haken raus!!!!

                              Mit gesetztem Haken kann im Datenpunkt stehen was will - es wird alles in Strings gewandelt!

                              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.

                              H 1 Antwort Letzte Antwort
                              0
                              • mickymM mickym

                                @hafo sagte in String aufteilen:

                                @mickym Nein, der Haken ist bei mir gesetzt. :angry: :rage: Aber vielleicht habe ich bei den Objekten etwas falsches eingestellt.

                                Das ist doch das Problem!!!! Haken raus!!!!

                                Mit gesetztem Haken kann im Datenpunkt stehen was will - es wird alles in Strings gewandelt!

                                H Offline
                                H Offline
                                hafo
                                schrieb am zuletzt editiert von
                                #100

                                @mickym Ich glaub ich bin schon zu lange am Computer :face_palm:

                                Jedenfalls triggert er nun wieder in alle unendlichkeit
                                1.jpg

                                mickymM 2 Antworten Letzte Antwort
                                0
                                • H hafo

                                  @mickym Ich glaub ich bin schon zu lange am Computer :face_palm:

                                  Jedenfalls triggert er nun wieder in alle unendlichkeit
                                  1.jpg

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

                                  @hafo Nein - Du hast nun umgestellt und nun kommen auch Deine booleans als booleans und nicht mehr als String.

                                  Das ist jetzt vielleicht leider Umstellungsaufwand - deswegen empfehle ich den Haken von Beginn an rauszunehmen, sonst kannst halt weiter konvertieren.

                                  Du kannst den Haken ja erst mal wieder rein nehmen und dann anfangen zu suchen:

                                  Wenn Du im JSONATA konvertieren willst, dann geht das schon

                                  520f3d62-e5ff-4d71-a31e-a7c3872c32a0-image.png

                                  d980f38b-030d-4e70-83b9-92876f073a02-image.png

                                  Ich finde es auf Dauer umständlich, aber wie gesagt nun musst Du erst mal schauen, wo Deine Datentypen nicht mehr passen.

                                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                  1 Antwort Letzte Antwort
                                  0
                                  • H hafo

                                    @mickym Ich glaub ich bin schon zu lange am Computer :face_palm:

                                    Jedenfalls triggert er nun wieder in alle unendlichkeit
                                    1.jpg

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

                                    @hafo Der switch hinter Deinen Trigger wird wahrscheinlich nicht mehr passen, da der auf String und nicht auf Boolean abprüft.

                                    den musst mit Sicherheit umstellen:

                                    704ffd63-61bb-4097-8217-590b8fab4c97-image.png

                                    Einfach alle Eingänge überprüfen, ob der richtige Datentyp nun im weiteren Verlauf verwendet wird. Ansonsten zurück kannst immer. Aber ich denke lieber einmal Schmerzen, als dauernd konvertieren. ;)

                                    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.

                                    H 1 Antwort Letzte Antwort
                                    0
                                    • mickymM mickym

                                      @hafo Der switch hinter Deinen Trigger wird wahrscheinlich nicht mehr passen, da der auf String und nicht auf Boolean abprüft.

                                      den musst mit Sicherheit umstellen:

                                      704ffd63-61bb-4097-8217-590b8fab4c97-image.png

                                      Einfach alle Eingänge überprüfen, ob der richtige Datentyp nun im weiteren Verlauf verwendet wird. Ansonsten zurück kannst immer. Aber ich denke lieber einmal Schmerzen, als dauernd konvertieren. ;)

                                      H Offline
                                      H Offline
                                      hafo
                                      schrieb am zuletzt editiert von hafo
                                      #103

                                      @mickym das habe ich zuerst geändert. Beim oberen Beispiel ist dieser Switch gar nicht angehängt, und der untere sollte sämtliche Nachrichten in Boolean false ändern.
                                      Da muss ich noch ein bisschen suchen.
                                      OK, es läuft wieder. Ich musste natürlich beim Trigger einstellen dass er nur auf geänderte Nachrichten reagiert.

                                      mickymM 1 Antwort Letzte Antwort
                                      0
                                      • H hafo

                                        @mickym das habe ich zuerst geändert. Beim oberen Beispiel ist dieser Switch gar nicht angehängt, und der untere sollte sämtliche Nachrichten in Boolean false ändern.
                                        Da muss ich noch ein bisschen suchen.
                                        OK, es läuft wieder. Ich musste natürlich beim Trigger einstellen dass er nur auf geänderte Nachrichten reagiert.

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

                                        @hafo Na gut - :) Du wirst erleichtert sein, dass Du Dir nun eine Menge Konvertiererei sparst. Das Rechnen sollte nun ohne den JSONATA Fehler funktionieren, wenn die Datenpunkte vom Typ Zahl sind.

                                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                        1 Antwort Letzte Antwort
                                        0
                                        • mickymM mickym

                                          @hafo

                                          Ich habe noch ein bisschen mit der sort Node rumgespielt und dabei ein paar ganz gute Erkenntnisse gewonnen. Wenn Du willst dann poste ich sie hier mal im Thread - später. ;)

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

                                          @mickym sagte in String aufteilen:

                                          @hafo

                                          Ich habe noch ein bisschen mit der sort Node rumgespielt und dabei ein paar ganz gute Erkenntnisse gewonnen. Wenn Du willst dann poste ich sie hier mal im Thread - später. ;)

                                          So ich habe nun auch herausgefunden, wie man mit den Sort Nodes ggf. auch selbst eine Sortierreihenfolge definieren kann, selbst wenn man das nicht so vorab so vorbildlich gemacht hat, wie Du und immer eine Zahl vorangestellt hat. Das hat zwar bisschen Tüftelei gekostet, aber vielleicht ist das für den einen oder anderen interessant:

                                          d1b2e512-a187-4ceb-8d7e-7d1dd2f2560d-image.png

                                          Also was sieht man:

                                          1. Das Array mit durcheinandergewürfelten Wochentagen.
                                          2. Mit Standardeinstellungen wird das Array natürlich alphabetisch sortiert:
                                            7b25d282-5173-493c-8b1d-f97cb589395b-image.png
                                          3. Um nun eine eigene Reihenfolge festzulegen, kann man ein Objekt erstellen und den Begriffen, in diesem Fall Zahlenwerte zuordnen.
                                            In der letzten Node sieht man werden die Wochentage nun auch in dem Array richtig sortiert.
                                            Dies erfolgt über eine JSONATA Funktion - Kopfzerbrechen hat mir das $ Zeichen gemacht, dass von der Node als Platzhalter für die Arrayelemente verwendet.
                                            39b74ea3-ea16-4235-80f9-3549de6f760c-image.png
                                          $lookup(
                                             {
                                                 "Mo":0,
                                                 "Di":1,
                                                 "Mi":2,
                                                 "Do":3,
                                                 "Fr":4,
                                                 "Sa":5,
                                                 "So":6
                                             },
                                             $
                                          )
                                          

                                          Grundsätzlich kann man auch nur mit einer JSONATA Funktion in einer Change Node ein Array sortieren:

                                          580a44b7-dfc0-4165-9979-b303c98fa750-image.png

                                          Das ist aber bissi komplizierter - hier mal die JSONATA Defintion:

                                          $sort(payload,function($l, $r){
                                             $lookup(
                                                 {
                                                     "Mo":0,
                                                     "Di":1,
                                                     "Mi":2,
                                                     "Do":3,
                                                     "Fr":4,
                                                     "Sa":5,
                                                     "So":6
                                                 },
                                                 $l
                                             ) > $lookup(
                                                 {
                                                     "Mo":0,
                                                     "Di":1,
                                                     "Mi":2,
                                                     "Do":3,
                                                     "Fr":4,
                                                     "Sa":5,
                                                     "So":6
                                                 },
                                                 $r
                                             ) 
                                          })
                                          

                                          Hat man kein Objekt sondern splittet ein Array - dann kann man ebenfalls anstelle von dem topic bzw. key zum Beispiel nach der Payload sortieren:

                                          a2ee2f3d-a2dd-4fa0-9766-851afe9c3c00-image.png

                                          8391b6ce-a560-4499-ba0a-fd6d559a6e27-image.png

                                          3706772a-107b-4ddc-9830-c65950152efe-image.png

                                          $lookup(
                                             {
                                                 "Mo":0,
                                                 "Di":1,
                                                 "Mi":2,
                                                 "Do":3,
                                                 "Fr":4,
                                                 "Sa":5,
                                                 "So":6
                                             },
                                             payload
                                          )
                                          

                                          Hier muss ich dann die payload, statt der $ eingeben, da hier die payload ja bereits den skalaren Wert enthalten.

                                          Jedenfalls habe ich heute auch wieder einiges gelernt und vielleicht hilft das auch dem einen oder anderen.

                                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          997

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe