Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. String aufteilen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    String aufteilen

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

      @mickym Interessant, auf diese Art wird der Strang mit dem Change Nod gar nicht ausgelöst.

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

        @hafo sagte in String aufteilen:

        @mickym Interessant, auf diese Art wird der Strang mit dem Change Nod gar nicht ausgelöst.

        Du triggerst die Inject Node manuell und es kommt gar nichts????
        Dann hänge eine Debug Node an die get Node - da muss ja in jedem Fall was rauskommen?

        H 1 Reply Last reply Reply Quote 0
        • H
          hafo @mickym last edited by

          @mickym Die iobroker get Nodes werden ausgelesen, bei den anderen geht nichts
          1.jpg

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

            @hafo Unterbrich bitte mal die Verbindung von der Trigger Node - so dass nur die Inject Node triggert.

            H 1 Reply Last reply Reply Quote 0
            • H
              hafo @mickym last edited by

              @mickym habe ich gemacht, ändert nichts.
              Für mich reicht es für heute. Vielen Dank für deinen Einsatz und gute Nacht.

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

                @hafo OK - dann halt Schritt für Schritt vorgehen. Die nächste Node wird natürlich nur gefüllt, wenn die Flow Variable gefüllt ist usw.

                H 1 Reply Last reply Reply Quote 0
                • H
                  hafo @mickym last edited by

                  @mickym müssen die Flows im selben Tab sein? Wenn ich den Tab offen habe in welchem die Variable gebildet wird, wird sie mir angezeigt. Im Tab wo sie ausgelesen werde sollte aber nicht.

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

                    @hafo Na dann ist es kein Wunder. Ein Flow ist ein Tab und eine Flowvariable gilt nur für einen Flow und somit für einen Tab. Entweder Du bringst Deine Flows auf einen Tab, anderenfalls musst Du halt alles in Globale Variablen speichern. Die haben dann in allen Tabs Gültigkeit.

                    Tipp: Nutze die 4 Icons unten rechts im Hauptfenster um Dich innerhalb eines Flows / Tabs zu bewegen oder um größere Teil Deines Flows zu verschieben oder zu bewegen. Außerdem rufe ich Node red immer aus den Kacheln auf, dann macht sich im Browser ein eigener <tab auf, das bringt auch noch etwas Fläche.

                    H 1 Reply Last reply Reply Quote 0
                    • H
                      hafo @mickym last edited by hafo

                      @mickym Habe es bereits geändert, ich depp!

                      im vis eingetragen und gespeichert
                      3.jpg

                      es wird alles übernommen
                      1.jpg
                      4.jpg

                      auch mit dem Timer klappts nun
                      2.jpg

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

                        @hafo Na super. Dann klappt ja nun alles. Glückwunsch!!!
                        Auf die Idee wäre ich wahrlich erst zuletzt gekommen. Man sollte doch nichts für selbstverständlich nehmen.😉😉😉

                        H 2 Replies Last reply Reply Quote 0
                        • H
                          hafo @mickym last edited by

                          @mickym wenn ich etwas falsch mache, dann richtig 💪
                          vielen Dank für deine Hilfe.

                          Hier die Dateien falls jemand etwas ähnliches machen möchte.
                          bew1.json
                          bew2.json
                          Ich mache mich nun ans vis, und werde dann den Flow noch mit Sensoren ergänzen.

                          1 Reply Last reply Reply Quote 0
                          • H
                            hafo @mickym last edited by

                            @mickym so ganz fertig sind wir leider noch nicht.
                            5.jpg
                            Der String wird wild durcheinander gewürfelt. Ich versuche mich gerade am Sort Node, das arbeitet aber nicht so wie ich möchte.
                            Der Rechner übernimmt teilweise auch falsche Werte. Da muss ich mit meinen Rechner Nodes noch arbeiten.

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

                              @hafo Schau mal in die Kontextdaten, ob da die Tage in der richtigen Reihenfolge stehen.

                              Wenn nicht würde ich

                              1. Die Flow Variable bei jedem Neustart von Node-Red neu initialisieren.
                                55206212-8625-4e64-928a-77a4a1528666-image.png

                              [
                                 {
                                     "id": "6ba7ea7c.1a0a74",
                                     "type": "inject",
                                     "z": "4922e7ed.227918",
                                     "name": "Init flow Days",
                                     "props": [
                                         {
                                             "p": "payload"
                                         }
                                     ],
                                     "repeat": "",
                                     "crontab": "",
                                     "once": true,
                                     "onceDelay": 0.1,
                                     "topic": "",
                                     "payload": "{\"1Mo\":false,\"2Di\":false,\"3Mi\":false,\"4Do\":false,\"5Fr\":false,\"6Sa\":false,\"7So\":false}",
                                     "payloadType": "json",
                                     "x": 530,
                                     "y": 2160,
                                     "wires": [
                                         [
                                             "6e1e2d6a.21b184"
                                         ]
                                     ]
                                 },
                                 {
                                     "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": 750,
                                     "y": 2160,
                                     "wires": [
                                         []
                                     ]
                                 }
                              ]
                              

                              1. In den JOIN Nodes die Anzahl der Nachrichten bis eine Nachricht versendet wird zwingend auf 7 festlegen.

                              edfea48a-4d81-4d5d-a36e-6fe03d14204c-image.png

                              Ggf. muss man diese Node noch resetten, aber erst mal so schauen, ob das geht.

                              Das Wichtigste ist aber dass im Flow-Kontext die richtige Reihenfolge steht. Das war zumindest in der letzten Debugausgabe nicht der Fall.

                              H 2 Replies Last reply Reply Quote 0
                              • H
                                hafo @mickym last edited by

                                @mickym Ja, so läufts richtig. 👑

                                mickym 1 Reply Last reply Reply Quote 0
                                • H
                                  hafo @mickym last edited by

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

                                  mickym 1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @hafo last edited by 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

                                    mickym 1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @hafo last edited by 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 1 Reply Last reply Reply Quote 0
                                      • H
                                        hafo @mickym last edited by

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

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

                                          @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 mickym 2 Replies Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @hafo last edited by

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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            503
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            141
                                            8102
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo