Bonjour,
J’ai reçu un compteur d’énergie EAI-90 (identique au ZMAi-90), comme j’ai du chercher pas mal pour pouvoir m’en servir, je mets ci dessous les principales infos pour l’intégrer à Jeedom:
Comme ca fonctionne avec Smart Life, l’intégrer dans Jeedom avec le pluging WifilightV2, utilisant le Type de périph « Tuya Smart Life compatible V3 », Sous-type « Personnalisé ».
Remplir le LocalKey et devId avec la méthode habituelle.
Les dps sont: (https://github.com/rospogrigio/localtuya/issues/310)
1: à diviser par 100 pour avoir le cumul en kWh
6: info regroupant les valeurs instantanées de tension, intensité et puissance, voir plus bas
10: défaut (code ? binaire ?)
12: inconnu
13: inconnu
16: controle de relais électromécanique intégré
17: seuils d’alarme, codage inconnu (probablement à déterminer avec le principe de codage du dps 6)
Le dps 6 regroupe la tension, l’intensité et la puissance en base64:
16 premiers bits: tension (V, x10)
24 bits suivants: intensité (mA)
24 bits suivants: puissance (W)
Pour afficher cela dans Jeedom:
- créer un scénario, insérer un bloc code et y copier:
$string = cmd::byString('#[Garage][Compteur denergie][V_I_P_dps_6]#')->execCmd();
//Conversion de base64 en une chaine de bits
$string_bin = base_convert(bin2hex(base64_decode($string)),16,2);
echo 'string bin: '.$string_bin;
//Mise à jour de la tension (les premiers bits hors les 48 derniers (car les premiers 0 ont été supprimés!)
$tension_bin= substr($string_bin,0,strlen($string_bin)-48);
$tension = bindec($tension_bin)/10;
echo 'Tension: '.$tension.' V';
cmd::byString('#[Garage][Energy Meter][Tension]#')->event($tension);
// Mise à jour de l'intensité: (les 24 bits suivants)
$intensite_bin = substr($string_bin,strlen($string_bin)-48,24);
$intensite = bindec($intensite_bin)/1000;
echo ' - Intensité: '.$intensite.' A';
cmd::byString('#[Garage][Energy Meter][Intensité]#')->event($intensite);
// Mise à jour de la puissance: (les 24 bits suivants)
$puissance_bin = substr($string_bin,strlen($string_bin)-24,24);
$puissance = bindec($puissance_bin);
echo ' - Puissance: '.$puissance.' W';
cmd::byString('#[Garage][Energy Meter][Puissance]#')->event($puissance);
// Mise à jour de la conso totale
$conso = cmd::byString('#[Garage][Compteur denergie][Total_NRJ_dps1]#')->execCmd();
$conso = $conso/100;
echo ' - Conso: '.$conso.' kWh';
cmd::byString('#[Garage][Energy Meter][Conso_Total]#')->event($conso);
#[Garage][Compteur denergie][V_I_P_dps_6]# : c’est là qu’est récupéré le dps6 (« Compteur denergie » est l’équipement WifilightV2)
#[Garage][Energy Meter][****]# sont des infos dans un virtuel qui permet de collecter les 4 info (puissance, tension, intensité, conso totale) (« Energy Meter » est le nom du Virtuel)
Le scénario est du type provoqué, sur changement de #[Garage][Compteur denergie][V_I_P_dps_6]#.