Comment faire ça simplement ?
Merci
Code : Tout sélectionner
--valeur en seconde
-a diviser par 60 pour l'obtenir en minute
-à diviser par 3600 pour l'avoir en heure
function lastUpdate(device)
--timestamp = otherdevices_lastupdate[device] or device
timestamp = otherdevices_lastupdate[device] or uservariables_lastupdate[device] or device
y, m, d, H, M, S = timestamp:match("(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)")
difference = os.difftime(os.time(), os.time{year=y, month=m, day=d, hour=H, min=M, sec=S})
return difference
end
if (devicechanged['compteur_incrementiel']) then
energie_instantanee = otherdevices_svalues['compteur_incrementiel'] --valeur de ton compteur incrémental (en kwh)
ex_energie_instantanee = uservariables['ex_energie_instantanee'] --valeur de ton ancienne mesure depuis la variable
difference = lastUpdate(uservariables['ex_energie_instantanee']) --temps entre maintenant et la valeur précédente
energie_instantanee = (energie_instantanee - ex_energie_instantanee) / difference
commandArray[#commandArray + 1] = {['Variable:ex_energie_instantanee'] = energie_instantanee} --mise a jour de la variable
--
--mise à jour de ton compteur d’énergie instantanée
--
endCode : Tout sélectionner
{
"ActTime" : 1570465987,
"AstrTwilightEnd" : "21:05",
"AstrTwilightStart" : "06:16",
"CivTwilightEnd" : "19:52",
"CivTwilightStart" : "07:29",
"DayLength" : "11:20",
"NautTwilightEnd" : "20:28",
"NautTwilightStart" : "06:53",
"ServerTime" : "2019-10-07 18:33:07",
"SunAtSouth" : "13:41",
"Sunrise" : "08:01",
"Sunset" : "19:20",
"app_version" : "4.10726",
"result" : [
{
"AddjMulti" : 1.0,
"AddjMulti2" : 1.0,
"AddjValue" : 0.0,
"AddjValue2" : 2000.0,
"BatteryLevel" : 255,
"Counter" : "14.018 kWh",
"CounterToday" : "0.006 kWh",
"CustomImage" : 0,
"Data" : "14.018 kWh",
"Description" : "",
"Favorite" : 0,
"HardwareID" : 3,
"HardwareName" : "Modules Wifi",
"HardwareType" : "Dummy (Does nothing, use for virtual switches only)",
"HardwareTypeVal" : 15,
"HaveTimeout" : false,
"ID" : "82200",
"LastUpdate" : "2019-10-07 18:33:06",
"Name" : "ZOE",
"Notifications" : "false",
"PlanID" : "0",
"PlanIDs" : [ 0 ],
"Protected" : false,
"ShowNotifications" : true,
"SignalLevel" : 9,
"SubType" : "Counter Incremental",
"SwitchTypeVal" : 0,
"Timers" : "false",
"Type" : "General",
"TypeImg" : "counter",
"Unit" : 1,
"Used" : 1,
"ValueQuantity" : "",
"ValueUnits" : "",
"XOffset" : "0",
"YOffset" : "0",
"idx" : "200"
}
],
"status" : "OK",
"title" : "Devices"
}Les 2 mon capitainegetget a écrit : 07 oct. 2019, 18:39 Comment je peux savoir si la valeur otherdevices_svalues['compteur_incrementiel'] renvoie la valeur du compteur TOTAL ou la valeur incrémentée ?
Code : Tout sélectionner
p1, p2 = string.match(otherdevices_svalues['compteur_incrementiel'], '(%d+.%d*);(%d+.%d*)')
print(p1..'-'..p2)getget a écrit : 07 oct. 2019, 20:46 Merci ou as tu trouvé les infos sur ce qui est renvoyé par le capteur ?
Tu peux également essayer ceciLe script ~ / domoticz / scripts / lua / script_device_owl_log.lua est activé chaque fois que le compteur d’énergie Owl transmet un nouvel ensemble de lectures actuelles.
Les scripts lisent l’ancienne énergie cumulative de chacun des 5 canaux des compteurs d’énergie factices.
Les courants du dispositif Owl sont ensuite convertis en puissance instantanée en multipliant par la tension fixe et le temps écoulé depuis la dernière mise à jour est également renvoyé. En multipliant le temps écoulé depuis la dernière mise à jour par la puissance instantanée, on obtient l'énergie utilisée depuis la dernière accumulation. L'énergie totale peut maintenant être calculée en ajoutant la nouvelle énergie à l'ancienne. La puissance instantanée et l'énergie cumulative sont ensuite renvoyées à Domoticz.
Code : Tout sélectionner
print(string.match(otherdevices_svalues['compteur_incrementiel'], "%d+%.*%d*"))