Script timedifference
Publié : 08 janv. 2021, 12:25
Bonjour,
Après y avoir passé plusieurs heures sans succès (je dois vraiment être mauvais
) je viens chercher de l'aide ici.
Je voudrais faire un suivi du temps de chauffage (ma chaudière gaz est pilotée par domoticz via un contact sec) et afficher les infos dans des dummy texte: durée dernier cycle, cumul journalier.
Histoire de pas tout casser je fais mes tests dans un script à part et une fois fonctionnel j'intégrerais au script de chauffage.
Je pensais que ça serait simple mais ... ce n'est pas le cas, dès le départ j'ai un problème pour récupérer le delta entre l'état ON et l'état OFF du device.
Je suis quasiment sûr qu'il s'agit d'un truc tout bête mais je n'arrive pas à mettre le doigt dessus.
Le script (tout du moins son début):
Le changement d'état du device est bien détecté, le script se lance mais la durée ne s'affiche pas ...
Dans le log j'ai ça:
On voit bien le passage à ON à 12:16:41.122, le passage à OFF à 12:16:58.916 donc je devrais avoir un delta de 00:00:17 ce qui n'est pas le cas dans l'affichage ...
Quelqu'un peut il me dire où j'ai fait une bourde ?
Merci
Après y avoir passé plusieurs heures sans succès (je dois vraiment être mauvais
Je voudrais faire un suivi du temps de chauffage (ma chaudière gaz est pilotée par domoticz via un contact sec) et afficher les infos dans des dummy texte: durée dernier cycle, cumul journalier.
Histoire de pas tout casser je fais mes tests dans un script à part et une fois fonctionnel j'intégrerais au script de chauffage.
Je pensais que ça serait simple mais ... ce n'est pas le cas, dès le départ j'ai un problème pour récupérer le delta entre l'état ON et l'état OFF du device.
Je suis quasiment sûr qu'il s'agit d'un truc tout bête mais je n'arrive pas à mettre le doigt dessus.
Le script (tout du moins son début):
Code : Tout sélectionner
function timedifference(d)
s = otherdevices_lastupdate[d]
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t1 = os.time()
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = os.difftime (t1, t2)
return difference
end
commandArray = {}
if (devicechanged['TEST1'] == 'Off')
then
-- AFFICHAGE DUREE DERNIER CYCLE --
--on calcule la durée écoulée entre le off et le précédent état (on) et on l'affiche dans le log
delta = os.date("!%X",timedifference('TEST1'))
print('calcul temps cycle delta : ' .. delta)
--on met à jour le compteur "durée dernier cycle"
commandArray[1]={['UpdateDevice'] = 196 .. '|0|' .. delta}
end
return commandArray
Dans le log j'ai ça:
Code : Tout sélectionner
2021-01-08 12:16:41.122 (Dummy) Light/Switch (TEST1)
2021-01-08 12:16:58.916 (Dummy) Light/Switch (TEST1)
2021-01-08 12:16:58.963 Status: LUA: calcul temps cycle delta : 00:00:00
Quelqu'un peut il me dire où j'ai fait une bourde ?
Merci
