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. Mehrere Datenpunkte mit einer variablen vergleichen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Mehrere Datenpunkte mit einer variablen vergleichen

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Renegade 0 last edited by mickym

      @renegade-0 sagte in Mehrere Datenpunkte mit einer variablen vergleichen:

      @mickym
      jetzt ja. 🙂

      Sollte man als erstes machen!!!!

      Wenn es Zahlen sind gehts nämlich jetzt, sonst musst halt konvertieren:

      8e3d790f-deac-41f2-96c3-1f9031d4a79e-image.png

      38e53ee1-c0c2-4378-93ba-f44bc2bb3d30-image.png

      Hier der Flow - auch mit Namen, wenn Du nicht nur true haben willst. 😉

      [
         {
             "id": "51113dd8.972204",
             "type": "ioBroker list",
             "z": "1ae851a8.7c63de",
             "name": "authorised",
             "topic": "0_userdata.0.door-server.door-RFID.*",
             "objType": "state",
             "regex": "",
             "asArray": "false",
             "onlyIDs": "false",
             "withValues": "true",
             "x": 550,
             "y": 200,
             "wires": [
                 [
                     "f064dd3d.75fe8",
                     "689dcd8a.51a634"
                 ]
             ]
         },
         {
             "id": "a2577882.2efd08",
             "type": "ioBroker in",
             "z": "1ae851a8.7c63de",
             "name": "client/RFID",
             "topic": "mqtt.0.client.RFID",
             "payloadType": "value",
             "onlyack": "",
             "func": "all",
             "gap": "",
             "fireOnStart": "false",
             "x": 80,
             "y": 140,
             "wires": [
                 [
                     "9d981111.4543b"
                 ]
             ]
         },
         {
             "id": "9d981111.4543b",
             "type": "change",
             "z": "1ae851a8.7c63de",
             "name": "",
             "rules": [
                 {
                     "t": "move",
                     "p": "payload",
                     "pt": "msg",
                     "to": "search",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 320,
             "y": 200,
             "wires": [
                 [
                     "51113dd8.972204"
                 ]
             ]
         },
         {
             "id": "7d60e459.bed5bc",
             "type": "debug",
             "z": "1ae851a8.7c63de",
             "name": "Matched",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": true,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "payload",
             "statusType": "auto",
             "x": 1160,
             "y": 120,
             "wires": []
         },
         {
             "id": "f064dd3d.75fe8",
             "type": "switch",
             "z": "1ae851a8.7c63de",
             "name": "Treffer?",
             "property": "payload",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "jsonata_exp",
                     "v": "search = payload.val",
                     "vt": "jsonata"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 1,
             "x": 740,
             "y": 200,
             "wires": [
                 [
                     "8d0e7800.870138",
                     "7e533710.fd4f68",
                     "43a48ca8.55e674"
                 ]
             ]
         },
         {
             "id": "8d0e7800.870138",
             "type": "change",
             "z": "1ae851a8.7c63de",
             "name": "setze payload auf true",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "true",
                     "tot": "bool"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 960,
             "y": 120,
             "wires": [
                 [
                     "7d60e459.bed5bc"
                 ]
             ]
         },
         {
             "id": "689dcd8a.51a634",
             "type": "debug",
             "z": "1ae851a8.7c63de",
             "name": "Test 1:",
             "active": false,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "true",
             "targetType": "full",
             "statusVal": "",
             "statusType": "auto",
             "x": 740,
             "y": 340,
             "wires": []
         },
         {
             "id": "7e533710.fd4f68",
             "type": "debug",
             "z": "1ae851a8.7c63de",
             "name": "search",
             "active": false,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "search",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1030,
             "y": 340,
             "wires": []
         },
         {
             "id": "eb860852.0e1938",
             "type": "inject",
             "z": "1ae851a8.7c63de",
             "name": "",
             "props": [
                 {
                     "p": "payload"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "payload": "12345",
             "payloadType": "num",
             "x": 90,
             "y": 240,
             "wires": [
                 [
                     "9d981111.4543b"
                 ]
             ]
         },
         {
             "id": "43a48ca8.55e674",
             "type": "change",
             "z": "1ae851a8.7c63de",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "payload.common.name",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 970,
             "y": 200,
             "wires": [
                 [
                     "5ab61be9.22b424"
                 ]
             ]
         },
         {
             "id": "5ab61be9.22b424",
             "type": "debug",
             "z": "1ae851a8.7c63de",
             "name": "Wer bist Du?",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1190,
             "y": 200,
             "wires": []
         }
      ]
      

      Ansonsten wenn Du die Zahlen als Strings miteinander vergleichen willst, musst halt in der switch Node konvertieren, also von

      6e938385-d301-4065-ace8-dc6fcb890cea-image.png

      in

      f0ed5dd0-d53e-4b6b-a22d-fbe2f2d98ad1-image.png

      R 1 Reply Last reply Reply Quote 0
      • R
        Renegade 0 @mickym last edited by

        @mickym

        habs jetzt mit etwas tüfteln wie folgt gelöst. Nicht schön, aber funktioniert. 😉

        [
            {
                "id": "1ae851a8.7c63de",
                "type": "tab",
                "label": "RFID-Check",
                "disabled": false,
                "info": ""
            },
            {
                "id": "51113dd8.972204",
                "type": "ioBroker list",
                "z": "1ae851a8.7c63de",
                "name": "authorised",
                "topic": "0_userdata.0.door-server.door-RFID.*",
                "objType": "state",
                "regex": "",
                "asArray": "false",
                "onlyIDs": "false",
                "withValues": "true",
                "x": 550,
                "y": 200,
                "wires": [
                    [
                        "f064dd3d.75fe8"
                    ]
                ]
            },
            {
                "id": "a2577882.2efd08",
                "type": "ioBroker in",
                "z": "1ae851a8.7c63de",
                "name": "client/RFID",
                "topic": "mqtt.0.client.RFID",
                "payloadType": "object",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "x": 90,
                "y": 200,
                "wires": [
                    [
                        "9d981111.4543b"
                    ]
                ]
            },
            {
                "id": "9d981111.4543b",
                "type": "change",
                "z": "1ae851a8.7c63de",
                "name": "",
                "rules": [
                    {
                        "t": "move",
                        "p": "payload",
                        "pt": "msg",
                        "to": "search",
                        "tot": "msg"
                    }
                ],
                "action": "",
                "property": "",
                "from": "",
                "to": "",
                "reg": false,
                "x": 300,
                "y": 200,
                "wires": [
                    [
                        "51113dd8.972204"
                    ]
                ]
            },
            {
                "id": "7d60e459.bed5bc",
                "type": "debug",
                "z": "1ae851a8.7c63de",
                "name": "Finish",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": true,
                "complete": "payload",
                "targetType": "msg",
                "statusVal": "payload",
                "statusType": "auto",
                "x": 1190,
                "y": 140,
                "wires": []
            },
            {
                "id": "f064dd3d.75fe8",
                "type": "switch",
                "z": "1ae851a8.7c63de",
                "name": "Treffer?",
                "property": "payload",
                "propertyType": "msg",
                "rules": [
                    {
                        "t": "jsonata_exp",
                        "v": "search.val = payload.val",
                        "vt": "jsonata"
                    }
                ],
                "checkall": "false",
                "repair": false,
                "outputs": 1,
                "x": 740,
                "y": 200,
                "wires": [
                    [
                        "8d0e7800.870138",
                        "ccff8fad.33733"
                    ]
                ]
            },
            {
                "id": "8d0e7800.870138",
                "type": "change",
                "z": "1ae851a8.7c63de",
                "name": "setze payload auf true",
                "rules": [
                    {
                        "t": "set",
                        "p": "payload",
                        "pt": "msg",
                        "to": "true",
                        "tot": "bool"
                    }
                ],
                "action": "",
                "property": "",
                "from": "",
                "to": "",
                "reg": false,
                "x": 980,
                "y": 140,
                "wires": [
                    [
                        "7d60e459.bed5bc"
                    ]
                ]
            },
            {
                "id": "7e533710.fd4f68",
                "type": "debug",
                "z": "1ae851a8.7c63de",
                "name": "result",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": false,
                "complete": "payload",
                "targetType": "msg",
                "statusVal": "",
                "statusType": "auto",
                "x": 1190,
                "y": 240,
                "wires": []
            },
            {
                "id": "ccff8fad.33733",
                "type": "change",
                "z": "1ae851a8.7c63de",
                "name": "",
                "rules": [
                    {
                        "t": "set",
                        "p": "payload",
                        "pt": "msg",
                        "to": "payload.common.name",
                        "tot": "msg"
                    }
                ],
                "action": "",
                "property": "",
                "from": "",
                "to": "",
                "reg": false,
                "x": 970,
                "y": 240,
                "wires": [
                    [
                        "7e533710.fd4f68"
                    ]
                ]
            }
        ]
        
        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @Renegade 0 last edited by

          Was ist unschön - warum Du die RFID als objekt holst und nicht wie ich als Value - verstehe ich allerdings nicht.

          R 1 Reply Last reply Reply Quote 0
          • R
            Renegade 0 @mickym last edited by

            @mickym

            Da die als value im String kommt und ich die val aus der Liste als number bekomme. Also habe ich gleich die RFID als Objekt geholt, da ist es dann als number "konvertiert". 😉

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

              @renegade-0 Ok - ansonsten habe ich Dir ja unten gezeigt, wie Du in der switch Node konvertierst - damit das alles matched. Wahrscheinlich sind sogar Strings besser - nicht dass es RFID mit führenden Nullen gibt. 😉

              Aber was ist daran unschön. 😉 ???

              R 1 Reply Last reply Reply Quote 0
              • R
                Renegade 0 @mickym last edited by

                @mickym
                schöner wäre natürlich ein echtes konvertieren, aber so fit bin ich noch nicht. Bin ja ein Frischling auf dem Gebiet node-Red. 🙂

                Kämpfe zb. gerade damit eine saubere Lösung zu finden, wenn eine Variable den Status von true auf false oder anders rum ändert, der switch dann sagt bei ture mache das und bei false das, aber leider kommen die werte aus der Var als bool und die switch kann kein bool.

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

                  @renegade-0 Der Switch kann bool .)

                  603e6269-5e30-4439-af6e-dbafed45754a-image.png

                  R 1 Reply Last reply Reply Quote 0
                  • R
                    Renegade 0 @mickym last edited by

                    @mickym
                    ahh, warum kann ich da ned einfach auswählen, wie bei den anderen?^^

                    Letzte Frage für heute, weil ich grad Dich als Genie dran hab. 🙂 Wie löst du es, wenn du quasi eine AND funktion brauchst. also wenn Var 1 +2 true, dann mach true?

                    mickym 2 Replies Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @Renegade 0 last edited by mickym

                      @renegade-0

                      Mit JSONATA hast Du über $string() in String gewandelt. Das habe ich Dir unten gezeigt.

                      AND machst auch über JSONATA oder sammelst alles in einem Objekt, das mache ich bei vielen Verknüpfungen - da kann ich ggf. auch einen anderen Thread verweisen, wo ich das alles erklärt habe.

                      Die Nachrichten warten nicht aufeinander. Entweder vergleichst Du innerhalb eines Nachrichtenobjektes oder sammelst in Flow-Variablen.

                      266b3423-bb08-4f05-84a6-44ded15b9110-image.png

                      b40518b6-e9f9-49c4-86ec-f7793f0f3151-image.png

                      750c55b9-af81-4309-904d-04fdd2271bcd-image.png

                      Hier der Flow zu spielen:

                      [
                         {
                             "id": "4d5d7a10.756a74",
                             "type": "inject",
                             "z": "1121287c.817698",
                             "name": "",
                             "props": [
                                 {
                                     "p": "var1",
                                     "v": "25",
                                     "vt": "num"
                                 },
                                 {
                                     "p": "var2",
                                     "v": "hallo",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payloadType": "str",
                             "x": 670,
                             "y": 560,
                             "wires": [
                                 [
                                     "74314629.96c8b8"
                                 ]
                             ]
                         },
                         {
                             "id": "74314629.96c8b8",
                             "type": "switch",
                             "z": "1121287c.817698",
                             "name": "",
                             "property": "payload",
                             "propertyType": "msg",
                             "rules": [
                                 {
                                     "t": "jsonata_exp",
                                     "v": "var1 = 25 and var2 = 'hallo'",
                                     "vt": "jsonata"
                                 }
                             ],
                             "checkall": "true",
                             "repair": false,
                             "outputs": 1,
                             "x": 850,
                             "y": 560,
                             "wires": [
                                 [
                                     "d6e9cd73.e8162"
                                 ]
                             ]
                         },
                         {
                             "id": "d6e9cd73.e8162",
                             "type": "debug",
                             "z": "1121287c.817698",
                             "name": "var1 = 25 und var2 = hallo",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "true",
                             "targetType": "full",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 1090,
                             "y": 560,
                             "wires": []
                         },
                         {
                             "id": "a83d9abb.c1d118",
                             "type": "inject",
                             "z": "1121287c.817698",
                             "name": "",
                             "props": [
                                 {
                                     "p": "var1",
                                     "v": "22",
                                     "vt": "num"
                                 },
                                 {
                                     "p": "var2",
                                     "v": "hallo",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "x": 670,
                             "y": 500,
                             "wires": [
                                 [
                                     "74314629.96c8b8"
                                 ]
                             ]
                         }
                      ]
                      

                      Für die Überwachung mehrere Zustände verweise ich auch einen anderen Beitrag von mir: https://forum.iobroker.net/topic/44765/gelöst-überwachung-eingeschaltete-verbraucher/3?_=1623542233576

                      Manche installieren sich auch eine UND Node. Ich denke man kommt ohne aus. Aber wer will kann ja zusätzliche NOdes installieren: https://flows.nodered.org/node/node-red-contrib-boolean-logic

                      R 1 Reply Last reply Reply Quote 0
                      • R
                        Renegade 0 @mickym last edited by

                        @mickym
                        perfekt danke dir. Damit werde ich mich morgen mal soielen. Also falls du mal an die österreichische Grenze kommst. Steht ein Bier, Kaffe, Tee oder was immer du willst gern für Dich bereit. 🙂

                        Und nochmals vielen Lieben Dank für die Rettung und deine Zeit.

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

                          @renegade-0 Soweit weg wohne ich nicht davon weg. 😉

                          R 1 Reply Last reply Reply Quote 0
                          • R
                            Renegade 0 @mickym last edited by

                            @mickym
                            Na dann, die Prüfung ist bald rum.^^

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

                              @renegade-0 sagte in Mehrere Datenpunkte mit einer variablen vergleichen:

                              @mickym
                              ahh, warum kann ich da ned einfach auswählen, wie bei den anderen?^^

                              Letzte Frage für heute, weil ich grad Dich als Genie dran hab. 🙂 Wie löst du es, wenn du quasi eine AND funktion brauchst. also wenn Var 1 +2 true, dann mach true?

                              Bei var1=true und var2= true (also beide Variablen enthalten einen Bool) - kannst in das JSONATA Feld natürlich einfach schreiben:

                              var1 and var2

                              88c78abc-59af-4532-acfa-a63ea616cfb6-image.png

                              Der Switch leitet dann an diesen Ausgang wenn der gesamte Ausdruck im JSONATA Feld true ergibt.

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              953
                              Online

                              31.7k
                              Users

                              79.7k
                              Topics

                              1.3m
                              Posts

                              2
                              25
                              820
                              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