Condition de temps sur virtuel
Condition de temps sur virtuel
Salut à tous,
Je souhaiterai allumer lorsque mon détecteur se déclenche et qu'un inter virtuel est sur off depuis 10 secondes.
Je ne trouve pas comment écrire en lua cette condition avec la durée...
Merci.
Je souhaiterai allumer lorsque mon détecteur se déclenche et qu'un inter virtuel est sur off depuis 10 secondes.
Je ne trouve pas comment écrire en lua cette condition avec la durée...
Merci.
Re: Condition de temps sur virtuel
En farfouillant, j'ai écrit ca, vous en pensez quoi ? ca peut fonctionner ?
Code : Tout sélectionner
local sonde = 'Virtuel SDB'
time = os.date("*t")
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
local lastSeen = timedifference(sonde)
if (lastSeen > 10 ) and (otherdevices['Détecteur SDB'] == 'On') then
commandArray['Group:Plafonnier WC']='On'
end
Re: Condition de temps sur virtuel
Le plus simple c'est d'essayer!
Tu remplaces commandArray['Group:Plafonnier WC']='On' par print('hiphiphiphourra'). Si tu vois hiphiphiphourra inscrit dans les logs de domo, c'est que ça fonctionne.
Tu remplaces commandArray['Group:Plafonnier WC']='On' par print('hiphiphiphourra'). Si tu vois hiphiphiphourra inscrit dans les logs de domo, c'est que ça fonctionne.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Re: Condition de temps sur virtuel
Bon, bah ca fonctionne pas, ca s'allume pas du toutthier a écrit :Le plus simple c'est d'essayer!
Tu remplaces commandArray['Group:Plafonnier WC']='On' par print('hiphiphiphourra'). Si tu vois hiphiphiphourra inscrit dans les logs de domo, c'est que ça fonctionne.
Re: Condition de temps sur virtuel
Pas d'erreur dans les logs?
Tu remplace (lastSeen > 10 ) par timedifference('Virtuel SDB') > 10
Edit: si tu veux l'exécuter sur le changement d'état à On de otherdevices['Détecteur SDB'] == 'On', il faut utiliser la fonction devicechanged ['Détecteur SDB'] =='On' et que ce soit un script de type device.
Tant qu'à faire tu ouvres une parenthése après If que tu referme avant then
Tu remplace (lastSeen > 10 ) par timedifference('Virtuel SDB') > 10
Edit: si tu veux l'exécuter sur le changement d'état à On de otherdevices['Détecteur SDB'] == 'On', il faut utiliser la fonction devicechanged ['Détecteur SDB'] =='On' et que ce soit un script de type device.
Tant qu'à faire tu ouvres une parenthése après If que tu referme avant then
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Re: Condition de temps sur virtuel
J'en suis la, dans un script time
Le plafonnier s'allume, mais apres un certains temps seulement, parfois 5 sec, parfois 30....
Des idées ?
Code : Tout sélectionner
t1 = os.time()
s = otherdevices_lastupdate['Virtuel SDB']
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)
commandArray = {}
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = (os.difftime (t1, t2))
if (otherdevices['Detecteur SDB'] == 'On' and difference > 10) then
commandArray['Group:Plafonnier WC']='On FOR 3'
end
return commandArrayDes idées ?
Re: Condition de temps sur virtuel
C'est un script time donc il s'exécute que toutes les minutes.
Si tu veux une réaction quand otherdevices['Detecteur SDB'] == 'On' il faut un scrip_device qui va se lancer à chaque changement de ['Detecteur SDB'].
Pour qu'il fonctionne change otherdevices['Detecteur SDB'] == 'On' par devicechanged ['Detecteur SDB'] == 'On' et enregistre en script_device. A chaque fois que ton détecteur changera d'état à On, si ta condition de temps est vrai, le script s'exécutera.
Si tu veux une réaction quand otherdevices['Detecteur SDB'] == 'On' il faut un scrip_device qui va se lancer à chaque changement de ['Detecteur SDB'].
Pour qu'il fonctionne change otherdevices['Detecteur SDB'] == 'On' par devicechanged ['Detecteur SDB'] == 'On' et enregistre en script_device. A chaque fois que ton détecteur changera d'état à On, si ta condition de temps est vrai, le script s'exécutera.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Re: Condition de temps sur virtuel
Salut, merci de ton aide, ca avance. Je teste et te dit ca.