delay otherdevices_lastupdate fonction timedifference

Posez ici vos questions d'utilisation, de configuration de Domoticz, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramètrage Concernant le Raspberry ou les scripts de toute nature des forums spécifiques sont ouverts
Oui_OuiBlog
Messages : 20
Inscription : 27 juil. 2017, 21:53

delay otherdevices_lastupdate fonction timedifference

Messagepar Oui_OuiBlog » 10 août 2018, 00:34

Bonjour,

J'essaye de lancer un script toutes les 10 minutes en utilisant cette condition (Bien entendu, crontab n'est pas utilisable puisque la fonction doit être lancée par Domoticz pour fonctionner) :

Code : Tout sélectionner

if (timedifference((otherdevices_lastupdate['Prod_PV'])) > 600 and timeofday['Daytime']) then


timedifference est une fonction intégrée au script qui calcule le temps passé entre maintenant et une variable. C'est la fonction de base que l'on trouve un peu partout

Code : Tout sélectionner

function timedifference (s)
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


Le script fonctionne par contre il se lance systématiquement 2 fois en moins d'une seconde (~200 ms entre chaque exécution), comme si la table otherdevices_lastupdate n'était pas mise à jour immédiatement (ou si la fonction ne tenait pas compte des millisecondes, ce qui semble être le cas).

Quelqu'un a déjà rencontré le problème et a trouvé un moyen de le contourner ?

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


thier
Messages : 412
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: delay otherdevices_lastupdate fonction timedifference

Messagepar thier » 10 août 2018, 10:08

La fonction lastupdate sert à calculer le temps écoulé entre l'heure actuelle et le dernier changement d'état d'un device. Pour lancer un script toutes les 10 minutes tu fais un script_time qui commence par if (os.date("*t").min%10 == 0) then. Ton script sera lu toutes les minutes mais il ne s'exécutera que pour les multiples de 10 minutes (heure pile, heure+10 mn, heure +20mn, etc...).
Dernière édition par thier le 10 août 2018, 11:31, édité 1 fois.
PI3 + Jessie, rfxtrxe, zwave, chauffage piloté par qubino, sondes oregon et Vill1d, boite aux lettres détection passage facteur, volets roulants+qubino

Oui_OuiBlog
Messages : 20
Inscription : 27 juil. 2017, 21:53

Re: delay otherdevices_lastupdate fonction timedifference

Messagepar Oui_OuiBlog » 10 août 2018, 10:40

Je teste ça

Merci :)

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.



Revenir vers « Domoticz : Question et réponses »

Qui est en ligne ?

Utilisateurs parcourant ce forum : nico.g2 et 6 invités