Mise à jour variable utilisateur dans un script

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
kisskool
Messages : 70
Inscription : 01 juin 2021, 11:24

Mise à jour variable utilisateur dans un script

Message par kisskool »

Débutant, je galère depuis plusieurs jours avec un problème de mise à jour d'une variable utlisateur.

Cette ligne :

Code : Tout sélectionner

commandArray ['Variable:Besoin_filtration'] = (C04) and print("C04 - temps nécessaire = "..C04.." mn "..(uservariables['Besoin_filtration']))
donne ça dans les logs :

Code : Tout sélectionner

C04 - temps nécessaire = 160.0 mn 333.0
donc C04 = 160.0 et 'Besoin_filtration' =333.0

C'est commande ne devrait elle pas la modifier ?

Code : Tout sélectionner

commandArray ['Variable:Besoin_filtration'] = (C04)
Si non comment faire pour ecrire la valeur de C04 dans la variable utilisateur ?

Le script complet suivi du log:

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 = 'Relais_pompe_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 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 Heure_Raz = 10	-- Heure de remise à zéro du compteur.
 local duree_cycle = 80 --M3 piscine / débit M3 pompe *60	

 --Definition de la durée de filtration en fonction du temps d'un cycle/Température
 local T_eau=tonumber((otherdevices_svalues['Sortie_piscine']))
 local T_eau_chaude=tonumber((otherdevices_svalues['entree_piscine'])) 
 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 -----------------------------------"
print "---------------------------------------------------------------------------------------------------"
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)

print "----------------------------------------------------------------------------------------------------"
print "--------------------Calcul du temps de cycles ------------------------------------------------------"
print "----------------------------------------------------------------------------------------------------"

        if tostring(Valeur_Compteur) > tostring(Valeur_Besoin) then domoticz.device('switch').switchOff()
        ----------------------------------------------------------------------------------------------------------
        elseif tostring(T_eau) < '10' then 
        commandArray ['Variable:Besoin_filtration'] = (C01) and print("C01 - temps nécessaire = "..C01.." mn "..(uservariables['Besoin_filtration']))
        ----------------------------------------------------------------------------------------------------------
        elseif tostring(T_eau) >= '10' and tostring(T_eau) < '14' then
        commandArray ['Besoin_filtration'] = (C02) and print("C02 - temps nécessaire = "..C02.." mn "..(uservariables['Besoin_filtration']))
        ----------------------------------------------------------------------------------------------------------
        elseif tostring(T_eau) >= '14' and tostring(T_eau) < '20' then
        commandArray ['Besoin_filtration'] = (C03) and print("C03 - temps nécessaire = "..C03.." mn "..(uservariables['Besoin_filtration']))
        ----------------------------------------------------------------------------------------------------------
        elseif tostring(T_eau) >= '20' and tostring(T_eau) < '28' then
        commandArray ['Besoin_filtration'] = (C04) and print("C04 - temps nécessaire = "..C04.." mn "..(uservariables['Besoin_filtration']))
        ----------------------------------------------------------------------------------------------------------
        elseif tostring(T_eau) >= '28' then
        commandArray ['Variable:Besoin_filtration'] = (C05) and print("C05 - temps nécessaire = "..C05.." mn "..(uservariables['Besoin_filtration']))
        ----------------------------------------------------------------------------------------------------------
    end

print("Température "..T_eau)    
print("Valeur du scenario 1 -> "..C01.." si <10° ") --Status: LUA: 8.0
print("Valeur du scenario 2 -> "..C02.." si 10-14° ") -- Status: LUA: 40.0
print("Valeur du scenario 3 -> "..C03.." si 15-20° ") -- Status: LUA: 80
print("Valeur du scenario 4 -> "..C04.." si 20-28° ") -- Status: LUA: 160
print("Valeur du scenario 5 -> "..C05.." si >28° ") -- Status: LUA: 160    
print(Heure_Besoin.." <- Valeur de la variable Heure_Besoin")
print(uservariables['Besoin_filtration'].." <- Valeur de la variable user 'Besoin_filtration'")
print(uservariables['Pompe Piscine'].." <- Valeur de la variable user 'Pompe Piscine'")
print "----------------------------------------------------------------------------------------------------"
print "--------------------Fin du calcul du temps de cycles--------------------------------"
print "----------------------------------------------------------------------------------------------------"

---Mise à jour de la valeur ndas l'interrupteur virtuel

	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
        
        
        print (Valeur_Besoin_txt.." <- Valeur de la variable Heure_Besoin_txt")
        print (Valeur_Besoin.." <- Valeur de la variable Heure_Besoin")
        print (Valeur_Compteur_txt.." <- Valeur de la variable Valeur_Compteur_txt")
        print (Valeur_Compteur.." <- Valeur de la variable Valeur_Compteur")
        
	end
	
	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
		
	end

