je dispose de pinces antiques CurrentCost qui me donnent la puissance instantanée, et je peux également comparer avec ce que me donne Enedis par le Linky.
Pinces CurrentCost -> senseur virtuel "Electrique (instantané+Compteur)"
Linky -> plugin Linky
Je lis mes pinces sur un Pi dédié, et j'envoie les valeurs par URL (en gros toutes les 6 secondes).
http://192.168.0.3:8080/json.htm?type=c ... IS_pince;0
(avec IDX_pince et PUIS_pince variables)
En comparant mes courbes de puissance instantanée, c'est en gros pareil.
Par contre, en comparant mes valeurs d'énergie consommée, c'est très différent, et surtout quand la puissance est faible.
Les valeurs d'Enedis sont évidement correctes
Les valeurs d'énergie consommée de mes pinces sont calculées par Domoticz ("Energy read : Computed").
Pour vérifier ce problème, j'ai créé quatre nouveaux senseurs, en envoyant toutes les 6 secondes des valeurs constantes.
Après une heure :
10W -> le compteur de kWh ne bouge pas et reste à 0.000 kWh
100W -> le compteur de kWh est bien à 0.100 kWh
1000W -> le compteur de kWh est bien à 1.000 kWh
10000W -> le compteur de kWh est bien à 10.000 kWh
Changement d'échelle :
20W -> le compteur de kWh ne bouge pas et reste à 0.000 kWh
30W -> le compteur de kWh monte
40W -> le compteur de kWh monte (même valeur que pour 30W)
50W -> le compteur de kWh monte (même valeur que pour 30W)
Dans SQLHelper.cpp, je vois le calcul :
float energyDuringInterval = static_cast<float>(powerDuringInterval * intervalSeconds / 3600);
float energyAfterInterval = static_cast<float>(energyUpToInterval + energyDuringInterval);
(comme pour le test, on commence à 0, energyUpToInterval = 0)
Ce qui donne pour 20W et 6s : 20*6/3600 = 0.033Wh et pour 30W : 30*6/3600 = 0.050Wh
Plus loin, on trouve :
sprintf(sValueUpdate, "%s;%.1f", powerUpdate, energyAfterInterval);
Ha ! Donc si energyAfterInterval < 0.050, le %.1f nous ramène à 0.
Ne pourrait on pas stocker dans la base une valeur un peu plus précise ?
Tout ce qui est en dessous de 30W pendant 6s n'est pas vu, et la précision minimum est de 60W.
Si on veut une précision au W, il faut faire une mesure toutes les 6 minutes (360s pour avoir 1*360/3600 = 0.1Wh).