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. [gelöst]Shelly RGBW Steuern

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst]Shelly RGBW Steuern

    This topic has been deleted. Only users with topic management privileges can see it.
    • t-master
      t-master last edited by t-master

      Das geht mit dem split-node ganz einfach

      Screenshot von 2020-03-11 01.58.13.png

      [
          {
              "id": "d150e349.655888",
              "type": "tab",
              "label": "Flow 2",
              "disabled": false,
              "info": ""
          },
          {
              "id": "42661984.c38e",
              "type": "inject",
              "z": "d150e349.655888",
              "name": "",
              "topic": "Test",
              "payload": "{\"ison\":true,\"mode\":\"color\",\"red\":254,\"green\":158,\"blue\":91,\"white\":0,\"gain\":4,\"effect\":0,\"power\":0.46,\"overpower\":false}",
              "payloadType": "json",
              "repeat": "",
              "crontab": "",
              "once": false,
              "onceDelay": 0.1,
              "x": 140,
              "y": 290,
              "wires": [
                  [
                      "cdd4ea6b.baf28"
                  ]
              ]
          },
          {
              "id": "cdd4ea6b.baf28",
              "type": "split",
              "z": "d150e349.655888",
              "name": "split",
              "splt": ",",
              "spltType": "str",
              "arraySplt": 1,
              "arraySpltType": "len",
              "stream": false,
              "addname": "",
              "x": 290,
              "y": 290,
              "wires": [
                  [
                      "c52cc5d2.daa888"
                  ]
              ]
          },
          {
              "id": "cc60b5a2.c03e18",
              "type": "debug",
              "z": "d150e349.655888",
              "name": "",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": true,
              "complete": "payload",
              "targetType": "msg",
              "x": 810,
              "y": 210,
              "wires": []
          },
          {
              "id": "c52cc5d2.daa888",
              "type": "switch",
              "z": "d150e349.655888",
              "name": "",
              "property": "parts.key",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "eq",
                      "v": "ison",
                      "vt": "str"
                  },
                  {
                      "t": "eq",
                      "v": "mode",
                      "vt": "str"
                  },
                  {
                      "t": "eq",
                      "v": "red",
                      "vt": "str"
                  },
                  {
                      "t": "eq",
                      "v": "green",
                      "vt": "str"
                  },
                  {
                      "t": "eq",
                      "v": "blue",
                      "vt": "str"
                  },
                  {
                      "t": "eq",
                      "v": "white",
                      "vt": "str"
                  },
                  {
                      "t": "eq",
                      "v": "gain",
                      "vt": "str"
                  },
                  {
                      "t": "eq",
                      "v": "effect",
                      "vt": "str"
                  },
                  {
                      "t": "eq",
                      "v": "power",
                      "vt": "str"
                  },
                  {
                      "t": "eq",
                      "v": "overpower",
                      "vt": "str"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 10,
              "x": 440,
              "y": 290,
              "wires": [
                  [
                      "cc60b5a2.c03e18"
                  ],
                  [],
                  [
                      "568e8e7b.5ff5f"
                  ],
                  [
                      "b5cd3fc1.b799d8"
                  ],
                  [
                      "1a93cdef.863c62"
                  ],
                  [],
                  [],
                  [],
                  [
                      "c4ee3d96.69264"
                  ],
                  []
              ]
          },
          {
              "id": "568e8e7b.5ff5f",
              "type": "debug",
              "z": "d150e349.655888",
              "name": "",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": true,
              "complete": "payload",
              "targetType": "msg",
              "x": 630,
              "y": 250,
              "wires": []
          },
          {
              "id": "b5cd3fc1.b799d8",
              "type": "debug",
              "z": "d150e349.655888",
              "name": "",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": true,
              "complete": "payload",
              "targetType": "msg",
              "x": 690,
              "y": 290,
              "wires": []
          },
          {
              "id": "1a93cdef.863c62",
              "type": "debug",
              "z": "d150e349.655888",
              "name": "",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": true,
              "complete": "payload",
              "targetType": "msg",
              "x": 740,
              "y": 330,
              "wires": []
          },
          {
              "id": "c4ee3d96.69264",
              "type": "debug",
              "z": "d150e349.655888",
              "name": "",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": true,
              "complete": "payload",
              "targetType": "msg",
              "x": 780,
              "y": 370,
              "wires": []
          }
      ]
      
      1 Reply Last reply Reply Quote 0
      • C
        Croix-aigle last edited by

        der Split ist durch das Bild mit der Trennung "," verständlich, wo trage ich den code ein? muss ich den code eintragen oder kann ich das einfach im switch definieren? und wie?

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

          Wenn Du einfach den JSON Node nimmst wird das direkt in Java Objekte konvertiert und Du kannst direkt darauf zugreifen.
          Dieses Objekt schickst Du komplett an jeden Regler und modifizierst dann nur den Wert, den Du möchtest - also msg.payload.red - anschliessend nimmst wieder den JSON Node - der konvertiert Dir das wieder in den String und schreibst ihn direkt wieder zurück.

          1 Reply Last reply Reply Quote 0
          • C
            Croix-aigle last edited by Croix-aigle

            Wenn ich jetzt her gehe, wie von t-master beschrieben, bekomme ich nach dem Split das Angezeigt: ```
            24.3.2020, 19:14:30node: 6ac80576.7ef93c

            shellies/shellyrgbw2-6EAF7E/color/0/status : msg : Object
            object
            topic: "shellies/shellyrgbw2/color/0/status"
            payload: ""gain":17"
            qos: 1
            retain: false
            _topic: "shellies/shellyrgbw2/color/0/status"
            parts: object
            _msgid: "b2b14ee3.3250d"
            

            Dann ist die Frage wie ich den Switch Einstellung vornehme?
            switch.JPG

            Ich bekomme nur mit != die ganze Anfrage hier raus.

            Wenn ich das von mickym mache, bekomme ich die Antwort nach den json:

            Object

            object
            topic: "shellies/shellyrgbw2/color/0/status"
            payload: object
            ison: true
            mode: "color"
            red: 255
            green: 107
            blue: 74
            white: 0
            gain: 17
            effect: 0
            power: 3.42
            overpower: false
            

            `

            Dann ist die Frage wie ich das im switch Eintrage, auch wie Beschrieben, bekomme ich mehrere oder keine Werte nach dem Switch

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @Croix-aigle last edited by mickym

              @Croix-aigle Du brauchst die Nachricht nicht aufteilen und switchen - sondern hängst vor jeden Regel einen Change Node, indem Du den Wert selektierst den Du brauchst.

              java objekt.png

              Ist zwar jetzt bei mir ein anderer Flow - aber Du siehst wie es geht.

              Nach dem Json Node - einen Change Node, wo Du einfach msg.payload nach msg.payload.red festlegst und diesen Wert kannst direkt zu Deinem Regler schicken.
              Für Deinen grünen Regler - klemmst Du nach dem Json Node - einen Change-Node mit msg.payload nach msg.payload.green an usw.

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

                @Croix-aigle said in Shelly RGBW Steuern:

                "{"ison":true,"mode":"color","red":254,"green":158,"blue":91,"white":0,"gain":4,"effect":0,"power":0.46,"overpower":false}"

                Ich habe mal den ganzen Flow für Dich implementiert - musst nur noch verfeinern und bei Dir importieren - also in Zwischenablage und Flow importieren. Statt der Inject-Node - nimmst natürlich Deinen mqtt-in Node und den ersten Json Node um es in eine Java-Objekt zu wandeln, wie ich Dir eben vorgeschlagen habe. 😉

                und wie versprochen ohne Funktion - braucht man wirklich nicht oft - auch wenn manche das Gegenteil behaupten 😉

                [
                    {
                        "id": "3830bf94.4817e",
                        "type": "inject",
                        "z": "6e170384.60c96c",
                        "name": "Objekt",
                        "topic": "",
                        "payload": "{\"ison\":true,\"mode\":\"color\",\"red\":254,\"green\":158,\"blue\":91,\"white\":0,\"gain\":4,\"effect\":0,\"power\":0.46,\"overpower\":false}",
                        "payloadType": "json",
                        "repeat": "",
                        "crontab": "",
                        "once": false,
                        "onceDelay": 0.1,
                        "x": 190,
                        "y": 3420,
                        "wires": [
                            [
                                "8b0a970c.1b38d8",
                                "e02931c5.85468",
                                "6a06c3af.5aa0fc"
                            ]
                        ]
                    },
                    {
                        "id": "8b0a970c.1b38d8",
                        "type": "change",
                        "z": "6e170384.60c96c",
                        "name": "rot",
                        "rules": [
                            {
                                "t": "set",
                                "p": "payload",
                                "pt": "msg",
                                "to": "payload.red",
                                "tot": "msg"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 410,
                        "y": 3340,
                        "wires": [
                            [
                                "f0321cab.0adaa"
                            ]
                        ]
                    },
                    {
                        "id": "e02931c5.85468",
                        "type": "change",
                        "z": "6e170384.60c96c",
                        "name": "grün",
                        "rules": [
                            {
                                "t": "set",
                                "p": "payload",
                                "pt": "msg",
                                "to": "payload.green",
                                "tot": "msg"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 410,
                        "y": 3480,
                        "wires": [
                            [
                                "17d1ea55.024256"
                            ]
                        ]
                    },
                    {
                        "id": "f0321cab.0adaa",
                        "type": "ui_slider",
                        "z": "6e170384.60c96c",
                        "name": "Roter Regler",
                        "label": "Rot",
                        "tooltip": "",
                        "group": "b38597db.715cf8",
                        "order": 0,
                        "width": 0,
                        "height": 0,
                        "passthru": true,
                        "outs": "all",
                        "topic": "",
                        "min": 0,
                        "max": "255",
                        "step": 1,
                        "x": 610,
                        "y": 3340,
                        "wires": [
                            [
                                "c9c8c934.43d1c8"
                            ]
                        ]
                    },
                    {
                        "id": "17d1ea55.024256",
                        "type": "ui_slider",
                        "z": "6e170384.60c96c",
                        "name": "Grüner Regler",
                        "label": "Grün",
                        "tooltip": "",
                        "group": "b38597db.715cf8",
                        "order": 0,
                        "width": 0,
                        "height": 0,
                        "passthru": true,
                        "outs": "all",
                        "topic": "",
                        "min": 0,
                        "max": "255",
                        "step": 1,
                        "x": 620,
                        "y": 3480,
                        "wires": [
                            [
                                "785a8552.a5585c"
                            ]
                        ]
                    },
                    {
                        "id": "6a06c3af.5aa0fc",
                        "type": "change",
                        "z": "6e170384.60c96c",
                        "name": "",
                        "rules": [
                            {
                                "t": "set",
                                "p": "fobject",
                                "pt": "flow",
                                "to": "payload",
                                "tot": "msg"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 430,
                        "y": 3620,
                        "wires": [
                            []
                        ]
                    },
                    {
                        "id": "c9c8c934.43d1c8",
                        "type": "change",
                        "z": "6e170384.60c96c",
                        "name": "",
                        "rules": [
                            {
                                "t": "set",
                                "p": "fobject.red",
                                "pt": "flow",
                                "to": "payload",
                                "tot": "msg"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 840,
                        "y": 3340,
                        "wires": [
                            [
                                "aa46c4cf.934fa8"
                            ]
                        ]
                    },
                    {
                        "id": "785a8552.a5585c",
                        "type": "change",
                        "z": "6e170384.60c96c",
                        "name": "",
                        "rules": [
                            {
                                "t": "set",
                                "p": "fobject.green",
                                "pt": "flow",
                                "to": "payload",
                                "tot": "msg"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 850,
                        "y": 3480,
                        "wires": [
                            [
                                "aa46c4cf.934fa8"
                            ]
                        ]
                    },
                    {
                        "id": "aa46c4cf.934fa8",
                        "type": "change",
                        "z": "6e170384.60c96c",
                        "name": "",
                        "rules": [
                            {
                                "t": "set",
                                "p": "payload",
                                "pt": "msg",
                                "to": "fobject",
                                "tot": "flow"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 1100,
                        "y": 3400,
                        "wires": [
                            [
                                "3cd610b9.19a05"
                            ]
                        ]
                    },
                    {
                        "id": "24c16160.799c8e",
                        "type": "debug",
                        "z": "6e170384.60c96c",
                        "name": "Json String",
                        "active": true,
                        "tosidebar": true,
                        "console": false,
                        "tostatus": false,
                        "complete": "payload",
                        "targetType": "msg",
                        "x": 1250,
                        "y": 3540,
                        "wires": []
                    },
                    {
                        "id": "51f0fe94.f0705",
                        "type": "json",
                        "z": "6e170384.60c96c",
                        "name": "",
                        "property": "payload",
                        "action": "",
                        "pretty": false,
                        "x": 1390,
                        "y": 3460,
                        "wires": [
                            [
                                "24c16160.799c8e"
                            ]
                        ]
                    },
                    {
                        "id": "3cd610b9.19a05",
                        "type": "trigger",
                        "z": "6e170384.60c96c",
                        "op1": "",
                        "op2": "",
                        "op1type": "nul",
                        "op2type": "payl",
                        "duration": "1",
                        "extend": true,
                        "units": "s",
                        "reset": "",
                        "bytopic": "all",
                        "name": "",
                        "x": 1290,
                        "y": 3400,
                        "wires": [
                            [
                                "51f0fe94.f0705",
                                "f3af5049.4cc4b"
                            ]
                        ]
                    },
                    {
                        "id": "f3af5049.4cc4b",
                        "type": "debug",
                        "z": "6e170384.60c96c",
                        "name": "Objekt",
                        "active": true,
                        "tosidebar": true,
                        "console": false,
                        "tostatus": false,
                        "complete": "payload",
                        "targetType": "msg",
                        "x": 1520,
                        "y": 3380,
                        "wires": []
                    },
                    {
                        "id": "b38597db.715cf8",
                        "type": "ui_group",
                        "z": "",
                        "name": "Default",
                        "tab": "dc25fe35.866f",
                        "disp": true,
                        "width": "6",
                        "collapse": false
                    },
                    {
                        "id": "dc25fe35.866f",
                        "type": "ui_tab",
                        "z": "",
                        "name": "Test",
                        "icon": "dashboard",
                        "disabled": false,
                        "hidden": false
                    }
                ]
                

                Das ganze sieht dann so aus:

                NR Flow.png

                Ganz easy. 😉

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

                  Gelöscht. 😉

                  1 Reply Last reply Reply Quote 0
                  • C
                    Croix-aigle last edited by Croix-aigle

                    Vielen Dank für die Hilfe, jetzt hab ich es sogar komplett Fertig, wie man auf dem Bild sieht.

                    !rgb-tisch.JPG

                    Das ich den code über Import (Zwischenablage) eintragen muss und dann einfügen, war mir bis hier noch nicht klar.

                    Hatte dann noch ein kleines Problem mit dem MQTT nach dem json. Nach dem ich dann den passenden Topic "shellies/shellyrgbw2/color/0/set" eingegeben habe, Funktioniert jetzt alles wie es soll.

                    ich habe jetzt noch mal von @t-master sein code eingefügt, das mit dem switch will nicht so funktionieren.

                    Was mir noch einfällt:
                    Was brauche ich für eine Node, das ich im Dashboard das sehe:
                    0 = off
                    1 = Meteor Shower red
                    2 = Gradual Change
                    3 = Flash

                    mickym 2 Replies Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @Croix-aigle last edited by

                      @Croix-aigle Freut mich - Ja über die Zwischenablage Flows zu importieren ist echt genial - dieses Node-Red. 😉
                      Ich liebe es - da man viel leichter sieht was passiert und in der Regel auch ohne Programmierung ausgeht.

                      Das mit dem Dashboard - da darfst Du nicht zu viele Ansprüche stellen, aber ich kann Dir ein paar Tipps geben, wie ich das gemacht habe. Für mich war erst mal die Funktionalität wichtig und das ich schalten kann, was ich will - jetzt beschäftige ich mich mit vis - benutzte aber Node-Red weiterhin als meine Logikmaschine.

                      Dann noch etwas grundsätzliches - was ich gestern wieder gelöscht habe. Aber ein Switch nimmst Du nur wenn Du bei einem Wert unterschiedlich behandeln möchtest. Mit einem Split Objekte auseinanderzureißen ist schade und bringt in meiner Augen nur Nachteile.

                      Deine letzte Frage habe ich aber nicht verstanden -

                      Was brauche ich für eine Node, das ich im Dashboard das sehe:
                      0 = off
                      1 = Meteor Shower red
                      2 = Gradual Change
                      3 = Flash

                      sind das Zustände, Icons oder wie soll was aussehen?

                      1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Croix-aigle last edited by mickym

                        @Croix-aigle Falls das eine Werteliste für Deinen Effekt ist, die Du im Dashboard als Auswahl haben möchtest, dann nimmst Du einen "dropdown" node - anstelle Deines sliders. Als Input zeigt er Dir dann auch immer die aktuelle Einstellung an. Value ist dann 0,1,2,3 und label ist dann der zugehörige Text

                        1 Reply Last reply Reply Quote 0
                        • C
                          Croix-aigle last edited by

                          ja, genau. Der dropdown ist der passende, jetzt bin ich mit dem RGB zufrieden. Hab das was ich machen wollte. Jetzt kann ich weiter basteln und erweitern. Meine nächste Frage mache ich in einen neuen Beitrag auf.

                          t-master 1 Reply Last reply Reply Quote 0
                          • t-master
                            t-master @Croix-aigle last edited by

                            @Croix-aigle
                            Schön das es jetzt so geht wie du möchtest. Man lernt auch immer dazu wenn man sich damit beschäftigt. Die Vorgehensweise von @mickym kannte ich so auch noch nicht.

                            Setze die Frage doch bitte als gelöst (im ersten Post rechts auf die 3 Punkte klicken und dann Edit)

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            1.1k
                            Online

                            31.7k
                            Users

                            79.7k
                            Topics

                            1.3m
                            Posts

                            3
                            13
                            2244
                            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