print "----------------------------------------------------------------------------------------------------"
print "--------------------Fin Calcul du temps de fonctionnement quotidien --------------------------------"
print "----------------------------------------------------------------------------------------------------"

return commandArray
le log:

Code : Tout sélectionner

 2021-06-28 23:42:01.719 Status: LUA: ---------------------------------------------------------------------------------------------------
2021-06-28 23:42:01.719 Status: LUA: --------------------Calcul du temps de fonctionnement quotidien -----------------------------------
2021-06-28 23:42:01.719 Status: LUA: ---------------------------------------------------------------------------------------------------
2021-06-28 23:42:01.719 Status: LUA: ----------------------------------------------------------------------------------------------------
2021-06-28 23:42:01.719 Status: LUA: --------------------Calcul du temps de cycles ------------------------------------------------------
2021-06-28 23:42:01.719 Status: LUA: ----------------------------------------------------------------------------------------------------
2021-06-28 23:42:01.719 Status: LUA: C04 - temps nécessaire = 160.0 mn 333.0
2021-06-28 23:42:01.719 Status: LUA: Température 20.3
2021-06-28 23:42:01.719 Status: LUA: Valeur du scenario 1 -> 8.0 si <10°
2021-06-28 23:42:01.719 Status: LUA: Valeur du scenario 2 -> 40.0 si 10-14°
2021-06-28 23:42:01.719 Status: LUA: Valeur du scenario 3 -> 80.0 si 15-20°
2021-06-28 23:42:01.719 Status: LUA: Valeur du scenario 4 -> 160.0 si 20-28°
2021-06-28 23:42:01.719 Status: LUA: Valeur du scenario 5 -> 240.0 si >28°
2021-06-28 23:42:01.719 Status: LUA: Besoin_filtration <- Valeur de la variable Heure_Besoin
2021-06-28 23:42:01.719 Status: LUA: 333.0 <- Valeur de la variable user 'Besoin_filtration'
2021-06-28 23:42:01.719 Status: LUA: 147.0 <- Valeur de la variable user 'Pompe Piscine'
2021-06-28 23:42:01.719 Status: LUA: ----------------------------------------------------------------------------------------------------
2021-06-28 23:42:01.719 Status: LUA: --------------------Fin du calcul du temps de cycles--------------------------------
2021-06-28 23:42:01.719 Status: LUA: ----------------------------------------------------------------------------------------------------
2021-06-28 23:42:01.719 Status: LUA: 05h33 <- Valeur de la variable Heure_Besoin_txt
2021-06-28 23:42:01.719 Status: LUA: 333.0 <- Valeur de la variable Heure_Besoin
2021-06-28 23:42:01.719 Status: LUA: 02h27 Heure de raz 10h00 <- Valeur de la variable Valeur_Compteur_txt
2021-06-28 23:42:01.719 Status: LUA: 147.0 <- Valeur de la variable Valeur_Compteur
2021-06-28 23:42:01.719 Status: LUA: ----------------------------------------------------------------------------------------------------
2021-06-28 23:42:01.719 Status: LUA: --------------------Fin Calcul du temps de fonctionnement quotidien --------------------------------
2021-06-28 23:42:01.719 Status: LUA: ----------------------------------------------------------------------------------------------------
2021-06-28 23:42:01.748 Status: EventSystem: Script event triggered: Script_time_Piscine 
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: Mise à jour variable utilisateur dans un script

Message par denis_brasseur »

Bonjour,
une partie de ta syntaxe me semble incorrect, alors qu'elle est correct dans tes exemples

Code : Tout sélectionner

commandArray ['Besoin_filtration'] = (C04)
devrait s'écrire

Code : Tout sélectionner

commandArray ['Variable:Besoin_filtration'] = (C04)
Idem pour la mise à jour de C02 et C03 dans ton code.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
kisskool
Messages : 70
Inscription : 01 juin 2021, 11:24

Re: Mise à jour variable utilisateur dans un script

Message par kisskool »

C'est que j'ai testé tellement de chose !

J'ai mis toutes les lignes à jour dont celle valable tout de suite :

Code : Tout sélectionner

        elseif tostring(T_eau) >= '14' and tostring(T_eau) < '20' then
        commandArray ['Variable:Besoin_filtration'] = (C03) and print("C03 - temps nécessaire = "..C03.." mn "..(uservariables['Besoin_filtration']))
Pas d'erreur mais pas de résultat non plus :

