Re: Transformer un script LUA en DZVETNS
Publié : 23 juil. 2021, 13:46
JE pense que j'ai un problème au niveau du controle de la pompe, j'ai l'impression qu'il compare la longueur des chaines de caractere plutot que le nombre et je ne sais pas comment mettre un "tonumber" comme en LUA
Code : Tout sélectionner
--------------------------------
------ Variables à éditer ------
--------------------------------
local M3 = 4
local M3H = 3
local duree_cycle = tonumber(M3)/tonumber(M3H)*60 --M3 piscine / débit M3 pompe *60
local C01=0.1*duree_cycle -- si <10°
local C02=0.5*duree_cycle -- si 10-14°
local C03=1*duree_cycle -- si 15-20°
local C04=2*duree_cycle -- si 20-28°
local C05=3*duree_cycle -- si >28°
local H_Raz = 10 -- Heure de remise à zéro du compteur.
local scriptName = 'Script_PISCINE_DZVENT'
local scriptVersion = '1.0'
local newValue = value
local counterDivider = 1 -- x is depending on the counter divider set for the device
---------------------------------------------------------------------------------------------------------------------------------------------
-----*****************EN TEST************ VARIABLE *****************EN TEST************---------------------------
---------------------------------------------------------------------------------------------------------------------------------------------
--local T_eau=domoticz.devices('Sortie_piscine').temperature()
return {
on = {
timer = {
'every 10 minutes at 10:30-22:00',
}
--devices = { 340 }
},
-- custom logging level for this script
logging = {
--level = domoticz.LOG_DEBUG,
level = domoticz.LOG_INFO, -- Seulement un niveau peut être actif; commenter les autres
-- level = domoticz.LOG_ERROR, -- Only one level can be active; comment others
-- level = domoticz.LOG_MODULE_EXEC_INFO,
marker = scriptName..' v'..scriptVersion
},
execute = function(domoticz, item)
---------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------calcul du temps de filtration en fonction de la temperature-------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
if (domoticz.devices('Sortie_piscine').temperature) < 10 then
domoticz.variables('Var_Piscine_bes').set(C01)
----------------------------------------------------------------------------------------------------------
elseif (domoticz.devices('Sortie_piscine').temperature) >= 10 and (domoticz.devices('Sortie_piscine').temperature) < 14 then
domoticz.variables('Var_Piscine_bes').set(C02)
----------------------------------------------------------------------------------------------------------
elseif (domoticz.devices('Sortie_piscine').temperature) >= 14 and (domoticz.devices('Sortie_piscine').temperature) < 20 then
domoticz.variables('Var_Piscine_bes').set(C03)
----------------------------------------------------------------------------------------------------------
elseif (domoticz.devices('Sortie_piscine').temperature) >= 20 and (domoticz.devices('Sortie_piscine').temperature) < 28 then
domoticz.variables('Var_Piscine_bes').set(C04)
----------------------------------------------------------------------------------------------------------
elseif (domoticz.devices('Sortie_piscine').temperature) >= 28 then
domoticz.variables('Var_Piscine_bes').set(C05)
----------------------------------------------------------------------------------------------------------
end
---------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------commande de la pompe-------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------
if domoticz.devices('Pompe mode manu').state == 'Off' then
domoticz.log ('************************************************************')
domoticz.log ('*********************Mode Manu désactivé********************')
domoticz.log ('************************************************************')
if (domoticz.variables('Var_Piscine_bes').value > domoticz.variables('Var_Piscine_tmp').value) then
domoticz.devices('Filtration piscine').switchOn().forMin(5)
domoticz.log ('************************************************************')
domoticz.log ('**************************POMPE_ON**************************')
domoticz.log ('************************************************************')
else
domoticz.devices('Filtration piscine').switchOff()
domoticz.log ('************************************************************')
domoticz.log ('***********************POMPE_OFF****************************')
domoticz.log ('************************************************************')
end
else
domoticz.log ('************************************************************')
domoticz.log ('*********************Mode Manu activé***********************')
domoticz.log ('************************************************************')
end
---------------------------------------------------------------------------------------------------------------------------------------------
-----*****************EN TEST************ Remise à zero du compteur quotidien *****************EN TEST************---------------------------
---------------------------------------------------------------------------------------------------------------------------------------------
if (os.date('%H',time) == (H_Raz)) then
domoticz.log ('RAZ Compteur', domoticz.LOG_INFO)
local valeur = 0
local variable = domoticz.variables('Var_Piscine_tmp')
variable.set(valeur);
end
---------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------Affichage de controle dans le LOG------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
domoticz.log ('************************************************************')
domoticz.log ('******** Valeur du scenario 1 -> '..C01..' si <10° ***************')
domoticz.log ('******** Valeur du scenario 2 -> '..C02..' si 10-14° ************')
domoticz.log ('******** Valeur du scenario 3 -> '..C03..' si 15-20° ************')
domoticz.log ('******** Valeur du scenario 4 -> '..C04..' si 20-28° ***********')
domoticz.log ('******** Valeur du scenario 5 -> '..C05..' si >28° *************')
domoticz.log ('************************************************************')
domoticz.log ('************************* ' ..os.date('%H'..'h'..'%M',time)..'*****************************')
domoticz.log ('************************************************************')
domoticz.log ('******** Besoin.: '..domoticz.variables('Var_Piscine_bes').value..' mn *********************************')
domoticz.log ('******** Réalisé: '..domoticz.variables('Var_Piscine_tmp').value..' mn *********************************')
domoticz.log ('******** Reste..: '..domoticz.variables('Var_Piscine_bes').value - domoticz.variables('Var_Piscine_tmp').value..' mn **********************************')
domoticz.log ('******** '..domoticz.devices('Sortie_piscine').temperature..' Sortie *****************************')
domoticz.log ('******** '..domoticz.devices('Entree_piscine').temperature..' Entrée *****************************')
domoticz.log ('************************************************************')
domoticz.log ('************************************************************')
end
}