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. Vergleich von zwei Eingangswerten um Wert festzulegen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Vergleich von zwei Eingangswerten um Wert festzulegen

Geplant Angeheftet Gesperrt Verschoben Node-Red
53 Beiträge 5 Kommentatoren 12.5k Aufrufe 5 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.
  • Claus1985 0C Claus1985 0

    Hallo Zusammen,

    folgendes Problem:
    Ich habe zwei Nodes/Eingangswerte wobei beide jeweils entweder 0 oder 1 ausgeben.
    Nun möchte ich als Ergebnis eine Payload mit 3 erzeugen wenn beide Nodes/Eingangswerte auf 0 sind.

    Wie bekomme ich das mit Bausteinen in OneNote hin, hat jemand eine Idee?

    Danke und Gruß,

    Claus

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

    @claus1985-0
    Mit OneNote? Das kenn ich nur als Notizbuch von Microsoft.
    Oder meintest Du doch NodeRed?

    Und falls Du NodeRed meinst, sind das Eingangswerte von NodeRed oder kommen die woanders her?

    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
    • Claus1985 0C Claus1985 0

      Hallo Zusammen,

      folgendes Problem:
      Ich habe zwei Nodes/Eingangswerte wobei beide jeweils entweder 0 oder 1 ausgeben.
      Nun möchte ich als Ergebnis eine Payload mit 3 erzeugen wenn beide Nodes/Eingangswerte auf 0 sind.

      Wie bekomme ich das mit Bausteinen in OneNote hin, hat jemand eine Idee?

      Danke und Gruß,

      Claus

      F Offline
      F Offline
      frankyboy73
      schrieb am zuletzt editiert von frankyboy73
      #3

      @claus1985-0
      Hast du 1 und 0 als Nummer oder als Text?
      Hier mal als Nummern. Da gibts wie immer viele Lösungsansätze.
      Klassich kann man die beiden Eingangs Nodes als Trigger verwenden und dann die beiden Nodes abfragen, per Switch, sind beide 0 dann per Change auf 3 setzen.
      Vergleichen1.jpg

      [
         {
             "id": "7ad4e286.bdf24c",
             "type": "ioBroker in",
             "z": "32aff127.1dce4e",
             "name": "",
             "topic": "Node1",
             "payloadType": "value",
             "onlyack": "",
             "func": "all",
             "gap": "",
             "fireOnStart": "false",
             "x": 70,
             "y": 160,
             "wires": [
                 [
                     "d658aa99.3bd4d8"
                 ]
             ]
         },
         {
             "id": "e005138c.2d7e1",
             "type": "ioBroker in",
             "z": "32aff127.1dce4e",
             "name": "",
             "topic": "Node2",
             "payloadType": "value",
             "onlyack": "",
             "func": "all",
             "gap": "",
             "fireOnStart": "false",
             "x": 70,
             "y": 240,
             "wires": [
                 [
                     "d658aa99.3bd4d8"
                 ]
             ]
         },
         {
             "id": "d658aa99.3bd4d8",
             "type": "ioBroker get",
             "z": "32aff127.1dce4e",
             "name": "",
             "topic": "Node1",
             "attrname": "payload",
             "payloadType": "value",
             "x": 240,
             "y": 200,
             "wires": [
                 [
                     "d19288de.1aa218"
                 ]
             ]
         },
         {
             "id": "8920623d.c993",
             "type": "ioBroker get",
             "z": "32aff127.1dce4e",
             "name": "",
             "topic": "Node2",
             "attrname": "payload",
             "payloadType": "value",
             "x": 490,
             "y": 200,
             "wires": [
                 [
                     "7f1a26e2.11cf88"
                 ]
             ]
         },
         {
             "id": "d19288de.1aa218",
             "type": "switch",
             "z": "32aff127.1dce4e",
             "name": "",
             "property": "payload",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "eq",
                     "v": "0",
                     "vt": "num"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 1,
             "x": 360,
             "y": 200,
             "wires": [
                 [
                     "8920623d.c993"
                 ]
             ]
         },
         {
             "id": "7f1a26e2.11cf88",
             "type": "switch",
             "z": "32aff127.1dce4e",
             "name": "",
             "property": "payload",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "eq",
                     "v": "0",
                     "vt": "num"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 1,
             "x": 620,
             "y": 200,
             "wires": [
                 [
                     "60ad114f.f2546"
                 ]
             ]
         },
         {
             "id": "ed49eb9f.9526c8",
             "type": "debug",
             "z": "32aff127.1dce4e",
             "name": "",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "false",
             "statusVal": "",
             "statusType": "auto",
             "x": 990,
             "y": 200,
             "wires": []
         },
         {
             "id": "60ad114f.f2546",
             "type": "change",
             "z": "32aff127.1dce4e",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "3",
                     "tot": "num"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 800,
             "y": 200,
             "wires": [
                 [
                     "ed49eb9f.9526c8"
                 ]
             ]
         }
      ]
      

      Oder per Join Node, in deinem Fall, senden der Nachricht nach 2 Nachrichtenteilen, dann Abrage mit Switch ob einer 1 ist, oder sonst per Change auf 3 setzen.
      Ist eine der Node auf 1 kannst du noch ne andere Ausgabe über den anderen Ausgang der Switch Node per Change generieren.
      Bei der Join Node, müssen allerdings auch beide Eingänge mindestens ein mal was gesendet haben.
      Vergleichen2.jpg

      [
         {
             "id": "6703c8f0.f3af68",
             "type": "join",
             "z": "32aff127.1dce4e",
             "name": "",
             "mode": "custom",
             "build": "object",
             "property": "payload",
             "propertyType": "msg",
             "key": "topic",
             "joiner": "\\n",
             "joinerType": "str",
             "accumulate": true,
             "timeout": "0",
             "count": "2",
             "reduceRight": false,
             "reduceExp": "",
             "reduceInit": "true",
             "reduceInitType": "bool",
             "reduceFixup": "",
             "x": 330,
             "y": 480,
             "wires": [
                 [
                     "e64bce40.fb1a7"
                 ]
             ]
         },
         {
             "id": "e64bce40.fb1a7",
             "type": "switch",
             "z": "32aff127.1dce4e",
             "name": "",
             "property": "payload.*",
             "propertyType": "jsonata",
             "rules": [
                 {
                     "t": "cont",
                     "v": "1",
                     "vt": "num"
                 },
                 {
                     "t": "else"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 2,
             "x": 510,
             "y": 480,
             "wires": [
                 [],
                 [
                     "cadb73d0.36e15"
                 ]
             ]
         },
         {
             "id": "9f92fb04.dd2c18",
             "type": "debug",
             "z": "32aff127.1dce4e",
             "name": "",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "false",
             "statusVal": "",
             "statusType": "auto",
             "x": 870,
             "y": 480,
             "wires": []
         },
         {
             "id": "cadb73d0.36e15",
             "type": "change",
             "z": "32aff127.1dce4e",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "3",
                     "tot": "num"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 690,
             "y": 480,
             "wires": [
                 [
                     "9f92fb04.dd2c18"
                 ]
             ]
         },
         {
             "id": "ffe11d55.519d",
             "type": "ioBroker in",
             "z": "32aff127.1dce4e",
             "name": "",
             "topic": "Node1",
             "payloadType": "value",
             "onlyack": "",
             "func": "all",
             "gap": "",
             "fireOnStart": "false",
             "x": 130,
             "y": 440,
             "wires": [
                 [
                     "6703c8f0.f3af68"
                 ]
             ]
         },
         {
             "id": "ba8eff1f.ae877",
             "type": "ioBroker in",
             "z": "32aff127.1dce4e",
             "name": "",
             "topic": "Node2",
             "payloadType": "value",
             "onlyack": "",
             "func": "all",
             "gap": "",
             "fireOnStart": "false",
             "x": 130,
             "y": 520,
             "wires": [
                 [
                     "6703c8f0.f3af68"
                 ]
             ]
         }
      ]
      


      Sorry, musste noch mal editieren, irgendwie klappt heute die verbindung zum Forum nicht so richtig.

      Schöne Grüße Frank

      Claus1985 0C mickymM 2 Antworten Letzte Antwort
      0
      • F frankyboy73

        @claus1985-0
        Hast du 1 und 0 als Nummer oder als Text?
        Hier mal als Nummern. Da gibts wie immer viele Lösungsansätze.
        Klassich kann man die beiden Eingangs Nodes als Trigger verwenden und dann die beiden Nodes abfragen, per Switch, sind beide 0 dann per Change auf 3 setzen.
        Vergleichen1.jpg

        [
           {
               "id": "7ad4e286.bdf24c",
               "type": "ioBroker in",
               "z": "32aff127.1dce4e",
               "name": "",
               "topic": "Node1",
               "payloadType": "value",
               "onlyack": "",
               "func": "all",
               "gap": "",
               "fireOnStart": "false",
               "x": 70,
               "y": 160,
               "wires": [
                   [
                       "d658aa99.3bd4d8"
                   ]
               ]
           },
           {
               "id": "e005138c.2d7e1",
               "type": "ioBroker in",
               "z": "32aff127.1dce4e",
               "name": "",
               "topic": "Node2",
               "payloadType": "value",
               "onlyack": "",
               "func": "all",
               "gap": "",
               "fireOnStart": "false",
               "x": 70,
               "y": 240,
               "wires": [
                   [
                       "d658aa99.3bd4d8"
                   ]
               ]
           },
           {
               "id": "d658aa99.3bd4d8",
               "type": "ioBroker get",
               "z": "32aff127.1dce4e",
               "name": "",
               "topic": "Node1",
               "attrname": "payload",
               "payloadType": "value",
               "x": 240,
               "y": 200,
               "wires": [
                   [
                       "d19288de.1aa218"
                   ]
               ]
           },
           {
               "id": "8920623d.c993",
               "type": "ioBroker get",
               "z": "32aff127.1dce4e",
               "name": "",
               "topic": "Node2",
               "attrname": "payload",
               "payloadType": "value",
               "x": 490,
               "y": 200,
               "wires": [
                   [
                       "7f1a26e2.11cf88"
                   ]
               ]
           },
           {
               "id": "d19288de.1aa218",
               "type": "switch",
               "z": "32aff127.1dce4e",
               "name": "",
               "property": "payload",
               "propertyType": "msg",
               "rules": [
                   {
                       "t": "eq",
                       "v": "0",
                       "vt": "num"
                   }
               ],
               "checkall": "true",
               "repair": false,
               "outputs": 1,
               "x": 360,
               "y": 200,
               "wires": [
                   [
                       "8920623d.c993"
                   ]
               ]
           },
           {
               "id": "7f1a26e2.11cf88",
               "type": "switch",
               "z": "32aff127.1dce4e",
               "name": "",
               "property": "payload",
               "propertyType": "msg",
               "rules": [
                   {
                       "t": "eq",
                       "v": "0",
                       "vt": "num"
                   }
               ],
               "checkall": "true",
               "repair": false,
               "outputs": 1,
               "x": 620,
               "y": 200,
               "wires": [
                   [
                       "60ad114f.f2546"
                   ]
               ]
           },
           {
               "id": "ed49eb9f.9526c8",
               "type": "debug",
               "z": "32aff127.1dce4e",
               "name": "",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "false",
               "statusVal": "",
               "statusType": "auto",
               "x": 990,
               "y": 200,
               "wires": []
           },
           {
               "id": "60ad114f.f2546",
               "type": "change",
               "z": "32aff127.1dce4e",
               "name": "",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "3",
                       "tot": "num"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 800,
               "y": 200,
               "wires": [
                   [
                       "ed49eb9f.9526c8"
                   ]
               ]
           }
        ]
        

        Oder per Join Node, in deinem Fall, senden der Nachricht nach 2 Nachrichtenteilen, dann Abrage mit Switch ob einer 1 ist, oder sonst per Change auf 3 setzen.
        Ist eine der Node auf 1 kannst du noch ne andere Ausgabe über den anderen Ausgang der Switch Node per Change generieren.
        Bei der Join Node, müssen allerdings auch beide Eingänge mindestens ein mal was gesendet haben.
        Vergleichen2.jpg

        [
           {
               "id": "6703c8f0.f3af68",
               "type": "join",
               "z": "32aff127.1dce4e",
               "name": "",
               "mode": "custom",
               "build": "object",
               "property": "payload",
               "propertyType": "msg",
               "key": "topic",
               "joiner": "\\n",
               "joinerType": "str",
               "accumulate": true,
               "timeout": "0",
               "count": "2",
               "reduceRight": false,
               "reduceExp": "",
               "reduceInit": "true",
               "reduceInitType": "bool",
               "reduceFixup": "",
               "x": 330,
               "y": 480,
               "wires": [
                   [
                       "e64bce40.fb1a7"
                   ]
               ]
           },
           {
               "id": "e64bce40.fb1a7",
               "type": "switch",
               "z": "32aff127.1dce4e",
               "name": "",
               "property": "payload.*",
               "propertyType": "jsonata",
               "rules": [
                   {
                       "t": "cont",
                       "v": "1",
                       "vt": "num"
                   },
                   {
                       "t": "else"
                   }
               ],
               "checkall": "true",
               "repair": false,
               "outputs": 2,
               "x": 510,
               "y": 480,
               "wires": [
                   [],
                   [
                       "cadb73d0.36e15"
                   ]
               ]
           },
           {
               "id": "9f92fb04.dd2c18",
               "type": "debug",
               "z": "32aff127.1dce4e",
               "name": "",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "false",
               "statusVal": "",
               "statusType": "auto",
               "x": 870,
               "y": 480,
               "wires": []
           },
           {
               "id": "cadb73d0.36e15",
               "type": "change",
               "z": "32aff127.1dce4e",
               "name": "",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "3",
                       "tot": "num"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 690,
               "y": 480,
               "wires": [
                   [
                       "9f92fb04.dd2c18"
                   ]
               ]
           },
           {
               "id": "ffe11d55.519d",
               "type": "ioBroker in",
               "z": "32aff127.1dce4e",
               "name": "",
               "topic": "Node1",
               "payloadType": "value",
               "onlyack": "",
               "func": "all",
               "gap": "",
               "fireOnStart": "false",
               "x": 130,
               "y": 440,
               "wires": [
                   [
                       "6703c8f0.f3af68"
                   ]
               ]
           },
           {
               "id": "ba8eff1f.ae877",
               "type": "ioBroker in",
               "z": "32aff127.1dce4e",
               "name": "",
               "topic": "Node2",
               "payloadType": "value",
               "onlyack": "",
               "func": "all",
               "gap": "",
               "fireOnStart": "false",
               "x": 130,
               "y": 520,
               "wires": [
                   [
                       "6703c8f0.f3af68"
                   ]
               ]
           }
        ]
        


        Sorry, musste noch mal editieren, irgendwie klappt heute die verbindung zum Forum nicht so richtig.

        Claus1985 0C Offline
        Claus1985 0C Offline
        Claus1985 0
        schrieb am zuletzt editiert von Claus1985 0
        #4

        @mickym ja genau meinte Node Red :see_no_evil:
        Die Werte kommen von Loxone per Adapter in ioBroker an. Das hab ich per Node in Node Red eingebunden.
        Ich verwende dazu zwei Control In Notes von Loxone. Der eine zeigt 0/1 (im Grunde true/false) für "Rolladen fährt gerade runter" und der zweite für "Rolladen fährt gerade hoch". In Homekit sind diese beiden Werte allerdings in einem Wert "PositionState" zusammengefasst der drei Zustände haben kann (Decreasing=0, Increasing=1 und Stopped=2).

        falsefrankyboy73
        Vielen Dank für Deine Lösungsansätze! Leider hatte ich einen Denkfehler drin..
        Die beiden Eingänge setzen immer dann 0 oder eins wenn der Rolladen etwas macht ansonsten kommt da nichts an.
        Wenn ich also den Rolladen hoch fahren lasse, kommt eine Nachricht für "Rollanden fährt gerade hoch" mit Payload=1. Sobald der Rolladen sich nicht mehr bewegt kommt eine Nachricht mit 0. Genau das gleiche Prinzip auch bei Rolladen fährt gerade runter.

        Im Grunde genommen bräuchte ich also eine Logik die auf 2 springt, sobald von beiden Bausteinen je einmal die Nachricht 0 kam. Wenn dann einer der Eingänge auf 1 springt muss der Wert entweder 0 oder 1 haben bis der Eingang dann wieder auf 0 springt.

        Hab glaube ich eine recht einfache Lösung gefunden:

        [
            {
                "id": "e5f902fb.6d7a1",
                "type": "change",
                "z": "f3f0ca0.5f2f538",
                "name": "1 zu 0",
                "rules": [
                    {
                        "t": "change",
                        "p": "payload",
                        "pt": "msg",
                        "from": "1",
                        "fromt": "num",
                        "to": "0",
                        "tot": "num"
                    }
                ],
                "action": "",
                "property": "",
                "from": "",
                "to": "",
                "reg": false,
                "x": 350,
                "y": 200,
                "wires": [
                    [
                        "30a9685d.fa1428"
                    ]
                ]
            },
            {
                "id": "4202ff1.72b9d",
                "type": "switch",
                "z": "f3f0ca0.5f2f538",
                "name": "",
                "property": "payload",
                "propertyType": "msg",
                "rules": [
                    {
                        "t": "eq",
                        "v": "1",
                        "vt": "num"
                    },
                    {
                        "t": "eq",
                        "v": "0",
                        "vt": "num"
                    }
                ],
                "checkall": "true",
                "repair": false,
                "outputs": 2,
                "x": 210,
                "y": 240,
                "wires": [
                    [
                        "e5f902fb.6d7a1"
                    ],
                    [
                        "b535d0ce.27bef"
                    ]
                ]
            },
            {
                "id": "b535d0ce.27bef",
                "type": "change",
                "z": "f3f0ca0.5f2f538",
                "name": "0 zu 2",
                "rules": [
                    {
                        "t": "change",
                        "p": "payload",
                        "pt": "msg",
                        "from": "0",
                        "fromt": "num",
                        "to": "2",
                        "tot": "num"
                    }
                ],
                "action": "",
                "property": "",
                "from": "",
                "to": "",
                "reg": false,
                "x": 350,
                "y": 260,
                "wires": [
                    [
                        "30a9685d.fa1428"
                    ]
                ]
            },
            {
                "id": "dbf5a55a.0173e8",
                "type": "switch",
                "z": "f3f0ca0.5f2f538",
                "name": "",
                "property": "payload",
                "propertyType": "msg",
                "rules": [
                    {
                        "t": "eq",
                        "v": "0",
                        "vt": "num"
                    },
                    {
                        "t": "eq",
                        "v": "1",
                        "vt": "num"
                    }
                ],
                "checkall": "true",
                "repair": false,
                "outputs": 2,
                "x": 210,
                "y": 300,
                "wires": [
                    [
                        "b535d0ce.27bef"
                    ],
                    [
                        "30a9685d.fa1428"
                    ]
                ]
            }
        ]
        

        895f7139-93eb-4025-9b7e-998854f17153-image.png

        Danke und Gruß,

        Claus

        mickymM 1 Antwort Letzte Antwort
        0
        • Claus1985 0C Claus1985 0

          @mickym ja genau meinte Node Red :see_no_evil:
          Die Werte kommen von Loxone per Adapter in ioBroker an. Das hab ich per Node in Node Red eingebunden.
          Ich verwende dazu zwei Control In Notes von Loxone. Der eine zeigt 0/1 (im Grunde true/false) für "Rolladen fährt gerade runter" und der zweite für "Rolladen fährt gerade hoch". In Homekit sind diese beiden Werte allerdings in einem Wert "PositionState" zusammengefasst der drei Zustände haben kann (Decreasing=0, Increasing=1 und Stopped=2).

          falsefrankyboy73
          Vielen Dank für Deine Lösungsansätze! Leider hatte ich einen Denkfehler drin..
          Die beiden Eingänge setzen immer dann 0 oder eins wenn der Rolladen etwas macht ansonsten kommt da nichts an.
          Wenn ich also den Rolladen hoch fahren lasse, kommt eine Nachricht für "Rollanden fährt gerade hoch" mit Payload=1. Sobald der Rolladen sich nicht mehr bewegt kommt eine Nachricht mit 0. Genau das gleiche Prinzip auch bei Rolladen fährt gerade runter.

          Im Grunde genommen bräuchte ich also eine Logik die auf 2 springt, sobald von beiden Bausteinen je einmal die Nachricht 0 kam. Wenn dann einer der Eingänge auf 1 springt muss der Wert entweder 0 oder 1 haben bis der Eingang dann wieder auf 0 springt.

          Hab glaube ich eine recht einfache Lösung gefunden:

          [
              {
                  "id": "e5f902fb.6d7a1",
                  "type": "change",
                  "z": "f3f0ca0.5f2f538",
                  "name": "1 zu 0",
                  "rules": [
                      {
                          "t": "change",
                          "p": "payload",
                          "pt": "msg",
                          "from": "1",
                          "fromt": "num",
                          "to": "0",
                          "tot": "num"
                      }
                  ],
                  "action": "",
                  "property": "",
                  "from": "",
                  "to": "",
                  "reg": false,
                  "x": 350,
                  "y": 200,
                  "wires": [
                      [
                          "30a9685d.fa1428"
                      ]
                  ]
              },
              {
                  "id": "4202ff1.72b9d",
                  "type": "switch",
                  "z": "f3f0ca0.5f2f538",
                  "name": "",
                  "property": "payload",
                  "propertyType": "msg",
                  "rules": [
                      {
                          "t": "eq",
                          "v": "1",
                          "vt": "num"
                      },
                      {
                          "t": "eq",
                          "v": "0",
                          "vt": "num"
                      }
                  ],
                  "checkall": "true",
                  "repair": false,
                  "outputs": 2,
                  "x": 210,
                  "y": 240,
                  "wires": [
                      [
                          "e5f902fb.6d7a1"
                      ],
                      [
                          "b535d0ce.27bef"
                      ]
                  ]
              },
              {
                  "id": "b535d0ce.27bef",
                  "type": "change",
                  "z": "f3f0ca0.5f2f538",
                  "name": "0 zu 2",
                  "rules": [
                      {
                          "t": "change",
                          "p": "payload",
                          "pt": "msg",
                          "from": "0",
                          "fromt": "num",
                          "to": "2",
                          "tot": "num"
                      }
                  ],
                  "action": "",
                  "property": "",
                  "from": "",
                  "to": "",
                  "reg": false,
                  "x": 350,
                  "y": 260,
                  "wires": [
                      [
                          "30a9685d.fa1428"
                      ]
                  ]
              },
              {
                  "id": "dbf5a55a.0173e8",
                  "type": "switch",
                  "z": "f3f0ca0.5f2f538",
                  "name": "",
                  "property": "payload",
                  "propertyType": "msg",
                  "rules": [
                      {
                          "t": "eq",
                          "v": "0",
                          "vt": "num"
                      },
                      {
                          "t": "eq",
                          "v": "1",
                          "vt": "num"
                      }
                  ],
                  "checkall": "true",
                  "repair": false,
                  "outputs": 2,
                  "x": 210,
                  "y": 300,
                  "wires": [
                      [
                          "b535d0ce.27bef"
                      ],
                      [
                          "30a9685d.fa1428"
                      ]
                  ]
              }
          ]
          

          895f7139-93eb-4025-9b7e-998854f17153-image.png

          Danke und Gruß,

          Claus

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

          @claus1985-0 Das wird nicht funktionieren - zum einen hast Du ja nun die gleiche Node als Eingang verwendet - und selbst wenn Du unterschiedliche Nodes nimmst, wird immer gerade die, die gerade 0 sendet eine 2 ausspuken und das random - da beide Nachrichten nicht gleichzeitig ausgewertet werden.

          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.

          Claus1985 0C 1 Antwort Letzte Antwort
          0
          • mickymM mickym

            @claus1985-0 Das wird nicht funktionieren - zum einen hast Du ja nun die gleiche Node als Eingang verwendet - und selbst wenn Du unterschiedliche Nodes nimmst, wird immer gerade die, die gerade 0 sendet eine 2 ausspuken und das random - da beide Nachrichten nicht gleichzeitig ausgewertet werden.

            Claus1985 0C Offline
            Claus1985 0C Offline
            Claus1985 0
            schrieb am zuletzt editiert von
            #6

            @mickym da hast Du leider recht, optimal ist die Lösung nicht. Das wird nur funktionieren, wenn der Rolladen "langsam" bedient wird. Also wenn schnell verschiedene Kommandos kommen passt es nicht mehr..

            mickymM 1 Antwort Letzte Antwort
            0
            • Claus1985 0C Claus1985 0

              @mickym da hast Du leider recht, optimal ist die Lösung nicht. Das wird nur funktionieren, wenn der Rolladen "langsam" bedient wird. Also wenn schnell verschiedene Kommandos kommen passt es nicht mehr..

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

              @claus1985-0 Ich bastel noch etwas - jedenfalls kannst Du es nur mit der von @frankyboy73 vorgeschlagenen JOIN Lösung machen, wobei man halt ggf. nochmal die Bedingungen prüft. Ich bastel auch gerade mal. ;)
              Im Prinzip sollte die Lösung von @frankyboy73 funktionieren, musst halt nur eine 2 anstelle einer 3 in die Change NOde machen. Was geht denn nicht?

              Du kannst den Zähler in der JOIN Node zur Initialisierung entweder auf 1 runter setzen oder Du initialisierst die Join-Node einmalig mit einer Inject Node.

              So habe ich es nun aus Deiner Beschreibung verstanden:

              c31096d7-5e99-46b0-b920-bb93174b1376-image.png

              Hab also erst hoch fahren lassen - dann stopp - dann runter fahren lassen - dann stop.

              [{"id":"d6f6c88983323c92","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":350,"y":1900,"wires":[["4d9a1e9eaa70101d","a66b11e133bf7bd0"]]},{"id":"a42aca12b398df5d","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hoch","payload":"0","payloadType":"num","x":170,"y":1820,"wires":[["d6f6c88983323c92"]]},{"id":"a56bcf63840eb879","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hoch","payload":"1","payloadType":"num","x":170,"y":1860,"wires":[["d6f6c88983323c92"]]},{"id":"b7bd8fc4c3d4ca85","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"runter","payload":"0","payloadType":"num","x":170,"y":1940,"wires":[["d6f6c88983323c92"]]},{"id":"f47feda753524fae","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"runter","payload":"1","payloadType":"num","x":170,"y":1980,"wires":[["d6f6c88983323c92"]]},{"id":"4d9a1e9eaa70101d","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":470,"y":1740,"wires":[]},{"id":"1b9e490a83b117ee","type":"comment","z":"7eaefb9168296580","name":"bekannte Anzahl an Werten","info":"","x":190,"y":1720,"wires":[]},{"id":"a66b11e133bf7bd0","type":"switch","z":"7eaefb9168296580","name":"Not(wert1 ODER wert2)","property":"$not(payload.hoch or payload.runter)","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":550,"y":1900,"wires":[["44a9eb82edb9decf"],["5c4e69f2525bad01","5e4e441797464d24"]]},{"id":"44a9eb82edb9decf","type":"change","z":"7eaefb9168296580","name":"Stopped = 2","rules":[{"t":"set","p":"payload","pt":"msg","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":910,"y":1840,"wires":[["cc4868bd36beedce"]]},{"id":"cc4868bd36beedce","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1310,"y":1840,"wires":[]},{"id":"5c4e69f2525bad01","type":"switch","z":"7eaefb9168296580","name":"Rolladen runter = Increasing","property":"payload.runter","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":860,"y":1900,"wires":[["938321cec7b2f778"]]},{"id":"5e4e441797464d24","type":"switch","z":"7eaefb9168296580","name":"Rolladen hoch = decreasing","property":"payload.hoch","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":860,"y":1960,"wires":[["0b2919fc74be76f7"]]},{"id":"938321cec7b2f778","type":"change","z":"7eaefb9168296580","name":"Increasing = 1","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":1900,"wires":[["cc4868bd36beedce"]]},{"id":"0b2919fc74be76f7","type":"change","z":"7eaefb9168296580","name":"Decreasing = 0","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":1960,"wires":[["cc4868bd36beedce"]]},{"id":"bf66451996415a49","type":"inject","z":"7eaefb9168296580","name":"reset","props":[{"p":"reset","v":"true","vt":"bool"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":160,"y":2060,"wires":[["d6f6c88983323c92"]]}]
              

              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
              • F frankyboy73

                @claus1985-0
                Hast du 1 und 0 als Nummer oder als Text?
                Hier mal als Nummern. Da gibts wie immer viele Lösungsansätze.
                Klassich kann man die beiden Eingangs Nodes als Trigger verwenden und dann die beiden Nodes abfragen, per Switch, sind beide 0 dann per Change auf 3 setzen.
                Vergleichen1.jpg

                [
                   {
                       "id": "7ad4e286.bdf24c",
                       "type": "ioBroker in",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "topic": "Node1",
                       "payloadType": "value",
                       "onlyack": "",
                       "func": "all",
                       "gap": "",
                       "fireOnStart": "false",
                       "x": 70,
                       "y": 160,
                       "wires": [
                           [
                               "d658aa99.3bd4d8"
                           ]
                       ]
                   },
                   {
                       "id": "e005138c.2d7e1",
                       "type": "ioBroker in",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "topic": "Node2",
                       "payloadType": "value",
                       "onlyack": "",
                       "func": "all",
                       "gap": "",
                       "fireOnStart": "false",
                       "x": 70,
                       "y": 240,
                       "wires": [
                           [
                               "d658aa99.3bd4d8"
                           ]
                       ]
                   },
                   {
                       "id": "d658aa99.3bd4d8",
                       "type": "ioBroker get",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "topic": "Node1",
                       "attrname": "payload",
                       "payloadType": "value",
                       "x": 240,
                       "y": 200,
                       "wires": [
                           [
                               "d19288de.1aa218"
                           ]
                       ]
                   },
                   {
                       "id": "8920623d.c993",
                       "type": "ioBroker get",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "topic": "Node2",
                       "attrname": "payload",
                       "payloadType": "value",
                       "x": 490,
                       "y": 200,
                       "wires": [
                           [
                               "7f1a26e2.11cf88"
                           ]
                       ]
                   },
                   {
                       "id": "d19288de.1aa218",
                       "type": "switch",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "property": "payload",
                       "propertyType": "msg",
                       "rules": [
                           {
                               "t": "eq",
                               "v": "0",
                               "vt": "num"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 1,
                       "x": 360,
                       "y": 200,
                       "wires": [
                           [
                               "8920623d.c993"
                           ]
                       ]
                   },
                   {
                       "id": "7f1a26e2.11cf88",
                       "type": "switch",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "property": "payload",
                       "propertyType": "msg",
                       "rules": [
                           {
                               "t": "eq",
                               "v": "0",
                               "vt": "num"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 1,
                       "x": 620,
                       "y": 200,
                       "wires": [
                           [
                               "60ad114f.f2546"
                           ]
                       ]
                   },
                   {
                       "id": "ed49eb9f.9526c8",
                       "type": "debug",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "false",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 990,
                       "y": 200,
                       "wires": []
                   },
                   {
                       "id": "60ad114f.f2546",
                       "type": "change",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "3",
                               "tot": "num"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 800,
                       "y": 200,
                       "wires": [
                           [
                               "ed49eb9f.9526c8"
                           ]
                       ]
                   }
                ]
                

                Oder per Join Node, in deinem Fall, senden der Nachricht nach 2 Nachrichtenteilen, dann Abrage mit Switch ob einer 1 ist, oder sonst per Change auf 3 setzen.
                Ist eine der Node auf 1 kannst du noch ne andere Ausgabe über den anderen Ausgang der Switch Node per Change generieren.
                Bei der Join Node, müssen allerdings auch beide Eingänge mindestens ein mal was gesendet haben.
                Vergleichen2.jpg

                [
                   {
                       "id": "6703c8f0.f3af68",
                       "type": "join",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "mode": "custom",
                       "build": "object",
                       "property": "payload",
                       "propertyType": "msg",
                       "key": "topic",
                       "joiner": "\\n",
                       "joinerType": "str",
                       "accumulate": true,
                       "timeout": "0",
                       "count": "2",
                       "reduceRight": false,
                       "reduceExp": "",
                       "reduceInit": "true",
                       "reduceInitType": "bool",
                       "reduceFixup": "",
                       "x": 330,
                       "y": 480,
                       "wires": [
                           [
                               "e64bce40.fb1a7"
                           ]
                       ]
                   },
                   {
                       "id": "e64bce40.fb1a7",
                       "type": "switch",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "property": "payload.*",
                       "propertyType": "jsonata",
                       "rules": [
                           {
                               "t": "cont",
                               "v": "1",
                               "vt": "num"
                           },
                           {
                               "t": "else"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 2,
                       "x": 510,
                       "y": 480,
                       "wires": [
                           [],
                           [
                               "cadb73d0.36e15"
                           ]
                       ]
                   },
                   {
                       "id": "9f92fb04.dd2c18",
                       "type": "debug",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "false",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 870,
                       "y": 480,
                       "wires": []
                   },
                   {
                       "id": "cadb73d0.36e15",
                       "type": "change",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "3",
                               "tot": "num"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 690,
                       "y": 480,
                       "wires": [
                           [
                               "9f92fb04.dd2c18"
                           ]
                       ]
                   },
                   {
                       "id": "ffe11d55.519d",
                       "type": "ioBroker in",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "topic": "Node1",
                       "payloadType": "value",
                       "onlyack": "",
                       "func": "all",
                       "gap": "",
                       "fireOnStart": "false",
                       "x": 130,
                       "y": 440,
                       "wires": [
                           [
                               "6703c8f0.f3af68"
                           ]
                       ]
                   },
                   {
                       "id": "ba8eff1f.ae877",
                       "type": "ioBroker in",
                       "z": "32aff127.1dce4e",
                       "name": "",
                       "topic": "Node2",
                       "payloadType": "value",
                       "onlyack": "",
                       "func": "all",
                       "gap": "",
                       "fireOnStart": "false",
                       "x": 130,
                       "y": 520,
                       "wires": [
                           [
                               "6703c8f0.f3af68"
                           ]
                       ]
                   }
                ]
                


                Sorry, musste noch mal editieren, irgendwie klappt heute die verbindung zum Forum nicht so richtig.

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

                @frankyboy73 Na habe ich von Dir heute wieder was gelernt und das hat mich motiviert mal bisschen JSONATA in der Tiefe auszuprobieren.

                5f9acfb3-0bed-4e22-a9e2-9bcef370a219-image.png

                Ich wußte gar nicht, dass das geht - komischerweise aber nur mit enthält - wenn ich mit == versuche zu vergleichen - dann tut es nicht.

                Aber ich hab mich dann mit variablen Parameter mal JSONATA beschäftigt - sowohl im switch Node oder auch Change Node, wie man durch so ein Objekt sich durchhangelt. Wieder eine Möglichkeit sich von function Nodes zu verzichten. Allerdings ist die Performance etwas schlechter mit JSONATA - also mit Javascript.

                Hier mal meine erfolgreichen JSONATA Switches - der letzte Flow - ist der gerade gepostete und der vorletzte war Deiner mit dem Wildcard und enthält.

                [{"id":"7eaefb9168296580","type":"tab","label":"JSONATA - Switches","disabled":false,"info":""},{"id":"b6526cabe5865b94","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":410,"y":220,"wires":[["d29f2776daf6e480","8ac9cc4eb78b41fc","40dc442947ded9f3","08dc0c75145ba6af","f05e50f770e93596"]]},{"id":"f49bf464d2978ea6","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"0","payloadType":"num","x":230,"y":140,"wires":[["b6526cabe5865b94"]]},{"id":"90cde3f324399aae","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"1","payloadType":"num","x":230,"y":180,"wires":[["b6526cabe5865b94"]]},{"id":"3302e4eaddc81265","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"0","payloadType":"num","x":230,"y":260,"wires":[["b6526cabe5865b94"]]},{"id":"73385affd7669f0c","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"1","payloadType":"num","x":230,"y":300,"wires":[["b6526cabe5865b94"]]},{"id":"d29f2776daf6e480","type":"switch","z":"7eaefb9168296580","name":"wert1 UND wert2","property":"payload.wert1 and payload.wert2","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":630,"y":220,"wires":[["48981365a22a9e91"],["d5dbda6dda237531"]]},{"id":"48981365a22a9e91","type":"debug","z":"7eaefb9168296580","name":"AND true","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":840,"y":200,"wires":[]},{"id":"8ac9cc4eb78b41fc","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":530,"y":60,"wires":[]},{"id":"d5dbda6dda237531","type":"debug","z":"7eaefb9168296580","name":"AND false","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":840,"y":240,"wires":[]},{"id":"40dc442947ded9f3","type":"switch","z":"7eaefb9168296580","name":"wert1 ODER wert2","property":"payload.wert1 or payload.wert2","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":630,"y":340,"wires":[["16ccc7d46d8b1027"],["13660292fe6c31c0"]]},{"id":"16ccc7d46d8b1027","type":"debug","z":"7eaefb9168296580","name":"OR true","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":840,"y":320,"wires":[]},{"id":"13660292fe6c31c0","type":"debug","z":"7eaefb9168296580","name":"OR false","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":840,"y":360,"wires":[]},{"id":"909e1de8cf021211","type":"switch","z":"7eaefb9168296580","name":"UND alle 0?","property":"(\t   $withOR := function($i, $j){$i or $j};\t   $withAND := function($i, $j){$i and $j};\t   $reduce(\t       $each(\t           payload,\t           function($v) {$v=0 ? true: false}\t       ),$withAND\t   );\t)\t","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":610,"y":720,"wires":[["f3e5398591dc99f9"],["2112f89c079c0f63"]]},{"id":"ec106f44785b94e5","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":450,"y":720,"wires":[["49b33cd086b17ba6","909e1de8cf021211"]]},{"id":"1a31ace124b3cf93","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"0","payloadType":"num","x":230,"y":560,"wires":[["ec106f44785b94e5"]]},{"id":"7a83da89697bf8a6","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"1","payloadType":"num","x":230,"y":600,"wires":[["ec106f44785b94e5"]]},{"id":"22a133856fadf15e","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"0","payloadType":"num","x":230,"y":680,"wires":[["ec106f44785b94e5"]]},{"id":"7d4c6cdbcb27beed","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"1","payloadType":"num","x":230,"y":720,"wires":[["ec106f44785b94e5"]]},{"id":"49b33cd086b17ba6","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":630,"y":640,"wires":[]},{"id":"f3e5398591dc99f9","type":"debug","z":"7eaefb9168296580","name":"true","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":700,"wires":[]},{"id":"2112f89c079c0f63","type":"debug","z":"7eaefb9168296580","name":"false","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":740,"wires":[]},{"id":"21915f951fb9c032","type":"switch","z":"7eaefb9168296580","name":"nur wenn beide Werte am Wochenende sind","property":"(\t   $withOR := function($i, $j){$i or $j};\t   $withAND := function($i, $j){$i and $j};\t   $reduce(\t       $each(\t           payload,\t           function($v) {\t               $count(\t                   $match($v,/Samstag|Sonntag/)\t           ) > 0\t           }\t       ),\t       $withAND\t\t   )\t   )","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":670,"y":1060,"wires":[["7db1ead9f804d602"],["80ec66b9b9cfe19a"]]},{"id":"da503998ee50fdc5","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":410,"y":1060,"wires":[["4ece76dce4e20554","21915f951fb9c032","bc6be5f7e5ba04f0"]]},{"id":"c1537b7dcade1846","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"Donnerstag","payloadType":"str","x":210,"y":980,"wires":[["da503998ee50fdc5"]]},{"id":"7c07ce3ff45224d4","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"Samstag","payloadType":"str","x":220,"y":1020,"wires":[["da503998ee50fdc5"]]},{"id":"f48782c2b436a169","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"Freitag","payloadType":"str","x":230,"y":1100,"wires":[["da503998ee50fdc5"]]},{"id":"07784380b309b207","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"Sonntag","payloadType":"str","x":230,"y":1140,"wires":[["da503998ee50fdc5"]]},{"id":"4ece76dce4e20554","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":590,"y":960,"wires":[]},{"id":"7db1ead9f804d602","type":"debug","z":"7eaefb9168296580","name":"true","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":930,"y":1040,"wires":[]},{"id":"80ec66b9b9cfe19a","type":"debug","z":"7eaefb9168296580","name":"false","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":930,"y":1080,"wires":[]},{"id":"bc6be5f7e5ba04f0","type":"change","z":"7eaefb9168296580","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"(\t   $withOR := function($i, $j){$i or $j};\t   $withAND := function($i, $j){$i and $j};\t   $reduce(\t       $each(\t           payload,\t           function($v) {\t               $count(\t                   $match($v,/Samstag|Sonntag/)\t           ) > 0\t           }\t       ),\t       $withAND\t\t   )\t   )\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":600,"y":1180,"wires":[["5b4815567def8ccf"]]},{"id":"5b4815567def8ccf","type":"debug","z":"7eaefb9168296580","name":"JSONATA","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":810,"y":1180,"wires":[]},{"id":"cefe135b96d8748c","type":"comment","z":"7eaefb9168296580","name":"bekannte Anzahl an Werten","info":"","x":250,"y":40,"wires":[]},{"id":"49cc80ef9c799431","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert3","payload":"0","payloadType":"num","x":230,"y":800,"wires":[["ec106f44785b94e5"]]},{"id":"344b4f2d39d3bc85","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert3","payload":"1","payloadType":"num","x":230,"y":840,"wires":[["ec106f44785b94e5"]]},{"id":"4fe3b9368d9ff476","type":"comment","z":"7eaefb9168296580","name":"unbekannte Anzahl an Werten","info":"","x":200,"y":500,"wires":[]},{"id":"6703c8f0.f3af68","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"0","count":"1","reduceRight":false,"reduceExp":"","reduceInit":"true","reduceInitType":"bool","reduceFixup":"","x":350,"y":1540,"wires":[["e64bce40.fb1a7"]]},{"id":"e64bce40.fb1a7","type":"switch","z":"7eaefb9168296580","name":"","property":"payload.*","propertyType":"jsonata","rules":[{"t":"cont","v":"1","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":530,"y":1540,"wires":[[],["cadb73d0.36e15"]]},{"id":"9f92fb04.dd2c18","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":890,"y":1540,"wires":[]},{"id":"cadb73d0.36e15","type":"change","z":"7eaefb9168296580","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":1540,"wires":[["9f92fb04.dd2c18"]]},{"id":"66f1b68a8f12d4c3","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"0","payloadType":"num","x":210,"y":1460,"wires":[["6703c8f0.f3af68"]]},{"id":"24a0806d4f0ae7f9","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"1","payloadType":"num","x":210,"y":1500,"wires":[["6703c8f0.f3af68"]]},{"id":"00621244f697af30","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"0","payloadType":"num","x":210,"y":1580,"wires":[["6703c8f0.f3af68"]]},{"id":"8f16ea31dfd903ed","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"1","payloadType":"num","x":210,"y":1620,"wires":[["6703c8f0.f3af68"]]},{"id":"c2f37be9204e30ea","type":"comment","z":"7eaefb9168296580","name":"Frankyboys Lösung","info":"","x":150,"y":1380,"wires":[]},{"id":"08dc0c75145ba6af","type":"switch","z":"7eaefb9168296580","name":"Not(wert1 ODER wert2)","property":"$not(payload.wert1 or payload.wert2)","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":630,"y":120,"wires":[["a47f067c8177b79d"],["87ce3ab64d161019"]]},{"id":"a47f067c8177b79d","type":"debug","z":"7eaefb9168296580","name":"NOT OR true (XOR)","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":880,"y":100,"wires":[]},{"id":"87ce3ab64d161019","type":"debug","z":"7eaefb9168296580","name":"NOT OR false(XOR)","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":880,"y":140,"wires":[]},{"id":"f05e50f770e93596","type":"change","z":"7eaefb9168296580","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"(\t   $withOR := function($i, $j){$i or $j};\t   $withAND := function($i, $j){$i and $j};\t   $reduce(\t       $each(\t           payload,\t           function($v) {$v=0 ? true: false}\t       ),$withAND\t   ) ? 2 : 0;\t)\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":630,"y":420,"wires":[["f75d1f1bd104a1ca"]]},{"id":"f75d1f1bd104a1ca","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":850,"y":420,"wires":[]},{"id":"d6f6c88983323c92","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":350,"y":1900,"wires":[["4d9a1e9eaa70101d","a66b11e133bf7bd0"]]},{"id":"a42aca12b398df5d","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hoch","payload":"0","payloadType":"num","x":170,"y":1820,"wires":[["d6f6c88983323c92"]]},{"id":"a56bcf63840eb879","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hoch","payload":"1","payloadType":"num","x":170,"y":1860,"wires":[["d6f6c88983323c92"]]},{"id":"b7bd8fc4c3d4ca85","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"runter","payload":"0","payloadType":"num","x":170,"y":1940,"wires":[["d6f6c88983323c92"]]},{"id":"f47feda753524fae","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"runter","payload":"1","payloadType":"num","x":170,"y":1980,"wires":[["d6f6c88983323c92"]]},{"id":"4d9a1e9eaa70101d","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":470,"y":1740,"wires":[]},{"id":"1b9e490a83b117ee","type":"comment","z":"7eaefb9168296580","name":"bekannte Anzahl an Werten","info":"","x":190,"y":1720,"wires":[]},{"id":"a66b11e133bf7bd0","type":"switch","z":"7eaefb9168296580","name":"Not(wert1 ODER wert2)","property":"$not(payload.hoch or payload.runter)","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":550,"y":1900,"wires":[["44a9eb82edb9decf"],["5c4e69f2525bad01","5e4e441797464d24"]]},{"id":"44a9eb82edb9decf","type":"change","z":"7eaefb9168296580","name":"Stopped = 2","rules":[{"t":"set","p":"payload","pt":"msg","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":910,"y":1840,"wires":[["cc4868bd36beedce"]]},{"id":"cc4868bd36beedce","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1310,"y":1840,"wires":[]},{"id":"5c4e69f2525bad01","type":"switch","z":"7eaefb9168296580","name":"Rolladen runter = Increasing","property":"payload.runter","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":860,"y":1900,"wires":[["938321cec7b2f778"]]},{"id":"5e4e441797464d24","type":"switch","z":"7eaefb9168296580","name":"Rolladen hoch = decreasing","property":"payload.hoch","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":860,"y":1960,"wires":[["0b2919fc74be76f7"]]},{"id":"938321cec7b2f778","type":"change","z":"7eaefb9168296580","name":"Increasing = 1","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":1900,"wires":[["cc4868bd36beedce"]]},{"id":"0b2919fc74be76f7","type":"change","z":"7eaefb9168296580","name":"Decreasing = 0","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":1960,"wires":[["cc4868bd36beedce"]]},{"id":"bf66451996415a49","type":"inject","z":"7eaefb9168296580","name":"reset","props":[{"p":"reset","v":"true","vt":"bool"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":160,"y":2060,"wires":[["d6f6c88983323c92"]]},{"id":"79abd835b67d10d8","type":"comment","z":"7eaefb9168296580","name":"nur wenn beide Werte am Wochenende","info":"","x":230,"y":900,"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.

                R Claus1985 0C 2 Antworten Letzte Antwort
                0
                • mickymM mickym

                  @frankyboy73 Na habe ich von Dir heute wieder was gelernt und das hat mich motiviert mal bisschen JSONATA in der Tiefe auszuprobieren.

                  5f9acfb3-0bed-4e22-a9e2-9bcef370a219-image.png

                  Ich wußte gar nicht, dass das geht - komischerweise aber nur mit enthält - wenn ich mit == versuche zu vergleichen - dann tut es nicht.

                  Aber ich hab mich dann mit variablen Parameter mal JSONATA beschäftigt - sowohl im switch Node oder auch Change Node, wie man durch so ein Objekt sich durchhangelt. Wieder eine Möglichkeit sich von function Nodes zu verzichten. Allerdings ist die Performance etwas schlechter mit JSONATA - also mit Javascript.

                  Hier mal meine erfolgreichen JSONATA Switches - der letzte Flow - ist der gerade gepostete und der vorletzte war Deiner mit dem Wildcard und enthält.

                  [{"id":"7eaefb9168296580","type":"tab","label":"JSONATA - Switches","disabled":false,"info":""},{"id":"b6526cabe5865b94","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":410,"y":220,"wires":[["d29f2776daf6e480","8ac9cc4eb78b41fc","40dc442947ded9f3","08dc0c75145ba6af","f05e50f770e93596"]]},{"id":"f49bf464d2978ea6","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"0","payloadType":"num","x":230,"y":140,"wires":[["b6526cabe5865b94"]]},{"id":"90cde3f324399aae","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"1","payloadType":"num","x":230,"y":180,"wires":[["b6526cabe5865b94"]]},{"id":"3302e4eaddc81265","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"0","payloadType":"num","x":230,"y":260,"wires":[["b6526cabe5865b94"]]},{"id":"73385affd7669f0c","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"1","payloadType":"num","x":230,"y":300,"wires":[["b6526cabe5865b94"]]},{"id":"d29f2776daf6e480","type":"switch","z":"7eaefb9168296580","name":"wert1 UND wert2","property":"payload.wert1 and payload.wert2","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":630,"y":220,"wires":[["48981365a22a9e91"],["d5dbda6dda237531"]]},{"id":"48981365a22a9e91","type":"debug","z":"7eaefb9168296580","name":"AND true","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":840,"y":200,"wires":[]},{"id":"8ac9cc4eb78b41fc","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":530,"y":60,"wires":[]},{"id":"d5dbda6dda237531","type":"debug","z":"7eaefb9168296580","name":"AND false","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":840,"y":240,"wires":[]},{"id":"40dc442947ded9f3","type":"switch","z":"7eaefb9168296580","name":"wert1 ODER wert2","property":"payload.wert1 or payload.wert2","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":630,"y":340,"wires":[["16ccc7d46d8b1027"],["13660292fe6c31c0"]]},{"id":"16ccc7d46d8b1027","type":"debug","z":"7eaefb9168296580","name":"OR true","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":840,"y":320,"wires":[]},{"id":"13660292fe6c31c0","type":"debug","z":"7eaefb9168296580","name":"OR false","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":840,"y":360,"wires":[]},{"id":"909e1de8cf021211","type":"switch","z":"7eaefb9168296580","name":"UND alle 0?","property":"(\t   $withOR := function($i, $j){$i or $j};\t   $withAND := function($i, $j){$i and $j};\t   $reduce(\t       $each(\t           payload,\t           function($v) {$v=0 ? true: false}\t       ),$withAND\t   );\t)\t","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":610,"y":720,"wires":[["f3e5398591dc99f9"],["2112f89c079c0f63"]]},{"id":"ec106f44785b94e5","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":450,"y":720,"wires":[["49b33cd086b17ba6","909e1de8cf021211"]]},{"id":"1a31ace124b3cf93","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"0","payloadType":"num","x":230,"y":560,"wires":[["ec106f44785b94e5"]]},{"id":"7a83da89697bf8a6","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"1","payloadType":"num","x":230,"y":600,"wires":[["ec106f44785b94e5"]]},{"id":"22a133856fadf15e","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"0","payloadType":"num","x":230,"y":680,"wires":[["ec106f44785b94e5"]]},{"id":"7d4c6cdbcb27beed","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"1","payloadType":"num","x":230,"y":720,"wires":[["ec106f44785b94e5"]]},{"id":"49b33cd086b17ba6","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":630,"y":640,"wires":[]},{"id":"f3e5398591dc99f9","type":"debug","z":"7eaefb9168296580","name":"true","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":700,"wires":[]},{"id":"2112f89c079c0f63","type":"debug","z":"7eaefb9168296580","name":"false","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":740,"wires":[]},{"id":"21915f951fb9c032","type":"switch","z":"7eaefb9168296580","name":"nur wenn beide Werte am Wochenende sind","property":"(\t   $withOR := function($i, $j){$i or $j};\t   $withAND := function($i, $j){$i and $j};\t   $reduce(\t       $each(\t           payload,\t           function($v) {\t               $count(\t                   $match($v,/Samstag|Sonntag/)\t           ) > 0\t           }\t       ),\t       $withAND\t\t   )\t   )","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":670,"y":1060,"wires":[["7db1ead9f804d602"],["80ec66b9b9cfe19a"]]},{"id":"da503998ee50fdc5","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":410,"y":1060,"wires":[["4ece76dce4e20554","21915f951fb9c032","bc6be5f7e5ba04f0"]]},{"id":"c1537b7dcade1846","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"Donnerstag","payloadType":"str","x":210,"y":980,"wires":[["da503998ee50fdc5"]]},{"id":"7c07ce3ff45224d4","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"Samstag","payloadType":"str","x":220,"y":1020,"wires":[["da503998ee50fdc5"]]},{"id":"f48782c2b436a169","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"Freitag","payloadType":"str","x":230,"y":1100,"wires":[["da503998ee50fdc5"]]},{"id":"07784380b309b207","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"Sonntag","payloadType":"str","x":230,"y":1140,"wires":[["da503998ee50fdc5"]]},{"id":"4ece76dce4e20554","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":590,"y":960,"wires":[]},{"id":"7db1ead9f804d602","type":"debug","z":"7eaefb9168296580","name":"true","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":930,"y":1040,"wires":[]},{"id":"80ec66b9b9cfe19a","type":"debug","z":"7eaefb9168296580","name":"false","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":930,"y":1080,"wires":[]},{"id":"bc6be5f7e5ba04f0","type":"change","z":"7eaefb9168296580","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"(\t   $withOR := function($i, $j){$i or $j};\t   $withAND := function($i, $j){$i and $j};\t   $reduce(\t       $each(\t           payload,\t           function($v) {\t               $count(\t                   $match($v,/Samstag|Sonntag/)\t           ) > 0\t           }\t       ),\t       $withAND\t\t   )\t   )\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":600,"y":1180,"wires":[["5b4815567def8ccf"]]},{"id":"5b4815567def8ccf","type":"debug","z":"7eaefb9168296580","name":"JSONATA","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":810,"y":1180,"wires":[]},{"id":"cefe135b96d8748c","type":"comment","z":"7eaefb9168296580","name":"bekannte Anzahl an Werten","info":"","x":250,"y":40,"wires":[]},{"id":"49cc80ef9c799431","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert3","payload":"0","payloadType":"num","x":230,"y":800,"wires":[["ec106f44785b94e5"]]},{"id":"344b4f2d39d3bc85","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert3","payload":"1","payloadType":"num","x":230,"y":840,"wires":[["ec106f44785b94e5"]]},{"id":"4fe3b9368d9ff476","type":"comment","z":"7eaefb9168296580","name":"unbekannte Anzahl an Werten","info":"","x":200,"y":500,"wires":[]},{"id":"6703c8f0.f3af68","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"0","count":"1","reduceRight":false,"reduceExp":"","reduceInit":"true","reduceInitType":"bool","reduceFixup":"","x":350,"y":1540,"wires":[["e64bce40.fb1a7"]]},{"id":"e64bce40.fb1a7","type":"switch","z":"7eaefb9168296580","name":"","property":"payload.*","propertyType":"jsonata","rules":[{"t":"cont","v":"1","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":530,"y":1540,"wires":[[],["cadb73d0.36e15"]]},{"id":"9f92fb04.dd2c18","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":890,"y":1540,"wires":[]},{"id":"cadb73d0.36e15","type":"change","z":"7eaefb9168296580","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":1540,"wires":[["9f92fb04.dd2c18"]]},{"id":"66f1b68a8f12d4c3","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"0","payloadType":"num","x":210,"y":1460,"wires":[["6703c8f0.f3af68"]]},{"id":"24a0806d4f0ae7f9","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"1","payloadType":"num","x":210,"y":1500,"wires":[["6703c8f0.f3af68"]]},{"id":"00621244f697af30","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"0","payloadType":"num","x":210,"y":1580,"wires":[["6703c8f0.f3af68"]]},{"id":"8f16ea31dfd903ed","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"1","payloadType":"num","x":210,"y":1620,"wires":[["6703c8f0.f3af68"]]},{"id":"c2f37be9204e30ea","type":"comment","z":"7eaefb9168296580","name":"Frankyboys Lösung","info":"","x":150,"y":1380,"wires":[]},{"id":"08dc0c75145ba6af","type":"switch","z":"7eaefb9168296580","name":"Not(wert1 ODER wert2)","property":"$not(payload.wert1 or payload.wert2)","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":630,"y":120,"wires":[["a47f067c8177b79d"],["87ce3ab64d161019"]]},{"id":"a47f067c8177b79d","type":"debug","z":"7eaefb9168296580","name":"NOT OR true (XOR)","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":880,"y":100,"wires":[]},{"id":"87ce3ab64d161019","type":"debug","z":"7eaefb9168296580","name":"NOT OR false(XOR)","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":880,"y":140,"wires":[]},{"id":"f05e50f770e93596","type":"change","z":"7eaefb9168296580","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"(\t   $withOR := function($i, $j){$i or $j};\t   $withAND := function($i, $j){$i and $j};\t   $reduce(\t       $each(\t           payload,\t           function($v) {$v=0 ? true: false}\t       ),$withAND\t   ) ? 2 : 0;\t)\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":630,"y":420,"wires":[["f75d1f1bd104a1ca"]]},{"id":"f75d1f1bd104a1ca","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":850,"y":420,"wires":[]},{"id":"d6f6c88983323c92","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":350,"y":1900,"wires":[["4d9a1e9eaa70101d","a66b11e133bf7bd0"]]},{"id":"a42aca12b398df5d","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hoch","payload":"0","payloadType":"num","x":170,"y":1820,"wires":[["d6f6c88983323c92"]]},{"id":"a56bcf63840eb879","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hoch","payload":"1","payloadType":"num","x":170,"y":1860,"wires":[["d6f6c88983323c92"]]},{"id":"b7bd8fc4c3d4ca85","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"runter","payload":"0","payloadType":"num","x":170,"y":1940,"wires":[["d6f6c88983323c92"]]},{"id":"f47feda753524fae","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"runter","payload":"1","payloadType":"num","x":170,"y":1980,"wires":[["d6f6c88983323c92"]]},{"id":"4d9a1e9eaa70101d","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":470,"y":1740,"wires":[]},{"id":"1b9e490a83b117ee","type":"comment","z":"7eaefb9168296580","name":"bekannte Anzahl an Werten","info":"","x":190,"y":1720,"wires":[]},{"id":"a66b11e133bf7bd0","type":"switch","z":"7eaefb9168296580","name":"Not(wert1 ODER wert2)","property":"$not(payload.hoch or payload.runter)","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":550,"y":1900,"wires":[["44a9eb82edb9decf"],["5c4e69f2525bad01","5e4e441797464d24"]]},{"id":"44a9eb82edb9decf","type":"change","z":"7eaefb9168296580","name":"Stopped = 2","rules":[{"t":"set","p":"payload","pt":"msg","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":910,"y":1840,"wires":[["cc4868bd36beedce"]]},{"id":"cc4868bd36beedce","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1310,"y":1840,"wires":[]},{"id":"5c4e69f2525bad01","type":"switch","z":"7eaefb9168296580","name":"Rolladen runter = Increasing","property":"payload.runter","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":860,"y":1900,"wires":[["938321cec7b2f778"]]},{"id":"5e4e441797464d24","type":"switch","z":"7eaefb9168296580","name":"Rolladen hoch = decreasing","property":"payload.hoch","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":860,"y":1960,"wires":[["0b2919fc74be76f7"]]},{"id":"938321cec7b2f778","type":"change","z":"7eaefb9168296580","name":"Increasing = 1","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":1900,"wires":[["cc4868bd36beedce"]]},{"id":"0b2919fc74be76f7","type":"change","z":"7eaefb9168296580","name":"Decreasing = 0","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":1960,"wires":[["cc4868bd36beedce"]]},{"id":"bf66451996415a49","type":"inject","z":"7eaefb9168296580","name":"reset","props":[{"p":"reset","v":"true","vt":"bool"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":160,"y":2060,"wires":[["d6f6c88983323c92"]]},{"id":"79abd835b67d10d8","type":"comment","z":"7eaefb9168296580","name":"nur wenn beide Werte am Wochenende","info":"","x":230,"y":900,"wires":[]}]
                  

                  R Offline
                  R Offline
                  rewenode
                  schrieb am zuletzt editiert von
                  #9

                  @mickym sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                  Ich wußte gar nicht, dass das geht - komischerweise aber nur mit enthält - wenn ich mit == versuche zu vergleichen - dann tut es nicht.

                  Der

                  payload.* (oder einfach $.*)
                  

                  gibt nach dem Join ein Array mit 2 Werten zurück, das kannst du nicht mit einem Number vergleichen. Wohl aber fragen, ob ein bestimmter Wert enthalten ist.

                  Gruß
                  Reiner

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @frankyboy73 Na habe ich von Dir heute wieder was gelernt und das hat mich motiviert mal bisschen JSONATA in der Tiefe auszuprobieren.

                    5f9acfb3-0bed-4e22-a9e2-9bcef370a219-image.png

                    Ich wußte gar nicht, dass das geht - komischerweise aber nur mit enthält - wenn ich mit == versuche zu vergleichen - dann tut es nicht.

                    Aber ich hab mich dann mit variablen Parameter mal JSONATA beschäftigt - sowohl im switch Node oder auch Change Node, wie man durch so ein Objekt sich durchhangelt. Wieder eine Möglichkeit sich von function Nodes zu verzichten. Allerdings ist die Performance etwas schlechter mit JSONATA - also mit Javascript.

                    Hier mal meine erfolgreichen JSONATA Switches - der letzte Flow - ist der gerade gepostete und der vorletzte war Deiner mit dem Wildcard und enthält.

                    [{"id":"7eaefb9168296580","type":"tab","label":"JSONATA - Switches","disabled":false,"info":""},{"id":"b6526cabe5865b94","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":410,"y":220,"wires":[["d29f2776daf6e480","8ac9cc4eb78b41fc","40dc442947ded9f3","08dc0c75145ba6af","f05e50f770e93596"]]},{"id":"f49bf464d2978ea6","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"0","payloadType":"num","x":230,"y":140,"wires":[["b6526cabe5865b94"]]},{"id":"90cde3f324399aae","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"1","payloadType":"num","x":230,"y":180,"wires":[["b6526cabe5865b94"]]},{"id":"3302e4eaddc81265","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"0","payloadType":"num","x":230,"y":260,"wires":[["b6526cabe5865b94"]]},{"id":"73385affd7669f0c","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"1","payloadType":"num","x":230,"y":300,"wires":[["b6526cabe5865b94"]]},{"id":"d29f2776daf6e480","type":"switch","z":"7eaefb9168296580","name":"wert1 UND wert2","property":"payload.wert1 and payload.wert2","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":630,"y":220,"wires":[["48981365a22a9e91"],["d5dbda6dda237531"]]},{"id":"48981365a22a9e91","type":"debug","z":"7eaefb9168296580","name":"AND true","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":840,"y":200,"wires":[]},{"id":"8ac9cc4eb78b41fc","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":530,"y":60,"wires":[]},{"id":"d5dbda6dda237531","type":"debug","z":"7eaefb9168296580","name":"AND false","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":840,"y":240,"wires":[]},{"id":"40dc442947ded9f3","type":"switch","z":"7eaefb9168296580","name":"wert1 ODER wert2","property":"payload.wert1 or payload.wert2","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":630,"y":340,"wires":[["16ccc7d46d8b1027"],["13660292fe6c31c0"]]},{"id":"16ccc7d46d8b1027","type":"debug","z":"7eaefb9168296580","name":"OR true","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":840,"y":320,"wires":[]},{"id":"13660292fe6c31c0","type":"debug","z":"7eaefb9168296580","name":"OR false","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":840,"y":360,"wires":[]},{"id":"909e1de8cf021211","type":"switch","z":"7eaefb9168296580","name":"UND alle 0?","property":"(\t   $withOR := function($i, $j){$i or $j};\t   $withAND := function($i, $j){$i and $j};\t   $reduce(\t       $each(\t           payload,\t           function($v) {$v=0 ? true: false}\t       ),$withAND\t   );\t)\t","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":610,"y":720,"wires":[["f3e5398591dc99f9"],["2112f89c079c0f63"]]},{"id":"ec106f44785b94e5","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":450,"y":720,"wires":[["49b33cd086b17ba6","909e1de8cf021211"]]},{"id":"1a31ace124b3cf93","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"0","payloadType":"num","x":230,"y":560,"wires":[["ec106f44785b94e5"]]},{"id":"7a83da89697bf8a6","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"1","payloadType":"num","x":230,"y":600,"wires":[["ec106f44785b94e5"]]},{"id":"22a133856fadf15e","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"0","payloadType":"num","x":230,"y":680,"wires":[["ec106f44785b94e5"]]},{"id":"7d4c6cdbcb27beed","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"1","payloadType":"num","x":230,"y":720,"wires":[["ec106f44785b94e5"]]},{"id":"49b33cd086b17ba6","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":630,"y":640,"wires":[]},{"id":"f3e5398591dc99f9","type":"debug","z":"7eaefb9168296580","name":"true","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":700,"wires":[]},{"id":"2112f89c079c0f63","type":"debug","z":"7eaefb9168296580","name":"false","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":740,"wires":[]},{"id":"21915f951fb9c032","type":"switch","z":"7eaefb9168296580","name":"nur wenn beide Werte am Wochenende sind","property":"(\t   $withOR := function($i, $j){$i or $j};\t   $withAND := function($i, $j){$i and $j};\t   $reduce(\t       $each(\t           payload,\t           function($v) {\t               $count(\t                   $match($v,/Samstag|Sonntag/)\t           ) > 0\t           }\t       ),\t       $withAND\t\t   )\t   )","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":670,"y":1060,"wires":[["7db1ead9f804d602"],["80ec66b9b9cfe19a"]]},{"id":"da503998ee50fdc5","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":410,"y":1060,"wires":[["4ece76dce4e20554","21915f951fb9c032","bc6be5f7e5ba04f0"]]},{"id":"c1537b7dcade1846","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"Donnerstag","payloadType":"str","x":210,"y":980,"wires":[["da503998ee50fdc5"]]},{"id":"7c07ce3ff45224d4","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"Samstag","payloadType":"str","x":220,"y":1020,"wires":[["da503998ee50fdc5"]]},{"id":"f48782c2b436a169","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"Freitag","payloadType":"str","x":230,"y":1100,"wires":[["da503998ee50fdc5"]]},{"id":"07784380b309b207","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"Sonntag","payloadType":"str","x":230,"y":1140,"wires":[["da503998ee50fdc5"]]},{"id":"4ece76dce4e20554","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":590,"y":960,"wires":[]},{"id":"7db1ead9f804d602","type":"debug","z":"7eaefb9168296580","name":"true","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":930,"y":1040,"wires":[]},{"id":"80ec66b9b9cfe19a","type":"debug","z":"7eaefb9168296580","name":"false","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":930,"y":1080,"wires":[]},{"id":"bc6be5f7e5ba04f0","type":"change","z":"7eaefb9168296580","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"(\t   $withOR := function($i, $j){$i or $j};\t   $withAND := function($i, $j){$i and $j};\t   $reduce(\t       $each(\t           payload,\t           function($v) {\t               $count(\t                   $match($v,/Samstag|Sonntag/)\t           ) > 0\t           }\t       ),\t       $withAND\t\t   )\t   )\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":600,"y":1180,"wires":[["5b4815567def8ccf"]]},{"id":"5b4815567def8ccf","type":"debug","z":"7eaefb9168296580","name":"JSONATA","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":810,"y":1180,"wires":[]},{"id":"cefe135b96d8748c","type":"comment","z":"7eaefb9168296580","name":"bekannte Anzahl an Werten","info":"","x":250,"y":40,"wires":[]},{"id":"49cc80ef9c799431","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert3","payload":"0","payloadType":"num","x":230,"y":800,"wires":[["ec106f44785b94e5"]]},{"id":"344b4f2d39d3bc85","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert3","payload":"1","payloadType":"num","x":230,"y":840,"wires":[["ec106f44785b94e5"]]},{"id":"4fe3b9368d9ff476","type":"comment","z":"7eaefb9168296580","name":"unbekannte Anzahl an Werten","info":"","x":200,"y":500,"wires":[]},{"id":"6703c8f0.f3af68","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"0","count":"1","reduceRight":false,"reduceExp":"","reduceInit":"true","reduceInitType":"bool","reduceFixup":"","x":350,"y":1540,"wires":[["e64bce40.fb1a7"]]},{"id":"e64bce40.fb1a7","type":"switch","z":"7eaefb9168296580","name":"","property":"payload.*","propertyType":"jsonata","rules":[{"t":"cont","v":"1","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":530,"y":1540,"wires":[[],["cadb73d0.36e15"]]},{"id":"9f92fb04.dd2c18","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":890,"y":1540,"wires":[]},{"id":"cadb73d0.36e15","type":"change","z":"7eaefb9168296580","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":1540,"wires":[["9f92fb04.dd2c18"]]},{"id":"66f1b68a8f12d4c3","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"0","payloadType":"num","x":210,"y":1460,"wires":[["6703c8f0.f3af68"]]},{"id":"24a0806d4f0ae7f9","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert1","payload":"1","payloadType":"num","x":210,"y":1500,"wires":[["6703c8f0.f3af68"]]},{"id":"00621244f697af30","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"0","payloadType":"num","x":210,"y":1580,"wires":[["6703c8f0.f3af68"]]},{"id":"8f16ea31dfd903ed","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"wert2","payload":"1","payloadType":"num","x":210,"y":1620,"wires":[["6703c8f0.f3af68"]]},{"id":"c2f37be9204e30ea","type":"comment","z":"7eaefb9168296580","name":"Frankyboys Lösung","info":"","x":150,"y":1380,"wires":[]},{"id":"08dc0c75145ba6af","type":"switch","z":"7eaefb9168296580","name":"Not(wert1 ODER wert2)","property":"$not(payload.wert1 or payload.wert2)","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":630,"y":120,"wires":[["a47f067c8177b79d"],["87ce3ab64d161019"]]},{"id":"a47f067c8177b79d","type":"debug","z":"7eaefb9168296580","name":"NOT OR true (XOR)","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":880,"y":100,"wires":[]},{"id":"87ce3ab64d161019","type":"debug","z":"7eaefb9168296580","name":"NOT OR false(XOR)","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":880,"y":140,"wires":[]},{"id":"f05e50f770e93596","type":"change","z":"7eaefb9168296580","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"(\t   $withOR := function($i, $j){$i or $j};\t   $withAND := function($i, $j){$i and $j};\t   $reduce(\t       $each(\t           payload,\t           function($v) {$v=0 ? true: false}\t       ),$withAND\t   ) ? 2 : 0;\t)\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":630,"y":420,"wires":[["f75d1f1bd104a1ca"]]},{"id":"f75d1f1bd104a1ca","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":850,"y":420,"wires":[]},{"id":"d6f6c88983323c92","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":350,"y":1900,"wires":[["4d9a1e9eaa70101d","a66b11e133bf7bd0"]]},{"id":"a42aca12b398df5d","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hoch","payload":"0","payloadType":"num","x":170,"y":1820,"wires":[["d6f6c88983323c92"]]},{"id":"a56bcf63840eb879","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hoch","payload":"1","payloadType":"num","x":170,"y":1860,"wires":[["d6f6c88983323c92"]]},{"id":"b7bd8fc4c3d4ca85","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"runter","payload":"0","payloadType":"num","x":170,"y":1940,"wires":[["d6f6c88983323c92"]]},{"id":"f47feda753524fae","type":"inject","z":"7eaefb9168296580","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"runter","payload":"1","payloadType":"num","x":170,"y":1980,"wires":[["d6f6c88983323c92"]]},{"id":"4d9a1e9eaa70101d","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":470,"y":1740,"wires":[]},{"id":"1b9e490a83b117ee","type":"comment","z":"7eaefb9168296580","name":"bekannte Anzahl an Werten","info":"","x":190,"y":1720,"wires":[]},{"id":"a66b11e133bf7bd0","type":"switch","z":"7eaefb9168296580","name":"Not(wert1 ODER wert2)","property":"$not(payload.hoch or payload.runter)","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":550,"y":1900,"wires":[["44a9eb82edb9decf"],["5c4e69f2525bad01","5e4e441797464d24"]]},{"id":"44a9eb82edb9decf","type":"change","z":"7eaefb9168296580","name":"Stopped = 2","rules":[{"t":"set","p":"payload","pt":"msg","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":910,"y":1840,"wires":[["cc4868bd36beedce"]]},{"id":"cc4868bd36beedce","type":"debug","z":"7eaefb9168296580","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1310,"y":1840,"wires":[]},{"id":"5c4e69f2525bad01","type":"switch","z":"7eaefb9168296580","name":"Rolladen runter = Increasing","property":"payload.runter","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":860,"y":1900,"wires":[["938321cec7b2f778"]]},{"id":"5e4e441797464d24","type":"switch","z":"7eaefb9168296580","name":"Rolladen hoch = decreasing","property":"payload.hoch","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":860,"y":1960,"wires":[["0b2919fc74be76f7"]]},{"id":"938321cec7b2f778","type":"change","z":"7eaefb9168296580","name":"Increasing = 1","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":1900,"wires":[["cc4868bd36beedce"]]},{"id":"0b2919fc74be76f7","type":"change","z":"7eaefb9168296580","name":"Decreasing = 0","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":1960,"wires":[["cc4868bd36beedce"]]},{"id":"bf66451996415a49","type":"inject","z":"7eaefb9168296580","name":"reset","props":[{"p":"reset","v":"true","vt":"bool"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":160,"y":2060,"wires":[["d6f6c88983323c92"]]},{"id":"79abd835b67d10d8","type":"comment","z":"7eaefb9168296580","name":"nur wenn beide Werte am Wochenende","info":"","x":230,"y":900,"wires":[]}]
                    

                    Claus1985 0C Offline
                    Claus1985 0C Offline
                    Claus1985 0
                    schrieb am zuletzt editiert von
                    #10

                    @mickym Vielen Dank für Deine Lösung, sieht elegant aus!
                    Aktuell hänge ich leider noch etwas am Join:

                    2.PNG 1.PNG

                    Die beiden Eingangsnachrichten kommen zwar an aber aus Join kommt danach nichts raus.
                    Kann das daran liegen, dass die beiden Eingänge nicht gleichzeitig Nachrichten senden?

                    Danke und Gruß,

                    Claus

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • Claus1985 0C Claus1985 0

                      @mickym Vielen Dank für Deine Lösung, sieht elegant aus!
                      Aktuell hänge ich leider noch etwas am Join:

                      2.PNG 1.PNG

                      Die beiden Eingangsnachrichten kommen zwar an aber aus Join kommt danach nichts raus.
                      Kann das daran liegen, dass die beiden Eingänge nicht gleichzeitig Nachrichten senden?

                      Danke und Gruß,

                      Claus

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

                      @claus1985-0 sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                      Die beiden Eingangsnachrichten kommen zwar an aber aus Join kommt danach nichts raus.
                      Kann das daran liegen, dass die beiden Eingänge nicht gleichzeitig Nachrichten senden?

                      Nun am Anfang wird abgewartet bis jede Nachricht gesendet wurde - es liegt eher daran, wenn ich mir Dein Log anschaue, dass beide Nodes das gleiche Topic haben. Somit kann die JOIN Node nicht unterscheiden, dass die Nachricht von 2 verschiedenen Nodes stammt. Setze mal zwischen die JOIN Node und den Loxone Teilen explizit das Topic. (Einmal hoch und einmal runter)

                      606901e5-390f-4e11-8a91-444c86992f70-image.png

                      Den Haken in der JOIN Node ist ja gesetzt:

                      aec4a048-6e94-4f80-b3db-7b8c84248d9f-image.png

                      Sprich: die JOIN Node beginnt erst zu senden, wenn einmal beide Nodes mit unterschiedlichen Topics gesendet haben, dann aber sofort immer - also hat nichts mit gleichzeitig zu tun.

                      [{"id":"13db51180fe3477f","type":"change","z":"7eaefb9168296580","name":"Kinderzimmer_Runter","rules":[{"t":"set","p":"topic","pt":"msg","to":"runter","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":2160,"wires":[[]]},{"id":"25212222915da503","type":"change","z":"7eaefb9168296580","name":"Kinderzimmer_Rauf","rules":[{"t":"set","p":"topic","pt":"msg","to":"hoch","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":2200,"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.

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • R rewenode

                        @mickym sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                        Ich wußte gar nicht, dass das geht - komischerweise aber nur mit enthält - wenn ich mit == versuche zu vergleichen - dann tut es nicht.

                        Der

                        payload.* (oder einfach $.*)
                        

                        gibt nach dem Join ein Array mit 2 Werten zurück, das kannst du nicht mit einem Number vergleichen. Wohl aber fragen, ob ein bestimmter Wert enthalten ist.

                        Gruß
                        Reiner

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

                        @rewenode sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                        @mickym sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                        Ich wußte gar nicht, dass das geht - komischerweise aber nur mit enthält - wenn ich mit == versuche zu vergleichen - dann tut es nicht.

                        Der

                        payload.* (oder einfach $.*)
                        

                        gibt nach dem Join ein Array mit 2 Werten zurück, das kannst du nicht mit einem Number vergleichen. Wohl aber fragen, ob ein bestimmter Wert enthalten ist.

                        Gruß
                        Reiner

                        Herzlichen Dank! - Schön, wenn Du mir auch immer wieder hilfst mit Deinem Wissen.

                        Im Prinzip wird also mit $* einfach so ein Array gebildet, dass ich mit dem $each nochmal auseinander fummle? und dann wohl für den Vergleich nur ein match ala regEx gemacht.

                        74e4f1df-d3bc-4574-bce7-2b7c561eb1b5-image.png

                        785d0209-55aa-4064-9a35-fd1b63e7d51a-image.png

                        OK sehe ich - allerdings muss man es dann für die Vergleiche trotzdem auseinander fummeln. ;)

                               $each(
                                   $.*,
                                   function($v) {$v=0 ? true: false}
                           
                           );
                        

                        Insofern hilft mir die Schreibweise ja eigentlich nichts. Ob ich jetzt payload oder $.* schreibe, da ist dann payload beschreibender. ;)

                        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.

                        R 1 Antwort Letzte Antwort
                        0
                        • mickymM mickym

                          @claus1985-0 sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                          Die beiden Eingangsnachrichten kommen zwar an aber aus Join kommt danach nichts raus.
                          Kann das daran liegen, dass die beiden Eingänge nicht gleichzeitig Nachrichten senden?

                          Nun am Anfang wird abgewartet bis jede Nachricht gesendet wurde - es liegt eher daran, wenn ich mir Dein Log anschaue, dass beide Nodes das gleiche Topic haben. Somit kann die JOIN Node nicht unterscheiden, dass die Nachricht von 2 verschiedenen Nodes stammt. Setze mal zwischen die JOIN Node und den Loxone Teilen explizit das Topic. (Einmal hoch und einmal runter)

                          606901e5-390f-4e11-8a91-444c86992f70-image.png

                          Den Haken in der JOIN Node ist ja gesetzt:

                          aec4a048-6e94-4f80-b3db-7b8c84248d9f-image.png

                          Sprich: die JOIN Node beginnt erst zu senden, wenn einmal beide Nodes mit unterschiedlichen Topics gesendet haben, dann aber sofort immer - also hat nichts mit gleichzeitig zu tun.

                          [{"id":"13db51180fe3477f","type":"change","z":"7eaefb9168296580","name":"Kinderzimmer_Runter","rules":[{"t":"set","p":"topic","pt":"msg","to":"runter","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":2160,"wires":[[]]},{"id":"25212222915da503","type":"change","z":"7eaefb9168296580","name":"Kinderzimmer_Rauf","rules":[{"t":"set","p":"topic","pt":"msg","to":"hoch","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":2200,"wires":[[]]}]
                          

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

                          @Claus1985-0

                          Habe meinen vorhergehenden Post überarbeitet. Die topics müssen zwingend hoch und runter heißen - da sonst ja der Flow nicht mehr passt.

                          6517d118-17d8-4814-a1a0-fd90a5b84b82-image.png

                          Ansonsten musst Du halt alle Nodes an die neuen Topics anpassen.

                          cf36047b-7d47-463f-9a18-97677c3ac4b3-image.png

                          fdc3008c-fc70-447f-944f-52df69e778ef-image.png

                          So hier nochmal der komplette Flow - direkt zum Anflanschen der Loxone Nodes:

                          Mit aufgenommen wurde das Ausfiltern, dass beide Nodes 1 liefern:

                          44577d50-f06b-48a3-9278-3f47ef34f552-image.png

                          [{"id":"f2ea2908d88f1ab2","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":510,"y":2000,"wires":[["4b6bcb50966b0a0c","22c744f5d81e7ba6"]]},{"id":"22c744f5d81e7ba6","type":"switch","z":"7eaefb9168296580","name":"Not(wert1 ODER wert2)","property":"$not(payload.hoch or payload.runter)","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":710,"y":2000,"wires":[["afb323cfc1bf25c8"],["ad9f71d56fb6f349"]]},{"id":"afb323cfc1bf25c8","type":"change","z":"7eaefb9168296580","name":"Stopped = 2","rules":[{"t":"set","p":"payload","pt":"msg","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1070,"y":1940,"wires":[["d318f1935ef49ef5"]]},{"id":"7be3c438b8976f82","type":"switch","z":"7eaefb9168296580","name":"Rolladen runter = Increasing","property":"payload.runter","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1220,"y":2020,"wires":[["9b551e2006fd93dc"]]},{"id":"44c83453fbeb6c4b","type":"switch","z":"7eaefb9168296580","name":"Rolladen hoch = decreasing","property":"payload.hoch","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1220,"y":2080,"wires":[["6520234fe5d0f6b1"]]},{"id":"9b551e2006fd93dc","type":"change","z":"7eaefb9168296580","name":"Increasing = 1","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1460,"y":2020,"wires":[["d318f1935ef49ef5"]]},{"id":"6520234fe5d0f6b1","type":"change","z":"7eaefb9168296580","name":"Decreasing = 0","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1460,"y":2080,"wires":[["d318f1935ef49ef5"]]},{"id":"6a8ef99635e6f249","type":"change","z":"7eaefb9168296580","name":"Kinderzimmer_Runter","rules":[{"t":"set","p":"topic","pt":"msg","to":"runter","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2040,"wires":[["f2ea2908d88f1ab2"]]},{"id":"e57c65b90a155939","type":"change","z":"7eaefb9168296580","name":"Kinderzimmer_Rauf","rules":[{"t":"set","p":"topic","pt":"msg","to":"hoch","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":1980,"wires":[["f2ea2908d88f1ab2"]]},{"id":"ad9f71d56fb6f349","type":"switch","z":"7eaefb9168296580","name":"Ausfiltern beides 1","property":"$not(payload.hoch and payload.runter)","propertyType":"jsonata","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":950,"y":2040,"wires":[["44c83453fbeb6c4b","7be3c438b8976f82"]]}]
                          

                          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.

                          Claus1985 0C 1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            @rewenode sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                            @mickym sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                            Ich wußte gar nicht, dass das geht - komischerweise aber nur mit enthält - wenn ich mit == versuche zu vergleichen - dann tut es nicht.

                            Der

                            payload.* (oder einfach $.*)
                            

                            gibt nach dem Join ein Array mit 2 Werten zurück, das kannst du nicht mit einem Number vergleichen. Wohl aber fragen, ob ein bestimmter Wert enthalten ist.

                            Gruß
                            Reiner

                            Herzlichen Dank! - Schön, wenn Du mir auch immer wieder hilfst mit Deinem Wissen.

                            Im Prinzip wird also mit $* einfach so ein Array gebildet, dass ich mit dem $each nochmal auseinander fummle? und dann wohl für den Vergleich nur ein match ala regEx gemacht.

                            74e4f1df-d3bc-4574-bce7-2b7c561eb1b5-image.png

                            785d0209-55aa-4064-9a35-fd1b63e7d51a-image.png

                            OK sehe ich - allerdings muss man es dann für die Vergleiche trotzdem auseinander fummeln. ;)

                                   $each(
                                       $.*,
                                       function($v) {$v=0 ? true: false}
                               
                               );
                            

                            Insofern hilft mir die Schreibweise ja eigentlich nichts. Ob ich jetzt payload oder $.* schreibe, da ist dann payload beschreibender. ;)

                            R Offline
                            R Offline
                            rewenode
                            schrieb am zuletzt editiert von
                            #14

                            @mickym sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                            Ob ich jetzt payload oder $.* schreibe, da ist dann payload beschreibender.

                            Ja, da hast du recht. $ steht in JSONata für das komplette Eingabedocument (siehe ganz unten)
                            In Node-Red steht das $ dann für das, dem JSONata-Ausdruck, vorgesetzte Eingabeobjekt. Im konkreten Falle also payload.
                            $$ bezeichnet dagegen immer das Top level Object wie hier ganz gut beschrieben .

                            Gruß
                            Reiner

                            mickymM 1 Antwort Letzte Antwort
                            1
                            • R rewenode

                              @mickym sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                              Ob ich jetzt payload oder $.* schreibe, da ist dann payload beschreibender.

                              Ja, da hast du recht. $ steht in JSONata für das komplette Eingabedocument (siehe ganz unten)
                              In Node-Red steht das $ dann für das, dem JSONata-Ausdruck, vorgesetzte Eingabeobjekt. Im konkreten Falle also payload.
                              $$ bezeichnet dagegen immer das Top level Object wie hier ganz gut beschrieben .

                              Gruß
                              Reiner

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

                              @rewenode :+1: :+1: :+1:

                              Danke schön. Die UK - Seite kannte ich noch nicht. Die andere war bislang schon meine Referenz. :)

                              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
                              • F Offline
                                F Offline
                                frankyboy73
                                schrieb am zuletzt editiert von frankyboy73
                                #16

                                @mickym sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                                Hier mal meine erfolgreichen JSONATA Switches - der letzte Flow - ist der gerade gepostete und der vorletzte war Deiner mit dem Wildcard und enthält.

                                Hi, da muss ich ganz ehrlich sagen, das ich das für mich für zu unübersichtlich halte, wenn ich nach Wochen mal schauen will was ich da umgestezt habe, auch kenne ich mich da ehrlich gesagt nicht genug mit Json bzw. Java aus um das aus dem Stehgreif nachvollziehen zu können. Da passiert mir zu viel versteckt in der Change Node. Wenn ich wirklich nur 2 verschiedene Status überwachen will, z,B. true oder false bzw. 1 oder 0 finde ich meine Lösung mit dem Switch und danach die Change Node zum payload setzen nachvollziehbarer. In meinem Fall nutze ich das z.B. um mir in der Vis anzeigen zu lassen ob in einem bestimmten Raum Licht an ist. Ist einer der Datenpunkte true, ist das Icon Gelb, andernfalls ist es schwarz.
                                Dash5.jpg
                                Wenn man natürlich mehrere verschiedene Werte z.B. 0-100 bekommt, vereinfacht deine Version mit der Change Node die ganze Sache sehr, wenn ich nur ne Ausgabe, wenn alle 0 sind oder bei nem anderen bestimmten Wert haben will.

                                Schöne Grüße Frank

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • F frankyboy73

                                  @mickym sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                                  Hier mal meine erfolgreichen JSONATA Switches - der letzte Flow - ist der gerade gepostete und der vorletzte war Deiner mit dem Wildcard und enthält.

                                  Hi, da muss ich ganz ehrlich sagen, das ich das für mich für zu unübersichtlich halte, wenn ich nach Wochen mal schauen will was ich da umgestezt habe, auch kenne ich mich da ehrlich gesagt nicht genug mit Json bzw. Java aus um das aus dem Stehgreif nachvollziehen zu können. Da passiert mir zu viel versteckt in der Change Node. Wenn ich wirklich nur 2 verschiedene Status überwachen will, z,B. true oder false bzw. 1 oder 0 finde ich meine Lösung mit dem Switch und danach die Change Node zum payload setzen nachvollziehbarer. In meinem Fall nutze ich das z.B. um mir in der Vis anzeigen zu lassen ob in einem bestimmten Raum Licht an ist. Ist einer der Datenpunkte true, ist das Icon Gelb, andernfalls ist es schwarz.
                                  Dash5.jpg
                                  Wenn man natürlich mehrere verschiedene Werte z.B. 0-100 bekommt, vereinfacht deine Version mit der Change Node die ganze Sache sehr, wenn ich nur ne Ausgabe, wenn alle 0 sind oder bei nem anderen bestimmten Wert haben will.

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

                                  @frankyboy73 Ich habe jetzt meine function Nodes - die alle Objekteigenschaften überprüft haben durch folgende logische Nodes ersetzt:

                                  53586a34-6133-4a3f-afd4-75b129f11c81-image.png

                                  [
                                     {
                                         "id": "42e1e0df.44b9f",
                                         "type": "tab",
                                         "label": "Flow 1",
                                         "disabled": false,
                                         "info": ""
                                     },
                                     {
                                         "id": "1b34ca2b.069996",
                                         "type": "switch",
                                         "z": "42e1e0df.44b9f",
                                         "name": "AND?",
                                         "property": "(\t $withAND := function($i, $j){$i and $j};\t $reduce(\t $each(\t payload,\t function($v) {$v}\t ),$withAND\t );\t)",
                                         "propertyType": "jsonata",
                                         "rules": [
                                             {
                                                 "t": "true"
                                             },
                                             {
                                                 "t": "false"
                                             }
                                         ],
                                         "checkall": "true",
                                         "repair": false,
                                         "outputs": 2,
                                         "x": 750,
                                         "y": 160,
                                         "wires": [
                                             [],
                                             []
                                         ],
                                         "info": "# All Property have specfic value\n\nAll properties of an object must be true.\n\n`{\n    \"Office\": true,\n    \"Bedroom\": true,\n    \"Living Room Balcony\": true,\n    \"Living Room Right Window\": true,\n    \"Living Room Left Window\": true\n}`\n\nis true,\n\n`{\n    \"Office\": true,\n    \"Bedroom\": false,\n    \"Living Room Balcony\": true,\n    \"Living Room Right Window\": true,\n    \"Living Room Left Window\": true\n}`\n\nis false.\n\n# Alle Eigenschaften haben einen speziellen Wert\n\nAlle Eigenschaften eines Objektes müssen wahr sein.\n\n`{\n    \"Büro Balkon\": true,\n    \"Schlafzimmer Balkon\": true,\n    \"Wohnzimmer Balkon\": true,\n    \"Wohnzimmer rechtes Fenster\": true,\n    \"Wohnzimmer linkes Fenster\": true\n}`\n\nergibt true,\n\n`{\n    \"Büro Balkon\": true,\n    \"Schlafzimmer Balkon\": true,\n    \"Wohnzimmer Balkon\": true,\n    \"Wohnzimmer rechtes Fenster\": false,\n    \"Wohnzimmer linkes Fenster\": true\n}`\n\nergibt false."
                                     },
                                     {
                                         "id": "560feab7.492ee4",
                                         "type": "switch",
                                         "z": "42e1e0df.44b9f",
                                         "name": "OR?",
                                         "property": "(\t $withOR := function($i, $j){$i or $j};\t $reduce(\t $each(\t payload,\t function($v) {$v}\t ),$withOR\t );\t)",
                                         "propertyType": "jsonata",
                                         "rules": [
                                             {
                                                 "t": "true"
                                             },
                                             {
                                                 "t": "false"
                                             }
                                         ],
                                         "checkall": "true",
                                         "repair": false,
                                         "outputs": 2,
                                         "x": 550,
                                         "y": 160,
                                         "wires": [
                                             [],
                                             []
                                         ],
                                         "info": "# One Property has to be false\n\nOnly one property of an object needs to be false.\n\n`{\n    \"Office\": false,\n    \"Bedroom\": false,\n    \"Living Room Balcony\": false,\n    \"Liviueng Room Right Window\": false,\n    \"Living Room Left Window\": false\n}`\n\nis false,\n\n`{\n    \"Office\": false,\n    \"Bedroom\": true,\n    \"Living Room Balcony\": false,\n    \"Living Room Right Window\": false,\n    \"Living Room Left Window\": false\n}`\n\nis true.\n\n# Mindestens eine Eigenschaft muss wahr sein\n\nMindestens eine Eigenschaft des Objektes müssen wahr sein.\n\n`{\n    \"Büro Balkon\": false,\n    \"Schlafzimmer Balkon\": false,\n    \"Wohnzimmer Balkon\": false,\n    \"Wohnzimmer rechtes Fenster\": false,\n    \"Wohnzimmer linkes Fenster\": false\n}`\n\nergibt false,\n\n`{\n    \"Büro Balkon\": false,\n    \"Schlafzimmer Balkon\": true,\n    \"Wohnzimmer Balkon\": false,\n    \"Wohnzimmer rechtes Fenster\": false,\n    \"Wohnzimmer linkes Fenster\": false\n}`\n\nergibt true (wahr)."
                                     },
                                     {
                                         "id": "55624631.5d1df8",
                                         "type": "change",
                                         "z": "42e1e0df.44b9f",
                                         "name": "AND ?",
                                         "rules": [
                                             {
                                                 "t": "set",
                                                 "p": "payload",
                                                 "pt": "msg",
                                                 "to": "(\t $withAND := function($i, $j){$i and $j};\t $reduce(\t $each(\t payload,\t function($v) {$v}\t ),$withAND\t );\t)",
                                                 "tot": "jsonata"
                                             }
                                         ],
                                         "action": "",
                                         "property": "",
                                         "from": "",
                                         "to": "",
                                         "reg": false,
                                         "x": 750,
                                         "y": 200,
                                         "wires": [
                                             []
                                         ]
                                     },
                                     {
                                         "id": "e00ef3c6.e6aed",
                                         "type": "change",
                                         "z": "42e1e0df.44b9f",
                                         "name": "OR ?",
                                         "rules": [
                                             {
                                                 "t": "set",
                                                 "p": "payload",
                                                 "pt": "msg",
                                                 "to": "(\t   $withOR := function($i, $j){$i or $j};\t   $reduce(\t       $each(  payload,  function($v) {$v}  ),\t       $withOR  \t   );\t   )",
                                                 "tot": "jsonata"
                                             }
                                         ],
                                         "action": "",
                                         "property": "",
                                         "from": "",
                                         "to": "",
                                         "reg": false,
                                         "x": 550,
                                         "y": 200,
                                         "wires": [
                                             []
                                         ]
                                     },
                                     {
                                         "id": "56b3f1c8.67898",
                                         "type": "change",
                                         "z": "42e1e0df.44b9f",
                                         "name": "NOT",
                                         "rules": [
                                             {
                                                 "t": "set",
                                                 "p": "payload",
                                                 "pt": "msg",
                                                 "to": "$not(payload)\t",
                                                 "tot": "jsonata"
                                             }
                                         ],
                                         "action": "",
                                         "property": "",
                                         "from": "",
                                         "to": "",
                                         "reg": false,
                                         "x": 920,
                                         "y": 180,
                                         "wires": [
                                             []
                                         ]
                                     }
                                  ]
                                  

                                  Geht halt nur bei true und false - aber dann ist das sehr einfach nun.

                                  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.

                                  F R 2 Antworten Letzte Antwort
                                  1
                                  • mickymM mickym

                                    @frankyboy73 Ich habe jetzt meine function Nodes - die alle Objekteigenschaften überprüft haben durch folgende logische Nodes ersetzt:

                                    53586a34-6133-4a3f-afd4-75b129f11c81-image.png

                                    [
                                       {
                                           "id": "42e1e0df.44b9f",
                                           "type": "tab",
                                           "label": "Flow 1",
                                           "disabled": false,
                                           "info": ""
                                       },
                                       {
                                           "id": "1b34ca2b.069996",
                                           "type": "switch",
                                           "z": "42e1e0df.44b9f",
                                           "name": "AND?",
                                           "property": "(\t $withAND := function($i, $j){$i and $j};\t $reduce(\t $each(\t payload,\t function($v) {$v}\t ),$withAND\t );\t)",
                                           "propertyType": "jsonata",
                                           "rules": [
                                               {
                                                   "t": "true"
                                               },
                                               {
                                                   "t": "false"
                                               }
                                           ],
                                           "checkall": "true",
                                           "repair": false,
                                           "outputs": 2,
                                           "x": 750,
                                           "y": 160,
                                           "wires": [
                                               [],
                                               []
                                           ],
                                           "info": "# All Property have specfic value\n\nAll properties of an object must be true.\n\n`{\n    \"Office\": true,\n    \"Bedroom\": true,\n    \"Living Room Balcony\": true,\n    \"Living Room Right Window\": true,\n    \"Living Room Left Window\": true\n}`\n\nis true,\n\n`{\n    \"Office\": true,\n    \"Bedroom\": false,\n    \"Living Room Balcony\": true,\n    \"Living Room Right Window\": true,\n    \"Living Room Left Window\": true\n}`\n\nis false.\n\n# Alle Eigenschaften haben einen speziellen Wert\n\nAlle Eigenschaften eines Objektes müssen wahr sein.\n\n`{\n    \"Büro Balkon\": true,\n    \"Schlafzimmer Balkon\": true,\n    \"Wohnzimmer Balkon\": true,\n    \"Wohnzimmer rechtes Fenster\": true,\n    \"Wohnzimmer linkes Fenster\": true\n}`\n\nergibt true,\n\n`{\n    \"Büro Balkon\": true,\n    \"Schlafzimmer Balkon\": true,\n    \"Wohnzimmer Balkon\": true,\n    \"Wohnzimmer rechtes Fenster\": false,\n    \"Wohnzimmer linkes Fenster\": true\n}`\n\nergibt false."
                                       },
                                       {
                                           "id": "560feab7.492ee4",
                                           "type": "switch",
                                           "z": "42e1e0df.44b9f",
                                           "name": "OR?",
                                           "property": "(\t $withOR := function($i, $j){$i or $j};\t $reduce(\t $each(\t payload,\t function($v) {$v}\t ),$withOR\t );\t)",
                                           "propertyType": "jsonata",
                                           "rules": [
                                               {
                                                   "t": "true"
                                               },
                                               {
                                                   "t": "false"
                                               }
                                           ],
                                           "checkall": "true",
                                           "repair": false,
                                           "outputs": 2,
                                           "x": 550,
                                           "y": 160,
                                           "wires": [
                                               [],
                                               []
                                           ],
                                           "info": "# One Property has to be false\n\nOnly one property of an object needs to be false.\n\n`{\n    \"Office\": false,\n    \"Bedroom\": false,\n    \"Living Room Balcony\": false,\n    \"Liviueng Room Right Window\": false,\n    \"Living Room Left Window\": false\n}`\n\nis false,\n\n`{\n    \"Office\": false,\n    \"Bedroom\": true,\n    \"Living Room Balcony\": false,\n    \"Living Room Right Window\": false,\n    \"Living Room Left Window\": false\n}`\n\nis true.\n\n# Mindestens eine Eigenschaft muss wahr sein\n\nMindestens eine Eigenschaft des Objektes müssen wahr sein.\n\n`{\n    \"Büro Balkon\": false,\n    \"Schlafzimmer Balkon\": false,\n    \"Wohnzimmer Balkon\": false,\n    \"Wohnzimmer rechtes Fenster\": false,\n    \"Wohnzimmer linkes Fenster\": false\n}`\n\nergibt false,\n\n`{\n    \"Büro Balkon\": false,\n    \"Schlafzimmer Balkon\": true,\n    \"Wohnzimmer Balkon\": false,\n    \"Wohnzimmer rechtes Fenster\": false,\n    \"Wohnzimmer linkes Fenster\": false\n}`\n\nergibt true (wahr)."
                                       },
                                       {
                                           "id": "55624631.5d1df8",
                                           "type": "change",
                                           "z": "42e1e0df.44b9f",
                                           "name": "AND ?",
                                           "rules": [
                                               {
                                                   "t": "set",
                                                   "p": "payload",
                                                   "pt": "msg",
                                                   "to": "(\t $withAND := function($i, $j){$i and $j};\t $reduce(\t $each(\t payload,\t function($v) {$v}\t ),$withAND\t );\t)",
                                                   "tot": "jsonata"
                                               }
                                           ],
                                           "action": "",
                                           "property": "",
                                           "from": "",
                                           "to": "",
                                           "reg": false,
                                           "x": 750,
                                           "y": 200,
                                           "wires": [
                                               []
                                           ]
                                       },
                                       {
                                           "id": "e00ef3c6.e6aed",
                                           "type": "change",
                                           "z": "42e1e0df.44b9f",
                                           "name": "OR ?",
                                           "rules": [
                                               {
                                                   "t": "set",
                                                   "p": "payload",
                                                   "pt": "msg",
                                                   "to": "(\t   $withOR := function($i, $j){$i or $j};\t   $reduce(\t       $each(  payload,  function($v) {$v}  ),\t       $withOR  \t   );\t   )",
                                                   "tot": "jsonata"
                                               }
                                           ],
                                           "action": "",
                                           "property": "",
                                           "from": "",
                                           "to": "",
                                           "reg": false,
                                           "x": 550,
                                           "y": 200,
                                           "wires": [
                                               []
                                           ]
                                       },
                                       {
                                           "id": "56b3f1c8.67898",
                                           "type": "change",
                                           "z": "42e1e0df.44b9f",
                                           "name": "NOT",
                                           "rules": [
                                               {
                                                   "t": "set",
                                                   "p": "payload",
                                                   "pt": "msg",
                                                   "to": "$not(payload)\t",
                                                   "tot": "jsonata"
                                               }
                                           ],
                                           "action": "",
                                           "property": "",
                                           "from": "",
                                           "to": "",
                                           "reg": false,
                                           "x": 920,
                                           "y": 180,
                                           "wires": [
                                               []
                                           ]
                                       }
                                    ]
                                    

                                    Geht halt nur bei true und false - aber dann ist das sehr einfach nun.

                                    F Offline
                                    F Offline
                                    frankyboy73
                                    schrieb am zuletzt editiert von frankyboy73
                                    #18

                                    @mickym Ok, das ist jetzt auch für mich nachvollziehbarer. Du hast ja sogar nen Hilfe Text zu den Switches geschrieben. Vielleicht sollte ich sowas, bei meinen Umsetzungen auch mal öfter machen, dann weiß man später auch wofür man das gemacht hat. Tolle Idee.

                                    @mickym
                                    Aber durch das was da in Json drin steht steige ich nicht durch, ich sehe bei dem "and" switch nicht wie abgefragt wird ob alle true sind. Könntest du mir das noch als switch wo alle false sein müssen zu Verfügung stellen?

                                    Schöne Grüße Frank

                                    1 Antwort Letzte Antwort
                                    0
                                    • mickymM mickym

                                      @Claus1985-0

                                      Habe meinen vorhergehenden Post überarbeitet. Die topics müssen zwingend hoch und runter heißen - da sonst ja der Flow nicht mehr passt.

                                      6517d118-17d8-4814-a1a0-fd90a5b84b82-image.png

                                      Ansonsten musst Du halt alle Nodes an die neuen Topics anpassen.

                                      cf36047b-7d47-463f-9a18-97677c3ac4b3-image.png

                                      fdc3008c-fc70-447f-944f-52df69e778ef-image.png

                                      So hier nochmal der komplette Flow - direkt zum Anflanschen der Loxone Nodes:

                                      Mit aufgenommen wurde das Ausfiltern, dass beide Nodes 1 liefern:

                                      44577d50-f06b-48a3-9278-3f47ef34f552-image.png

                                      [{"id":"f2ea2908d88f1ab2","type":"join","z":"7eaefb9168296580","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":510,"y":2000,"wires":[["4b6bcb50966b0a0c","22c744f5d81e7ba6"]]},{"id":"22c744f5d81e7ba6","type":"switch","z":"7eaefb9168296580","name":"Not(wert1 ODER wert2)","property":"$not(payload.hoch or payload.runter)","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":710,"y":2000,"wires":[["afb323cfc1bf25c8"],["ad9f71d56fb6f349"]]},{"id":"afb323cfc1bf25c8","type":"change","z":"7eaefb9168296580","name":"Stopped = 2","rules":[{"t":"set","p":"payload","pt":"msg","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1070,"y":1940,"wires":[["d318f1935ef49ef5"]]},{"id":"7be3c438b8976f82","type":"switch","z":"7eaefb9168296580","name":"Rolladen runter = Increasing","property":"payload.runter","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1220,"y":2020,"wires":[["9b551e2006fd93dc"]]},{"id":"44c83453fbeb6c4b","type":"switch","z":"7eaefb9168296580","name":"Rolladen hoch = decreasing","property":"payload.hoch","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1220,"y":2080,"wires":[["6520234fe5d0f6b1"]]},{"id":"9b551e2006fd93dc","type":"change","z":"7eaefb9168296580","name":"Increasing = 1","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1460,"y":2020,"wires":[["d318f1935ef49ef5"]]},{"id":"6520234fe5d0f6b1","type":"change","z":"7eaefb9168296580","name":"Decreasing = 0","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1460,"y":2080,"wires":[["d318f1935ef49ef5"]]},{"id":"6a8ef99635e6f249","type":"change","z":"7eaefb9168296580","name":"Kinderzimmer_Runter","rules":[{"t":"set","p":"topic","pt":"msg","to":"runter","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":2040,"wires":[["f2ea2908d88f1ab2"]]},{"id":"e57c65b90a155939","type":"change","z":"7eaefb9168296580","name":"Kinderzimmer_Rauf","rules":[{"t":"set","p":"topic","pt":"msg","to":"hoch","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":1980,"wires":[["f2ea2908d88f1ab2"]]},{"id":"ad9f71d56fb6f349","type":"switch","z":"7eaefb9168296580","name":"Ausfiltern beides 1","property":"$not(payload.hoch and payload.runter)","propertyType":"jsonata","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":950,"y":2040,"wires":[["44c83453fbeb6c4b","7be3c438b8976f82"]]}]
                                      

                                      Claus1985 0C Offline
                                      Claus1985 0C Offline
                                      Claus1985 0
                                      schrieb am zuletzt editiert von Claus1985 0
                                      #19

                                      @mickym hat funktioniert, besten Dank!
                                      Eine Frage habe ich noch. Gibt es eine Möglichkeit mehrere Blöcke welche in Summe eine zusammenhängende Funktion bilden irgendwie zusammen zu fassen?
                                      Hintergrund: Wenn ich die Funktion öfter benötige wäre es ja cool wenn ich sie nur einmal erstellen muss und dann quasi an mehreren Stellen darauf verlinken könnte.

                                      mickymM 1 Antwort Letzte Antwort
                                      0
                                      • Claus1985 0C Claus1985 0

                                        @mickym hat funktioniert, besten Dank!
                                        Eine Frage habe ich noch. Gibt es eine Möglichkeit mehrere Blöcke welche in Summe eine zusammenhängende Funktion bilden irgendwie zusammen zu fassen?
                                        Hintergrund: Wenn ich die Funktion öfter benötige wäre es ja cool wenn ich sie nur einmal erstellen muss und dann quasi an mehreren Stellen darauf verlinken könnte.

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

                                        @claus1985-0 Hier als Gruppe und einer eigenen Node für die Zukunft.

                                        [{"id":"6433d2174606172b","type":"group","z":"7eaefb9168296580","name":"Kinderzimmer","style":{"fill":"#ffefbf","label":true},"nodes":["6a8ef99635e6f249","e57c65b90a155939","b5094973c356d401"],"x":714,"y":1959,"w":392,"h":142},{"id":"f4f4c909aa9c4507","type":"subflow","name":"Status Jalousie","info":"","category":"","in":[{"x":40,"y":120,"wires":[{"id":"f2ea2908d88f1ab2"}]}],"out":[{"x":1340,"y":160,"wires":[{"id":"afb323cfc1bf25c8","port":0},{"id":"9b551e2006fd93dc","port":0},{"id":"6520234fe5d0f6b1","port":0}]}],"env":[],"meta":{},"color":"#3FADB5","outputLabels":["Stopped (2)","Increasing (1)","Decreasing (0)"],"icon":"node-red/sort.svg"},{"id":"f2ea2908d88f1ab2","type":"join","z":"f4f4c909aa9c4507","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":170,"y":120,"wires":[["22c744f5d81e7ba6"]]},{"id":"22c744f5d81e7ba6","type":"switch","z":"f4f4c909aa9c4507","name":"Not(wert1 ODER wert2)","property":"$not(payload.hoch or payload.runter)","propertyType":"jsonata","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":410,"y":120,"wires":[["afb323cfc1bf25c8"],["ad9f71d56fb6f349"]]},{"id":"afb323cfc1bf25c8","type":"change","z":"f4f4c909aa9c4507","name":"Stopped = 2","rules":[{"t":"set","p":"payload","pt":"msg","to":"2","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1150,"y":100,"wires":[[]]},{"id":"7be3c438b8976f82","type":"switch","z":"f4f4c909aa9c4507","name":"Rolladen runter = Increasing","property":"payload.runter","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":900,"y":160,"wires":[["9b551e2006fd93dc"]]},{"id":"44c83453fbeb6c4b","type":"switch","z":"f4f4c909aa9c4507","name":"Rolladen hoch = decreasing","property":"payload.hoch","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":900,"y":220,"wires":[["6520234fe5d0f6b1"]]},{"id":"9b551e2006fd93dc","type":"change","z":"f4f4c909aa9c4507","name":"Increasing = 1","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1140,"y":160,"wires":[[]]},{"id":"6520234fe5d0f6b1","type":"change","z":"f4f4c909aa9c4507","name":"Decreasing = 0","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1140,"y":220,"wires":[[]]},{"id":"ad9f71d56fb6f349","type":"switch","z":"f4f4c909aa9c4507","name":"Ausfiltern beides 1","property":"$not(payload.hoch and payload.runter)","propertyType":"jsonata","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":630,"y":180,"wires":[["44c83453fbeb6c4b","7be3c438b8976f82"]]},{"id":"6a8ef99635e6f249","type":"change","z":"7eaefb9168296580","g":"6433d2174606172b","name":"runter","rules":[{"t":"set","p":"topic","pt":"msg","to":"runter","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":790,"y":2060,"wires":[["b5094973c356d401"]]},{"id":"e57c65b90a155939","type":"change","z":"7eaefb9168296580","g":"6433d2174606172b","name":"hoch","rules":[{"t":"set","p":"topic","pt":"msg","to":"hoch","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":790,"y":2000,"wires":[["b5094973c356d401"]]},{"id":"b5094973c356d401","type":"subflow:f4f4c909aa9c4507","z":"7eaefb9168296580","g":"6433d2174606172b","name":"","env":[],"x":1000,"y":2040,"wires":[["d318f1935ef49ef5"]]}]
                                        

                                        398a7ddf-1f3c-442e-b60c-b7c7585b8247-image.png

                                        Wenn Du nur die Node benutzt - musst halt immer Bedenken, dass den topic hoch und topic runter setzt bevor Du die Node fütterst. Kannst Dir ja auch einen Hilfetext dazu schreiben.

                                        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

                                          @frankyboy73 Ich habe jetzt meine function Nodes - die alle Objekteigenschaften überprüft haben durch folgende logische Nodes ersetzt:

                                          53586a34-6133-4a3f-afd4-75b129f11c81-image.png

                                          [
                                             {
                                                 "id": "42e1e0df.44b9f",
                                                 "type": "tab",
                                                 "label": "Flow 1",
                                                 "disabled": false,
                                                 "info": ""
                                             },
                                             {
                                                 "id": "1b34ca2b.069996",
                                                 "type": "switch",
                                                 "z": "42e1e0df.44b9f",
                                                 "name": "AND?",
                                                 "property": "(\t $withAND := function($i, $j){$i and $j};\t $reduce(\t $each(\t payload,\t function($v) {$v}\t ),$withAND\t );\t)",
                                                 "propertyType": "jsonata",
                                                 "rules": [
                                                     {
                                                         "t": "true"
                                                     },
                                                     {
                                                         "t": "false"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 2,
                                                 "x": 750,
                                                 "y": 160,
                                                 "wires": [
                                                     [],
                                                     []
                                                 ],
                                                 "info": "# All Property have specfic value\n\nAll properties of an object must be true.\n\n`{\n    \"Office\": true,\n    \"Bedroom\": true,\n    \"Living Room Balcony\": true,\n    \"Living Room Right Window\": true,\n    \"Living Room Left Window\": true\n}`\n\nis true,\n\n`{\n    \"Office\": true,\n    \"Bedroom\": false,\n    \"Living Room Balcony\": true,\n    \"Living Room Right Window\": true,\n    \"Living Room Left Window\": true\n}`\n\nis false.\n\n# Alle Eigenschaften haben einen speziellen Wert\n\nAlle Eigenschaften eines Objektes müssen wahr sein.\n\n`{\n    \"Büro Balkon\": true,\n    \"Schlafzimmer Balkon\": true,\n    \"Wohnzimmer Balkon\": true,\n    \"Wohnzimmer rechtes Fenster\": true,\n    \"Wohnzimmer linkes Fenster\": true\n}`\n\nergibt true,\n\n`{\n    \"Büro Balkon\": true,\n    \"Schlafzimmer Balkon\": true,\n    \"Wohnzimmer Balkon\": true,\n    \"Wohnzimmer rechtes Fenster\": false,\n    \"Wohnzimmer linkes Fenster\": true\n}`\n\nergibt false."
                                             },
                                             {
                                                 "id": "560feab7.492ee4",
                                                 "type": "switch",
                                                 "z": "42e1e0df.44b9f",
                                                 "name": "OR?",
                                                 "property": "(\t $withOR := function($i, $j){$i or $j};\t $reduce(\t $each(\t payload,\t function($v) {$v}\t ),$withOR\t );\t)",
                                                 "propertyType": "jsonata",
                                                 "rules": [
                                                     {
                                                         "t": "true"
                                                     },
                                                     {
                                                         "t": "false"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 2,
                                                 "x": 550,
                                                 "y": 160,
                                                 "wires": [
                                                     [],
                                                     []
                                                 ],
                                                 "info": "# One Property has to be false\n\nOnly one property of an object needs to be false.\n\n`{\n    \"Office\": false,\n    \"Bedroom\": false,\n    \"Living Room Balcony\": false,\n    \"Liviueng Room Right Window\": false,\n    \"Living Room Left Window\": false\n}`\n\nis false,\n\n`{\n    \"Office\": false,\n    \"Bedroom\": true,\n    \"Living Room Balcony\": false,\n    \"Living Room Right Window\": false,\n    \"Living Room Left Window\": false\n}`\n\nis true.\n\n# Mindestens eine Eigenschaft muss wahr sein\n\nMindestens eine Eigenschaft des Objektes müssen wahr sein.\n\n`{\n    \"Büro Balkon\": false,\n    \"Schlafzimmer Balkon\": false,\n    \"Wohnzimmer Balkon\": false,\n    \"Wohnzimmer rechtes Fenster\": false,\n    \"Wohnzimmer linkes Fenster\": false\n}`\n\nergibt false,\n\n`{\n    \"Büro Balkon\": false,\n    \"Schlafzimmer Balkon\": true,\n    \"Wohnzimmer Balkon\": false,\n    \"Wohnzimmer rechtes Fenster\": false,\n    \"Wohnzimmer linkes Fenster\": false\n}`\n\nergibt true (wahr)."
                                             },
                                             {
                                                 "id": "55624631.5d1df8",
                                                 "type": "change",
                                                 "z": "42e1e0df.44b9f",
                                                 "name": "AND ?",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "payload",
                                                         "pt": "msg",
                                                         "to": "(\t $withAND := function($i, $j){$i and $j};\t $reduce(\t $each(\t payload,\t function($v) {$v}\t ),$withAND\t );\t)",
                                                         "tot": "jsonata"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 750,
                                                 "y": 200,
                                                 "wires": [
                                                     []
                                                 ]
                                             },
                                             {
                                                 "id": "e00ef3c6.e6aed",
                                                 "type": "change",
                                                 "z": "42e1e0df.44b9f",
                                                 "name": "OR ?",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "payload",
                                                         "pt": "msg",
                                                         "to": "(\t   $withOR := function($i, $j){$i or $j};\t   $reduce(\t       $each(  payload,  function($v) {$v}  ),\t       $withOR  \t   );\t   )",
                                                         "tot": "jsonata"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 550,
                                                 "y": 200,
                                                 "wires": [
                                                     []
                                                 ]
                                             },
                                             {
                                                 "id": "56b3f1c8.67898",
                                                 "type": "change",
                                                 "z": "42e1e0df.44b9f",
                                                 "name": "NOT",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "payload",
                                                         "pt": "msg",
                                                         "to": "$not(payload)\t",
                                                         "tot": "jsonata"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 920,
                                                 "y": 180,
                                                 "wires": [
                                                     []
                                                 ]
                                             }
                                          ]
                                          

                                          Geht halt nur bei true und false - aber dann ist das sehr einfach nun.

                                          R Offline
                                          R Offline
                                          rewenode
                                          schrieb am zuletzt editiert von
                                          #21

                                          @mickym sagte in Vergleich von zwei Eingangswerten um Wert festzulegen:

                                          Ich habe jetzt meine function Nodes - die alle Objekteigenschaften überprüft haben durch folgende logische Nodes ersetzt:

                                          Super:+1:

                                          Du kannst die Ausdrücke noch um Einiges vereinfachen. Hier mal am Beispiel der OR mit den 2 Augängen:

                                          (
                                           $withOR := function($i, $j){$i or $j};
                                           $reduce(
                                           $each(
                                           payload,
                                           function($v) {$v}
                                           ),$withOR
                                           );
                                          )
                                          

                                          kannst du ersetzen durch:

                                          $reduce(payload.*, function($i, $j){$i or $j})
                                          

                                          Gruß
                                          Reiner

                                          mickymM 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

                                          744

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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