Code : Tout sélectionner

2021-06-29 17:32:01.643 Status: LUA: C03 - temps nécessaire = 80.0 mn 333
:(
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Mise à jour variable utilisateur dans un script

Message par Keros »

Code : Tout sélectionner

        elseif tostring(T_eau) >= '14' and tostring(T_eau) < '20' then
En utilisant tostring, tu transformes la variable en chaine de caractère : tu fais une opération mathématique sur une chaine de caractère. Il vaudrait mieux convertir les variables en nombre.

Concernant la mise à jour des variables, il faut savoir que DomoticZ exécute tous les CommandArray en une seule fois à la fin du programme. Ce n'est pas séquentiel. Par conséquent, si tu mets à jours une UserVariable et que "après" tu fais appel à cette UserVariable, tu auras l'ancienne valeur : la nouvelle ne sera envoyée qu'à la fin de l'exécution.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
kisskool
Messages : 70
Inscription : 01 juin 2021, 11:24

Re: Mise à jour variable utilisateur dans un script

Message par kisskool »

Alors oui mais non :
Si la commande "commandArray" n'est pas sequentiel et est executée à la fin, au tour d'après je devaris avoir la bonne valeur ?

Je pense qu'il y aun truc que j'ai pas pigé avec commandArray par que je n'arrive pas non plus à piloter un switch.

Code : Tout sélectionner

if tostring(uservariables['Pompe Piscine']) > tostring(uservariables['Besoin_filtration']) then commandArray['Relais_pompe_piscine'] ='Off' and print("Pompe OFF "..(switch))
    else commandArray['Relais_pompe_piscine'] ='On' and print("Pompe ON "..(switch))
    end
LOG:

Code : Tout sélectionner

Pompe OFF Relais_pompe_piscine
KGMZOKvSBo.png
KGMZOKvSBo.png (20.93 Kio) Consulté 3201 fois
Marche pô non plus ! :(

Est-ce que la modification de la valeur manuellement pour faire les test peut la vérouiller ? J'ai déjà vu ça sur une appli du même genre
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Mise à jour variable utilisateur dans un script

Message par Keros »

Essaye de réserver les and aux conditions :

Code : Tout sélectionner

if tonumber(uservariables['Pompe Piscine']) > tonumber(uservariables['Besoin_filtration']) then 
   commandArray['Relais_pompe_piscine'] ='Off'
   print("Pompe OFF "..(switch))
else 
   commandArray['Relais_pompe_piscine'] ='On'
   print("Pompe ON "..(switch))
end
Maintenant pour comprendre ce qu'il se passe, il faut déboguer en plaçant des print afin de savoir quelles sont les valeurs utilisées par le programme.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
kisskool
Messages : 70
Inscription : 01 juin 2021, 11:24

Re: Mise à jour variable utilisateur dans un script

Message par kisskool »

Génial ! Merci pour ton aide, pour l'activation de la pompe, ça marche ! J'ai également déplacé le IF à la fin du script des fois que... Il me reste juste la mise à jour de cette satané variable !

Donc pour suivre ton conseil j'ai commenté le "and print"

Code : Tout sélectionner

print "----------------------------------------------------------------------------------------------------"
print "--------------------Calcul du temps de cycles ------------------------------------------------------"
print "----------------------------------------------------------------------------------------------------"

        if (T_eau) > 50 then print("===Calcul du temps de cycle===")
        ----------------------------------------------------------------------------------------------------------
        elseif (T_eau) < 10 then 
        commandArray ['Variable:Besoin_filtration'] = (C01) -- and print("C01 - temps nécessaire = "..C01.." mn "..(uservariables['Besoin_filtration']))
        ----------------------------------------------------------------------------------------------------------
        elseif (T_eau) >= 10 and (T_eau) < 14 then
        commandArray ['Variable:Besoin_filtration'] = (C02) -- and print("C02 - temps nécessaire = "..C02.." mn "..(uservariables['Besoin_filtration']))
        ----------------------------------------------------------------------------------------------------------
        elseif (T_eau) >= 14 and (T_eau) < 20 then
        commandArray ['Variable:Besoin_filtration'] = (C03) -- and print("C03 - temps nécessaire = "..C03.." mn "..(uservariables['Besoin_filtration']))
        ----------------------------------------------------------------------------------------------------------
        elseif (T_eau) >= 20 and (T_eau) < 28 then
        commandArray ['Variable:Besoin_filtration'] = (C04) -- and print("C04 - temps nécessaire = "..C04.." mn "..(uservariables['Besoin_filtration']))
        ----------------------------------------------------------------------------------------------------------
        elseif (T_eau) >= 28 then
        commandArray ['Variable:Besoin_filtration'] = (C05) -- and print("C05 - temps nécessaire = "..C05.." mn "..(uservariables['Besoin_filtration']))
        ----------------------------------------------------------------------------------------------------------
    end
Et maintenant j'ai une erreur :

Code : Tout sélectionner

2021-06-29 20:26:01.691 Error: EventSystem: commandArray in script Script_time_Piscine should only return ['string']='actionstring' or [integer]={['string']='actionstring'}
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Mise à jour variable utilisateur dans un script

Message par Keros »

Mon conseil n'était pas de virer les prints mais de les écrire différement.

Et mon deuxième conseil était de rajouter des print pour connaitre les valeurs de tes variables.

Enlève peut-être toutes les parenthèses qui ne sont pas utiles.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
kisskool
Messages : 70
Inscription : 01 juin 2021, 11:24

Re: Mise à jour variable utilisateur dans un script

Message par kisskool »

Ca marche ! en fait mon plus gros problème venait du fait que je n'attendais pas deux exécutions du script avant de vérifier.
Donc je pensais que ça ne fonctionnait pas mais si avec un peu de patience !

Un grand merci pour ton aide Keros, sans ton aide je crois que j'aurais fini par abandonner sans trouver !

Il me reste deux trois petite chose à faire (loguer le temps de fonctionnement quotidien, envoyer des notif voir un rapport quotidien) Bref encore beaucoup de boulot ^^

J'ajoute mon script "dans l'etat" mias fonctionnel si ça peut servir

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 = 'Relais_pompe_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 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 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']))
 local T_eau_chaude=tonumber((otherdevices_svalues['entree_piscine'])) 
 local M3 = 6
 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 -----------------------------------"
