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…
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?
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 …
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
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…