Fonction hex2rgb ou autre

Bonjour à tous,
Dans mon intégration de NSpanel, je souhaite transformer une information couleur Hex en RGB, je parcours le forum mais n’arrive pas à un résultat.
J’ai trouvé la fonction hex2rgb, que j’essaye d’appliquer de la sorte dans un virtuel :

hex2rgb(#[Tasmota][Strip Led RGB salon][Etat Color]#)

Cette info (#[Tasmota][Strip Led RGB salon][Etat Color]#) à pour valeur:

#f8cc00

Mais apparement je rate quelque chose… :sweat_smile:
quand je teste également:

hex2rgb(#f8cc00)

Dans le testeur d’expression, ça marche pas non plus!!!

Est-ce qu’une âme charitable pourrait m’aider à avancer sur mon besoin???

J’ai vu cette solution, mais j’avoue ne comprendre son fonctionnement…
Quel serait le déclencheur du scénario, à quoi correspond le ‹ 122436 ›, ou serait publié le résultat,… pourrais-tu m’en dire un peu plus stp?

Bien lire l’ensemble du fil.
le 122436 est juste un exemple de valeur à transposer.

Franchement, je vois pas…

Bonsoir,

normale la fonction renvoie un tableau (array) contenant r, g et b.
Tu ne peut pas exploiter cette fonction directement dans un équipement.

Il te faut créer un scénario qui fera la transformation entre hex et rgb.

le déclencheur serait la commande « info » qui contient la valeur en hex.

122436 c’est un exemple de couleur hex. comme #122436, #ffffff
la fonction accepte les 2 formats : #122436 ou 122436. (sans le #)

ca c’est a toi de nous le dire, tu peut utiliser une autre info « Autre » dans un virtuel et de part le scenario faire un « event » sur celle-ci … ou publier direct avec jmqtt si c’est le protocole utilisé, mais sans connaitre le protocole et le format, et la raison de la conversion …

Bonne soirée.

1 « J'aime »

Les explications d’un jeedomien (hors community) avec qui je partage régulièrement m’ont permis d’appréhender le bloc code. J’ai maintenant mon résultat et une découverte du bloc code, qui va encore ouvrir des portes à mon jeedom. Merci Laurent :stuck_out_tongue_winking_eye:
Pour ceux que ça intéresse, je partage ce code:

$value = cmd::byString('#[Votre source info hex]#')->execCmd();
$_rgb = hex2rgb($value);

$scenario->setLog(var_export($_rgb,true));
cmd::byString('#[Votre info de type autre dans un virtuel pour ma part]#')->event(var_export($_rgb,true));

$scenario->setLog('r=' . $_rgb[0]);
$scenario->setLog('g=' . $_rgb[1]);
$scenario->setLog('b=' . $_rgb[2]);

cmd::byString('#[Votre info numérique R dans un virtuel pour ma part]#')->event($_rgb[0]);
cmd::byString('#[Votre info numérique G dans un virtuel pour ma part]#')->event($_rgb[1]);
cmd::byString('#[Votre info numérique B dans un virtuel pour ma part]#')->event($_rgb[2]);

Bien entendu, remplacer par vos infos mes indications en rouge.
Les 4 parties ‹ $scenario › peuvent être supprimé du code, car ne servent qu’a écrire dans la log du scénario…

Voici un exemple pour une commande action "couleur" dans le #plugin-jmqtt sans avoir besoin de bloc code.

{"mode":"color","red":hexdec(substr(#color#,1,2)),"green":hexdec(substr(#color#,3,2)),"blue":hexdec(substr(#color#,5,2))}

Source : Shelly colorbulb RGBW + jmqtt

Je teste demain, car ça simplifierait😉

1 « J'aime »

mais c est avec plaisir lychar460
entre jeedomien ont est la pour s aider.
tu m avais aidé pour le flash du nspanel

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.