print "---------------------------------------------------------------------------------------------------"
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)
T_eau=tonumber(T_eau)
print "----------------------------------------------------------------------------------------------------"
print "--------------------Calcul du temps de cycles ------------------------------------------------------"
print "----------------------------------------------------------------------------------------------------"

        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(uservariables['Besoin_filtration'])
print("Température "..T_eau)    
print("Valeur du scenario 1 -> "..C01.." si <10° ") --Status: LUA: 8.0
print("Valeur du scenario 2 -> "..C02.." si 10-14° ") -- Status: LUA: 40.0
print("Valeur du scenario 3 -> "..C03.." si 15-20° ") -- Status: LUA: 80
print("Valeur du scenario 4 -> "..C04.." si 20-28° ") -- Status: LUA: 160
print("Valeur du scenario 5 -> "..C05.." si >28° ") -- Status: LUA: 160    
print(Heure_Besoin.." <- Valeur de la variable Heure_Besoin")
print(uservariables['Besoin_filtration'].." <- Valeur de la variable user 'Besoin_filtration'")
print(uservariables['Pompe Piscine'].." <- Valeur de la variable user 'Pompe Piscine'")
print "----------------------------------------------------------------------------------------------------"
print "--------------------Fin du calcul du temps de cycles------------------------------------------------"
print "----------------------------------------------------------------------------------------------------"

print "----------------------------------------------------------------------------------------------------"
print "--------------------Mise à jour de la valeur ndas l'interrupteur virtuel------------------------------------------------"
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
        
        
        print (Valeur_Besoin_txt.." <- Valeur de la variable Heure_Besoin_txt")
        print (Valeur_Besoin.." <- Valeur de la variable Heure_Besoin")
        print (Valeur_Compteur_txt.." <- Valeur de la variable Valeur_Compteur_txt")
        print (Valeur_Compteur.." <- Valeur de la variable Valeur_Compteur")
        
	end
	
	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
		
	end

print "----------------------------------------------------------------------------------------------------"
print "--------------------Fin Mise à jour de la valeur ndas l'interrupteur virtuel -----------------------"
print "----------------------------------------------------------------------------------------------------"

print "----------------------------------------------------------------------------------------------------"
print "---------------------------------------------MARCHE/ARRET-Début-------------------------------------"
print "----------------------------------------------------------------------------------------------------"
if tonumber(uservariables['Pompe Piscine']) > tonumber(uservariables['Besoin_filtration']) then 
   commandArray['Relais_pompe_piscine'] ='Off'
   print("Pompe OFF "..(switch))
else 
   commandArray['Relais_pompe_piscine'] ='On'
   print("Pompe ON "..(switch))
end
print "----------------------------------------------------------------------------------------------------"
print "---------------------------------------------MARCHE/ARRET-Fin---------------------------------------"
print "----------------------------------------------------------------------------------------------------"

return commandArray
Répondre