Décodage des valeurs complexes

Dans la documentation du plugin wifilightv2, au sujet de Tuya/Smartlife, il est indiqué ceci : « les périphériques ayant des informations non standard (peut éventuellement être résolu avec un bloc code dans un scénario) ne sont pas gérés. Le plugin ne décode pas les commandes complexes et met alors dans paramètres l’information brute provenant du cloud Tuya ». Est ce que certains ont réussi à décoder des valeurs dont le nom est « phase_a_6_GET » avec une valeur qui est par exemple « CRMAATYAAAI= » ? Sur le site IoT de tuya, il est évoqué cette structure pour ces valeurs

phase a
{
« electricCurrent »: 0.082,
« power »: 0.008,
« voltage »: 232.8
}

Et du coup, je voulais savoir si certains avaient tenté de la décoder ?

Cordialement

William

C’est du json
Récupérer dans un bloc code la donnée, faire un jsdecode. Et renvoyer les 3 valeurs.

J’ai finalement fait cela de cette manière, dans un bloc CODE :

$commande = cmd::byString(‹ #[Energies][Compteur Local Piscine][phase_a_6_GET]# ›)->execCmd();
$scenario->setLog($commande);

$decodedString = base64_decode($commande);

list(, $V) = unpack(« n », substr($decodedString, 0, 3));
list(, $P) = unpack(« n », substr($decodedString, 3, 3));
list(, $I) = unpack(« n », substr($decodedString, 6, 3));

$V = $V / 10;

$commande = cmd::byString(‹ #[Energies][Compteur Local Piscine][Voltage]# ›);
if (is_object($commande)) {
$commande->event($V);
}

$commande = cmd::byString(‹ #[Energies][Compteur Local Piscine][Ampere]# ›);
if (is_object($commande)) {
$commande->event($I);
}

$commande = cmd::byString(‹ #[Energies][Compteur Local Piscine][Puissance]# ›);
if (is_object($commande)) {
$commande->event($P);
}

1 « J'aime »