Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Shelly Duo rgbw Mode

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Shelly Duo rgbw Mode

    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User last edited by A Former User

      Ich habe mir eine Shelly Duo gekauft und möchte die über den iot Adapter in Google home einbinden (eigentlich ganz einfach). Leider sind die Datenpunkte nicht so einfach. Ich habe folgende Datenpunkte: Power, brightness, color, temp, saturation, Mode, gain

      Wenn nun der color wert (Hex) geändert wird, muss der Mode auf color stehen. Um die Helligkeit zu ändern muss dies bei gain verändert werden.
      Wenn die Lampe weißes Licht machen soll muss, Mode auf White gestellt werden und bei temp die Farbtemperatur einstellen. Um da die Helligkeit zu verändern muss brightness geändert werden. Es sind viele Datenpunkte was die Integration in iot erschwert. Hat jemand eine Idee wie dies umsetzbar ist. Ich habe bis jetzt immer nur hinbekommen die color Werte über Google Home zu ändern aber nicht den Wechsel auf weiß. Ich hoffe jemand hat eine Idee. Screenshot_20220930-084712.png

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

        @kilian-z Tja das ist ein Problem dieser Adapter und ihrer Aufdröselung in einzelne Datenpunkte. Wenn man originiäres mqtt verwenden würde, würde man wahrscheinlich Mode und color in einem JSON String zugleich schicken. Ich kann Dir nur raten, diese Adapter nicht mehr zu verwenden.

        ? 1 Reply Last reply Reply Quote 0
        • ?
          A Former User @mickym last edited by

          @mickym Okay, danke. Hast du eine Idee wie ich das lösen könnte? Ich nutze blockly und node-red. Wenn ich temp ändere muss ich dann nur die benötigten Objekte (Power,temp, brightness) senden? Wie kann ich da vorgehen. Mir fehlen aktuell die Ideen.

          Hintergrund: ich möchte die Lampe im iot Adapter nutzen mit Google Home. Also brauche ich ein paar Datenpunkte (Power,temp,color, brightness)

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

            @kilian-z Wie gesagt ich habe keine Ahnung - ob der Shelly Adapter das kann -

            Du könntest eventuell auf - trotz des Adapters -von mir aus als Rückmeldung

            Aber klar kannst Du wenn es geht auch die Datenpunkte einzeln setzen. Wenn es keine Abhängigkeiten gibt musst Du die Werte halt in einer bestimmten Reihenfolge setzen. In Blockly werden die Änderungen doch sowieso sequentiell abgearbeitet oder?

            Wenn das halt mit dem Adapter nicht geht, muss man halt schauen die Alternativen - wenn Du es nacheinander manuell schalten kannst, wie du es brauchst, dann gehts auch mit der Logikmaschine.

            Die Doku sagt bei mqtt ja folgendes:

            {
                "mode": "color",    /* "color" or "white" */
                "red": 0,           /* red brightness, 0..255, applies in mode="color" */
                "green": 0,         /* green brightness, 0..255, applies in mode="color" */
                "blue": 255,        /* blue brightness, 0..255, applies in mode="color" */
                "gain": 100,        /* gain for all channels, 0..100, applies in mode="color" */
                "brightness": 100,  /* brightness, 0..100, applies in mode="white" */
                "white": 0,         /* white brightness, 0..255, applies in mode="color" */
                "temp": 4750,       /* color temperature in K, 3000..6500, applies in mode="white" */
                "effect": 0,        /* applies an effect when set */
                "turn": "on",       /* "on", "off" or "toggle" */
              "transition": 500   /* One-shot transition, `0..5000` [ms] */
            }
            
            1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @Guest last edited by mickym

              @kilian-z sagte in Shelly Duo rgbw Mode:

              @mickym Okay, danke. Hast du eine Idee wie ich das lösen könnte? Ich nutze blockly und node-red. Wenn ich temp ändere muss ich dann nur die benötigten Objekte (Power,temp, brightness) senden?

              Nehmen wir mal an, Du willst ein Objekt senden mit immer bestimmten Eigenschaften die anderen lässt Du gleich, dann könntest Du das in NodeRed über ein Objekt realisieren und dieses dann auch automatisch an die verschiedenen Datenpunkte verteilen, in dem Du das topic dynamisch zusammen baust.

              Wie gesagt das Problem ist dann eher der Adapter, da der einzelne Datenpunkte braucht.

              Sprich Du musst doch nur in deinen datenpunkten checken, welches Du ändern möchtest:

              Nehmen wir mal an Du setzt diese von Dir 4 erwähnten Datenpunkte:

              Power,temp,color, brightness
              

              Dann weisst Du doch dass Du bei temp und brightness den mode "white" einstellen musst und bei color den mode "color". Bei Power ist es egal - habe ich das richtig verstanden?

              So könnte dann ein Flow aussehen, der je nachdem was getriggert wurde, den mode und den Datenpunkt automatisch setzt - du müsstest quasi nur die iobroker-OUT Node hinten dran setzen:

              20662d75-23e5-4c24-afea-e93dc7ede5b7-image.png

              [
                 {
                     "id": "d54785b483fded19",
                     "type": "inject",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "temp",
                     "payload": "3000",
                     "payloadType": "num",
                     "x": 400,
                     "y": 2880,
                     "wires": [
                         [
                             "6fdfabaaa18bcd30"
                         ]
                     ]
                 },
                 {
                     "id": "64616be7b7675b01",
                     "type": "inject",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "color",
                     "payload": "#3f00ff00",
                     "payloadType": "str",
                     "x": 380,
                     "y": 2920,
                     "wires": [
                         [
                             "6fdfabaaa18bcd30"
                         ]
                     ]
                 },
                 {
                     "id": "c4a3bca7c1bd8132",
                     "type": "inject",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "power",
                     "payload": "true",
                     "payloadType": "bool",
                     "x": 400,
                     "y": 2960,
                     "wires": [
                         [
                             "6fdfabaaa18bcd30"
                         ]
                     ]
                 },
                 {
                     "id": "6fdfabaaa18bcd30",
                     "type": "switch",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "property": "topic",
                     "propertyType": "msg",
                     "rules": [
                         {
                             "t": "eq",
                             "v": "brightness",
                             "vt": "str"
                         },
                         {
                             "t": "eq",
                             "v": "temp",
                             "vt": "str"
                         },
                         {
                             "t": "eq",
                             "v": "color",
                             "vt": "str"
                         },
                         {
                             "t": "eq",
                             "v": "power",
                             "vt": "str"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 4,
                     "x": 570,
                     "y": 2920,
                     "wires": [
                         [
                             "3921d984b872f21f"
                         ],
                         [
                             "c2b411e76d11f54a"
                         ],
                         [
                             "0683ca4adb3a8bf3"
                         ],
                         [
                             "afe11fdfae52030c"
                         ]
                     ]
                 },
                 {
                     "id": "55d761b29442eeaf",
                     "type": "inject",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "brightness",
                     "payload": "35",
                     "payloadType": "num",
                     "x": 390,
                     "y": 2840,
                     "wires": [
                         [
                             "6fdfabaaa18bcd30"
                         ]
                     ]
                 },
                 {
                     "id": "3921d984b872f21f",
                     "type": "change",
                     "z": "289f539dcc33814e",
                     "name": "Brightness",
                     "rules": [
                         {
                             "t": "move",
                             "p": "payload",
                             "pt": "msg",
                             "to": "temp",
                             "tot": "msg"
                         },
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "{\"mode\":\"white\"}",
                             "tot": "json"
                         },
                         {
                             "t": "move",
                             "p": "temp",
                             "pt": "msg",
                             "to": "payload.brightness",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 750,
                     "y": 2860,
                     "wires": [
                         [
                             "cabee46fde5cac31"
                         ]
                     ]
                 },
                 {
                     "id": "c2b411e76d11f54a",
                     "type": "change",
                     "z": "289f539dcc33814e",
                     "name": "temp",
                     "rules": [
                         {
                             "t": "move",
                             "p": "payload",
                             "pt": "msg",
                             "to": "temp",
                             "tot": "msg"
                         },
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "{\"mode\":\"white\"}",
                             "tot": "json"
                         },
                         {
                             "t": "move",
                             "p": "temp",
                             "pt": "msg",
                             "to": "payload.temp",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 730,
                     "y": 2900,
                     "wires": [
                         [
                             "cabee46fde5cac31"
                         ]
                     ]
                 },
                 {
                     "id": "0683ca4adb3a8bf3",
                     "type": "change",
                     "z": "289f539dcc33814e",
                     "name": "color - rgbw",
                     "rules": [
                         {
                             "t": "move",
                             "p": "payload",
                             "pt": "msg",
                             "to": "temp",
                             "tot": "msg"
                         },
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "{\"mode\":\"color\"}",
                             "tot": "json"
                         },
                         {
                             "t": "move",
                             "p": "temp",
                             "pt": "msg",
                             "to": "payload.rgbw",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 750,
                     "y": 2940,
                     "wires": [
                         [
                             "cabee46fde5cac31"
                         ]
                     ]
                 },
                 {
                     "id": "afe11fdfae52030c",
                     "type": "change",
                     "z": "289f539dcc33814e",
                     "name": "switch power",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "{\"switch\" : payload}",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 750,
                     "y": 2980,
                     "wires": [
                         [
                             "cabee46fde5cac31"
                         ]
                     ]
                 },
                 {
                     "id": "7e14d3619c852342",
                     "type": "debug",
                     "z": "289f539dcc33814e",
                     "name": "an iobroker-OUT",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 1370,
                     "y": 2920,
                     "wires": []
                 },
                 {
                     "id": "cabee46fde5cac31",
                     "type": "split",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "splt": "\\n",
                     "spltType": "str",
                     "arraySplt": 1,
                     "arraySpltType": "len",
                     "stream": false,
                     "addname": "topic",
                     "x": 970,
                     "y": 2920,
                     "wires": [
                         [
                             "0979245472a3e61a"
                         ]
                     ]
                 },
                 {
                     "id": "0979245472a3e61a",
                     "type": "change",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "topic",
                             "pt": "msg",
                             "to": "\"SHCB-1#34949566.lights.\" & topic",
                             "tot": "jsonata"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 1140,
                     "y": 2920,
                     "wires": [
                         [
                             "7e14d3619c852342"
                         ]
                     ]
                 }
              ]
              

              Den rgbw Datenpunkt habe ich einfach deinem Screenshot entnommen - ich denke mal dass das dann mit dem HEX String direkt funktioniert.

              Wenn Du lieber Kodieren willst - dann halt der ganze Flow so:

              cb1796fe-64be-4988-af8f-ae8f42ac9ef3-image.png

              [
                 {
                     "id": "248029107653b194",
                     "type": "function",
                     "z": "289f539dcc33814e",
                     "name": "all in one",
                     "func": "let iobPath = \"SHCB-1#34949566.lights.\";\nlet msg1 = {}, msg2 = {};\n\nswitch (msg.topic)\n{   \n    case \"brightness\":\n        msg1 = { topic: iobPath + \"mode\", payload: \"white\"};\n        msg2 = {topic: iobPath + msg.topic, payload: msg.payload};\n        return [[msg1,msg2]]\n    case \"temp\":\n        msg1 = { topic: iobPath + \"mode\", payload: \"white\" };\n        msg2 = { topic: iobPath + msg.topic, payload: msg.payload };\n        return [[msg1, msg2]]\n    case \"color\":\n        msg1 = { topic: iobPath + \"mode\", payload: \"color\" };\n        msg2 = { topic: iobPath + \"rgbw\", payload: msg.payload };\n        return [[msg1, msg2]]\n    case \"power\":\n        return { topic: iobPath + \"switch\", payload: msg.payload };\n    default:\n        return { topic: iobPath + msg.topic, payload: msg.payload };\n    }\n",
                     "outputs": 1,
                     "noerr": 0,
                     "initialize": "",
                     "finalize": "",
                     "libs": [],
                     "x": 780,
                     "y": 3140,
                     "wires": [
                         [
                             "3f499d65c6879f9c"
                         ]
                     ]
                 },
                 {
                     "id": "6d03afa373f6b71e",
                     "type": "inject",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "temp",
                     "payload": "3000",
                     "payloadType": "num",
                     "x": 580,
                     "y": 3140,
                     "wires": [
                         [
                             "248029107653b194"
                         ]
                     ]
                 },
                 {
                     "id": "35aded27cac6a352",
                     "type": "inject",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "color",
                     "payload": "#3f00ff00",
                     "payloadType": "str",
                     "x": 560,
                     "y": 3180,
                     "wires": [
                         [
                             "248029107653b194"
                         ]
                     ]
                 },
                 {
                     "id": "262e849bcceab6c7",
                     "type": "inject",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "power",
                     "payload": "true",
                     "payloadType": "bool",
                     "x": 580,
                     "y": 3220,
                     "wires": [
                         [
                             "248029107653b194"
                         ]
                     ]
                 },
                 {
                     "id": "e0ae6e972aed63ec",
                     "type": "inject",
                     "z": "289f539dcc33814e",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "vt": "str"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "brightness",
                     "payload": "35",
                     "payloadType": "num",
                     "x": 570,
                     "y": 3100,
                     "wires": [
                         [
                             "248029107653b194"
                         ]
                     ]
                 },
                 {
                     "id": "3f499d65c6879f9c",
                     "type": "debug",
                     "z": "289f539dcc33814e",
                     "name": "an iobroker-OUT",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 970,
                     "y": 3140,
                     "wires": []
                 }
              ]
              

              ? 1 Reply Last reply Reply Quote 0
              • ?
                A Former User @mickym last edited by

                @mickym Vielen Dank. Ich werde es Mal probieren.

                Nehmen wir Mal an, aktuell ist Farbe rot und Mode steht auf "color". Jetzt möchte ich auf einen weißton. Dann müsste ja erst die temp geändert werden und dann der Mode auf "White" gestellt werden.

                Trigger soll ja nur der DP temp sein, dadurch muss dann das Script den temp übernehmen und Mode auf White stellen. Ist das so? Ich hätte das jetzt so gedacht, dass ein Datenpunkt geändert wird aber nicht die beiden Mode und temp.

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

                  @kilian-z Ja so habe ich es in dem Flow gemacht. Wenn temp triggert - wird erst Mode auf white gestellt und dann der temp Datenpunkt beschrieben. Siehst Du ja im Screenshot an der Abfolge der Nachrichten und des Topics:

                  ce454eaa-c3cb-4990-83b9-f2beb5327649-image.png

                  und getriggert wird nur über einen Datenpunkt temp (selbst angelegter datenpunkt - den Du dann mit iot beschreiben kannst) - ich habe jetzt halt eine Inject Node zum Triggern verwendet.

                  ? 1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User @mickym last edited by

                    @mickym Stimmt, garnicht gesehen. Ich werde es Mal testen.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    949
                    Online

                    31.9k
                    Users

                    80.1k
                    Topics

                    1.3m
                    Posts

                    2
                    8
                    201
                    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