Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. HEX in RGB Umwandeln?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    HEX in RGB Umwandeln?

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

      @bacado Na Du musst ein Array eingeben und keinen String für die Node. Aber ansonsten hätte ich die API direkt in eine Function Node.

      Das kann man dann später umwandeln, wenn Du diese Node nutzen willst. Probier mal in die Inject Node das Array einzugeben.
      b7a71933-0109-4a88-836e-75774e3d410f-image.png

      Wenn Du mit dem Ergebnis zufrieden bist, dann musst den String nur umwandeln.

      Achso das ist eine iobroker IN Node - ok - ich wandle mal für Dich.

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

        @bacado So ich war jetzt zu faul code zu schreiben:

        Hänge einfach diese 3 Nodes hinter Deine iobroker IN Node - da sollte dann ein String draus werden.

        [
           {
               "id": "2506a485939be3ee",
               "type": "split",
               "z": "289f539dcc33814e",
               "name": "",
               "splt": ",",
               "spltType": "str",
               "arraySplt": 1,
               "arraySpltType": "len",
               "stream": false,
               "addname": "",
               "x": 410,
               "y": 3020,
               "wires": [
                   [
                       "0e7826039331f029"
                   ]
               ]
           },
           {
               "id": "0e7826039331f029",
               "type": "change",
               "z": "289f539dcc33814e",
               "name": "",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "$number(payload)\t",
                       "tot": "jsonata"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 590,
               "y": 3020,
               "wires": [
                   [
                       "65b1f82bdbf106e9"
                   ]
               ]
           },
           {
               "id": "65b1f82bdbf106e9",
               "type": "join",
               "z": "289f539dcc33814e",
               "name": "",
               "mode": "custom",
               "build": "array",
               "property": "payload",
               "propertyType": "msg",
               "key": "topic",
               "joiner": "\\n",
               "joinerType": "str",
               "accumulate": false,
               "timeout": "",
               "count": "3",
               "reduceRight": false,
               "reduceExp": "",
               "reduceInit": "",
               "reduceInitType": "",
               "reduceFixup": "",
               "x": 770,
               "y": 3020,
               "wires": [
                   [
                       "5074028ee01bbf71"
                   ]
               ]
           }
        ]
        

        bd8578a8-7af1-4eae-8714-c798aeb47d46-image.png

        B 1 Reply Last reply Reply Quote 0
        • B
          Bacado @mickym last edited by

          @mickym bohr Mega ich danke dir. Ich suche seit deinem letzten Post also 20min, wie man ein String zu einem Array macht, nicht mal ein Ansatz von Lösung ist mir unter gekommen. Und dann wundert man sich das es wenig Leute gibt die mit NodeRed arbeiten. Dazu muss ich gestehen bin Kaufmann aber sehr PC affine und mein englisch ist leider nur Semiprof..

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

            @bacado Das Problem in das Array umzuwandeln ist nicht das Problem, aber wahrscheinlich in Zahlenformat.

            Du kannst einfach auch mal nur die Change Node aus Interesse verwenden - dann ist es schon ein Array aber mit Strings als Zahlen. Wenn die Konvertiernode das selbstständig umwandelt ist noch einfacher:

            75190d25-d81c-49e3-973a-f30f0a193cea-image.png

            Probier nur mal eine Change Node mit diesem Inhalt hinter Deine iobroker IN Node zu klemmen, ob das ausreicht.

            B 1 Reply Last reply Reply Quote 0
            • B
              Bacado @mickym last edited by

              @mickym nein es geht nur mit den 3 kompletten nodes

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

                @bacado sagte in HEX in RGB Umwandeln?:

                @mickym nein es geht nur mit den 3 kompletten nodes

                Ok dann nimm mal diese 4 ist zwar eine Node mehr, ist aber besser:

                [
                    {
                        "id": "c2fb59500ac5b5fb",
                        "type": "change",
                        "z": "289f539dcc33814e",
                        "name": "",
                        "rules": [
                            {
                                "t": "set",
                                "p": "payload",
                                "pt": "msg",
                                "to": "$split(payload,',')\t",
                                "tot": "jsonata"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 530,
                        "y": 3140,
                        "wires": [
                            [
                                "1a82d9ca08d4e9a3"
                            ]
                        ]
                    },
                    {
                        "id": "1a82d9ca08d4e9a3",
                        "type": "split",
                        "z": "289f539dcc33814e",
                        "name": "",
                        "splt": "\\n",
                        "spltType": "str",
                        "arraySplt": 1,
                        "arraySpltType": "len",
                        "stream": false,
                        "addname": "",
                        "x": 710,
                        "y": 3140,
                        "wires": [
                            [
                                "32d39137ef37cfea"
                            ]
                        ]
                    },
                    {
                        "id": "9e1bfb38feb75c41",
                        "type": "join",
                        "z": "289f539dcc33814e",
                        "name": "",
                        "mode": "auto",
                        "build": "object",
                        "property": "payload",
                        "propertyType": "msg",
                        "key": "topic",
                        "joiner": "\\n",
                        "joinerType": "str",
                        "accumulate": "false",
                        "timeout": "",
                        "count": "",
                        "reduceRight": false,
                        "x": 1070,
                        "y": 3140,
                        "wires": [
                            [
                                "3f77d23474222067"
                            ]
                        ]
                    },
                    {
                        "id": "32d39137ef37cfea",
                        "type": "change",
                        "z": "289f539dcc33814e",
                        "name": "",
                        "rules": [
                            {
                                "t": "set",
                                "p": "payload",
                                "pt": "msg",
                                "to": "$number(payload)\t",
                                "tot": "jsonata"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 890,
                        "y": 3140,
                        "wires": [
                            [
                                "9e1bfb38feb75c41"
                            ]
                        ]
                    }
                ]
                

                d3c9859f-dd8d-4ee1-9afe-2cf33d870b30-image.png

                Ich schau mal ob ich das in einen Change Node packen kann - aber mit der JSONATA Syntax bin ich auch manchmal auf Kriegsfuss.

                Die erste Node macht das Array, die split Node splittet es in einzelne Nachrichten auf, damit man es mit der nächsten Node in Zahlen umwandelt, die JOIN Node setzt das Array wieder zusammen, wie es die split Node auseinander genommen hat. 😉

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

                  So ich habs geschafft: 😉 - ich muss immer ausprobieren. Ganz verstehen tue ich die Syntax selbst nicht.

                  Also hier diese Change Node alleine müsste nun ausreichen:

                  [
                     {
                         "id": "bb22c4c3aa0dbaba",
                         "type": "change",
                         "z": "289f539dcc33814e",
                         "name": "",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "$split(payload,',').$number()",
                                 "tot": "jsonata"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 730,
                         "y": 3260,
                         "wires": [
                             [
                                 "c9d0a193b390e021"
                             ]
                         ]
                     }
                  ]
                  

                  3ed976c7-e527-402c-9ff4-4f7db28dd62a-image.png

                  Der Punkt dient als map Operator, sodass gleich eine Funktion anhängen kann. Also mit dem Code machst einfach aus einem String ein numerisches Array.

                  $split(payload,',').$number()
                  

                  Es ist einfach genial - aber manchmal auch für mich zu abstrakt. 😉

                  Also mit dieser Change Node einfach die vorherigen 3 bzw. 4 Nodes ersetzen.

                  B 1 Reply Last reply Reply Quote 0
                  • B
                    Bacado @mickym last edited by

                    @mickym ja das geht auch, aber wie du schon sagst die Farbübersetzung ist echt Grotte. Aber vorerst gehts nicht besser. Da muss sich mal einer hinsetzen und fürs HabPanel nen colorpicker schreiben der RGB raus gibt oder Hex. Ideal einer der alle 3 als Output hat.

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

                      @bacado Wie war denn die Übersetzung der API die ich gepostet habe`?

                      Also die #ee1bfb aus 287,91,84. Kann auch noch was anderes probieren wenn Du willst. Also stimmt es überein.

                      1deb3081-95ee-4b10-8d66-0fc15f044caa-image.png

                      Wenn Du die API nutzen willst, dann musst nach dem Deploy bisschen warten bis sich die Bibliothek installiert hast.
                      https://www.npmjs.com/package/hsl-to-hex. Du musst das aber nicht installieren, dass macht NodeRed selbst.

                      Hier mal der Flow:

                      [
                         {
                             "id": "0c572419db8fa9ab",
                             "type": "function",
                             "z": "31f4359ae915c063",
                             "name": "HSL in HEX",
                             "func": "var hsl= hslToHex;\n\nmsg.payload = hsl(msg.payload[0], msg.payload[1], msg.payload[2]);\nreturn msg;",
                             "outputs": 1,
                             "noerr": 0,
                             "initialize": "",
                             "finalize": "",
                             "libs": [
                                 {
                                     "var": "hslToHex",
                                     "module": "hsl-to-hex"
                                 }
                             ],
                             "x": 950,
                             "y": 200,
                             "wires": [
                                 [
                                     "591341360b9809a7"
                                 ]
                             ]
                         },
                         {
                             "id": "591341360b9809a7",
                             "type": "debug",
                             "z": "31f4359ae915c063",
                             "name": "",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "false",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 1130,
                             "y": 200,
                             "wires": []
                         },
                         {
                             "id": "a28c7b2204c7441c",
                             "type": "inject",
                             "z": "31f4359ae915c063",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payload": "287,91,84",
                             "payloadType": "str",
                             "x": 560,
                             "y": 200,
                             "wires": [
                                 [
                                     "cc93714eb6589eeb"
                                 ]
                             ]
                         },
                         {
                             "id": "cc93714eb6589eeb",
                             "type": "change",
                             "z": "31f4359ae915c063",
                             "name": "",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "$split(payload,',').$number()",
                                     "tot": "jsonata"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 750,
                             "y": 200,
                             "wires": [
                                 [
                                     "0c572419db8fa9ab"
                                 ]
                             ]
                         }
                      ]
                      

                      Kannst ja dann anstelle der inject Node die iobroker IN Node dran hängen.

                      B 1 Reply Last reply Reply Quote 0
                      • B
                        Bacado @mickym last edited by

                        @mickym https://www.npmjs.com/package/hsl-to-hex die hab ich aktuell drin und der gibt bei den werten 287,91,84 den rgb #EBB1FB wert aus. dein RGB #ee1bfb kommt schon ehr hin mit der farbe die leuchtet.

                        mickym B 3 Replies Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Bacado last edited by

                          @bacado Hast DU keinen Dreher drin, dann wär es nämlich exakt dasselbe.

                          1 Reply Last reply Reply Quote 0
                          • B
                            Bacado @Bacado last edited by

                            @mickym die API hab ich scheinbar irgendwie übersehen. Ich mache kopie&Paste

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

                              @bacado Einfach den Flow importieren und bissi warten.

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

                                @bacado sagte in HEX in RGB Umwandeln?:

                                @mickym https://www.npmjs.com/package/hsl-to-hex die hab ich aktuell drin und der gibt bei den werten 287,91,84 den rgb #EBB1FB wert aus. dein RGB #ee1bfb kommt schon ehr hin mit der farbe die leuchtet.

                                Das ist identisch die gleich die ich gepostet habe. 😉 - Also damit sollte mit dem Flow das Ergebnis in jedem Fall identisch sein. 😉

                                B 1 Reply Last reply Reply Quote 0
                                • B
                                  Bacado @mickym last edited by

                                  @mickym 1.png
                                  Alle 3 Flows haben das selbe Ergebniss, aber der Colorpicker und das licht was wirklich an ist sind Welten!
                                  2.png

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

                                    @bacado Na ja - dann ist das aber eher ein Hardwareproblem, wie ggf. die Farbwerte in der Hardware umgesetzt werden. 😉 - Also vielleicht eher ein Hardware als Softwareproblem. Du kannst ja in den Datenpunkt direkte RGB Werte eingeben, die Du Dir von einem Internet RGB Picker nutzt. Der ColorPicker im NodeRed Dashboard gibt übrigens RGB Werte aus. Das kannst ja mal testen. 😉

                                    Letztlich kann ich Dir aber dabei nicht helfen. Der Vorteil bei der HSL Notation - ist, dass man ja ggf. immer ein Offset zu Helligkeit und/oder Stättigung rechnen kann, um ggf Farben, die die Hardware nicht darstellen kann ausgleichen kann.

                                    B 1 Reply Last reply Reply Quote 0
                                    • B
                                      Bacado @mickym last edited by

                                      @mickym bin schon an der nächsten Sache dran, das Thema Colorpicker vom HabPanel nervt mega aber das ist die schönste Vis von der Aufbauart im vergleich zu den anderen. Hab halt mega viele übersetzungen bei mir am laufen. Hab in meinem Haus KNX dazu Zigbee dann noch was auf der Homebridge alles über den IoBroker am laufen NodeRed dient jetzt auch als übersetzer alles Sachen mit denen ich mich schonmal grob vor ein paar Jahren beschäftigt habe und wusste, okay das geht. Aber das die Umsetzung so heftig wird, krass. Die KNX Programierung hat mich schon ne menge zeit und nerven gekostet nun das alles übern IoBroker das alles was nicht KNX ist, trozdem mit den Touchpanels gesteuert wird. Und jetzt die Visu die nochmal Übersetzungen braucht. hab mit 200h gerechnet die ich aber schon überschritten habe.

                                      B 1 Reply Last reply Reply Quote 0
                                      • B
                                        Bacado @Bacado last edited by

                                        @bacado jetzt muss ich schauen das ich den Color Picker auf HSV auf splitte. aber das ist für dich sicherlich ne kleinigkeit aus dem einen wert 3 werte auszugeben die ich wieder in iobroker schreiben kann?

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

                                          @bacado Das heisst Du willst das Array in 3 einzelne Datenpunkte schreiben?

                                          B 1 Reply Last reply Reply Quote 0
                                          • B
                                            Bacado @mickym last edited by Bacado

                                            @mickym ich muss schauen weil ich eigentlich ein RGB wert ins KNX schicken kann. Aber da muss ich schauen ob ich dort kollisionen bekomme weil ich auf einem anderen schon die HSV werte auf absolute setze. das kann sein das sich relativ und absoult nicht vertragen.

                                            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

                                            788
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            88
                                            5137
                                            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