Bonjour Charles.
Actuellement : Pour avoir le retour de Wifinfo dans Domoticz, Il cree un "Dummy" Electricity P1 smart meter : c'est un compteur inteligent qui accepte : consommation sur 2 tarif, production sur 2 tarif, conso actuel + production actuel
Plus d'info sur l'API Json de Domoticz pour ce type de compteur :
https://www.domoticz.com/wiki/Domoticz_API/JSON_URL's#Electricity_P1_smart_meter
Idx n'est pas l'ACDO, mais le numero de Device dans la base de Domoticz.
Ci dessous le script que j'utilise :
var http = require("http");
function handleWifInfo(d)
{
console.log("handle d : " + d);
var obj = JSON.parse(d);
var opt = buildGetObject("127.0.0.1", "/json.htm", 8080);
opt.path += "?type=command¶m=udevice&idx=41&nvalue=0";
opt.path += "&svalue=" + obj.HCHP + ";";
opt.path += obj.HCHC + ";0;0;";
opt.path += obj.PAPP + ";0";
console.log("path to call : " + opt.path);
httpGet(opt);
}
function buildGetObject(hostname, path, port)
{
var obj = { };
obj.hostname = hostname;
obj.port = (port == undefined) ? 80 : port;
obj.path = path;
obj.method = "GET";
return obj;
}
function httpGet(opt, func)
{
var datas = "";
var req = http.request(opt, function(res)
{
// Gère les morceaux de réponse.
res.on("data", function(buffer)
{
console.log("data received");
datas += buffer;
});
// Gère le traitement final si besoin.
res.on("end", function()
{
console.log("end of http request");
console.log("func is " + ((func == undefined) ? "undefined" : "defined"));
if (func != undefined)
func(datas);
});
res.on("error", function(e)
{
console.log("Error : " + e.message);
});
});
req.end();
}
var opt = buildGetObject("192.168.0.35", "/json");
httpGet(opt, handleWifInfo);
Ou idx=41 : 41 = le numero de device dans ma base Domoticz.
192.168.0.35 = ip de Wifinfo
127.0.0.1:8080 : l'adresse de mon domoticz, ce script etant executer toutes les 5 minutes de mon serveur
IL faut penser au fait que beaucoup on des nom d'utilisateurs et des mots de passe associé :
du coup l'url pour mettre a jour le compteur va etre : http://username:password@domoticz-ip<:port>/json.htm?type=command¶m=udevice&idx=IDX&nvalue=0&svalue=USAGE1;USAGE2;RETURN1;RETURN2;CONS;PROD
Comme tu le vois dans le code du parser, si pas de production d'elec : mettre les valeurs a 0
Si dessous le Json de mon Wifinfo HP/HC :
{
_UPTIME: 16674,
ADCO: 29922105039,
OPTARIF: "HC..",
HCHC: 34245564,
HCHP: 76018836,
PTEC: "HC..",
IINST: 5,
IMAX: 43,
PAPP: 1160,
HHPHC: "A",
MOTDETAT: 0,
ISOUPAPP: 580,
ISOUSC: "45PAPP"
}```
esperant avoir aidé.