Après m'être fait les dents en LUA j'aimerais transformer mon script en Dzvents. Je n'ai pas vraiment trouvé de tuto ou de doc compréhensible (je suis débutant)pour le faire, avez-vous un site, des conseils à me donner ou un peu de temps pour m'aider ?
Code : Tout sélectionner
--------------------------------
------ Variables à éditer ------
--------------------------------
local user_var = 'Pompe Piscine' -- Nom de la variable utilisateur (uservariable)utilisé pour mémoriser la valeur en minutes dans Domoticz (Domoticz-->configuration-->plus d'options-->variables utilisateurs).
local switch = 'Filtration piscine' -- Nom de l'interrupteur virtuel de la pompe dans Domoticz
local Heure_Besoin = 'Besoin_filtration' --Durée de filtration requise en fonctione de la temperature
local ModeMnu = 'Pompe mode manu'--interrupteur
local counter_txt = 345 -- Numéro idx du capteur virtuel texte "Durée filtration"
local besoin_txt = 344 -- Numéro idx du capteur virtuel texte "Besoin_filtration"
local Dur_fonct_quot = 353
local Heure_Raz = 10 -- Heure de remise à zéro du compteur.
local duree_cycle = 80 --M3 piscine / débit M3 pompe *60
local T_eau=tonumber((otherdevices_svalues['Sortie_piscine']))
--T_eau=tonumber(T_eau)
local T_eau_chaude=tonumber((otherdevices_svalues['Entree_piscine']))
--T_eau_chaude=tonumber(T_eau_chaude)
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°
--------------------------------
-- Fin des variables à éditer --
--------------------------------
local scriptName = 'Cyclage_Filtration'
local scriptVersion = '0.1'
print "---------------------------------------------------------------------------------------------------"
print "--------------------Calcul du temps de fonctionnement quotidien -----------------------------------"
commandArray = {}
time=os.time()
local minutes = tonumber(os.date('%M',time))
local hours = tonumber(os.date('%H',time))
local NowInMinutes = (hours * 60 + minutes)
local h_min = (Heure_Raz * 60)
if (T_eau) > 50 then print("===Calcul du temps de cycle===")
----------------------------------------------------------------------------------------------------------
elseif (T_eau) < 10 then
commandArray['Variable:Besoin_filtration'] = tostring (C01)
----------------------------------------------------------------------------------------------------------
elseif (T_eau) >= 10 and (T_eau) < 14 then
commandArray['Variable:Besoin_filtration'] = tostring (C02)
----------------------------------------------------------------------------------------------------------
elseif (T_eau) >= 14 and (T_eau) < 20 then
commandArray['Variable:Besoin_filtration'] = tostring (C03)
----------------------------------------------------------------------------------------------------------
elseif (T_eau) >= 20 and (T_eau) < 28 then
commandArray['Variable:Besoin_filtration'] = tostring (C04)
----------------------------------------------------------------------------------------------------------
elseif (T_eau) >= 28 then
commandArray['Variable:Besoin_filtration'] = tostring (C05)
----------------------------------------------------------------------------------------------------------
end
print "----------------------------------------------------------------------------------------------------"
print("Valeur du scenario 1 -> "..C01.." si <10° ")
print("Valeur du scenario 2 -> "..C02.." si 10-14° ")
print("Valeur du scenario 3 -> "..C03.." si 15-20° ")
print("Valeur du scenario 4 -> "..C04.." si 20-28° ")
print("Valeur du scenario 5 -> "..C05.." si >28° ")
print "----------------------------------------------------------------------------------------------------"
print("Température "..T_eau.." O->")
print("Température "..T_eau_chaude.." ->O")
print "----------------------------------------------------------------------------------------------------"
print(uservariables['Besoin_filtration'].." <- Valeur de la variable user 'Besoin_filtration'")
print(uservariables['Pompe Piscine'].." <- Durée de filtration du jour")
print "----------------------------------------------------------------------------------------------------"
print "Incrémentation du compteur de filtration 'Pompe Piscine'------------------------------------------------"
print "----------------------------------------------------------------------------------------------------"
if (otherdevices[switch]=='On') then
commandArray['Variable:'..user_var] = tostring(uservariables[user_var] +1)--Lecture user variable et enregistrement et incrementation
Valeur_Compteur = tostring(uservariables[user_var]) --Lecture de la variable temporaire
Valeur_Besoin = (uservariables[Heure_Besoin]) --Lecture de la variable temporaire
Valeur_Compteur_txt = tostring("0"..math.floor((Valeur_Compteur/60)).. "h"..math.floor(Valeur_Compteur-(math.floor((Valeur_Compteur/60))*60)).." Heure de raz "..(Heure_Raz).."h00".."")--Calcul et enregistrement dans valeur tempo txt + formatage
Valeur_Besoin_txt = tostring("0"..math.floor((Valeur_Besoin/60)).. "h"..math.floor(Valeur_Besoin-(math.floor((Valeur_Besoin/60))*60)).. "")--Calcul et enregistrement dans valeur tempo txt + formatage
commandArray[1] = {['UpdateDevice'] = besoin_txt ..'|0|'.. Valeur_Besoin_txt} --Enregistrement dans Compteur Txt
commandArray[2] = {['UpdateDevice'] = counter_txt ..'|0|'.. Valeur_Compteur_txt} --Enregistrement dans Compteur Txt
end
-------------------test log duree temp dans variable--------------------------------
if ((NowInMinutes > h_min) and (NowInMinutes < h_min)) then --ecriture de la valeur si heure de RAZ.
commandArray['Variable:Durée fonctionnement quotidien'] = tostring(uservariables[user_var])
commandArray['UpdateDevice'] = Dur_fonct_quot .. '|0|' .. tostring(uservariables[user_var].." Minutes / Durée de filtration J-1 MàJ : "..(Heure_Raz).."h00".."")
print("*****Log Durée de filtration avant réinitialisation***** "..'Variable:Durée fonctionnement quotidien')
--commandArray['UpdateDevice'] = Dur_fonct_quot .. '|0|' .. tostring("0"..math.floor((uservariables[user_var]/60)).. "h"..math.floor(uservariables[user_var]-(math.floor((uservariables[user_var]/60))*60)).." raz "..(Heure_Raz).."h00".."")
end
-------------------fin du test-------------------------------------------------------
if ((NowInMinutes > h_min) and (NowInMinutes < (h_min + 10))) then--RAZ journalier à l'heure voulu.
commandArray['Variable:'..user_var]= tostring(0)
Valeur_Compteur_txt = tostring("0H:0Mn")
commandArray['UpdateDevice'] = counter_txt .. '|0|' .. Valeur_Compteur_txt
print('RAZ de la durée de filtration')
end
--if (otherdevices['ModeManu']=='Off') then
print('interrrupteur')
if tonumber(uservariables[user_var]) > tonumber(uservariables[Heure_Besoin])then
commandArray[switch] ='Off'
print("*****Pompe OFF "..(switch))
--elseif otherdevices['switch']== 'Off' and tonumber(uservariables[user_var]) < tonumber(uservariables[Heure_Besoin]) or (T_eau) < (T_eau_chaude)then
elseif tonumber(uservariables[user_var]) < tonumber(uservariables[Heure_Besoin]) then
commandArray[switch] ='On'
print("*****Pompe ON "..(switch))
end
--end
print "---------------------------------------------Fin du script---------------------------------------"
print "----------------------------------------------------------------------------------------------------"
return commandArray