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.
    • C
      Croix-aigle last edited by Croix-aigle

      Hallo zusammen,

      bin auch ein Neuling das das Node-Red angeht. Es ist schon einfach gemacht, wie wenn man alles Programmieren und einstellen muss.

      Mit Sonoff und Shelly bin ich jetzt auch etwas vertraut. Die Produkte sind für mich zum ein und ausschalten, das kleinste Problem.

      Mein Vorhaben ist, das ich den RGB über das Dashboard Steuern kann.
      Bevor ich soweit bin, erst mal zum ersten Problem. Das ich mit den Daten an die jeweiligen Regler (slider) was anfangen kann, müssen die aufgeteilt werden, der switch wäre hier passend. Nur sieht mein Payload in erster Linie so aus: payload: ```
      "{"ison":true,"mode":"color","red":254,"green":158,"blue":91,"white":0,"gain":4,"effect":0,"power":0.46,"overpower":false}"
      Wie splitte ich das ganze am besten, und lass es ggf über den Switch laufen, das ich an den jeweiligen Ausgängen red:"Wert" erhalten. Habe ich den Wert, kann dies dann zum Regler(slider)

      der MQTT sieht wie folgt so aus:
      Topic: shellies/shellyrgbw2/color/#

      Ich hoffe das das ganze ohne funktion funktioniert!

      1 Reply Last reply Reply Quote 0
      • 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

                              962
                              Online

                              31.7k
                              Users

                              79.7k
                              Topics

                              1.3m
                              Posts

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