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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Boolean Logic Problem

NEWS

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

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

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

Boolean Logic Problem

Geplant Angeheftet Gesperrt Verschoben Node-Red
10 Beiträge 4 Kommentatoren 1.8k Aufrufe 4 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.
  • S Offline
    S Offline
    Saranger
    schrieb am zuletzt editiert von
    #1

    Guten Abend zusammen,

    ich habe ein Verständnisfrage zu Boolean Ultimate Logic, dazu folgende Sache:

    • Abfrage einer KNX GA (funktioniert)
    • Abfrage eines Zeitinjects immer wenn ich bei dem Zeitinjects den Button betätige, dass er das True Signal sendet (beim Debug kommt korrekt true an) bringt mir die Boolean Logic "recived invalid topic" leider werde ich nicht schlau daraus warum das kommt, es wird doch lediglich ein msg.bolean True vom Timeinjects gesendet.

    Hat einer das Problem schon gehabt?

    Danke euch.

    Saranger

    MichMeinM mickymM 2 Antworten Letzte Antwort
    0
    • S Saranger

      Guten Abend zusammen,

      ich habe ein Verständnisfrage zu Boolean Ultimate Logic, dazu folgende Sache:

      • Abfrage einer KNX GA (funktioniert)
      • Abfrage eines Zeitinjects immer wenn ich bei dem Zeitinjects den Button betätige, dass er das True Signal sendet (beim Debug kommt korrekt true an) bringt mir die Boolean Logic "recived invalid topic" leider werde ich nicht schlau daraus warum das kommt, es wird doch lediglich ein msg.bolean True vom Timeinjects gesendet.

      Hat einer das Problem schon gehabt?

      Danke euch.

      Saranger

      MichMeinM Offline
      MichMeinM Offline
      MichMein
      schrieb am zuletzt editiert von
      #2

      @saranger

      wie sieht es mit dieser Checkbox aus? Die solltest du deaktivieren.

      d97b996a-a97f-4987-b7b8-4b3bc6f8b5a9-grafik.png

      Und ich denke es wäre hilfreicher wenn du deinen Flow und die Debugausgaben hier einstellen würdest, denn ohne ist helfen wohl eher Glaskugel schauen.

      Gruß Michael
      Sofern Beiträge hilfreich für Dich sind, nutze das Voting unten rechts.

      1 Antwort Letzte Antwort
      0
      • S Saranger

        Guten Abend zusammen,

        ich habe ein Verständnisfrage zu Boolean Ultimate Logic, dazu folgende Sache:

        • Abfrage einer KNX GA (funktioniert)
        • Abfrage eines Zeitinjects immer wenn ich bei dem Zeitinjects den Button betätige, dass er das True Signal sendet (beim Debug kommt korrekt true an) bringt mir die Boolean Logic "recived invalid topic" leider werde ich nicht schlau daraus warum das kommt, es wird doch lediglich ein msg.bolean True vom Timeinjects gesendet.

        Hat einer das Problem schon gehabt?

        Danke euch.

        Saranger

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

        @saranger sagte in Boolean Logic Problem:

        Boolean Ultimate Logic,

        Ich habe es schon mal an anderer Stelle gesagt, dass ich diese Node überflüssig finde.

        Wer sich die Beschreibung dieser Node anschaut:

        6ec6e920-6156-40f2-a9d4-16fa5fdcb2f7-image.png

        der sieht, dass diese Node nichts weiter macht, als ein Objekt aus den topics mit den "Boolean" payloads erstellt .
        Mit einer JOIN Node bin ich dann aber noch flexibler, weil ich entscheiden kann, ob wirklich alle topics (Inputs geliefert wurden oder nicht).

        Wahrscheinlich sendest Du bei Deiner Inject Node keinen Topic mit - dann kann das Teil nicht funktionieren.

        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.

        S 1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @saranger sagte in Boolean Logic Problem:

          Boolean Ultimate Logic,

          Ich habe es schon mal an anderer Stelle gesagt, dass ich diese Node überflüssig finde.

          Wer sich die Beschreibung dieser Node anschaut:

          6ec6e920-6156-40f2-a9d4-16fa5fdcb2f7-image.png

          der sieht, dass diese Node nichts weiter macht, als ein Objekt aus den topics mit den "Boolean" payloads erstellt .
          Mit einer JOIN Node bin ich dann aber noch flexibler, weil ich entscheiden kann, ob wirklich alle topics (Inputs geliefert wurden oder nicht).

          Wahrscheinlich sendest Du bei Deiner Inject Node keinen Topic mit - dann kann das Teil nicht funktionieren.

          S Offline
          S Offline
          Saranger
          schrieb am zuletzt editiert von
          #4

          Guten Morgen,

          anbei mal der Flow, die Cechkbox ist deaktiviert.

          @mickym wie würde denn eine und Verknüpfung mit dem Join In aussehen, ich hab immer mal nach und oder Verknüpfung gegoogelt und lande immer wieder bei dem boolean.

          Unbenannt.PNG

          F mickymM 2 Antworten Letzte Antwort
          0
          • S Saranger

            Guten Morgen,

            anbei mal der Flow, die Cechkbox ist deaktiviert.

            @mickym wie würde denn eine und Verknüpfung mit dem Join In aussehen, ich hab immer mal nach und oder Verknüpfung gegoogelt und lande immer wieder bei dem boolean.

            Unbenannt.PNG

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

            @saranger Hi, wie @mickym schon schrieb, musst du bei der Injekt Node ein Topic mitgeben. Wenn du auf mehrere verschiedene Nachrichten reagieren willst, muss die Logik auch wissen das es verschiedene Nachrichten sind, jede Nachricht braucht dann ein eigenes Topic. Auch wenn du z.B. die Join verwendest, braucht jede Nachricht ihr eigenes Topic. Bei den In Nodes und get Nodes wird das automatisch aus dem ausgewählten Topic (Datenpunkt) erstellt / mitgegeben. Bei den Injekt Nodes kann / muss man das selbst eingeben. Dabei ist es eigentlich völlig egal was man da eingibt, Zahlen, Buchstaben.
            Das Topic kann man im Prinzip als Namen oder Absender der Nachricht verstehen.
            Topic1.jpg

            Schöne Grüße Frank

            1 Antwort Letzte Antwort
            0
            • S Saranger

              Guten Morgen,

              anbei mal der Flow, die Cechkbox ist deaktiviert.

              @mickym wie würde denn eine und Verknüpfung mit dem Join In aussehen, ich hab immer mal nach und oder Verknüpfung gegoogelt und lande immer wieder bei dem boolean.

              Unbenannt.PNG

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

              @saranger Wie gesagt bei Deiner Inject Node fehlt das Topic das braucht das Teil immer.

              So ich hab Dir mal für grundlegendes UND und ODER die Lösung mit Hausmitteln hier:

              d6642766-fdb5-42fe-8086-37a0e93ea188-image.png

              Die ersten 3 Ausgaben ist ein logisches UND, die zweiten 3 Ausgaben ein logisches ODER.
              Das was Deine Boolesche Node macht habe ich mal gruppiert und entsprechend markiert.

              [
                 {
                     "id": "820ca46e.666378",
                     "type": "inject",
                     "z": "54b226bc.0793e8",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "topic1",
                     "payload": "true",
                     "payloadType": "bool",
                     "x": 280,
                     "y": 3520,
                     "wires": [
                         [
                             "ba1c1b43.245d78"
                         ]
                     ]
                 },
                 {
                     "id": "50315b3e.f9afb4",
                     "type": "inject",
                     "z": "54b226bc.0793e8",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "topic1",
                     "payload": "false",
                     "payloadType": "bool",
                     "x": 270,
                     "y": 3560,
                     "wires": [
                         [
                             "ba1c1b43.245d78"
                         ]
                     ]
                 },
                 {
                     "id": "2568b981.4acc26",
                     "type": "inject",
                     "z": "54b226bc.0793e8",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "topic2",
                     "payload": "true",
                     "payloadType": "bool",
                     "x": 280,
                     "y": 3660,
                     "wires": [
                         [
                             "ba1c1b43.245d78"
                         ]
                     ]
                 },
                 {
                     "id": "bb48ac3e.b0218",
                     "type": "inject",
                     "z": "54b226bc.0793e8",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "topic2",
                     "payload": "false",
                     "payloadType": "bool",
                     "x": 270,
                     "y": 3700,
                     "wires": [
                         [
                             "ba1c1b43.245d78"
                         ]
                     ]
                 },
                 {
                     "id": "3cbaecdf.7d3a74",
                     "type": "debug",
                     "z": "54b226bc.0793e8",
                     "name": "wahr",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 810,
                     "y": 3600,
                     "wires": []
                 },
                 {
                     "id": "b5f861f5.19c37",
                     "type": "debug",
                     "z": "54b226bc.0793e8",
                     "name": "falsch",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 810,
                     "y": 3660,
                     "wires": []
                 },
                 {
                     "id": "ada4b879.152f78",
                     "type": "inject",
                     "z": "54b226bc.0793e8",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "topic1",
                     "payload": "true",
                     "payloadType": "bool",
                     "x": 280,
                     "y": 3800,
                     "wires": [
                         [
                             "24b10840.9afe98"
                         ]
                     ]
                 },
                 {
                     "id": "f2dfe840.1b9388",
                     "type": "inject",
                     "z": "54b226bc.0793e8",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "topic1",
                     "payload": "false",
                     "payloadType": "bool",
                     "x": 270,
                     "y": 3840,
                     "wires": [
                         [
                             "24b10840.9afe98"
                         ]
                     ]
                 },
                 {
                     "id": "ee9cff63.e064b",
                     "type": "inject",
                     "z": "54b226bc.0793e8",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "topic2",
                     "payload": "true",
                     "payloadType": "bool",
                     "x": 280,
                     "y": 3940,
                     "wires": [
                         [
                             "24b10840.9afe98"
                         ]
                     ]
                 },
                 {
                     "id": "f9dd71cb.42f47",
                     "type": "inject",
                     "z": "54b226bc.0793e8",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "topic2",
                     "payload": "false",
                     "payloadType": "bool",
                     "x": 270,
                     "y": 3980,
                     "wires": [
                         [
                             "24b10840.9afe98"
                         ]
                     ]
                 },
                 {
                     "id": "4c7d4eb7.2d19b",
                     "type": "debug",
                     "z": "54b226bc.0793e8",
                     "name": "wahr",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 810,
                     "y": 3840,
                     "wires": []
                 },
                 {
                     "id": "f59e0080.872c7",
                     "type": "debug",
                     "z": "54b226bc.0793e8",
                     "name": "falsch",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 810,
                     "y": 3920,
                     "wires": []
                 },
                 {
                     "id": "cef0c2ee.58af6",
                     "type": "group",
                     "z": "54b226bc.0793e8",
                     "name": "2 Boolean Logic",
                     "style": {
                         "label": true,
                         "fill": "#ff7f7f",
                         "color": "#000000"
                     },
                     "nodes": [
                         "24b10840.9afe98",
                         "602cba8c.00a654"
                     ],
                     "x": 414,
                     "y": 3839,
                     "w": 292,
                     "h": 82
                 },
                 {
                     "id": "24b10840.9afe98",
                     "type": "join",
                     "z": "54b226bc.0793e8",
                     "g": "cef0c2ee.58af6",
                     "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": 490,
                     "y": 3880,
                     "wires": [
                         [
                             "602cba8c.00a654"
                         ]
                     ]
                 },
                 {
                     "id": "602cba8c.00a654",
                     "type": "switch",
                     "z": "54b226bc.0793e8",
                     "g": "cef0c2ee.58af6",
                     "name": "OR?",
                     "property": "$reduce(payload.*,function($i, $j){$i or $j})",
                     "propertyType": "jsonata",
                     "rules": [
                         {
                             "t": "true"
                         },
                         {
                             "t": "false"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 2,
                     "x": 630,
                     "y": 3880,
                     "wires": [
                         [
                             "4c7d4eb7.2d19b"
                         ],
                         [
                             "f59e0080.872c7"
                         ]
                     ],
                     "info": "# Only one or more properties of an object need to be true.\n\n Only one or more properties of an object need to be true.\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 des Objektes muss wahr sein.\n\nMindestens eine Eigenschaft des Objektes muss 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": "e159e88a.eff738",
                     "type": "group",
                     "z": "54b226bc.0793e8",
                     "name": "2 Boolean Logic",
                     "style": {
                         "label": true,
                         "fill": "#ff7f7f",
                         "color": "#000000"
                     },
                     "nodes": [
                         "ba1c1b43.245d78",
                         "b704d635.c3bdb8"
                     ],
                     "x": 414,
                     "y": 3579,
                     "w": 292,
                     "h": 82
                 },
                 {
                     "id": "ba1c1b43.245d78",
                     "type": "join",
                     "z": "54b226bc.0793e8",
                     "g": "e159e88a.eff738",
                     "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": 490,
                     "y": 3620,
                     "wires": [
                         [
                             "b704d635.c3bdb8"
                         ]
                     ]
                 },
                 {
                     "id": "b704d635.c3bdb8",
                     "type": "switch",
                     "z": "54b226bc.0793e8",
                     "g": "e159e88a.eff738",
                     "name": "AND?",
                     "property": "$reduce(payload.*,function($i, $j){$i and $j})",
                     "propertyType": "jsonata",
                     "rules": [
                         {
                             "t": "true"
                         },
                         {
                             "t": "false"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 2,
                     "x": 630,
                     "y": 3620,
                     "wires": [
                         [
                             "3cbaecdf.7d3a74"
                         ],
                         [
                             "b5f861f5.19c37"
                         ]
                     ],
                     "info": "# All properties of an object must be true.\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 eines Objektes müssen wahr sein\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."
                 }
              ]
              

              XOR oder NOT sind ja alles nur abgeleitete Nodes.

              Hier mal UND und ODER als Switch oder Change Nodes:

              [
                 {
                     "id": "afc046d6.5e0668",
                     "type": "switch",
                     "z": "54b226bc.0793e8",
                     "name": "AND?",
                     "property": "$reduce(payload.*,function($i, $j){$i and $j})",
                     "propertyType": "jsonata",
                     "rules": [
                         {
                             "t": "true"
                         },
                         {
                             "t": "false"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 2,
                     "x": 390,
                     "y": 4180,
                     "wires": [
                         [],
                         []
                     ],
                     "info": "# All properties of an object must be true.\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 eines Objektes müssen wahr sein\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": "6bad278a.4213e8",
                     "type": "change",
                     "z": "54b226bc.0793e8",
                     "name": "AND ?",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "$reduce(payload.*,function($i, $j){$i and $j})",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 390,
                     "y": 4220,
                     "wires": [
                         []
                     ],
                     "info": "# All Property of an object must be true.\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 eines Objektes müssen wahr sein\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": "97f0b8a7.a386e8",
                     "type": "switch",
                     "z": "54b226bc.0793e8",
                     "name": "OR?",
                     "property": "$reduce(payload.*,function($i, $j){$i or $j})",
                     "propertyType": "jsonata",
                     "rules": [
                         {
                             "t": "true"
                         },
                         {
                             "t": "false"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 2,
                     "x": 550,
                     "y": 4180,
                     "wires": [
                         [],
                         []
                     ],
                     "info": "# Only one or more properties of an object need to be true.\n\n Only one or more properties of an object need to be true.\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 des Objektes muss wahr sein.\n\nMindestens eine Eigenschaft des Objektes muss 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": "f8822409.c70828",
                     "type": "change",
                     "z": "54b226bc.0793e8",
                     "name": "OR ?",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "$reduce(payload.*,function($i, $j){$i or $j})",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 550,
                     "y": 4220,
                     "wires": [
                         []
                     ],
                     "info": "# Only one or more properties of an object need to be true.\n\n Only one or more properties of an object need to be true.\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 des Objektes muss wahr sein.\n\nMindestens eine Eigenschaft des Objektes muss 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": "f9479b2c.711868",
                     "type": "change",
                     "z": "54b226bc.0793e8",
                     "name": "NOT",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "$not(payload)\t",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 710,
                     "y": 4200,
                     "wires": [
                         []
                     ]
                 }
              ]
              

              Ich habe mir diese 4 Nodes einfach in meine lokale Bibliotek kopiert und somit immer zur Verfügung. Deswegen braucht man die anderen Nodes in meinen Augen nicht.
              Der Vorteil mit JOIN ist halt, dass man hier halt selbst darauf reagieren kann, ob alle topics vorhanden sein müssen oder nicht.

              Wie man sowas flexibel zur Überwachung einsetzen kann, auch ohne die Anzahl der topics zu kennen, habe ich hier schon mal beschrieben:
              https://forum.iobroker.net/topic/44765/gelöst-überwachung-eingeschaltete-verbraucher/6?_=1641722216059

              OK - kenn die Boolschen Nodes nicht genau, was die für eine Nachricht aus Ihren Ausgängen rausschickt, da müsstest Du ggf. halt noch eine Change Node hinterher schicken. Die Originalnachrichten sind ja in dem Objekt der einzelnen Topics enthalten.

              Auch hier noch mal so ein paar Beispiele von logischen Verknüpfungen mit Switch-Nodes und JSONATA:
              JSONATA Switches.json

              Ach ausführliches zu diesen Nodes haben @frankyboy73 und ich erst kürzlich in diesem Thread diskutiert: https://forum.iobroker.net/topic/49835/vergleich-von-zwei-eingangswerten-um-wert-festzulegen/11

              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.

              S F 2 Antworten Letzte Antwort
              0
              • mickymM mickym

                @saranger Wie gesagt bei Deiner Inject Node fehlt das Topic das braucht das Teil immer.

                So ich hab Dir mal für grundlegendes UND und ODER die Lösung mit Hausmitteln hier:

                d6642766-fdb5-42fe-8086-37a0e93ea188-image.png

                Die ersten 3 Ausgaben ist ein logisches UND, die zweiten 3 Ausgaben ein logisches ODER.
                Das was Deine Boolesche Node macht habe ich mal gruppiert und entsprechend markiert.

                [
                   {
                       "id": "820ca46e.666378",
                       "type": "inject",
                       "z": "54b226bc.0793e8",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "topic1",
                       "payload": "true",
                       "payloadType": "bool",
                       "x": 280,
                       "y": 3520,
                       "wires": [
                           [
                               "ba1c1b43.245d78"
                           ]
                       ]
                   },
                   {
                       "id": "50315b3e.f9afb4",
                       "type": "inject",
                       "z": "54b226bc.0793e8",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "topic1",
                       "payload": "false",
                       "payloadType": "bool",
                       "x": 270,
                       "y": 3560,
                       "wires": [
                           [
                               "ba1c1b43.245d78"
                           ]
                       ]
                   },
                   {
                       "id": "2568b981.4acc26",
                       "type": "inject",
                       "z": "54b226bc.0793e8",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "topic2",
                       "payload": "true",
                       "payloadType": "bool",
                       "x": 280,
                       "y": 3660,
                       "wires": [
                           [
                               "ba1c1b43.245d78"
                           ]
                       ]
                   },
                   {
                       "id": "bb48ac3e.b0218",
                       "type": "inject",
                       "z": "54b226bc.0793e8",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "topic2",
                       "payload": "false",
                       "payloadType": "bool",
                       "x": 270,
                       "y": 3700,
                       "wires": [
                           [
                               "ba1c1b43.245d78"
                           ]
                       ]
                   },
                   {
                       "id": "3cbaecdf.7d3a74",
                       "type": "debug",
                       "z": "54b226bc.0793e8",
                       "name": "wahr",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 810,
                       "y": 3600,
                       "wires": []
                   },
                   {
                       "id": "b5f861f5.19c37",
                       "type": "debug",
                       "z": "54b226bc.0793e8",
                       "name": "falsch",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 810,
                       "y": 3660,
                       "wires": []
                   },
                   {
                       "id": "ada4b879.152f78",
                       "type": "inject",
                       "z": "54b226bc.0793e8",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "topic1",
                       "payload": "true",
                       "payloadType": "bool",
                       "x": 280,
                       "y": 3800,
                       "wires": [
                           [
                               "24b10840.9afe98"
                           ]
                       ]
                   },
                   {
                       "id": "f2dfe840.1b9388",
                       "type": "inject",
                       "z": "54b226bc.0793e8",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "topic1",
                       "payload": "false",
                       "payloadType": "bool",
                       "x": 270,
                       "y": 3840,
                       "wires": [
                           [
                               "24b10840.9afe98"
                           ]
                       ]
                   },
                   {
                       "id": "ee9cff63.e064b",
                       "type": "inject",
                       "z": "54b226bc.0793e8",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "topic2",
                       "payload": "true",
                       "payloadType": "bool",
                       "x": 280,
                       "y": 3940,
                       "wires": [
                           [
                               "24b10840.9afe98"
                           ]
                       ]
                   },
                   {
                       "id": "f9dd71cb.42f47",
                       "type": "inject",
                       "z": "54b226bc.0793e8",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "topic2",
                       "payload": "false",
                       "payloadType": "bool",
                       "x": 270,
                       "y": 3980,
                       "wires": [
                           [
                               "24b10840.9afe98"
                           ]
                       ]
                   },
                   {
                       "id": "4c7d4eb7.2d19b",
                       "type": "debug",
                       "z": "54b226bc.0793e8",
                       "name": "wahr",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 810,
                       "y": 3840,
                       "wires": []
                   },
                   {
                       "id": "f59e0080.872c7",
                       "type": "debug",
                       "z": "54b226bc.0793e8",
                       "name": "falsch",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 810,
                       "y": 3920,
                       "wires": []
                   },
                   {
                       "id": "cef0c2ee.58af6",
                       "type": "group",
                       "z": "54b226bc.0793e8",
                       "name": "2 Boolean Logic",
                       "style": {
                           "label": true,
                           "fill": "#ff7f7f",
                           "color": "#000000"
                       },
                       "nodes": [
                           "24b10840.9afe98",
                           "602cba8c.00a654"
                       ],
                       "x": 414,
                       "y": 3839,
                       "w": 292,
                       "h": 82
                   },
                   {
                       "id": "24b10840.9afe98",
                       "type": "join",
                       "z": "54b226bc.0793e8",
                       "g": "cef0c2ee.58af6",
                       "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": 490,
                       "y": 3880,
                       "wires": [
                           [
                               "602cba8c.00a654"
                           ]
                       ]
                   },
                   {
                       "id": "602cba8c.00a654",
                       "type": "switch",
                       "z": "54b226bc.0793e8",
                       "g": "cef0c2ee.58af6",
                       "name": "OR?",
                       "property": "$reduce(payload.*,function($i, $j){$i or $j})",
                       "propertyType": "jsonata",
                       "rules": [
                           {
                               "t": "true"
                           },
                           {
                               "t": "false"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 2,
                       "x": 630,
                       "y": 3880,
                       "wires": [
                           [
                               "4c7d4eb7.2d19b"
                           ],
                           [
                               "f59e0080.872c7"
                           ]
                       ],
                       "info": "# Only one or more properties of an object need to be true.\n\n Only one or more properties of an object need to be true.\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 des Objektes muss wahr sein.\n\nMindestens eine Eigenschaft des Objektes muss 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": "e159e88a.eff738",
                       "type": "group",
                       "z": "54b226bc.0793e8",
                       "name": "2 Boolean Logic",
                       "style": {
                           "label": true,
                           "fill": "#ff7f7f",
                           "color": "#000000"
                       },
                       "nodes": [
                           "ba1c1b43.245d78",
                           "b704d635.c3bdb8"
                       ],
                       "x": 414,
                       "y": 3579,
                       "w": 292,
                       "h": 82
                   },
                   {
                       "id": "ba1c1b43.245d78",
                       "type": "join",
                       "z": "54b226bc.0793e8",
                       "g": "e159e88a.eff738",
                       "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": 490,
                       "y": 3620,
                       "wires": [
                           [
                               "b704d635.c3bdb8"
                           ]
                       ]
                   },
                   {
                       "id": "b704d635.c3bdb8",
                       "type": "switch",
                       "z": "54b226bc.0793e8",
                       "g": "e159e88a.eff738",
                       "name": "AND?",
                       "property": "$reduce(payload.*,function($i, $j){$i and $j})",
                       "propertyType": "jsonata",
                       "rules": [
                           {
                               "t": "true"
                           },
                           {
                               "t": "false"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 2,
                       "x": 630,
                       "y": 3620,
                       "wires": [
                           [
                               "3cbaecdf.7d3a74"
                           ],
                           [
                               "b5f861f5.19c37"
                           ]
                       ],
                       "info": "# All properties of an object must be true.\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 eines Objektes müssen wahr sein\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."
                   }
                ]
                

                XOR oder NOT sind ja alles nur abgeleitete Nodes.

                Hier mal UND und ODER als Switch oder Change Nodes:

                [
                   {
                       "id": "afc046d6.5e0668",
                       "type": "switch",
                       "z": "54b226bc.0793e8",
                       "name": "AND?",
                       "property": "$reduce(payload.*,function($i, $j){$i and $j})",
                       "propertyType": "jsonata",
                       "rules": [
                           {
                               "t": "true"
                           },
                           {
                               "t": "false"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 2,
                       "x": 390,
                       "y": 4180,
                       "wires": [
                           [],
                           []
                       ],
                       "info": "# All properties of an object must be true.\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 eines Objektes müssen wahr sein\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": "6bad278a.4213e8",
                       "type": "change",
                       "z": "54b226bc.0793e8",
                       "name": "AND ?",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "$reduce(payload.*,function($i, $j){$i and $j})",
                               "tot": "jsonata"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 390,
                       "y": 4220,
                       "wires": [
                           []
                       ],
                       "info": "# All Property of an object must be true.\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 eines Objektes müssen wahr sein\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": "97f0b8a7.a386e8",
                       "type": "switch",
                       "z": "54b226bc.0793e8",
                       "name": "OR?",
                       "property": "$reduce(payload.*,function($i, $j){$i or $j})",
                       "propertyType": "jsonata",
                       "rules": [
                           {
                               "t": "true"
                           },
                           {
                               "t": "false"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 2,
                       "x": 550,
                       "y": 4180,
                       "wires": [
                           [],
                           []
                       ],
                       "info": "# Only one or more properties of an object need to be true.\n\n Only one or more properties of an object need to be true.\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 des Objektes muss wahr sein.\n\nMindestens eine Eigenschaft des Objektes muss 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": "f8822409.c70828",
                       "type": "change",
                       "z": "54b226bc.0793e8",
                       "name": "OR ?",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "$reduce(payload.*,function($i, $j){$i or $j})",
                               "tot": "jsonata"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 550,
                       "y": 4220,
                       "wires": [
                           []
                       ],
                       "info": "# Only one or more properties of an object need to be true.\n\n Only one or more properties of an object need to be true.\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 des Objektes muss wahr sein.\n\nMindestens eine Eigenschaft des Objektes muss 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": "f9479b2c.711868",
                       "type": "change",
                       "z": "54b226bc.0793e8",
                       "name": "NOT",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "$not(payload)\t",
                               "tot": "jsonata"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 710,
                       "y": 4200,
                       "wires": [
                           []
                       ]
                   }
                ]
                

                Ich habe mir diese 4 Nodes einfach in meine lokale Bibliotek kopiert und somit immer zur Verfügung. Deswegen braucht man die anderen Nodes in meinen Augen nicht.
                Der Vorteil mit JOIN ist halt, dass man hier halt selbst darauf reagieren kann, ob alle topics vorhanden sein müssen oder nicht.

                Wie man sowas flexibel zur Überwachung einsetzen kann, auch ohne die Anzahl der topics zu kennen, habe ich hier schon mal beschrieben:
                https://forum.iobroker.net/topic/44765/gelöst-überwachung-eingeschaltete-verbraucher/6?_=1641722216059

                OK - kenn die Boolschen Nodes nicht genau, was die für eine Nachricht aus Ihren Ausgängen rausschickt, da müsstest Du ggf. halt noch eine Change Node hinterher schicken. Die Originalnachrichten sind ja in dem Objekt der einzelnen Topics enthalten.

                Auch hier noch mal so ein paar Beispiele von logischen Verknüpfungen mit Switch-Nodes und JSONATA:
                JSONATA Switches.json

                Ach ausführliches zu diesen Nodes haben @frankyboy73 und ich erst kürzlich in diesem Thread diskutiert: https://forum.iobroker.net/topic/49835/vergleich-von-zwei-eingangswerten-um-wert-festzulegen/11

                S Offline
                S Offline
                Saranger
                schrieb am zuletzt editiert von
                #7

                @mickym

                vielen Dank für die Beispiele, nach dem ich das Topic eingefügt hatte ging auch die Lösung mit dem Boolean. Ich habe aber auch die aufgeführten Beispiele von Dir getestet um es zu verstehen. Das ging am Anfang nicht, erst nach dem ich nach dem And noch jeweils eine Changenode für True und false eingefügt habe. Ich denke das kann man auch anders machen aber so würde es gehen :-). Das Inject schickt jeweils unterschiedliche Zeiten, als Beispiel 22:00 uhr soll es auf True gehen und 05:00 Uhr auf false zusätzlich kommt dann die KNX Adresse der Wetterstation für die Tag/Nacht Umschaltung.

                Unbenannt.PNG

                mickymM 1 Antwort Letzte Antwort
                0
                • S Saranger

                  @mickym

                  vielen Dank für die Beispiele, nach dem ich das Topic eingefügt hatte ging auch die Lösung mit dem Boolean. Ich habe aber auch die aufgeführten Beispiele von Dir getestet um es zu verstehen. Das ging am Anfang nicht, erst nach dem ich nach dem And noch jeweils eine Changenode für True und false eingefügt habe. Ich denke das kann man auch anders machen aber so würde es gehen :-). Das Inject schickt jeweils unterschiedliche Zeiten, als Beispiel 22:00 uhr soll es auf True gehen und 05:00 Uhr auf false zusätzlich kommt dann die KNX Adresse der Wetterstation für die Tag/Nacht Umschaltung.

                  Unbenannt.PNG

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

                  @saranger Ja falls es darum geht ,dass nur ein true oder false weitergegeben wird, gab es aus dem 4er Pack,das ich Dir gepostet habe, auch eine Change Node.

                  0491dffc-5dfa-42ae-892e-43a9b8cfad33-image.png

                  [
                     {
                         "id": "820ca46e.666378",
                         "type": "inject",
                         "z": "54b226bc.0793e8",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "topic1",
                         "payload": "true",
                         "payloadType": "bool",
                         "x": 700,
                         "y": 3460,
                         "wires": [
                             [
                                 "ba1c1b43.245d78"
                             ]
                         ]
                     },
                     {
                         "id": "50315b3e.f9afb4",
                         "type": "inject",
                         "z": "54b226bc.0793e8",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "topic1",
                         "payload": "false",
                         "payloadType": "bool",
                         "x": 690,
                         "y": 3500,
                         "wires": [
                             [
                                 "ba1c1b43.245d78"
                             ]
                         ]
                     },
                     {
                         "id": "2568b981.4acc26",
                         "type": "inject",
                         "z": "54b226bc.0793e8",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "topic2",
                         "payload": "true",
                         "payloadType": "bool",
                         "x": 700,
                         "y": 3600,
                         "wires": [
                             [
                                 "ba1c1b43.245d78"
                             ]
                         ]
                     },
                     {
                         "id": "bb48ac3e.b0218",
                         "type": "inject",
                         "z": "54b226bc.0793e8",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "topic2",
                         "payload": "false",
                         "payloadType": "bool",
                         "x": 690,
                         "y": 3640,
                         "wires": [
                             [
                                 "ba1c1b43.245d78"
                             ]
                         ]
                     },
                     {
                         "id": "ada4b879.152f78",
                         "type": "inject",
                         "z": "54b226bc.0793e8",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "topic1",
                         "payload": "true",
                         "payloadType": "bool",
                         "x": 700,
                         "y": 3740,
                         "wires": [
                             [
                                 "24b10840.9afe98"
                             ]
                         ]
                     },
                     {
                         "id": "f2dfe840.1b9388",
                         "type": "inject",
                         "z": "54b226bc.0793e8",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "topic1",
                         "payload": "false",
                         "payloadType": "bool",
                         "x": 690,
                         "y": 3780,
                         "wires": [
                             [
                                 "24b10840.9afe98"
                             ]
                         ]
                     },
                     {
                         "id": "ee9cff63.e064b",
                         "type": "inject",
                         "z": "54b226bc.0793e8",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "topic2",
                         "payload": "true",
                         "payloadType": "bool",
                         "x": 700,
                         "y": 3880,
                         "wires": [
                             [
                                 "24b10840.9afe98"
                             ]
                         ]
                     },
                     {
                         "id": "f9dd71cb.42f47",
                         "type": "inject",
                         "z": "54b226bc.0793e8",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "topic2",
                         "payload": "false",
                         "payloadType": "bool",
                         "x": 690,
                         "y": 3920,
                         "wires": [
                             [
                                 "24b10840.9afe98"
                             ]
                         ]
                     },
                     {
                         "id": "2f699d12.d7ad92",
                         "type": "debug",
                         "z": "54b226bc.0793e8",
                         "name": "",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "false",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1250,
                         "y": 3560,
                         "wires": []
                     },
                     {
                         "id": "b48a3aec.f4cfb8",
                         "type": "debug",
                         "z": "54b226bc.0793e8",
                         "name": "",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "false",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1250,
                         "y": 3820,
                         "wires": []
                     },
                     {
                         "id": "cef0c2ee.58af6",
                         "type": "group",
                         "z": "54b226bc.0793e8",
                         "name": "2 Boolean Logic",
                         "style": {
                             "label": true,
                             "fill": "#ff7f7f",
                             "color": "#000000"
                         },
                         "nodes": [
                             "24b10840.9afe98",
                             "eda5645b.741178"
                         ],
                         "x": 834,
                         "y": 3779,
                         "w": 292,
                         "h": 82
                     },
                     {
                         "id": "24b10840.9afe98",
                         "type": "join",
                         "z": "54b226bc.0793e8",
                         "g": "cef0c2ee.58af6",
                         "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": 910,
                         "y": 3820,
                         "wires": [
                             [
                                 "eda5645b.741178"
                             ]
                         ]
                     },
                     {
                         "id": "eda5645b.741178",
                         "type": "change",
                         "z": "54b226bc.0793e8",
                         "g": "cef0c2ee.58af6",
                         "name": "OR ?",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "$reduce(payload.*,function($i, $j){$i or $j})",
                                 "tot": "jsonata"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 1050,
                         "y": 3820,
                         "wires": [
                             [
                                 "b48a3aec.f4cfb8"
                             ]
                         ],
                         "info": "# Only one or more properties of an object need to be true.\n\n Only one or more properties of an object need to be true.\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 des Objektes muss wahr sein.\n\nMindestens eine Eigenschaft des Objektes muss 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": "e159e88a.eff738",
                         "type": "group",
                         "z": "54b226bc.0793e8",
                         "name": "2 Boolean Logic",
                         "style": {
                             "label": true,
                             "fill": "#ff7f7f",
                             "color": "#000000"
                         },
                         "nodes": [
                             "ba1c1b43.245d78",
                             "f12f8a2a.33cb18"
                         ],
                         "x": 834,
                         "y": 3519,
                         "w": 292,
                         "h": 82
                     },
                     {
                         "id": "ba1c1b43.245d78",
                         "type": "join",
                         "z": "54b226bc.0793e8",
                         "g": "e159e88a.eff738",
                         "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": 910,
                         "y": 3560,
                         "wires": [
                             [
                                 "f12f8a2a.33cb18"
                             ]
                         ]
                     },
                     {
                         "id": "f12f8a2a.33cb18",
                         "type": "change",
                         "z": "54b226bc.0793e8",
                         "g": "e159e88a.eff738",
                         "name": "AND ?",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "$reduce(payload.*,function($i, $j){$i and $j})",
                                 "tot": "jsonata"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 1050,
                         "y": 3560,
                         "wires": [
                             [
                                 "2f699d12.d7ad92"
                             ]
                         ],
                         "info": "# All Property of an object must be true.\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 eines Objektes müssen wahr sein\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."
                     }
                  ]
                  


                  Mir ging es ja auch nur darum zu zeigen, dass man das auch mit Standardmitteln erreichen kann und nur für die logische Verknüpfung keine extra Node braucht - aber sind ja noch mehrere Funktionen dabei - vielleicht gibt es ja auch was, was nicht so einfach mit Boardmitteln zu realisieren ist.

                  In die Nodes habe ich ja auch eine kleine Hilfe verpackt:

                  e654ddeb-0489-4584-b328-584ed2c089b0-image.png

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

                  S 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @saranger Ja falls es darum geht ,dass nur ein true oder false weitergegeben wird, gab es aus dem 4er Pack,das ich Dir gepostet habe, auch eine Change Node.

                    0491dffc-5dfa-42ae-892e-43a9b8cfad33-image.png

                    [
                       {
                           "id": "820ca46e.666378",
                           "type": "inject",
                           "z": "54b226bc.0793e8",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               },
                               {
                                   "p": "topic",
                                   "vt": "str"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "topic1",
                           "payload": "true",
                           "payloadType": "bool",
                           "x": 700,
                           "y": 3460,
                           "wires": [
                               [
                                   "ba1c1b43.245d78"
                               ]
                           ]
                       },
                       {
                           "id": "50315b3e.f9afb4",
                           "type": "inject",
                           "z": "54b226bc.0793e8",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               },
                               {
                                   "p": "topic",
                                   "vt": "str"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "topic1",
                           "payload": "false",
                           "payloadType": "bool",
                           "x": 690,
                           "y": 3500,
                           "wires": [
                               [
                                   "ba1c1b43.245d78"
                               ]
                           ]
                       },
                       {
                           "id": "2568b981.4acc26",
                           "type": "inject",
                           "z": "54b226bc.0793e8",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               },
                               {
                                   "p": "topic",
                                   "vt": "str"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "topic2",
                           "payload": "true",
                           "payloadType": "bool",
                           "x": 700,
                           "y": 3600,
                           "wires": [
                               [
                                   "ba1c1b43.245d78"
                               ]
                           ]
                       },
                       {
                           "id": "bb48ac3e.b0218",
                           "type": "inject",
                           "z": "54b226bc.0793e8",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               },
                               {
                                   "p": "topic",
                                   "vt": "str"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "topic2",
                           "payload": "false",
                           "payloadType": "bool",
                           "x": 690,
                           "y": 3640,
                           "wires": [
                               [
                                   "ba1c1b43.245d78"
                               ]
                           ]
                       },
                       {
                           "id": "ada4b879.152f78",
                           "type": "inject",
                           "z": "54b226bc.0793e8",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               },
                               {
                                   "p": "topic",
                                   "vt": "str"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "topic1",
                           "payload": "true",
                           "payloadType": "bool",
                           "x": 700,
                           "y": 3740,
                           "wires": [
                               [
                                   "24b10840.9afe98"
                               ]
                           ]
                       },
                       {
                           "id": "f2dfe840.1b9388",
                           "type": "inject",
                           "z": "54b226bc.0793e8",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               },
                               {
                                   "p": "topic",
                                   "vt": "str"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "topic1",
                           "payload": "false",
                           "payloadType": "bool",
                           "x": 690,
                           "y": 3780,
                           "wires": [
                               [
                                   "24b10840.9afe98"
                               ]
                           ]
                       },
                       {
                           "id": "ee9cff63.e064b",
                           "type": "inject",
                           "z": "54b226bc.0793e8",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               },
                               {
                                   "p": "topic",
                                   "vt": "str"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "topic2",
                           "payload": "true",
                           "payloadType": "bool",
                           "x": 700,
                           "y": 3880,
                           "wires": [
                               [
                                   "24b10840.9afe98"
                               ]
                           ]
                       },
                       {
                           "id": "f9dd71cb.42f47",
                           "type": "inject",
                           "z": "54b226bc.0793e8",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               },
                               {
                                   "p": "topic",
                                   "vt": "str"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "topic2",
                           "payload": "false",
                           "payloadType": "bool",
                           "x": 690,
                           "y": 3920,
                           "wires": [
                               [
                                   "24b10840.9afe98"
                               ]
                           ]
                       },
                       {
                           "id": "2f699d12.d7ad92",
                           "type": "debug",
                           "z": "54b226bc.0793e8",
                           "name": "",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "false",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 1250,
                           "y": 3560,
                           "wires": []
                       },
                       {
                           "id": "b48a3aec.f4cfb8",
                           "type": "debug",
                           "z": "54b226bc.0793e8",
                           "name": "",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "false",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 1250,
                           "y": 3820,
                           "wires": []
                       },
                       {
                           "id": "cef0c2ee.58af6",
                           "type": "group",
                           "z": "54b226bc.0793e8",
                           "name": "2 Boolean Logic",
                           "style": {
                               "label": true,
                               "fill": "#ff7f7f",
                               "color": "#000000"
                           },
                           "nodes": [
                               "24b10840.9afe98",
                               "eda5645b.741178"
                           ],
                           "x": 834,
                           "y": 3779,
                           "w": 292,
                           "h": 82
                       },
                       {
                           "id": "24b10840.9afe98",
                           "type": "join",
                           "z": "54b226bc.0793e8",
                           "g": "cef0c2ee.58af6",
                           "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": 910,
                           "y": 3820,
                           "wires": [
                               [
                                   "eda5645b.741178"
                               ]
                           ]
                       },
                       {
                           "id": "eda5645b.741178",
                           "type": "change",
                           "z": "54b226bc.0793e8",
                           "g": "cef0c2ee.58af6",
                           "name": "OR ?",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "payload",
                                   "pt": "msg",
                                   "to": "$reduce(payload.*,function($i, $j){$i or $j})",
                                   "tot": "jsonata"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 1050,
                           "y": 3820,
                           "wires": [
                               [
                                   "b48a3aec.f4cfb8"
                               ]
                           ],
                           "info": "# Only one or more properties of an object need to be true.\n\n Only one or more properties of an object need to be true.\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 des Objektes muss wahr sein.\n\nMindestens eine Eigenschaft des Objektes muss 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": "e159e88a.eff738",
                           "type": "group",
                           "z": "54b226bc.0793e8",
                           "name": "2 Boolean Logic",
                           "style": {
                               "label": true,
                               "fill": "#ff7f7f",
                               "color": "#000000"
                           },
                           "nodes": [
                               "ba1c1b43.245d78",
                               "f12f8a2a.33cb18"
                           ],
                           "x": 834,
                           "y": 3519,
                           "w": 292,
                           "h": 82
                       },
                       {
                           "id": "ba1c1b43.245d78",
                           "type": "join",
                           "z": "54b226bc.0793e8",
                           "g": "e159e88a.eff738",
                           "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": 910,
                           "y": 3560,
                           "wires": [
                               [
                                   "f12f8a2a.33cb18"
                               ]
                           ]
                       },
                       {
                           "id": "f12f8a2a.33cb18",
                           "type": "change",
                           "z": "54b226bc.0793e8",
                           "g": "e159e88a.eff738",
                           "name": "AND ?",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "payload",
                                   "pt": "msg",
                                   "to": "$reduce(payload.*,function($i, $j){$i and $j})",
                                   "tot": "jsonata"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 1050,
                           "y": 3560,
                           "wires": [
                               [
                                   "2f699d12.d7ad92"
                               ]
                           ],
                           "info": "# All Property of an object must be true.\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 eines Objektes müssen wahr sein\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."
                       }
                    ]
                    


                    Mir ging es ja auch nur darum zu zeigen, dass man das auch mit Standardmitteln erreichen kann und nur für die logische Verknüpfung keine extra Node braucht - aber sind ja noch mehrere Funktionen dabei - vielleicht gibt es ja auch was, was nicht so einfach mit Boardmitteln zu realisieren ist.

                    In die Nodes habe ich ja auch eine kleine Hilfe verpackt:

                    e654ddeb-0489-4584-b328-584ed2c089b0-image.png

                    S Offline
                    S Offline
                    Saranger
                    schrieb am zuletzt editiert von
                    #9

                    @mickym

                    ah die verinfachte Variante hatte ich irgendwie übersehen, die ist dann genau was ich für den Fall brauche :-). Das mit der Hilfe ist auch ein guter Tip gewesen.

                    Danke für die Hilfe :-)

                    Viele Grüße

                    1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @saranger Wie gesagt bei Deiner Inject Node fehlt das Topic das braucht das Teil immer.

                      So ich hab Dir mal für grundlegendes UND und ODER die Lösung mit Hausmitteln hier:

                      d6642766-fdb5-42fe-8086-37a0e93ea188-image.png

                      Die ersten 3 Ausgaben ist ein logisches UND, die zweiten 3 Ausgaben ein logisches ODER.
                      Das was Deine Boolesche Node macht habe ich mal gruppiert und entsprechend markiert.

                      [
                         {
                             "id": "820ca46e.666378",
                             "type": "inject",
                             "z": "54b226bc.0793e8",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 },
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "topic1",
                             "payload": "true",
                             "payloadType": "bool",
                             "x": 280,
                             "y": 3520,
                             "wires": [
                                 [
                                     "ba1c1b43.245d78"
                                 ]
                             ]
                         },
                         {
                             "id": "50315b3e.f9afb4",
                             "type": "inject",
                             "z": "54b226bc.0793e8",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 },
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "topic1",
                             "payload": "false",
                             "payloadType": "bool",
                             "x": 270,
                             "y": 3560,
                             "wires": [
                                 [
                                     "ba1c1b43.245d78"
                                 ]
                             ]
                         },
                         {
                             "id": "2568b981.4acc26",
                             "type": "inject",
                             "z": "54b226bc.0793e8",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 },
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "topic2",
                             "payload": "true",
                             "payloadType": "bool",
                             "x": 280,
                             "y": 3660,
                             "wires": [
                                 [
                                     "ba1c1b43.245d78"
                                 ]
                             ]
                         },
                         {
                             "id": "bb48ac3e.b0218",
                             "type": "inject",
                             "z": "54b226bc.0793e8",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 },
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "topic2",
                             "payload": "false",
                             "payloadType": "bool",
                             "x": 270,
                             "y": 3700,
                             "wires": [
                                 [
                                     "ba1c1b43.245d78"
                                 ]
                             ]
                         },
                         {
                             "id": "3cbaecdf.7d3a74",
                             "type": "debug",
                             "z": "54b226bc.0793e8",
                             "name": "wahr",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 810,
                             "y": 3600,
                             "wires": []
                         },
                         {
                             "id": "b5f861f5.19c37",
                             "type": "debug",
                             "z": "54b226bc.0793e8",
                             "name": "falsch",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 810,
                             "y": 3660,
                             "wires": []
                         },
                         {
                             "id": "ada4b879.152f78",
                             "type": "inject",
                             "z": "54b226bc.0793e8",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 },
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "topic1",
                             "payload": "true",
                             "payloadType": "bool",
                             "x": 280,
                             "y": 3800,
                             "wires": [
                                 [
                                     "24b10840.9afe98"
                                 ]
                             ]
                         },
                         {
                             "id": "f2dfe840.1b9388",
                             "type": "inject",
                             "z": "54b226bc.0793e8",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 },
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "topic1",
                             "payload": "false",
                             "payloadType": "bool",
                             "x": 270,
                             "y": 3840,
                             "wires": [
                                 [
                                     "24b10840.9afe98"
                                 ]
                             ]
                         },
                         {
                             "id": "ee9cff63.e064b",
                             "type": "inject",
                             "z": "54b226bc.0793e8",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 },
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "topic2",
                             "payload": "true",
                             "payloadType": "bool",
                             "x": 280,
                             "y": 3940,
                             "wires": [
                                 [
                                     "24b10840.9afe98"
                                 ]
                             ]
                         },
                         {
                             "id": "f9dd71cb.42f47",
                             "type": "inject",
                             "z": "54b226bc.0793e8",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 },
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "topic2",
                             "payload": "false",
                             "payloadType": "bool",
                             "x": 270,
                             "y": 3980,
                             "wires": [
                                 [
                                     "24b10840.9afe98"
                                 ]
                             ]
                         },
                         {
                             "id": "4c7d4eb7.2d19b",
                             "type": "debug",
                             "z": "54b226bc.0793e8",
                             "name": "wahr",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 810,
                             "y": 3840,
                             "wires": []
                         },
                         {
                             "id": "f59e0080.872c7",
                             "type": "debug",
                             "z": "54b226bc.0793e8",
                             "name": "falsch",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 810,
                             "y": 3920,
                             "wires": []
                         },
                         {
                             "id": "cef0c2ee.58af6",
                             "type": "group",
                             "z": "54b226bc.0793e8",
                             "name": "2 Boolean Logic",
                             "style": {
                                 "label": true,
                                 "fill": "#ff7f7f",
                                 "color": "#000000"
                             },
                             "nodes": [
                                 "24b10840.9afe98",
                                 "602cba8c.00a654"
                             ],
                             "x": 414,
                             "y": 3839,
                             "w": 292,
                             "h": 82
                         },
                         {
                             "id": "24b10840.9afe98",
                             "type": "join",
                             "z": "54b226bc.0793e8",
                             "g": "cef0c2ee.58af6",
                             "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": 490,
                             "y": 3880,
                             "wires": [
                                 [
                                     "602cba8c.00a654"
                                 ]
                             ]
                         },
                         {
                             "id": "602cba8c.00a654",
                             "type": "switch",
                             "z": "54b226bc.0793e8",
                             "g": "cef0c2ee.58af6",
                             "name": "OR?",
                             "property": "$reduce(payload.*,function($i, $j){$i or $j})",
                             "propertyType": "jsonata",
                             "rules": [
                                 {
                                     "t": "true"
                                 },
                                 {
                                     "t": "false"
                                 }
                             ],
                             "checkall": "true",
                             "repair": false,
                             "outputs": 2,
                             "x": 630,
                             "y": 3880,
                             "wires": [
                                 [
                                     "4c7d4eb7.2d19b"
                                 ],
                                 [
                                     "f59e0080.872c7"
                                 ]
                             ],
                             "info": "# Only one or more properties of an object need to be true.\n\n Only one or more properties of an object need to be true.\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 des Objektes muss wahr sein.\n\nMindestens eine Eigenschaft des Objektes muss 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": "e159e88a.eff738",
                             "type": "group",
                             "z": "54b226bc.0793e8",
                             "name": "2 Boolean Logic",
                             "style": {
                                 "label": true,
                                 "fill": "#ff7f7f",
                                 "color": "#000000"
                             },
                             "nodes": [
                                 "ba1c1b43.245d78",
                                 "b704d635.c3bdb8"
                             ],
                             "x": 414,
                             "y": 3579,
                             "w": 292,
                             "h": 82
                         },
                         {
                             "id": "ba1c1b43.245d78",
                             "type": "join",
                             "z": "54b226bc.0793e8",
                             "g": "e159e88a.eff738",
                             "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": 490,
                             "y": 3620,
                             "wires": [
                                 [
                                     "b704d635.c3bdb8"
                                 ]
                             ]
                         },
                         {
                             "id": "b704d635.c3bdb8",
                             "type": "switch",
                             "z": "54b226bc.0793e8",
                             "g": "e159e88a.eff738",
                             "name": "AND?",
                             "property": "$reduce(payload.*,function($i, $j){$i and $j})",
                             "propertyType": "jsonata",
                             "rules": [
                                 {
                                     "t": "true"
                                 },
                                 {
                                     "t": "false"
                                 }
                             ],
                             "checkall": "true",
                             "repair": false,
                             "outputs": 2,
                             "x": 630,
                             "y": 3620,
                             "wires": [
                                 [
                                     "3cbaecdf.7d3a74"
                                 ],
                                 [
                                     "b5f861f5.19c37"
                                 ]
                             ],
                             "info": "# All properties of an object must be true.\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 eines Objektes müssen wahr sein\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."
                         }
                      ]
                      

                      XOR oder NOT sind ja alles nur abgeleitete Nodes.

                      Hier mal UND und ODER als Switch oder Change Nodes:

                      [
                         {
                             "id": "afc046d6.5e0668",
                             "type": "switch",
                             "z": "54b226bc.0793e8",
                             "name": "AND?",
                             "property": "$reduce(payload.*,function($i, $j){$i and $j})",
                             "propertyType": "jsonata",
                             "rules": [
                                 {
                                     "t": "true"
                                 },
                                 {
                                     "t": "false"
                                 }
                             ],
                             "checkall": "true",
                             "repair": false,
                             "outputs": 2,
                             "x": 390,
                             "y": 4180,
                             "wires": [
                                 [],
                                 []
                             ],
                             "info": "# All properties of an object must be true.\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 eines Objektes müssen wahr sein\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": "6bad278a.4213e8",
                             "type": "change",
                             "z": "54b226bc.0793e8",
                             "name": "AND ?",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "$reduce(payload.*,function($i, $j){$i and $j})",
                                     "tot": "jsonata"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 390,
                             "y": 4220,
                             "wires": [
                                 []
                             ],
                             "info": "# All Property of an object must be true.\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 eines Objektes müssen wahr sein\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": "97f0b8a7.a386e8",
                             "type": "switch",
                             "z": "54b226bc.0793e8",
                             "name": "OR?",
                             "property": "$reduce(payload.*,function($i, $j){$i or $j})",
                             "propertyType": "jsonata",
                             "rules": [
                                 {
                                     "t": "true"
                                 },
                                 {
                                     "t": "false"
                                 }
                             ],
                             "checkall": "true",
                             "repair": false,
                             "outputs": 2,
                             "x": 550,
                             "y": 4180,
                             "wires": [
                                 [],
                                 []
                             ],
                             "info": "# Only one or more properties of an object need to be true.\n\n Only one or more properties of an object need to be true.\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 des Objektes muss wahr sein.\n\nMindestens eine Eigenschaft des Objektes muss 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": "f8822409.c70828",
                             "type": "change",
                             "z": "54b226bc.0793e8",
                             "name": "OR ?",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "$reduce(payload.*,function($i, $j){$i or $j})",
                                     "tot": "jsonata"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 550,
                             "y": 4220,
                             "wires": [
                                 []
                             ],
                             "info": "# Only one or more properties of an object need to be true.\n\n Only one or more properties of an object need to be true.\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 des Objektes muss wahr sein.\n\nMindestens eine Eigenschaft des Objektes muss 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": "f9479b2c.711868",
                             "type": "change",
                             "z": "54b226bc.0793e8",
                             "name": "NOT",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "$not(payload)\t",
                                     "tot": "jsonata"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 710,
                             "y": 4200,
                             "wires": [
                                 []
                             ]
                         }
                      ]
                      

                      Ich habe mir diese 4 Nodes einfach in meine lokale Bibliotek kopiert und somit immer zur Verfügung. Deswegen braucht man die anderen Nodes in meinen Augen nicht.
                      Der Vorteil mit JOIN ist halt, dass man hier halt selbst darauf reagieren kann, ob alle topics vorhanden sein müssen oder nicht.

                      Wie man sowas flexibel zur Überwachung einsetzen kann, auch ohne die Anzahl der topics zu kennen, habe ich hier schon mal beschrieben:
                      https://forum.iobroker.net/topic/44765/gelöst-überwachung-eingeschaltete-verbraucher/6?_=1641722216059

                      OK - kenn die Boolschen Nodes nicht genau, was die für eine Nachricht aus Ihren Ausgängen rausschickt, da müsstest Du ggf. halt noch eine Change Node hinterher schicken. Die Originalnachrichten sind ja in dem Objekt der einzelnen Topics enthalten.

                      Auch hier noch mal so ein paar Beispiele von logischen Verknüpfungen mit Switch-Nodes und JSONATA:
                      JSONATA Switches.json

                      Ach ausführliches zu diesen Nodes haben @frankyboy73 und ich erst kürzlich in diesem Thread diskutiert: https://forum.iobroker.net/topic/49835/vergleich-von-zwei-eingangswerten-um-wert-festzulegen/11

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

                      @mickym Hi, seit dem Node Red Adapter Update auf Version 3.2.0 bzw. Version größer 3, funktionieren bei mir die UND und ODER mit der JSONata Eigenschaft nicht mehr. Bekomme eine Fehlermeldung. Geht dir das auch so? Bzw. hast du da schon eine Lösung gefunden. JSONata ist nicht so mein Fachgebiet.
                      NodesFehler1.jpg

                      [
                         {
                             "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": 710,
                             "y": 1740,
                             "wires": [
                                 [
                                     "d842e3755d87c525"
                                 ],
                                 [
                                     "d842e3755d87c525"
                                 ]
                             ],
                             "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": 710,
                             "y": 1860,
                             "wires": [
                                 [
                                     "d40913fe9cf6f55b"
                                 ],
                                 [
                                     "d40913fe9cf6f55b"
                                 ]
                             ],
                             "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": 710,
                             "y": 1800,
                             "wires": [
                                 [
                                     "b47710c09311d7b6"
                                 ]
                             ]
                         },
                         {
                             "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": 710,
                             "y": 1920,
                             "wires": [
                                 [
                                     "cdc73ce8f6b961b2"
                                 ]
                             ]
                         },
                         {
                             "id": "0b04ae667b347bb1",
                             "type": "inject",
                             "z": "42e1e0df.44b9f",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 },
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "2",
                             "payload": "true",
                             "payloadType": "bool",
                             "x": 410,
                             "y": 1900,
                             "wires": [
                                 [
                                     "19cc436e72b56a20"
                                 ]
                             ]
                         },
                         {
                             "id": "8aec8eaf0feee7f9",
                             "type": "inject",
                             "z": "42e1e0df.44b9f",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 },
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "1",
                             "payload": "true",
                             "payloadType": "bool",
                             "x": 390,
                             "y": 1760,
                             "wires": [
                                 [
                                     "19cc436e72b56a20"
                                 ]
                             ]
                         },
                         {
                             "id": "d842e3755d87c525",
                             "type": "debug",
                             "z": "42e1e0df.44b9f",
                             "name": "",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "false",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 930,
                             "y": 1720,
                             "wires": []
                         },
                         {
                             "id": "d40913fe9cf6f55b",
                             "type": "debug",
                             "z": "42e1e0df.44b9f",
                             "name": "",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "false",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 930,
                             "y": 1860,
                             "wires": []
                         },
                         {
                             "id": "b47710c09311d7b6",
                             "type": "debug",
                             "z": "42e1e0df.44b9f",
                             "name": "",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "false",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 930,
                             "y": 1800,
                             "wires": []
                         },
                         {
                             "id": "cdc73ce8f6b961b2",
                             "type": "debug",
                             "z": "42e1e0df.44b9f",
                             "name": "",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "false",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 930,
                             "y": 1940,
                             "wires": []
                         },
                         {
                             "id": "19cc436e72b56a20",
                             "type": "join",
                             "z": "42e1e0df.44b9f",
                             "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": 550,
                             "y": 1820,
                             "wires": [
                                 [
                                     "1b34ca2b.069996",
                                     "55624631.5d1df8",
                                     "560feab7.492ee4",
                                     "e00ef3c6.e6aed"
                                 ]
                             ]
                         }
                      ]
                      


                      Edit:
                      Hi, hatte noch ne alte Version der Switch bzw. der Change Nodes. Habe den Code aus diesem Post noch mal neu Importiert und damit funktioniert es jetzt. (Wenn man es richtig eingebunden hat)
                      NodesFehler2.jpg

                      Schöne Grüße Frank

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


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      430

                      Online

                      32.4k

                      Benutzer

                      81.4k

                      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