[Résolu] Ordre d'exécution des commandes LUA

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 <\>.
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

[Résolu] Ordre d'exécution des commandes LUA

Message par dokho »

Bonjour,

J'ai ajouté, dans mon script de gestion de chauffage, 2 compteurs (dummy text): durée du dernier cycle de chauffe et durée totale de chauffe pour la journée.

Voici la partie compteur du script:

Code : Tout sélectionner

-- AFFICHAGE DUREE DERNIER CYCLE
delta = os.date("!%X",timedifference(otherdevices_lastupdate['Chaudiere']))
commandArray[3]={['UpdateDevice'] = 899 .. '|0|' .. tostring(delta)}
-- TOTAL CHAUFFE JOURNEE
commandArray[4]={['Variable:TempsChauffe']= tostring(uservariables["TempsChauffe"] + timedifference(otherdevices_lastupdate['Chaudiere']))}
totalchauffejour = os.date("!%X",tostring(uservariables["TempsChauffe"]))
commandArray[5]={['UpdateDevice'] = 898 .. '|0|' .. tostring(totalchauffejour)}
L'affichage de la durée du dernier cycle fonctionne parfaitement, c'est le compteur total qui ne fonctionne pas correctement: il y a un décalage d'un cycle (cf. les copies d'écran ci-dessous).

Brûleur:
Image

Dernier cycle:
Image

Total jour:
Image


On voit bien que le brûleur s'est allumé à 5h31 et éteint a 5h44, soit 13 minutes(compteur "Dernier_cycle" OK): le compteur "Total_jour" indique 0 à 5h44
Le brûleur s'est rallumé à 5h47 pour 13 minutes (compteur "Dernier_cycle" OK) mais le compteur "Total_jour" n'indique que 13 minutes à 6h00 alors qu'il devrait être à 26 minutes (5h31 à 5h44 + 5h47 à 6h00).


Quelqu'un saurait-il m'expliquer où j'ai fait une erreur ?


Merci d'avance :)
Dernière modification par dokho le 23 févr. 2017, 20:44, modifié 1 fois.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Ordre d'exécution des commandes LUA

Message par vil1driver »

Salut,

Tout s'exécute a la fin..

Tu ne peux pas enregistrer une variable et la réutiliser aussitôt.

Au lieu d'aller lire la variable, utilise ce que tu voulais lui envoyer
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: Ordre d'exécution des commandes LUA

Message par dokho »

Ok, je pense comprendre le principe.

Donc il faudrait que je remplace:

Code : Tout sélectionner

totalchauffejour = os.date("!%X",tostring(uservariables["TempsChauffe"]))
Par:

Code : Tout sélectionner

totalchauffejour = os.date("!%X",tostring(uservariables["TempsChauffe"] + timedifference(otherdevices_lastupdate['Chaudiere'])))
C'est bien ça ?
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Ordre d'exécution des commandes LUA

Message par vil1driver »

Oui c'est ce que je voulais dire
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: Ordre d'exécution des commandes LUA

Message par dokho »

Ok merci.
J'ai fais la modification, je verrais demain matin :)

Envoyé de mon SM-N9005 en utilisant Tapatalk
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: Ordre d'exécution des commandes LUA

Message par dokho »

Bonsoir,

Ça fonctionne nickel, merci vil1driver :)
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: [Résolu] Ordre d'exécution des commandes LUA

Message par vil1driver »

:D
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Répondre