Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Shellys ("Alt und Plus") über MQTT Adapter

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Shellys ("Alt und Plus") über MQTT Adapter

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

      @mickym
      ich weiß es nicht,
      wollte es nachbauen... und jetzt geht wieder nichts mehr.

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

        @dos1973 Du musst immer aufpassen, dass Du bei den eingehenden Nachrichten der iobroker-IN Node

        auf ACK=false filterst

        43182606-7e25-4489-aeaf-632e1f492cd9-image.png

        und bei ausgehenden iobroker-Out Nodes immer values (ACK = true) schreibst

        ddfee9e8-738a-4086-b837-4a90303546c0-image.png

        ggf. den Node-Red Adapter im Sicherheitmodus hochfahren und dann Änderungen vornehmen - anschliessend den Adapter wieder im normalen Modus neu starten.

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

          @dos1973 Wenn Du es nachbauen willst kannst Du auch die Gruppen einfach kopieren und dann nur die Nodes verändern.

          D 1 Reply Last reply Reply Quote 0
          • D
            dos1973 @mickym last edited by

            @mickym

            schau doch mal... ob du etwas findest. irgendwie hat node-red keine verbindung...
            instanz habe ich nue gestartet

            0_userdata.0.Wohnung.Status.Shellys.2-Kino.Maskierung.control
            0_userdata.0.Wohnung.Status.Shellys.2-Kino.Maskierung.pos
            0_userdata.0.Wohnung.Status.Shellys.2-Kino.Maskierung.power_W
            0_userdata.0.Wohnung.Status.Shellys.2-Kino.Maskierung.status
            

            mein flow


            [
            {
            "id": "0817d15a51ba86dd",
            "type": "tab",
            "label": "Rolladen Plus",
            "disabled": false,
            "info": "",
            "env": []
            },
            {
            "id": "2687ef51e182ae3e",
            "type": "mqtt in",
            "z": "0817d15a51ba86dd",
            "name": "",
            "topic": "shellies/2-Kino/Maskierung/status/cover:0",
            "qos": "2",
            "datatype": "auto-detect",
            "broker": "b0e602b9.e01008",
            "nl": false,
            "rap": true,
            "rh": 0,
            "inputs": 0,
            "x": 200,
            "y": 160,
            "wires": [
            [
            "8c2f0aa73a8f9642",
            "45f9fe0c07a645aa",
            "20a4785cddd683c7",
            "76bec4221879c571"
            ]
            ]
            },
            {
            "id": "8c2f0aa73a8f9642",
            "type": "change",
            "z": "0817d15a51ba86dd",
            "name": "Status",
            "rules": [
            {
            "t": "set",
            "p": "payload",
            "pt": "msg",
            "to": "payload.state",
            "tot": "msg"
            }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 450,
            "y": 140,
            "wires": [
            [
            "4f4d7ebeab8af33c"
            ]
            ]
            },
            {
            "id": "4f4d7ebeab8af33c",
            "type": "ioBroker out",
            "z": "0817d15a51ba86dd",
            "name": "0_userdata.0.Wohnung.Status.Shellys.2-Kino.Maskierung.status",
            "topic": "0_userdata.0.Wohnung.Status.Shellys.2-Kino.Maskierung.status",
            "ack": "true",
            "autoCreate": "true",
            "stateName": "",
            "role": "",
            "payloadType": "boolean",
            "readonly": "false",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 860,
            "y": 140,
            "wires": []
            },
            {
            "id": "582dd65ed0823483",
            "type": "comment",
            "z": "0817d15a51ba86dd",
            "name": "Status",
            "info": "",
            "x": 90,
            "y": 100,
            "wires": []
            },
            {
            "id": "c2e2efbc11b4b072",
            "type": "comment",
            "z": "0817d15a51ba86dd",
            "name": "Schalten",
            "info": "",
            "x": 100,
            "y": 260,
            "wires": []
            },
            {
            "id": "59af2f2b6ec08346",
            "type": "ioBroker in",
            "z": "0817d15a51ba86dd",
            "name": "control",
            "topic": "0_userdata.0.Wohnung.Status.Shellys.2-Kino.Maskierung.control",
            "payloadType": "value",
            "onlyack": "command",
            "func": "all",
            "gap": "",
            "fireOnStart": "false",
            "outFormat": "MQTT",
            "x": 90,
            "y": 300,
            "wires": [
            [
            "ce2e90a37a7ef5e7"
            ]
            ]
            },
            {
            "id": "ce2e90a37a7ef5e7",
            "type": "mqtt out",
            "z": "0817d15a51ba86dd",
            "name": "",
            "topic": "shellies/2-Kino/Maskierung/command/cover:0",
            "qos": "",
            "retain": "",
            "respTopic": "",
            "contentType": "",
            "userProps": "",
            "correl": "",
            "expiry": "",
            "broker": "b0e602b9.e01008",
            "x": 800,
            "y": 300,
            "wires": []
            },
            {
            "id": "45f9fe0c07a645aa",
            "type": "change",
            "z": "0817d15a51ba86dd",
            "name": "Position",
            "rules": [
            {
            "t": "set",
            "p": "payload",
            "pt": "msg",
            "to": "payload.current_pos",
            "tot": "msg"
            }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 460,
            "y": 180,
            "wires": [
            [
            "2dd3d3c5a66bbe2e"
            ]
            ]
            },
            {
            "id": "2dd3d3c5a66bbe2e",
            "type": "ioBroker out",
            "z": "0817d15a51ba86dd",
            "name": "0_userdata.0.Wohnung.Status.Shellys.2-Kino.Maskierung.pos",
            "topic": "0_userdata.0.Wohnung.Status.Shellys.2-Kino.Maskierung.pos",
            "ack": "true",
            "autoCreate": "true",
            "stateName": "",
            "role": "",
            "payloadType": "number",
            "readonly": "false",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 850,
            "y": 180,
            "wires": []
            },
            {
            "id": "06739d5d3428f8ba",
            "type": "ioBroker in",
            "z": "0817d15a51ba86dd",
            "name": "",
            "topic": "0_userdata.0.Wohnung.Status.Shellys.2-Kino.Maskierung.pos",
            "payloadType": "value",
            "onlyack": "command",
            "func": "all",
            "gap": "",
            "fireOnStart": "false",
            "outFormat": "MQTT",
            "x": 260,
            "y": 360,
            "wires": [
            [
            "b7253efbfd04a691"
            ]
            ]
            },
            {
            "id": "b7253efbfd04a691",
            "type": "change",
            "z": "0817d15a51ba86dd",
            "name": "steure über Position",
            "rules": [
            {
            "t": "set",
            "p": "payload",
            "pt": "msg",
            "to": ""pos," & payload",
            "tot": "jsonata"
            }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 720,
            "y": 360,
            "wires": [
            [
            "ce2e90a37a7ef5e7"
            ]
            ]
            },
            {
            "id": "20a4785cddd683c7",
            "type": "change",
            "z": "0817d15a51ba86dd",
            "name": "Power_W",
            "rules": [
            {
            "t": "set",
            "p": "payload",
            "pt": "msg",
            "to": "payload.apower",
            "tot": "msg"
            }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 460,
            "y": 220,
            "wires": [
            [
            "9b21d38581d6d2a6"
            ]
            ]
            },
            {
            "id": "9b21d38581d6d2a6",
            "type": "ioBroker out",
            "z": "0817d15a51ba86dd",
            "name": "0_userdata.0.Wohnung.Status.Shellys.2-Kino.Maskierung.power_W",
            "topic": "0_userdata.0.Wohnung.Status.Shellys.2-Kino.Maskierung.power_W",
            "ack": "true",
            "autoCreate": "true",
            "stateName": "",
            "role": "",
            "payloadType": "number",
            "readonly": "true",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 870,
            "y": 220,
            "wires": []
            },
            {
            "id": "c06a35f8276bf7dc",
            "type": "comment",
            "z": "0817d15a51ba86dd",
            "name": "schreibe DP",
            "info": "",
            "x": 690,
            "y": 100,
            "wires": []
            },
            {
            "id": "090cec92967e5c7d",
            "type": "comment",
            "z": "0817d15a51ba86dd",
            "name": "Name",
            "info": "",
            "x": 90,
            "y": 20,
            "wires": []
            },
            {
            "id": "76bec4221879c571",
            "type": "debug",
            "z": "0817d15a51ba86dd",
            "name": "debug 1",
            "active": true,
            "tosidebar": true,
            "console": false,
            "tostatus": false,
            "complete": "false",
            "statusVal": "",
            "statusType": "auto",
            "x": 500,
            "y": 80,
            "wires": []
            },
            {
            "id": "b0e602b9.e01008",
            "type": "mqtt-broker",
            "name": "mosquitto",
            "broker": "192.168.10.11",
            "port": "1883",
            "clientid": "",
            "usetls": false,
            "protocolVersion": "4",
            "keepalive": "60",
            "cleansession": true,
            "birthTopic": "",
            "birthQos": "0",
            "birthRetain": "false",
            "birthPayload": "",
            "birthMsg": {},
            "closeTopic": "",
            "closeQos": "0",
            "closeRetain": "false",
            "closePayload": "",
            "closeMsg": {},
            "willTopic": "",
            "willQos": "0",
            "willRetain": "false",
            "willPayload": "",
            "willMsg": {},
            "sessionExpiry": ""
            }
            ]

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

              @dos1973 Du musst wenn Deinen Export in CodeTags packen - sonst nutzt der nichts. Aber Verbindungsprobleme kann ich nicht über einen Flow lösen, da ich Deine Datenpunkte nicht habe und selbst wenn - dann würde es bei mir gehen und bei Dir nicht. Wie gesagt schau auf das was ich Dir gesagt habe, wegen der Endlosschleifen. Wenn Du den Editor aufmachen kannst, dann kannst Du einfach den Flow stoppen und starten.

              7b576ccd-402f-4370-acef-b8ca731d0511-image.png

              D 1 Reply Last reply Reply Quote 0
              • D
                dos1973 @mickym last edited by

                @mickym
                mein flow war gestoppt ... ich fasse es nicht.
                node red macht mich fertig.

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

                  @dos1973 Na Node-Red stoppt Deine Flows nicht selbst. 😉 - Das ist so ein tolles Tool oder willst Du lieber puzzeln?

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    dos1973 @mickym last edited by

                    @mickym
                    Mein node red hat eine KI entwickelt um mich zu ärgern…

                    Läuft aber jetzt wieder…
                    Mal sehen, ob ich mich später nochmals dransetze…

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

                      @dos1973 sagte in Shellys ("Alt und Plus") über MQTT Adapter:

                      Mein node red hat eine KI entwickelt um mich zu ärgern…

                      🤣 🤣 🤣

                      D 1 Reply Last reply Reply Quote 0
                      • D
                        dos1973 @mickym last edited by dos1973

                        ***gelöscht

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

                          @dos1973 Ja müsste so gehen - aber moderner und einfacher ist es über command - dann würde ich lieber wenn Du es einheitlicher haben möchtest auch die switche über command steuern.

                          Schaffst Du es alleine die Switche über command zu steuern oder soll ich anpassen? Auch wenn die switche on/off verstehen - können wir das ja wenn Du willst auch in true/false über change Nodes umwandeln.

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            dos1973 @mickym last edited by dos1973

                            @mickym
                            Ich versuchs erstmal… und melde mich dann. Wird wohl erste Anfang nächster Woche

                            H 1 Reply Last reply Reply Quote 0
                            • H
                              hotspot_2 @dos1973 last edited by

                              @mickym

                              Hallo Mickym,

                              ich hatte mal wieder eine Frage. Mir fällt dazu keine Lösung ein bisher.

                              Ich würde gerne zwei Werte miteinander vergleichen die ich aber beide einlese (einmal aus MQTT und einmal aus einem Objekt). Wenn der eine Werte kleiner ist als der andere soll in einem Flow eine Aktion stattfinden oder auch nicht. Im Schalter habe ich bisher nur gesehen das ich mit einem Wert, den ich eingebe im switch, vergleichen kann.

                              Danke schon mal für einen Tipp von Dir ;-).

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

                                @hotspot_2 Nun Du liest beide Werte in verschiedene Eigenschaften des Nachrichtenobjektes ein und kannst diese dann vergleichen.

                                0379e5ef-46f3-47c0-ba41-b3488ca29534-image.png

                                [
                                   {
                                       "id": "df92da4f528969f5",
                                       "type": "switch",
                                       "z": "2e7d4cac81c671e3",
                                       "name": "",
                                       "property": "payload",
                                       "propertyType": "msg",
                                       "rules": [
                                           {
                                               "t": "gt",
                                               "v": "payload2",
                                               "vt": "msg"
                                           },
                                           {
                                               "t": "lt",
                                               "v": "payload2",
                                               "vt": "msg"
                                           }
                                       ],
                                       "checkall": "true",
                                       "repair": false,
                                       "outputs": 2,
                                       "x": 810,
                                       "y": 4300,
                                       "wires": [
                                           [
                                               "b0965f6aded211f0"
                                           ],
                                           [
                                               "20943a6addfb195d"
                                           ]
                                       ]
                                   },
                                   {
                                       "id": "1ab0322e1ae67df3",
                                       "type": "inject",
                                       "z": "2e7d4cac81c671e3",
                                       "name": "payload > payload2",
                                       "props": [
                                           {
                                               "p": "payload"
                                           },
                                           {
                                               "p": "payload2",
                                               "v": "5",
                                               "vt": "num"
                                           }
                                       ],
                                       "repeat": "",
                                       "crontab": "",
                                       "once": false,
                                       "onceDelay": 0.1,
                                       "topic": "",
                                       "payload": "10",
                                       "payloadType": "num",
                                       "x": 590,
                                       "y": 4280,
                                       "wires": [
                                           [
                                               "205aaf9ad1d3893a",
                                               "df92da4f528969f5"
                                           ]
                                       ]
                                   },
                                   {
                                       "id": "205aaf9ad1d3893a",
                                       "type": "debug",
                                       "z": "2e7d4cac81c671e3",
                                       "name": "Komplette Nachrichtenobjekte",
                                       "active": true,
                                       "tosidebar": true,
                                       "console": false,
                                       "tostatus": false,
                                       "complete": "true",
                                       "targetType": "full",
                                       "statusVal": "",
                                       "statusType": "auto",
                                       "x": 890,
                                       "y": 4220,
                                       "wires": []
                                   },
                                   {
                                       "id": "aac9b8edb3327101",
                                       "type": "inject",
                                       "z": "2e7d4cac81c671e3",
                                       "name": "payload < payload2",
                                       "props": [
                                           {
                                               "p": "payload"
                                           },
                                           {
                                               "p": "payload2",
                                               "v": "5",
                                               "vt": "num"
                                           }
                                       ],
                                       "repeat": "",
                                       "crontab": "",
                                       "once": false,
                                       "onceDelay": 0.1,
                                       "topic": "",
                                       "payload": "3",
                                       "payloadType": "num",
                                       "x": 590,
                                       "y": 4320,
                                       "wires": [
                                           [
                                               "205aaf9ad1d3893a",
                                               "df92da4f528969f5"
                                           ]
                                       ]
                                   },
                                   {
                                       "id": "b0965f6aded211f0",
                                       "type": "debug",
                                       "z": "2e7d4cac81c671e3",
                                       "name": "payload > payload2",
                                       "active": true,
                                       "tosidebar": true,
                                       "console": false,
                                       "tostatus": false,
                                       "complete": "payload",
                                       "targetType": "msg",
                                       "statusVal": "",
                                       "statusType": "auto",
                                       "x": 1030,
                                       "y": 4280,
                                       "wires": []
                                   },
                                   {
                                       "id": "20943a6addfb195d",
                                       "type": "debug",
                                       "z": "2e7d4cac81c671e3",
                                       "name": "payload < payload2",
                                       "active": true,
                                       "tosidebar": true,
                                       "console": false,
                                       "tostatus": false,
                                       "complete": "payload",
                                       "targetType": "msg",
                                       "statusVal": "",
                                       "statusType": "auto",
                                       "x": 1030,
                                       "y": 4320,
                                       "wires": []
                                   }
                                ]
                                

                                Einlesen kannst Du entweder durch Trigger und holen des jeweilig anderen Wertes oder über Variablen im Kontext (Flow oder Global).

                                Einlesen kannst Du entweder durch Trigger und holen des jeweilig anderen Wertes oder über Variablen im Kontext (Flow oder Global).

                                Diese Behauptung habe ich mit dieser Switch Node widerlegt. 😉 Du kannst die payload auch direkt mit einer flow oder globalen Kontextvariable vergleichen. 😉

                                je nachdem für welche Variante Du dich entscheidest oder wenn Du alle Varianten sehen möchtest, lass es mich wissen, falls Du noch weitere Hilfe brauchst, dann gehen wir das wieder an einem konkreten Beispiel durch.

                                Falls Du mqtt mit einem iobroker DP vergleichen willst, dann musst Du den mqtt-Wert entweder in einer Variablen speichern oder Du holst wenn die mqtt-Node triggert via iobroker get den Punkt aus dem iobroker. Du schreibst leider nicht, welcher trigger den Vergleich auslösen soll.

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

                                  @mickym
                                  Ich möchte wenn ein Bewegungsmelder Bewegung erkennt das Licht nur dann schalten wenn der Lux Wert (erkennt auch der Bewegungsmelder) unter einem bestimmten Wert ist. Den Wert habe ich einen ioBroker Objekt.

                                  Ich würde einfach zwei MQTT-in's machen (Bewegung und Lux-Wert) und dann den Lux-Wert mit dem Objekt vergleichen das ich vorher über iobroker-in geholt habe. Habe ich ja bei meinen Schaltern im Treppenhaus auch gemacht.

                                  Stimmt, iobroker get hat ja einen Ein- und Ausgang. Ein MQTT-Get konnte ich nicht finden.

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

                                    @hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:

                                    Ich würde einfach zwei MQTT-in's machen (Bewegung und Lux-Wert) und dann den Lux-Wert mit dem Objekt vergleichen das ich vorher über iobroker-in geholt habe. Habe ich ja bei meinen Schaltern im Treppenhaus auch gemacht.

                                    Nein das ist aus 2 Gründen verkehrt. Wenn Du 2 MQTT ins verwendest, dann triggern die zu unterschiedlichen Zeiten. Aber nun wirst Du den Vorteil von MQTT kennenlernen, wenn alle Informationen in einem Objekt sind, da ich davon ausgehe, dass in dem BWM Objekt auch die Lichtstärke ist.

                                    Kannst Du mal das komplette Objekt des Bewegungsmelders posten?

                                    MQTT-Get gibts nicht. Zeig das komplette Objekt des Bewegungsmelders und poste es bitte in CodeTags hier .

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

                                      @mickym
                                      Hallo! Ja, die Lichtstärke ist auch drin (lux). Motion holen wir ja schon raus.

                                      {
                                        "motion": false,
                                        "timestamp": 1680969357,
                                        "active": true,
                                        "vibration": false,
                                        "lux": 0,
                                        "bat": 100,
                                        "tmp": {
                                          "value": 18.7,
                                          "units": "C",
                                          "is_valid": true
                                        }
                                      }
                                      
                                      mickym 1 Reply Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @hotspot_2 last edited by mickym

                                        @hotspot_2 Also dann kannst Du doch (also UND verknüpfung) einfach beide Eigenschaften nutzen. Denke immer daran an

                                        copy path.gif

                                        Nun kannst Du Dir noch überlegen, ob der BMW automatisch ausschalten soll oder nicht. Also Du kannst mit MQTT- einfach dieses Objekt nutzen und musst weder was auslesen noch zwischenspeichern und das ist eben der RIESESNVORTEIL von mqtt - das alle Informationen auf einmal liefert.

                                        Schau mal wie einfach:

                                        365e02da-cdf6-4767-b021-f8e8ce83f42f-image.png

                                        Wenn Du nicht über den BWM ausschalten willst - dann lässt Du an dem 1. Switch den 2. Ausgang weg:

                                        [
                                           {
                                               "id": "401dd3aae0465093",
                                               "type": "inject",
                                               "z": "2e7d4cac81c671e3",
                                               "name": "",
                                               "props": [
                                                   {
                                                       "p": "payload"
                                                   }
                                               ],
                                               "repeat": "",
                                               "crontab": "",
                                               "once": false,
                                               "onceDelay": 0.1,
                                               "topic": "",
                                               "payload": "{   \"motion\": false,   \"timestamp\": 1680969357,   \"active\": true,   \"vibration\": false,   \"lux\": 0,   \"bat\": 100,   \"tmp\": {     \"value\": 18.7,     \"units\": \"C\",     \"is_valid\": true   } }",
                                               "payloadType": "json",
                                               "x": 410,
                                               "y": 4320,
                                               "wires": [
                                                   [
                                                       "9bfcd157e3bcda0e"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "9bfcd157e3bcda0e",
                                               "type": "switch",
                                               "z": "2e7d4cac81c671e3",
                                               "name": "Bewegungsmelder",
                                               "property": "payload.motion",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "true"
                                                   },
                                                   {
                                                       "t": "false"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 2,
                                               "x": 590,
                                               "y": 4320,
                                               "wires": [
                                                   [
                                                       "a3674f8bfec0af40"
                                                   ],
                                                   [
                                                       "13a4bcaf410b46fa"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "4ec9960c1aca4908",
                                               "type": "debug",
                                               "z": "2e7d4cac81c671e3",
                                               "name": "Licht schalten",
                                               "active": true,
                                               "tosidebar": true,
                                               "console": false,
                                               "tostatus": false,
                                               "complete": "payload",
                                               "targetType": "msg",
                                               "statusVal": "",
                                               "statusType": "auto",
                                               "x": 1180,
                                               "y": 4320,
                                               "wires": []
                                           },
                                           {
                                               "id": "a3674f8bfec0af40",
                                               "type": "switch",
                                               "z": "2e7d4cac81c671e3",
                                               "name": "Lux < 10",
                                               "property": "payload.lux",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "lte",
                                                       "v": "10",
                                                       "vt": "num"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 1,
                                               "x": 780,
                                               "y": 4280,
                                               "wires": [
                                                   [
                                                       "13a4bcaf410b46fa"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "13a4bcaf410b46fa",
                                               "type": "change",
                                               "z": "2e7d4cac81c671e3",
                                               "name": "",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "payload.motion",
                                                       "tot": "msg"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 970,
                                               "y": 4320,
                                               "wires": [
                                                   [
                                                       "4ec9960c1aca4908"
                                                   ]
                                               ]
                                           }
                                        ]
                                        

                                        Also mit 3 Nodes und einem Objekt ist die gesamte Logik implementiert. Statt der Inject node, die MQTT-IN Node dran. Nun siehst Du was es für ein Vorteil ist, nicht alle Informationen des Objektes auseinander zu fieseln. 😉 Das kapieren aber die wenigsten.

                                        Da das motion-signal direkt true und false liefert können wir das auch direkt nutzen.

                                        Da Du ja über rpc Dein Licht schaltest könntest Du die hintere Change NOde auch wie folgt anpassen:

                                        1156492f-a867-40e3-a22c-2c312dbd30bf-image.png

                                        Wir nutzen also die motion Eigenschaft (true/false) um direkt die Lampe über Rpc zu schalten:

                                        [
                                           {
                                               "id": "401dd3aae0465093",
                                               "type": "inject",
                                               "z": "2e7d4cac81c671e3",
                                               "name": "",
                                               "props": [
                                                   {
                                                       "p": "payload"
                                                   }
                                               ],
                                               "repeat": "",
                                               "crontab": "",
                                               "once": false,
                                               "onceDelay": 0.1,
                                               "topic": "",
                                               "payload": "{   \"motion\": false,   \"timestamp\": 1680969357,   \"active\": true,   \"vibration\": false,   \"lux\": 0,   \"bat\": 100,   \"tmp\": {     \"value\": 18.7,     \"units\": \"C\",     \"is_valid\": true   } }",
                                               "payloadType": "json",
                                               "x": 130,
                                               "y": 4300,
                                               "wires": [
                                                   [
                                                       "9bfcd157e3bcda0e"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "9bfcd157e3bcda0e",
                                               "type": "switch",
                                               "z": "2e7d4cac81c671e3",
                                               "name": "Bewegungsmelder",
                                               "property": "payload.motion",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "true"
                                                   },
                                                   {
                                                       "t": "false"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 2,
                                               "x": 310,
                                               "y": 4300,
                                               "wires": [
                                                   [
                                                       "a3674f8bfec0af40"
                                                   ],
                                                   [
                                                       "c6df11b3756e50be"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "4ec9960c1aca4908",
                                               "type": "debug",
                                               "z": "2e7d4cac81c671e3",
                                               "name": "Licht schalten",
                                               "active": true,
                                               "tosidebar": true,
                                               "console": false,
                                               "tostatus": false,
                                               "complete": "payload",
                                               "targetType": "msg",
                                               "statusVal": "",
                                               "statusType": "auto",
                                               "x": 900,
                                               "y": 4300,
                                               "wires": []
                                           },
                                           {
                                               "id": "a3674f8bfec0af40",
                                               "type": "switch",
                                               "z": "2e7d4cac81c671e3",
                                               "name": "Lux < 10",
                                               "property": "payload.lux",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "lte",
                                                       "v": "10",
                                                       "vt": "num"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 1,
                                               "x": 500,
                                               "y": 4260,
                                               "wires": [
                                                   [
                                                       "c6df11b3756e50be"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "c6df11b3756e50be",
                                               "type": "change",
                                               "z": "2e7d4cac81c671e3",
                                               "name": "",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "{\t   \"id\":123,\t   \"src\":\"hotspot_2\",\t   \"method\":\"Switch.Set\",\t   \"params\":{\"id\":0,\"on\":payload.motion}\t}\t \t",
                                                       "tot": "jsonata"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 690,
                                               "y": 4300,
                                               "wires": [
                                                   [
                                                       "4ec9960c1aca4908"
                                                   ]
                                               ]
                                           }
                                        ]
                                        

                                        Also kommen wir ohne irgendwelche Datenpunkte aus dem iobroker aus, da uns der Bewegungsmelder bereits alle aktuellen Informationen liefert.

                                        Es ist auch wichtig - dass Du nicht einfach alles triggern lässt. Triggern wird immer die Bewegung. Ob eine Bewegung nun das Licht einschaltet wird in der 2. Bedingung festgelegt. Das LICHT wird aber NIE triggern. Deshalb musst Du hier Deine Logik immer wieder auf die Prüfschale legen.

                                        Falls Du mqtt mit einem iobroker DP vergleichen willst, dann musst Du den mqtt-Wert entweder in einer Variablen speichern oder Du holst wenn die mqtt-Node triggert via iobroker get den Punkt aus dem iobroker. Du schreibst leider nicht, welcher trigger den Vergleich auslösen soll.

                                        Das ist also aus 2 Gründen falsch:

                                        1. Wenn Du 2 DP hättest, dann würde die Trigger immer unterschiedlich sein - und Du müsstest sie sowieso in ein Objekt überführen.
                                        2. Das Licht triggert nicht, sondern die Bewegung. Das Licht stellt nur eine Bedinung für eine Bewegung dar.

                                        Was Du hier auch sehen kannst: Die Switch Nodes legen nur die Bedingung fest unter der eine Nachricht an einen Ausgang weitergeleitet wird. Das Nachrichtenobjekt selbst wird aber nicht modifziert, so dass Du auch ganz hinten im Flow (also in der letzten Change Node), alle Eigenschaften des Nachrichtenobjektes zu Verfügung hast. Es besteht also gar keinen Notwendigkeit einzelne Eigenschaften des Nachrichtenobjektes zu selektieren oder auszufiltern.

                                        Generell siehst Du hier auch den grafischen Vorteil von NodeRed gegenüber Blockly oder JS-Code - Du kannst Dir genau vorstellen, wie ein Nachrichtenobjekt durch die Nodes flutscht bzw. wo und wie es modifiziert wird. Und wenn mal was nicht tut - einfach die nachfolgende Node deaktivieren, dann bleibt der Flow da stehen und man kann via debug NOde immer sehen, was aus dem Flow rauskommt. Außerdem siehst Du wie einfach Du aus einem Nachrichtenobjekt oder einer payload - eine komplett neues Objekt erstellst.

                                        Du kannst auch mehrere Regeln in der ChangeNode definieren. Falls Du unterschiedliche Eigenschaften zum Schalten des Lichts verwenden willst. Diese werden auch immer von oben nach unten abgearbeitet, so dass die Change Nodes manchmal sogar schon ein Miniprogramm enthalten können.

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

                                          @mickym

                                          Sehr schön! Danke für die Erklärung.

                                          Ich habe das jetzt mal in meinen Flow eingebaut. Ein Trigger ist der Startpunkt der einmal den Payload true und bei ausschalten false mitgibt. Das wird dann in ein JSON eingebaut zum aus- und einschalten. Ich habe jetzt mal auch true und false abgefangen um zu verhindern dass das Licht nicht mehr ausgeht sollte es dunkel werden zwischen Ein- und Ausschaltzeitpunkt ;-).

                                          [
                                             {
                                                 "id": "ae979309777cfd8f",
                                                 "type": "mqtt in",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "topic": "shellies/sonstiges/bwm_wk/status",
                                                 "qos": "2",
                                                 "datatype": "auto-detect",
                                                 "broker": "b22fc4d3e3f172bb",
                                                 "nl": false,
                                                 "rap": true,
                                                 "rh": 0,
                                                 "inputs": 0,
                                                 "x": 310,
                                                 "y": 160,
                                                 "wires": [
                                                     [
                                                         "ce3fea7966a34734"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "4d6c21f253707f3a",
                                                 "type": "mqtt in",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "topic": "shellies/sonstiges/bwm_flur_keller/status",
                                                 "qos": "2",
                                                 "datatype": "auto-detect",
                                                 "broker": "b22fc4d3e3f172bb",
                                                 "nl": false,
                                                 "rap": true,
                                                 "rh": 0,
                                                 "inputs": 0,
                                                 "x": 280,
                                                 "y": 240,
                                                 "wires": [
                                                     [
                                                         "ce3fea7966a34734"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "ce3fea7966a34734",
                                                 "type": "switch",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "property": "payload.motion",
                                                 "propertyType": "msg",
                                                 "rules": [
                                                     {
                                                         "t": "true"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 1,
                                                 "x": 540,
                                                 "y": 200,
                                                 "wires": [
                                                     [
                                                         "ad67b76febdf0a92"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "de365cd7a4813149",
                                                 "type": "change",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "payload",
                                                         "pt": "msg",
                                                         "to": "{\t   \"id\":199,\t   \"src\":\"hotspot_2\",\t   \"method\":\"Switch.Set\",\t   \"params\":{\"id\":0,\"on\":payload}\t}\t \t",
                                                         "tot": "jsonata"
                                                     },
                                                     {
                                                         "t": "set",
                                                         "p": "status_licht",
                                                         "pt": "msg",
                                                         "to": "payload",
                                                         "tot": "msg"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 1290,
                                                 "y": 280,
                                                 "wires": [
                                                     [
                                                         "541e8fa04f94475d",
                                                         "df00a6eda1372fa1",
                                                         "7e4aebe657e40852"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "0e35c29460abd499",
                                                 "type": "mqtt out",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "topic": "shellies/licht/keller/waschkueche/rpc",
                                                 "qos": "",
                                                 "retain": "",
                                                 "respTopic": "",
                                                 "contentType": "",
                                                 "userProps": "",
                                                 "correl": "",
                                                 "expiry": "",
                                                 "broker": "b22fc4d3e3f172bb",
                                                 "x": 2410,
                                                 "y": 320,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "541e8fa04f94475d",
                                                 "type": "mqtt out",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "topic": "shellies/licht/keller/flur_keller_vorne/rpc",
                                                 "qos": "",
                                                 "retain": "",
                                                 "respTopic": "",
                                                 "contentType": "",
                                                 "userProps": "",
                                                 "correl": "",
                                                 "expiry": "",
                                                 "broker": "b22fc4d3e3f172bb",
                                                 "x": 1640,
                                                 "y": 200,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "658b57870ce763a7",
                                                 "type": "trigger",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "op1": "true",
                                                 "op2": "false",
                                                 "op1type": "bool",
                                                 "op2type": "bool",
                                                 "duration": "2",
                                                 "extend": true,
                                                 "overrideDelay": false,
                                                 "units": "min",
                                                 "reset": "",
                                                 "bytopic": "all",
                                                 "topic": "topic",
                                                 "outputs": 1,
                                                 "x": 1050,
                                                 "y": 280,
                                                 "wires": [
                                                     [
                                                         "de365cd7a4813149"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "ad67b76febdf0a92",
                                                 "type": "ioBroker get",
                                                 "z": "692f3cf44001c136",
                                                 "name": "Schalter",
                                                 "topic": "0_userdata.0.hausautomation.bwm_flur_keller_aktiv",
                                                 "attrname": "payload",
                                                 "payloadType": "value",
                                                 "errOnInvalidState": "nothing",
                                                 "x": 670,
                                                 "y": 200,
                                                 "wires": [
                                                     [
                                                         "c7a2538582f26f99"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "c7a2538582f26f99",
                                                 "type": "switch",
                                                 "z": "692f3cf44001c136",
                                                 "name": "Schalter = true?",
                                                 "property": "payload",
                                                 "propertyType": "msg",
                                                 "rules": [
                                                     {
                                                         "t": "true"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 1,
                                                 "x": 840,
                                                 "y": 200,
                                                 "wires": [
                                                     [
                                                         "658b57870ce763a7"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "df00a6eda1372fa1",
                                                 "type": "mqtt out",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "topic": "shellies/licht/keller/flur_keller_hinten/rpc",
                                                 "qos": "",
                                                 "retain": "",
                                                 "respTopic": "",
                                                 "contentType": "",
                                                 "userProps": "",
                                                 "correl": "",
                                                 "expiry": "",
                                                 "broker": "b22fc4d3e3f172bb",
                                                 "x": 1640,
                                                 "y": 260,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "1db60ebf902ccc94",
                                                 "type": "comment",
                                                 "z": "692f3cf44001c136",
                                                 "name": "Flur Keller Lichtsteuerung",
                                                 "info": "",
                                                 "x": 150,
                                                 "y": 80,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "eb3fcf783b74fd7a",
                                                 "type": "mqtt in",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "topic": "shellies/licht/keller/waschkueche/events/rpc",
                                                 "qos": "2",
                                                 "datatype": "auto-detect",
                                                 "broker": "b22fc4d3e3f172bb",
                                                 "nl": false,
                                                 "rap": true,
                                                 "rh": 0,
                                                 "inputs": 0,
                                                 "x": 280,
                                                 "y": 300,
                                                 "wires": [
                                                     [
                                                         "1e6515cac6ba6901"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "90c60a9f3a115521",
                                                 "type": "mqtt in",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "topic": "shellies/licht/keller/flur_keller_hinten/events/rpc",
                                                 "qos": "2",
                                                 "datatype": "auto-detect",
                                                 "broker": "b22fc4d3e3f172bb",
                                                 "nl": false,
                                                 "rap": true,
                                                 "rh": 0,
                                                 "inputs": 0,
                                                 "x": 260,
                                                 "y": 360,
                                                 "wires": [
                                                     [
                                                         "1e6515cac6ba6901"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "1416273ebfce58bb",
                                                 "type": "mqtt in",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "topic": "shellies/licht/keller/flur_keller_vorne/events/rpc",
                                                 "qos": "2",
                                                 "datatype": "auto-detect",
                                                 "broker": "b22fc4d3e3f172bb",
                                                 "nl": false,
                                                 "rap": true,
                                                 "rh": 0,
                                                 "inputs": 0,
                                                 "x": 270,
                                                 "y": 420,
                                                 "wires": [
                                                     [
                                                         "1e6515cac6ba6901"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "1e6515cac6ba6901",
                                                 "type": "switch",
                                                 "z": "692f3cf44001c136",
                                                 "name": "NotifyEvent",
                                                 "property": "payload.method",
                                                 "propertyType": "msg",
                                                 "rules": [
                                                     {
                                                         "t": "eq",
                                                         "v": "NotifyEvent",
                                                         "vt": "str"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 1,
                                                 "x": 570,
                                                 "y": 360,
                                                 "wires": [
                                                     [
                                                         "ccaf9c5d06ca071a"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "ccaf9c5d06ca071a",
                                                 "type": "switch",
                                                 "z": "692f3cf44001c136",
                                                 "name": "input:0 = btn_down",
                                                 "property": "payload.params.events[0].component=\"input:0\" and payload.params.events[0].event = \"btn_down\"",
                                                 "propertyType": "jsonata",
                                                 "rules": [
                                                     {
                                                         "t": "true"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 1,
                                                 "x": 830,
                                                 "y": 360,
                                                 "wires": [
                                                     [
                                                         "658b57870ce763a7"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "323856145be0390f",
                                                 "type": "ioBroker get",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "topic": "0_userdata.0.hausautomation.lux_bewegungsmelder_wk",
                                                 "attrname": "lux_wk",
                                                 "payloadType": "value",
                                                 "errOnInvalidState": "nothing",
                                                 "x": 1830,
                                                 "y": 300,
                                                 "wires": [
                                                     [
                                                         "29d46c0be09b69a6"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "29d46c0be09b69a6",
                                                 "type": "switch",
                                                 "z": "692f3cf44001c136",
                                                 "name": "Lux < lux_wk",
                                                 "property": "payload.lux",
                                                 "propertyType": "msg",
                                                 "rules": [
                                                     {
                                                         "t": "lte",
                                                         "v": "payload.lux_wk",
                                                         "vt": "msg"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 1,
                                                 "x": 2150,
                                                 "y": 300,
                                                 "wires": [
                                                     [
                                                         "0e35c29460abd499"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "7e4aebe657e40852",
                                                 "type": "switch",
                                                 "z": "692f3cf44001c136",
                                                 "name": "",
                                                 "property": "payload.status_licht",
                                                 "propertyType": "msg",
                                                 "rules": [
                                                     {
                                                         "t": "true"
                                                     },
                                                     {
                                                         "t": "false"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 2,
                                                 "x": 1530,
                                                 "y": 340,
                                                 "wires": [
                                                     [
                                                         "323856145be0390f"
                                                     ],
                                                     [
                                                         "0a4a5cad7064557a"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "0a4a5cad7064557a",
                                                 "type": "junction",
                                                 "z": "692f3cf44001c136",
                                                 "x": 2220,
                                                 "y": 340,
                                                 "wires": [
                                                     [
                                                         "0e35c29460abd499"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "b22fc4d3e3f172bb",
                                                 "type": "mqtt-broker",
                                                 "name": "iobroker mqtt adapter",
                                                 "broker": "localhost",
                                                 "port": "1883",
                                                 "clientid": "mqttin_nodered",
                                                 "autoConnect": true,
                                                 "usetls": false,
                                                 "protocolVersion": "4",
                                                 "keepalive": "60",
                                                 "cleansession": true,
                                                 "birthTopic": "",
                                                 "birthQos": "0",
                                                 "birthPayload": "",
                                                 "birthMsg": {},
                                                 "closeTopic": "",
                                                 "closeQos": "0",
                                                 "closePayload": "",
                                                 "closeMsg": {},
                                                 "willTopic": "",
                                                 "willQos": "0",
                                                 "willPayload": "",
                                                 "willMsg": {},
                                                 "userProps": "",
                                                 "sessionExpiry": ""
                                             }
                                          ]
                                          

                                          Wert wird eingelesen, verglichen und dann nur eingeschaltet wenn es passt.

                                          273088e1-994a-4159-a790-e23b4ccf27f6-image.png

                                          Hab gerade noch ein Fehler gefunden. Jetzt sollte es passen.

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

                                            @hotspot_2 Na gut - musst Du wissen . ich halte davon nichts - weil diese Logik mE nur komplex und fehleranfällig ist. Ich würde den Bewegungsmelder für die Waschküche lieber selber triggern lassen als von irgendwelchen anderen Schaltungen abhängig zu machen. Deshalb würde ich lieber meinen Flow nutzen. Solche Konstrukte sind einfach nicht gut.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            510
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            512
                                            62182
                                            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