Bonjour,
Un petit retour sur l’intégration du module Tuya Wifi compteur d’énergie bidirectionnel double « WIFI Dual Meter », modéle PJ1103A qu’on peut trouver facilement notamment chez AliExpress pour une vingtaine d’euros
Tuya Zigequation-Compteur d’énergie intelligent, compteur de surveillance bidirectionnel, Andrea Control avec CT
Ce module est non-intrusif et bidirectionnel, donc intéressant dans le cas d’utilisation avec des panneaux solaires, il peut mesurer les énergies consommées et aussi injectées dans le réseau.
Il faut tout d’abord intégrer le module avec l’application Tuya Smart et verifier que tout est opérationnel.
Ensuite, personnellement j’ai utilisé le tuto dont le lien est fourni dans la doc de bernardfr.caron, créateur du plugin WiFiLightV2.
Ce tuto (en anglais) permet de récupérer l’Id et la localKey de l’équipement ainsi l’Access Id et l’Access Secret.
A noter que pour créer le compte developpeur sur le site Tuya loT Development Platform, je ne recevais pas le « verification code », j’ai du utiliser une adresse email en gmail.com, les emails en sfr.fr ou même en hotmail.com ne fonctionnant pas.
On renseigne alors l’Access Id et l’Access Secret dans la configuration du plugin WiFiLightV2, on sauvegarde.
Ensuite, on crée un équipement WiFiLigthV2 :
-on renseigne l’adresse IP du module, adresse qu’on aura eu soin de rendre fixe à l’aide de son DHCP au niveau de la box internet ou du routeur, selon le cas,
-on positionne le champ « Marque ou type de périphérique » à « Tuya Smart Life fw 3.4 »,
-on sauvegade.
Ensuite au niveau du plugin, on lance « Tuya passer en inclusion ». Le module est alors reconnu par le plugin.
Quelques commandes sont alors créées, dont une commande action « stateGet » permettant de lancer une demande de lecture, mais on ne retrouve pas toutes les informations fournies par le module telles qu’on peut les voir dans l’application Tuya Smart.
Heureusement, en cherchant un peu au niveau du site Tuya loT Development Platform (Cloud, IoTCore) on peut trouver les informations nécessaires pour interfacer toutes les commandes.
Les voici :
<json>{
"result": {
"properties": [
{
"code": "forward_energy_total",
"custom_name": "",
"dp_id": 1,
"time": 1698790886187,
"value": 24
},
{
"code": "reverse_energy_total",
"custom_name": "",
"dp_id": 2,
"time": 1698789745079,
"value": 18
},
{
"code": "power_a",
"custom_name": "",
"dp_id": 101,
"time": 1698790874868,
"value": 0
},
{
"code": "direction_a",
"custom_name": "",
"dp_id": 102,
"time": 1698789802199,
"value": "FORWARD"
},
{
"code": "tbd",
"custom_name": "",
"dp_id": 103,
"time": 1698660520654,
"value": false
},
{
"code": "direction_b",
"custom_name": "",
"dp_id": 104,
"time": 1698789802364,
"value": "FORWARD"
},
{
"code": "power_b",
"custom_name": "",
"dp_id": 105,
"time": 1698790874920,
"value": 0
},
{
"code": "energy_forword_a",
"custom_name": "",
"dp_id": 106,
"time": 1698790886200,
"value": 10
},
{
"code": "energy_reverse_a",
"custom_name": "",
"dp_id": 107,
"time": 1698789745079,
"value": 18
},
{
"code": "energy_forword_b",
"custom_name": "",
"dp_id": 108,
"time": 1698790886209,
"value": 14
},
{
"code": "energy_reserse_b",
"custom_name": "",
"dp_id": 109,
"time": 1698789745079,
"value": 0
},
{
"code": "power_factor",
"custom_name": "",
"dp_id": 110,
"time": 1698790874880,
"value": 100
},
{
"code": "freq",
"custom_name": "",
"dp_id": 111,
"time": 1698791902592,
"value": 4926
},
{
"code": "voltage_a",
"custom_name": "",
"dp_id": 112,
"time": 1698791902494,
"value": 2452
},
{
"code": "current_a",
"custom_name": "",
"dp_id": 113,
"time": 1698790874855,
"value": 0
},
{
"code": "current_b",
"custom_name": "",
"dp_id": 114,
"time": 1698790874907,
"value": 0
},
{
"code": "total_power",
"custom_name": "",
"dp_id": 115,
"time": 1698790874893,
"value": 0
},
{
"code": "voltage_coef",
"custom_name": "",
"dp_id": 116,
"time": 1698789742634,
"value": 1000
},
{
"code": "current_a_calibration",
"custom_name": "",
"dp_id": 117,
"time": 1698789867094,
"value": 1133
},
{
"code": "power_a_calibration",
"custom_name": "",
"dp_id": 118,
"time": 1698789822821,
"value": 1170
},
{
"code": "energy_a_calibration_fwd",
"custom_name": "",
"dp_id": 119,
"time": 1698789742745,
"value": 1000
},
{
"code": "coef_a_reset",
"custom_name": "",
"dp_id": 120,
"time": 1698660520654,
"value": false
},
{
"code": "power_factor_b",
"custom_name": "",
"dp_id": 121,
"time": 1698790874934,
"value": 100
},
{
"code": "freq_calibration",
"custom_name": "",
"dp_id": 122,
"time": 1698789742641,
"value": 1000
},
{
"code": "current_b_calibration",
"custom_name": "",
"dp_id": 123,
"time": 1698789742790,
"value": 1000
},
{
"code": "power_b_calibration",
"custom_name": "",
"dp_id": 124,
"time": 1698789742792,
"value": 1000
},
{
"code": "energy_b_calibration_fwd",
"custom_name": "",
"dp_id": 125,
"time": 1698789742794,
"value": 1000
},
{
"code": "coef_b_reset",
"custom_name": "",
"dp_id": 126,
"time": 1698660520654,
"value": false
},
{
"code": "energy_a_calibration_rev",
"custom_name": "",
"dp_id": 127,
"time": 1698789742754,
"value": 1000
},
{
"code": "energy_b_calibration_rev",
"custom_name": "",
"dp_id": 128,
"time": 1698789745079,
"value": 1000
},
{
"code": "report_rate_control",
"custom_name": "",
"dp_id": 129,
"time": 1698789745079,
"value": 10
}
]
},
"success": true,
"t": 1698791911308,
"tid": ""
}
Il suffit alors d’implémenter toutes les commandes info dont on a besoin avec leurs noms et leurs dps.
En revanche, je n’ai pas trouvé de commandes actions permettant de remettre à zéro les valeurs des commandes info donnant les energies, forward_energy_total, reverse_energy_total, forward_energy_a et b, reverse_energy_a et b, ce qui serait bien pratique, on ne peut d’ailleurs pas le faire au niveau de l’appli Tuya Smart.
A noter que ce type de module permet de calibrer les différents capteurs. La calibration doit se faire avec une charge purement résistive (facteur de puissance = 1), un radiateur électrique sans électronique ou mieux un simple grille-pain. Avec un multimètre, on mesure la tension secteur, la résistance (hors tension !), on en déduit l’intensité (I=U/R), la puissance consommée (P=U²/R) et on calibre dans l’application Tuya Smart.
Edit: Il est impossible d’obtenir le champ « unité » dans les commandes info ajoutées manuellement, même en changeant de widget d’affichage, le champ unité n’apparait pas… Si quelqu’un a une solution ?