NEWS
HEX in RGB Umwandeln?
-
@denjo sagte in HEX in RGB Umwandeln?:
hyperion_ng.0.general.control.setColorRGB
So das ist es dann:

[ { "id": "c9bd97db.0bd1c8", "type": "function", "z": "6e170384.60c96c", "name": "HEX zu RGB", "func": "msg.payload=hex_to_RGB(msg.payload)\n\n\nreturn msg;\n\nfunction hex_to_RGB(hex) {\n var m = hex.match(/^#?([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/i);\n return {\n r: parseInt(m[1], 16),\n g: parseInt(m[2], 16),\n b: parseInt(m[3], 16)\n };\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "x": 1410, "y": 3180, "wires": [ [ "62344cad.180284" ] ] }, { "id": "28743d11.362b72", "type": "ioBroker in", "z": "6e170384.60c96c", "name": "", "topic": "javascript.0.hyperionng", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "x": 1140, "y": 3180, "wires": [ [ "c9bd97db.0bd1c8" ] ] }, { "id": "32bd27af.6eff68", "type": "ioBroker out", "z": "6e170384.60c96c", "name": "", "topic": "hyperion_ng.0.general.control.setColorRGB", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1870, "y": 3180, "wires": [] }, { "id": "62344cad.180284", "type": "json", "z": "6e170384.60c96c", "name": "", "property": "payload", "action": "", "pretty": false, "x": 1590, "y": 3180, "wires": [ [ "32bd27af.6eff68" ] ] } ]Zum Importieren:
- Den Code hier in die Zwischenablage kopieren.
- In Node Red - das Menü mit den 3 Strichen rechts oben öffne und auf Import klicken.
- Inhalt der Zwischenablage in das rosa Fenster
- Auf Import klicken und den Flow plazieren.
- dann auf den roten Deploy Button klicken und das wars.
Test einfach - in dem Du dann in javascript.0.hyperionng den hex-String einträgst und schaust was dann in dem Ausgabepunkt ankommt.
Habs gerade mit eigenen Datenpunkten getestet. Das schaut in meinen Augen gut aus. ;)

-
so hier function Node geändert:
[ { "id": "c9bd97db.0bd1c8", "type": "function", "z": "6e170384.60c96c", "name": "HEX zu RGB", "func": "msg.payload=hex_to_RGB(msg.payload)\n\n\nreturn msg;\n\nfunction hex_to_RGB(hex) {\n var m = hex.match(/^#?([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/i);\n return (parseInt(m[1], 16)).toString() + ',' + (parseInt(m[2], 16)).toString() + ',' + (parseInt(m[3], 16)).toString(); \n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "x": 1290, "y": 3180, "wires": [ [ "32bd27af.6eff68" ] ] }, { "id": "28743d11.362b72", "type": "ioBroker in", "z": "6e170384.60c96c", "name": "", "topic": " javascript.0.hyperionng", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "x": 1080, "y": 3180, "wires": [ [ "c9bd97db.0bd1c8" ] ] }, { "id": "32bd27af.6eff68", "type": "ioBroker out", "z": "6e170384.60c96c", "name": "", "topic": "hyperion_ng.0.general.control.setColorRGB", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1570, "y": 3180, "wires": [] } ]Jetzt schaut der Flow nur noch so aus

Die Funktion ist auch geschrumpft - falls Du die doch noch in Blockly verwenden willst:
function hex_to_RGB(hex) { var m = hex.match(/^#?([\da-f]{2})([\da-f]{2})([\da-f]{2})$/i); return (parseInt(m[1], 16)).toString() + ',' + (parseInt(m[2], 16)).toString() + ',' + (parseInt(m[3], 16)).toString(); }
und das nächste Mal wäre es natürlich hilfreich, wenn man exakt weiß was rauskommen soll. ;)
-
so hier function Node geändert:
[ { "id": "c9bd97db.0bd1c8", "type": "function", "z": "6e170384.60c96c", "name": "HEX zu RGB", "func": "msg.payload=hex_to_RGB(msg.payload)\n\n\nreturn msg;\n\nfunction hex_to_RGB(hex) {\n var m = hex.match(/^#?([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/i);\n return (parseInt(m[1], 16)).toString() + ',' + (parseInt(m[2], 16)).toString() + ',' + (parseInt(m[3], 16)).toString(); \n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "x": 1290, "y": 3180, "wires": [ [ "32bd27af.6eff68" ] ] }, { "id": "28743d11.362b72", "type": "ioBroker in", "z": "6e170384.60c96c", "name": "", "topic": " javascript.0.hyperionng", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "x": 1080, "y": 3180, "wires": [ [ "c9bd97db.0bd1c8" ] ] }, { "id": "32bd27af.6eff68", "type": "ioBroker out", "z": "6e170384.60c96c", "name": "", "topic": "hyperion_ng.0.general.control.setColorRGB", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1570, "y": 3180, "wires": [] } ]Jetzt schaut der Flow nur noch so aus

Die Funktion ist auch geschrumpft - falls Du die doch noch in Blockly verwenden willst:
function hex_to_RGB(hex) { var m = hex.match(/^#?([\da-f]{2})([\da-f]{2})([\da-f]{2})$/i); return (parseInt(m[1], 16)).toString() + ',' + (parseInt(m[2], 16)).toString() + ',' + (parseInt(m[3], 16)).toString(); }
und das nächste Mal wäre es natürlich hilfreich, wenn man exakt weiß was rauskommen soll. ;)
-
@denjo Dann stimmt sehr wahrscheinlich an der Eingabe was nicht.
das muss genau 6 Zeichen sein - entweder mit oder ohne #.
Wenn nichts rauskommt - musst mal im Log schauen, ob so was drin steht:
node-red.0 2021-03-14 01:55:14.221 error (2144) 14 Mar 01:55:14 - [error] [function:HEX zu RGB] TypeError: Cannot read property '1' of null node-red.0 2021-03-14 01:53:23.582 error (2144) 14 Mar 01:53:23 - [error] [function:HEX zu RGB] TypeError: Cannot read property '1' of nullFalls man die Eingaben nicht genau so sind, dann wird das viel aufwändiger.
-
@denjo Dann stimmt sehr wahrscheinlich an der Eingabe was nicht.
das muss genau 6 Zeichen sein - entweder mit oder ohne #.
Wenn nichts rauskommt - musst mal im Log schauen, ob so was drin steht:
node-red.0 2021-03-14 01:55:14.221 error (2144) 14 Mar 01:55:14 - [error] [function:HEX zu RGB] TypeError: Cannot read property '1' of null node-red.0 2021-03-14 01:53:23.582 error (2144) 14 Mar 01:53:23 - [error] [function:HEX zu RGB] TypeError: Cannot read property '1' of nullFalls man die Eingaben nicht genau so sind, dann wird das viel aufwändiger.
-
@mickym nein nix, sonst lass ruhig trotzdem danke für deine mühe ich werd ein riesen aufwändiges blockly sonst machen. wird zwar ewig dauern aber geht auch anders
-
und die InNode - auch nochmal checken
Du hast was geschrieben dass Du die nochmal korrigiert hast -
und die InNode - auch nochmal checken
Du hast was geschrieben dass Du die nochmal korrigiert hast -
und die InNode - auch nochmal checken
Du hast was geschrieben dass Du die nochmal korrigiert hast -
@mickym Ja aber ich hab ja nochmal den Flow neu gemacht und da hatte ich doch nicht deine andere InNode - also nochmal anpassen bitte.
-
@denjo Na und hast Du in dem Datenpunkt einen neuen Wert eingegeben?
Und wie gesagt nochmals die Pfade zu dem Datenpunkt prüfen ggf. den Pfad über die Zwischenablage in den Topic reinkopieren.So sieht man dass gar nichts ankommt. In dem In Node muss der Wert aus dem Datenpunkt auftauchen
Hier hst Du vor einer Std. geschrieben, dass du nochwas angepasst hast - aber leider nicht was.
-
@denjo Na und hast Du in dem Datenpunkt einen neuen Wert eingegeben?
Und wie gesagt nochmals die Pfade zu dem Datenpunkt prüfen ggf. den Pfad über die Zwischenablage in den Topic reinkopieren.So sieht man dass gar nichts ankommt. In dem In Node muss der Wert aus dem Datenpunkt auftauchen
Hier hst Du vor einer Std. geschrieben, dass du nochwas angepasst hast - aber leider nicht was.
-
@denjo Dann poste doch nochmal einen Screenshot - dann glaub ich es auch. ;)
War ja holprig - aber Du siehst eigentlich nicht kompliziert. ;) -
@denjo sagte in HEX in RGB Umwandeln?:
hyperion_ng.0.general.control.setColorRGB
So das ist es dann:

[ { "id": "c9bd97db.0bd1c8", "type": "function", "z": "6e170384.60c96c", "name": "HEX zu RGB", "func": "msg.payload=hex_to_RGB(msg.payload)\n\n\nreturn msg;\n\nfunction hex_to_RGB(hex) {\n var m = hex.match(/^#?([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/i);\n return {\n r: parseInt(m[1], 16),\n g: parseInt(m[2], 16),\n b: parseInt(m[3], 16)\n };\n}", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "x": 1410, "y": 3180, "wires": [ [ "62344cad.180284" ] ] }, { "id": "28743d11.362b72", "type": "ioBroker in", "z": "6e170384.60c96c", "name": "", "topic": "javascript.0.hyperionng", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "x": 1140, "y": 3180, "wires": [ [ "c9bd97db.0bd1c8" ] ] }, { "id": "32bd27af.6eff68", "type": "ioBroker out", "z": "6e170384.60c96c", "name": "", "topic": "hyperion_ng.0.general.control.setColorRGB", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 1870, "y": 3180, "wires": [] }, { "id": "62344cad.180284", "type": "json", "z": "6e170384.60c96c", "name": "", "property": "payload", "action": "", "pretty": false, "x": 1590, "y": 3180, "wires": [ [ "32bd27af.6eff68" ] ] } ]Zum Importieren:
- Den Code hier in die Zwischenablage kopieren.
- In Node Red - das Menü mit den 3 Strichen rechts oben öffne und auf Import klicken.
- Inhalt der Zwischenablage in das rosa Fenster
- Auf Import klicken und den Flow plazieren.
- dann auf den roten Deploy Button klicken und das wars.
Test einfach - in dem Du dann in javascript.0.hyperionng den hex-String einträgst und schaust was dann in dem Ausgabepunkt ankommt.
Habs gerade mit eigenen Datenpunkten getestet. Das schaut in meinen Augen gut aus. ;)


