Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Mehrere Steckdosen Werte vergleichen zum Schalten

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Mehrere Steckdosen Werte vergleichen zum Schalten

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

      @kredar Weil ich es nicht gut finde - wenn man mit Zeit triggert - ich würde die Datenpunkte triggern lassen.

      9511d7f1-8257-445d-9d22-f7e0760e41e6-image.png

      Ich arbeite soweit möglich ohne function Nodes.

      Ich sammle alle Ergebnisse in einem Objekt, wobei jede Eigenschaft bereits true oder false hat, ob über 20 Watt oder nicht und dann verknüpfe ich alle Ergebnisse mit ODER.

      [
          {
              "id": "556a4e08f5940d01",
              "type": "ioBroker in",
              "z": "0a30fff805c63db0",
              "name": "",
              "topic": "0_userdata.0.Test.PC_Power.PC1-Energy",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "outFormat": "ioBroker",
              "x": 240,
              "y": 360,
              "wires": [
                  [
                      "3548421128b007da"
                  ]
              ]
          },
          {
              "id": "41b50f9f23ddf146",
              "type": "ioBroker in",
              "z": "0a30fff805c63db0",
              "name": "",
              "topic": "0_userdata.0.Test.PC_Power.PC2-Energy",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "outFormat": "ioBroker",
              "x": 240,
              "y": 420,
              "wires": [
                  [
                      "3548421128b007da"
                  ]
              ]
          },
          {
              "id": "f7206ede621ac7dd",
              "type": "ioBroker in",
              "z": "0a30fff805c63db0",
              "name": "",
              "topic": "0_userdata.0.Test.PC_Power.PC3-Energy",
              "payloadType": "value",
              "onlyack": "",
              "func": "all",
              "gap": "",
              "fireOnStart": "true",
              "outFormat": "ioBroker",
              "x": 240,
              "y": 480,
              "wires": [
                  [
                      "3548421128b007da"
                  ]
              ]
          },
          {
              "id": "3548421128b007da",
              "type": "change",
              "z": "0a30fff805c63db0",
              "name": "",
              "rules": [
                  {
                      "t": "change",
                      "p": "topic",
                      "pt": "msg",
                      "from": ".*\\.(.*)$",
                      "fromt": "re",
                      "to": "$1",
                      "tot": "str"
                  },
                  {
                      "t": "set",
                      "p": "payload",
                      "pt": "msg",
                      "to": "payload > 20 ? true : false",
                      "tot": "jsonata"
                  }
              ],
              "action": "",
              "property": "",
              "from": "",
              "to": "",
              "reg": false,
              "x": 550,
              "y": 420,
              "wires": [
                  [
                      "0f824f4bf3764b13"
                  ]
              ]
          },
          {
              "id": "355a7107b476d7e2",
              "type": "debug",
              "z": "0a30fff805c63db0",
              "name": "Objekt mit Einzelstates",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": false,
              "complete": "payload",
              "targetType": "msg",
              "statusVal": "",
              "statusType": "auto",
              "x": 940,
              "y": 380,
              "wires": []
          },
          {
              "id": "0f824f4bf3764b13",
              "type": "join",
              "z": "0a30fff805c63db0",
              "name": "",
              "mode": "custom",
              "build": "object",
              "property": "payload",
              "propertyType": "msg",
              "key": "topic",
              "joiner": "\\n",
              "joinerType": "str",
              "accumulate": true,
              "timeout": "",
              "count": "1",
              "reduceRight": false,
              "reduceExp": "",
              "reduceInit": "",
              "reduceInitType": "",
              "reduceFixup": "",
              "x": 730,
              "y": 420,
              "wires": [
                  [
                      "355a7107b476d7e2",
                      "716d79ef4c4b8fe2"
                  ]
              ]
          },
          {
              "id": "716d79ef4c4b8fe2",
              "type": "change",
              "z": "0a30fff805c63db0",
              "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": 870,
              "y": 420,
              "wires": [
                  [
                      "bdfc2a74610ea7a7"
                  ]
              ],
              "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": "bdfc2a74610ea7a7",
              "type": "debug",
              "z": "0a30fff805c63db0",
              "name": "Ergebnis",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": false,
              "complete": "payload",
              "targetType": "msg",
              "statusVal": "",
              "statusType": "auto",
              "x": 1040,
              "y": 420,
              "wires": []
          }
      ]
      

      Dann brauchst Du nicht mit fixen Zeiten arbeiten.

      Wichtig ist wie gesagt dass die Konvertierung in Strings ausgeschlossen ist.

      cdd06885-b1dc-4d31-b296-d625badd3f71-image.png

      K 1 Reply Last reply Reply Quote 0
      • K
        Kredar @mickym last edited by

        @mickym

        Die Stings sind im Adapter aus. Das habe ich vorhin deaktiviert.

        Die Klimaanlage schalte ich ja Manuell an. Deshalb läuft das True ins "leere" auch es kann auch auf die Klimaanlage laufen. Egal sie muss an bleiben da einer im Raum ist.
        Sobald alle PCs aus sind checkt das der ioBroker und schalter die Klimaanlage aus. Ähnlich habe ich es auch mit dem Licht im Haus. Wenn alle Geräte aus sind, dann geht das Licht mit einem kleinen Delay auch aus. Natürlich ist da auch ein Lichtsensor im Spiel, damit das Licht nicht angeht bevor eine gewisse Lichtsvhwelle unterschritten wird. Aber zuück zur Klima: Ich schau mir eben deinen Vorschlag mal an.

        mfg

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

          @kredar Wie gesagt Du kannst das auch umdrehen, wenn es nur ausschalten soll. Der große Unterschied ist, dass ich nicht alle 15 Minuten (oder ein gewisse Zeitspanne abfrage), sonder die Datenpunkte triggern lasse. Ausserdem hast Du mit dem Objekt jederzeit einen Überblick über den Zustand jedes Datenpunktes.

          K 1 Reply Last reply Reply Quote 0
          • K
            Kredar @mickym last edited by Kredar

            @mickym

            Ja per MQTT kommt die Abfrage eh rein. Das ist in der Steckdose eh hinterlegt, alle 5min. wird per MQTT der Status an den ioBroker geschickt. Habe es quasi doppelt gemacht. Es klappt schaut echt "aufgeräumt" aus ohne "wirre" Zahlen. Super, ich danke dir. Schau ich mir genauer an und ändere es nach meinen Wünschen. Evtl. nutze ich es auch bei den anderen Schaltungen 🙂

            mfg

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

              @kredar Ich überwachse so alles - ob Fenster geöffnet sind, Batterie status, Licht status usw.

              K 1 Reply Last reply Reply Quote 0
              • K
                Kredar @mickym last edited by Kredar

                @mickym

                Diese Join-Schaltung habe ich auch schon hier im Forum gesehen, aber leider nie für meine Zwecke umsetzen können. Einige Nodes schicken ein "true" oder "false" raus, da kann ich evtl. das Node-Beispiel von dir auch einsetzen und somit das ganze erheblich verbessern ohne function-Node (habe ich oft im Einsatz, vergleichen usw...).

                Was macht der OR?-Change Node bei deinem Beispiel? Bei mir ist das True oder False immer vor dem OR?-Change Node dahinter kommt nichts an.

                mfg

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

                  @kredar sagte in Mehrere Steckdosen Werte vergleichen zum Schalten:

                  Was macht der OR?-Change Node bei deinem Beispiel? Bei mir ist das True oder False immer vor dem OR?-Change Node dahinter kommt nichts an.

                  es muss ein Objekt in die OR Node so wie du es in meiner Debug Node siehst.

                  1838347e-15b4-4d8b-82bb-ad40c2ea25f1-image.png

                  Die OR Node prüft den Boolean jeder Eigenschaft des Objektes und verknüpft diese mit OR und gibt dann als Gesamtergebnis true oder false aus. In diesem Fall gibt die OR Node true aus, wenn nur eine Eigenschaft true ist.

                  Im Übrigen kannst du das auch als Switch Node haben, wenn Du nur bei bestimmten Zustand schalten willst.

                  Hier mal alle meine Booleschen Nodes mit dem ich Eigenschaften eines Objektes verknüpfen kann, entweder als Switch oder als Change Node:

                  Das Ganze habe ich mir in meiner lokalen Bibliothek gespeichert:

                  2e942570-edea-483c-b849-60232a57d625-image.png

                  [
                     {
                         "id": "65f2ba0892af4a3e",
                         "type": "switch",
                         "z": "0a30fff805c63db0",
                         "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": 530,
                         "y": 620,
                         "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": "aa5712231be27d09",
                         "type": "change",
                         "z": "0a30fff805c63db0",
                         "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": 530,
                         "y": 660,
                         "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": "73b72c35e0dc73f8",
                         "type": "switch",
                         "z": "0a30fff805c63db0",
                         "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": 690,
                         "y": 620,
                         "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": "daf8416430d1782f",
                         "type": "change",
                         "z": "0a30fff805c63db0",
                         "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": 690,
                         "y": 660,
                         "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": "03eb6e22cf11f7a8",
                         "type": "change",
                         "z": "0a30fff805c63db0",
                         "name": "NOT",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "$not(payload)\t",
                                 "tot": "jsonata"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 850,
                         "y": 640,
                         "wires": [
                             []
                         ]
                     }
                  ]
                  

                  Wie gesagt der Trick ist, alle Objekte, die Du zusammen analysieren möchtest, in einem Objekte zu sammeln.

                  K 1 Reply Last reply Reply Quote 0
                  • K
                    Kredar @mickym last edited by

                    @mickym

                    Okay ich habe die Node von dir unverändert gelassen und wie man sieht ein PC läuft und es kommt trotzdem hinten "false" raus obwohl dort "true" stehen sollte da ja nicht alle 3 PCs aus sind. Sobald einer läuft müsste "true" als Ergebis rauskommen.

                    dfaffdb6-13a2-4550-8ead-54b0d01cf4b4-image.png

                    Was ich nicht verstehen wieso einmal "true" drinnen steht. Checkt er die Eingänge links alle nacheinandner? Er müsste alle Checken und dann vergleichen ob ein PC an ist oder alle aus sind.

                    mfg

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

                      @kredar Das Problem ist dass alle 3 wohl das gleiche Topic haben.Lösch mal aus der Change Node die Regel, die das Topic extrahierst bzw. ändert.die Eingänge melden und es muss sich wie bei mir im Screenshot eine Objekt mit allen 3 Topics bilden. Das liegt daran, dass alle 3 Datenpunkte ENERGY_Power heißen. Wenn du mir den vollständigen Pfad aller 3 topics postest dann kann ich das ändern oder löschst einfach die Regel in der Change-node.

                      Alternativ kannst du das Topic auch selbst unterschiedlich setzen. So der Flow sollte in jedem Fall funktionieren:

                      fcb0179a-49af-4ab6-a400-029949578f19-image.png
                      Du musst nur noch die richtigen Datenpunkte vorne anschliessen:

                      [
                         {
                             "id": "556a4e08f5940d01",
                             "type": "ioBroker in",
                             "z": "69e883c9af983f50",
                             "name": "",
                             "topic": "0_userdata.0.Test.PC_Power1",
                             "payloadType": "value",
                             "onlyack": "",
                             "func": "all",
                             "gap": "",
                             "fireOnStart": "true",
                             "outFormat": "ioBroker",
                             "x": 160,
                             "y": 220,
                             "wires": [
                                 [
                                     "bef8f43e26e97cba"
                                 ]
                             ]
                         },
                         {
                             "id": "41b50f9f23ddf146",
                             "type": "ioBroker in",
                             "z": "69e883c9af983f50",
                             "name": "",
                             "topic": "0_userdata.0.Test.PC_Power2",
                             "payloadType": "value",
                             "onlyack": "",
                             "func": "all",
                             "gap": "",
                             "fireOnStart": "true",
                             "outFormat": "ioBroker",
                             "x": 160,
                             "y": 280,
                             "wires": [
                                 [
                                     "7ad9c5d564286cd9"
                                 ]
                             ]
                         },
                         {
                             "id": "f7206ede621ac7dd",
                             "type": "ioBroker in",
                             "z": "69e883c9af983f50",
                             "name": "",
                             "topic": "0_userdata.0.Test.PC_Power3",
                             "payloadType": "value",
                             "onlyack": "",
                             "func": "all",
                             "gap": "",
                             "fireOnStart": "true",
                             "outFormat": "ioBroker",
                             "x": 160,
                             "y": 340,
                             "wires": [
                                 [
                                     "530d4b6575143082"
                                 ]
                             ]
                         },
                         {
                             "id": "3548421128b007da",
                             "type": "change",
                             "z": "69e883c9af983f50",
                             "name": "",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "payload > 20 ? true : false",
                                     "tot": "jsonata"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 710,
                             "y": 280,
                             "wires": [
                                 [
                                     "0f824f4bf3764b13"
                                 ]
                             ]
                         },
                         {
                             "id": "355a7107b476d7e2",
                             "type": "debug",
                             "z": "69e883c9af983f50",
                             "name": "Objekt mit Einzelstates",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 1100,
                             "y": 240,
                             "wires": []
                         },
                         {
                             "id": "0f824f4bf3764b13",
                             "type": "join",
                             "z": "69e883c9af983f50",
                             "name": "",
                             "mode": "custom",
                             "build": "object",
                             "property": "payload",
                             "propertyType": "msg",
                             "key": "topic",
                             "joiner": "\\n",
                             "joinerType": "str",
                             "accumulate": true,
                             "timeout": "",
                             "count": "1",
                             "reduceRight": false,
                             "reduceExp": "",
                             "reduceInit": "",
                             "reduceInitType": "",
                             "reduceFixup": "",
                             "x": 890,
                             "y": 280,
                             "wires": [
                                 [
                                     "355a7107b476d7e2",
                                     "716d79ef4c4b8fe2"
                                 ]
                             ]
                         },
                         {
                             "id": "716d79ef4c4b8fe2",
                             "type": "change",
                             "z": "69e883c9af983f50",
                             "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": 1030,
                             "y": 280,
                             "wires": [
                                 [
                                     "bdfc2a74610ea7a7"
                                 ]
                             ],
                             "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": "bdfc2a74610ea7a7",
                             "type": "debug",
                             "z": "69e883c9af983f50",
                             "name": "Ergebnis",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 1200,
                             "y": 280,
                             "wires": []
                         },
                         {
                             "id": "bef8f43e26e97cba",
                             "type": "change",
                             "z": "69e883c9af983f50",
                             "name": "",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "topic",
                                     "pt": "msg",
                                     "to": "Steckdose1",
                                     "tot": "str"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 500,
                             "y": 220,
                             "wires": [
                                 [
                                     "3548421128b007da"
                                 ]
                             ]
                         },
                         {
                             "id": "7ad9c5d564286cd9",
                             "type": "change",
                             "z": "69e883c9af983f50",
                             "name": "",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "topic",
                                     "pt": "msg",
                                     "to": "Steckdose2",
                                     "tot": "str"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 500,
                             "y": 280,
                             "wires": [
                                 [
                                     "3548421128b007da"
                                 ]
                             ]
                         },
                         {
                             "id": "530d4b6575143082",
                             "type": "change",
                             "z": "69e883c9af983f50",
                             "name": "",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "topic",
                                     "pt": "msg",
                                     "to": "Steckdose3",
                                     "tot": "str"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 500,
                             "y": 340,
                             "wires": [
                                 [
                                     "3548421128b007da"
                                 ]
                             ]
                         }
                      ]
                      

                      Alternativ, wie gesagt, einfach die 1. Regel aus der Change Node des ursprünglichen Flows löschen.

                      PS: Du kannst die topics auch PC Power1, 2 und 3 nennen - die topics müssen nur unterschiedlich sein.

                      Und nochmal zu deinem Verständnis. In diesem Fall checkt der Flow nicht die Datenpunkte, sondern die Datenpunkte triggern den Flow. In der JOIN Node werden die Status aller Datenpunkte in einem Objekt gespeichert und nur die Eigenschaft des Objektes aktualisiert, dass sich meldet. Da in der JOIN Node steht, dass bereits nach 1 Nachricht gesendet werden soll, baut sich das Objekt auf, bis sich alles gemeldet hat und bei jeder neuen Nachricht wird das ganze Objekt verschickt, dass dann von der OR Node analysiert wird.

                      K 1 Reply Last reply Reply Quote 0
                      • K
                        Kredar @mickym last edited by Kredar

                        @mickym

                        Jetzt geht es. Und ja, die Eingangs Nodes (PC Power) müssen unterschiedlich benannt werden da sonst eine Auswertung nicht möglich ist. Das habe ich ja immer mit Steckdose1 - 3 gemacht in meinem Fall. Nur wurde das nicht korrekt erkannt, sondern nur die wirren Watt zahlen ausgewertet.

                        Vielen Dank für deine Hilfe muss erstmal testen :).

                        mfg

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

                          @kredar
                          Somit bist Du immer auf dem neuest Stand und nicht erst nach 15 Minuten. Wenn Du nicht willst dass permanent Nachrichten kommen, weil sich die Werte nur geringfügig ändern, kannst Du noch eine Filter Node einbauen und dann wolltest Du ja, dass NUR false weiterkommt.

                          e8172d61-e801-438f-851a-1360d89e684c-image.png

                          Damit würde Dein vollständiger Flow NUR zum Ausschalten der Klima dann wie folgt aussehen:

                          [
                             {
                                 "id": "556a4e08f5940d01",
                                 "type": "ioBroker in",
                                 "z": "69e883c9af983f50",
                                 "name": "",
                                 "topic": "0_userdata.0.Test.PC_Power1",
                                 "payloadType": "value",
                                 "onlyack": "",
                                 "func": "all",
                                 "gap": "",
                                 "fireOnStart": "true",
                                 "outFormat": "ioBroker",
                                 "x": 260,
                                 "y": 220,
                                 "wires": [
                                     [
                                         "bef8f43e26e97cba"
                                     ]
                                 ]
                             },
                             {
                                 "id": "41b50f9f23ddf146",
                                 "type": "ioBroker in",
                                 "z": "69e883c9af983f50",
                                 "name": "",
                                 "topic": "0_userdata.0.Test.PC_Power2",
                                 "payloadType": "value",
                                 "onlyack": "",
                                 "func": "all",
                                 "gap": "",
                                 "fireOnStart": "true",
                                 "outFormat": "ioBroker",
                                 "x": 260,
                                 "y": 280,
                                 "wires": [
                                     [
                                         "7ad9c5d564286cd9"
                                     ]
                                 ]
                             },
                             {
                                 "id": "f7206ede621ac7dd",
                                 "type": "ioBroker in",
                                 "z": "69e883c9af983f50",
                                 "name": "",
                                 "topic": "0_userdata.0.Test.PC_Power3",
                                 "payloadType": "value",
                                 "onlyack": "",
                                 "func": "all",
                                 "gap": "",
                                 "fireOnStart": "true",
                                 "outFormat": "ioBroker",
                                 "x": 260,
                                 "y": 340,
                                 "wires": [
                                     [
                                         "530d4b6575143082"
                                     ]
                                 ]
                             },
                             {
                                 "id": "3548421128b007da",
                                 "type": "change",
                                 "z": "69e883c9af983f50",
                                 "name": "",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "payload > 20 ? true : false",
                                         "tot": "jsonata"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 710,
                                 "y": 280,
                                 "wires": [
                                     [
                                         "0f824f4bf3764b13"
                                     ]
                                 ]
                             },
                             {
                                 "id": "355a7107b476d7e2",
                                 "type": "debug",
                                 "z": "69e883c9af983f50",
                                 "name": "Objekt mit Einzelstates",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 1100,
                                 "y": 240,
                                 "wires": []
                             },
                             {
                                 "id": "0f824f4bf3764b13",
                                 "type": "join",
                                 "z": "69e883c9af983f50",
                                 "name": "",
                                 "mode": "custom",
                                 "build": "object",
                                 "property": "payload",
                                 "propertyType": "msg",
                                 "key": "topic",
                                 "joiner": "\\n",
                                 "joinerType": "str",
                                 "accumulate": true,
                                 "timeout": "",
                                 "count": "1",
                                 "reduceRight": false,
                                 "reduceExp": "",
                                 "reduceInit": "",
                                 "reduceInitType": "",
                                 "reduceFixup": "",
                                 "x": 890,
                                 "y": 280,
                                 "wires": [
                                     [
                                         "355a7107b476d7e2",
                                         "7938c1ca26d90beb"
                                     ]
                                 ]
                             },
                             {
                                 "id": "716d79ef4c4b8fe2",
                                 "type": "change",
                                 "z": "69e883c9af983f50",
                                 "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": 1170,
                                 "y": 280,
                                 "wires": [
                                     [
                                         "6fe8fcb52a28a72d",
                                         "5632858b36b551a4"
                                     ]
                                 ],
                                 "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": "bdfc2a74610ea7a7",
                                 "type": "debug",
                                 "z": "69e883c9af983f50",
                                 "name": "Ergebnis",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 1560,
                                 "y": 280,
                                 "wires": []
                             },
                             {
                                 "id": "bef8f43e26e97cba",
                                 "type": "change",
                                 "z": "69e883c9af983f50",
                                 "name": "",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "topic",
                                         "pt": "msg",
                                         "to": "Steckdose1",
                                         "tot": "str"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 500,
                                 "y": 220,
                                 "wires": [
                                     [
                                         "3548421128b007da"
                                     ]
                                 ]
                             },
                             {
                                 "id": "7ad9c5d564286cd9",
                                 "type": "change",
                                 "z": "69e883c9af983f50",
                                 "name": "",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "topic",
                                         "pt": "msg",
                                         "to": "Steckdose2",
                                         "tot": "str"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 500,
                                 "y": 280,
                                 "wires": [
                                     [
                                         "3548421128b007da"
                                     ]
                                 ]
                             },
                             {
                                 "id": "530d4b6575143082",
                                 "type": "change",
                                 "z": "69e883c9af983f50",
                                 "name": "",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "topic",
                                         "pt": "msg",
                                         "to": "Steckdose3",
                                         "tot": "str"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 500,
                                 "y": 340,
                                 "wires": [
                                     [
                                         "3548421128b007da"
                                     ]
                                 ]
                             },
                             {
                                 "id": "7938c1ca26d90beb",
                                 "type": "rbe",
                                 "z": "69e883c9af983f50",
                                 "name": "",
                                 "func": "rbe",
                                 "gap": "",
                                 "start": "",
                                 "inout": "out",
                                 "septopics": false,
                                 "property": "payload",
                                 "topi": "topic",
                                 "x": 1030,
                                 "y": 280,
                                 "wires": [
                                     [
                                         "716d79ef4c4b8fe2"
                                     ]
                                 ]
                             },
                             {
                                 "id": "6fe8fcb52a28a72d",
                                 "type": "switch",
                                 "z": "69e883c9af983f50",
                                 "name": "Nur false soll triggern",
                                 "property": "payload",
                                 "propertyType": "msg",
                                 "rules": [
                                     {
                                         "t": "false"
                                     }
                                 ],
                                 "checkall": "true",
                                 "repair": false,
                                 "outputs": 1,
                                 "x": 1360,
                                 "y": 280,
                                 "wires": [
                                     [
                                         "bdfc2a74610ea7a7"
                                     ]
                                 ]
                             },
                             {
                                 "id": "5632858b36b551a4",
                                 "type": "debug",
                                 "z": "69e883c9af983f50",
                                 "name": "Gesamtstatus",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 1340,
                                 "y": 320,
                                 "wires": []
                             }
                          ]
                          

                          K 1 Reply Last reply Reply Quote 0
                          • K
                            Kredar @mickym last edited by Kredar

                            @mickym

                            Wunderbar, das ist jetzt wirklich aufgeräumt. Nun muss ich das noch einpflegen. Habe auch Schaltungen nach Uhrzeit (Licht abends) in kombination mit einem Lichtsensor und eben den wie hier beschriebenen PCs via Strommessung. Erst lasst ich das Licht prüfen, dann die Zeit und dann geht das Licht an. Außer es sind alle PCs aus = keiner im Haus = brauche kein Licht. Da muss ich eben dein neues Node einpflegen.

                            Ich danke dir nochmals für deine Hilfe

                            mfg

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

                              @kredar sagte in Mehrere Steckdosen Werte vergleichen zum Schalten:

                              @mickym

                              Wunderbar, das ist jetzt wirklich aufgeräumt. Nun muss ich das noch einpflegen. Habe auch Schaltungen nach Uhrzeit (Licht abends) in kombination mit einem Lichtsensor und eben den wie hier beschriebenen PCs via Strommessung. Erst lasst ich das Licht prüfen, dann die Zeit und dann geht das Licht an. Außer es sind alle PCs aus = keiner im Haus = brauche kein Licht. Da muss ich eben dein neues Node einpflegen.

                              Ich danke dir nochmals für deine Hilfe

                              mfg

                              Freut mich. Hauptsache, Du hast die Funktionsweise verstanden - dann kannst Du es ja auf Deine Bedürfnisse entsprechend anpassen. Im Zweifelsfall lieber nochmal fragen. 😉

                              K 1 Reply Last reply Reply Quote 0
                              • K
                                Kredar @mickym last edited by Kredar

                                @mickym

                                Werde es mir mal sehr genau anschauen, hast es ja super erklärt oben 🙂 Merci. Zur Not frage ich nochmal hier.

                                a126115b-01e7-41d7-8dd7-bf8984d7baf8-image.png

                                So schaut eine Schaltung aus. Da schaue ich gerade drüber 🙂

                                mfg

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

                                  @kredar Ich glaube das müsste man logisch vereinfachen - das schaut recht komplex aus. 😉

                                  K 1 Reply Last reply Reply Quote 0
                                  • K
                                    Kredar @mickym last edited by

                                    @mickym

                                    Haha, war klar das das kommt. Ich würde alles vereinfachen, da es doch komplex ist und damit fehleranfällig.

                                    mfg

                                    1 Reply Last reply Reply Quote 0
                                    • K
                                      Kredar last edited by

                                      Ich bekomme Fehler angezeigt seit der Umstellung:

                                      node-red.0
                                      2023-06-30 00:45:56.708 error 30 Jun 00:45:56 - [error] [change:923f6883ad9b2e8a] Ungültiger JSONata Ausdruck: The values "false" and 20 either side of operator ">" must be of the same data type30 Jun 00:45:56 - [error] [change:923f6883ad9b2e8a] Ungültiger JSONata Ausdruck: The values "false" and 20 either side of operator ">" must be of the same data type

                                      node-red.0
                                      2023-06-30 00:45:56.688 error 30 Jun 00:45:56 - [error] [change:923f6883ad9b2e8a] Ungültiger JSONata Ausdruck: The values "false" and 20 either side of operator ">" must be of the same data type

                                      Ich meine das liegt an dem setze.msg.payload Node oder?

                                      mfg

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

                                        @kredar sagte in Mehrere Steckdosen Werte vergleichen zum Schalten:

                                        923f6883ad9b2e8a

                                        Du gibst diese Zahl einfach in das Suchfeld ein - dann siehst Du welche Node den Fehler wirft.

                                        87360e04-a340-4638-b8b1-366a4c4702b9-image.png

                                        Es sieht eher so aus - als ob aus aus den Datenpunkten kein numerischer Wert rauskommt - warum auch immer - eventuell musst Du das abfangen. In der Change Node wird ja, je nachdem welche Leistung in dem Datenpunkt steht true oder false gesetzt.

                                        374ae78c-e8bb-4d77-9ce3-f38de1c8447b-image.png

                                        Wenn die payload aber nicht numerisch ist, entsteht dieser Fehler.

                                        Wenn Du nicht erklären kannst, wie das zustande kommt, dann musst Du diese Nachrichten raus filtern oder selbst ein numerischen Wert setzen. Die Fehlermeldung sagt ja, dass ich false > 20 ungültig ist.

                                        Ich bekomme diesen Fehler, wenn der Datenpunkt zum Beispiel nicht existiert.

                                        e3d0f103-331a-4339-8f46-fba7521dd622-image.png
                                        8846467c-8cf6-4712-8dbe-aafecf1adc8a-image.png

                                        Einen Filter kannst Du ggf. mit einer Switch NOde setzen, wenn Du nicht sicherstellen kannst, dass Deine Werte numerisch sind:

                                        81992409-5550-472f-bbde-5b2805fb79ef-image.png

                                        K 1 Reply Last reply Reply Quote 0
                                        • K
                                          Kredar last edited by

                                          Sorry war verhindert. Werde ich mir anschauen. Das kam nur einmal, bisher nicht mehr. Hmm, mal beobachten ;).

                                          Danke für deine Hilfe.

                                          mfg

                                          1 Reply Last reply Reply Quote 0
                                          • K
                                            Kredar @mickym last edited by

                                            @mickym

                                            Habe die Meldung noch öfters bekommen, teste gerade deine Switch Lösung. Mal sehen. Merci für die Lösung zum testen. Hoffe es klappt.

                                            mfg

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            860
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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