J'ai commencé par créer une variable globale énumérée que j'ai nommé scale_Rain avec pour valeurs 1day, 1hour et max car je voulais pourvoir choisir quel cumul le module afficherait sans avoir à retourner dans le code. Au passage il est dommage que l'on ne puisse pas créer de variable énumérée directement dans l'onglet variables du QA.
Ensuite j'ai apporté quelques modifications à la fonction ci dessous:
function QuickApp:getNetatmoMeasurements(token)
-- self:debug("Call GetMeasurements with token: "..token)
for module_id,module in pairs(self.devicesMap) do
local device_id = module.device_id
local measurements = {}
local childs = {}
for data_type,hcID in pairs(module.devices_map) do
if (hcID > 0) then
child = self.childDevices[hcID]
if (data_type == "Wind") then data_type = "WindStrength" end
if (data_type == "Rain") then data_type = "sum_rain" end -- ligne ajoutée pour le cumul de pluie
table.insert(measurements, data_type)
table.insert(childs, hcID)
end
end
self:debug("Get measurements "..json.encode(measurements).." from device/module: "..device_id.."/"..module_id.."; hcIDs: "..json.encode(childs))
local dataloc = measurements[1] -- ligne ajoutée pour le cumul de pluie
local scale -- ligne ajoutée pour le cumul de pluie
local scale_rain = fibaro.getGlobalVariable("scale_Rain") -- ligne ajoutée pour le cumul de pluie
if dataloc == "sum_rain" then scale = scale_rain else scale = "max" end-- ligne ajoutée pour le cumul de pluie
request_body = "access_token="..token.."&device_id="..device_id.."&module_id="..module_id.."&scale="..scale.."&type="..json.encode(measurements).."&date_end=last"-- ligne modifiée pour le cumul de pluie