Page 1 sur 2
forcer un script timer pour reset
Publié : 10 oct. 2021, 14:50
par pierrotori
Bonjour
Suite à une restauration de la base domoticz dans la journée quel est le moyen le plus simple pour forcer un script timer qui est censé s'exécuter à 00H05 et de le déclencher via l'interface ?
Pierrotori
Re: forcer un script timer pour reset
Publié : 10 oct. 2021, 17:19
par denis_brasseur
S'agissant d'un script time, il ne peux pas être déclencher par un devicechanged, donc difficile directement depuis l'interface.
Et si tu changeais tout simplement l'heure d'exécution ?
Tu peux aussi modifier ton script en type device, l'associer à un device type push on button, bouton pour lequel tu paramètres le planning pour qu'il change d'état à 00h05.
N'oublie pas de paramétrer ton bouton avec un Délai d'extinction à 1 seconde afin qu'il revienne à Off après un changement d'état.
Tu n'as plus, dans ton script, qu'a remplacer ton
par
Un peu lourd pour un simple test, mais cela te permet d'exécuter ton script quand tu le souhaites, en plus du paramétrage de l'heure d'exécution via la fonction planning du device.
Re: forcer un script timer pour reset
Publié : 10 oct. 2021, 20:25
par Keros
Je viens de déplacer ton sujet dans la section script.
Je suis aussi d'avis pour la proposition de Denis d'utiliser le planning d'un device pour gérer l'exécution du script.
Sinon, tu peux aussi jouer sur le fait que le script est exécuter toutes les minutes pour prendre en compte le passage d'un widget à On et le remettre à Off :
Code : Tout sélectionner
if time.hour==0 and time.min==5 and otherdevices['Bouton'] = "On" then
if otherdevices['Bouton'] == "On" then commandArray['Bouton']='Off' end
La suite du script...
end
Tu as par contre une prise en compte de ton appui sur le bouton à la prochaine minute.
Dernière possibilité, regarder le DzVent qui permet de gérer les multiple déclencheurs.
Re: forcer un script timer pour reset
Publié : 10 oct. 2021, 21:17
par pierrotori
Je viens de penser si je declenche un httpresponses qui serait gere par le script qui doit faire le reset
Re: forcer un script timer pour reset
Publié : 10 oct. 2021, 21:23
par Keros
Le httpresponses me fait penser à du DzVents. C'est ce langage-là que tu utilises ou du LUA ?
Si tes scripts sont en DzVents, je pense qu'effectivement qu'un httpresponses pourrait être déclenché dans plusieurs scripts en même temps.
forcer un script timer pour reset
Publié : 10 oct. 2021, 21:37
par pierrotori
je suis en full dzvents
je créé une device reset rattaché à un script qui fera un
domoticz.openURL({
url = URLGetReset,
method = 'GET',
callback = 'RetourReset',
})
RetourReset qui sera géré par le script qui calcul la total (jour de la semaine,jour férié , vacances .....) ca devrait être réalisable et synchronisable sachant que ce script tourne une fois par jour à 00H05 pour mettre à jour le calendrier et le planning
je ne sais pas si c'est la meilleur solution, mais pas facile de forcer un script timer qui s'execute une fois par jour, et de relancer sans le dupliquer ou d'aller modifier son timer
Re: forcer un script timer pour reset
Publié : 10 oct. 2021, 21:43
par Keros
Tu as encore plus simple sans faire appel à une url :
Et pour le lancer :
Re: forcer un script timer pour reset
Publié : 10 oct. 2021, 23:10
par pierrotori
Re: forcer un script timer pour reset
Publié : 11 oct. 2021, 13:49
par pierrotori
donc je mets une device switch on/off avec un script dzvent qui se déclenche sur la device
Code : Tout sélectionner
return {
on = {
devices = { 'reset' }
},
execute = function(domoticz, mySensor)
-- déclenche un script timer
domoticz.emitEvent('init', 'statut' = 1)
end
}
dans le script qui détermine Jour ouvré, jour week-end en fonction des vacances, Jour férié et week-end
Code : Tout sélectionner
on = {
{ timer = { 'at 00:05'} },
on = { customEvent = { 'init' }},
execute = function(domoticz, trigger)
if (triggeredItem.data.statut = 1 )
domoticz.log('Déclenchement et execution sctipt')
else
domoticz.log('Pas de déclenchement du script)
end
},
Re: forcer un script timer pour reset
Publié : 11 oct. 2021, 14:28
par boum
Oui. Par contre, pour tester le déclenchement forcé, ce n'est pas tout à fait ça. = 1 -> assignation, == 1 -> test.
Aussi, pas besoin de donnée supplémentaire juste pour ça :
Code : Tout sélectionner
execute = function(domoticz, trigger)
if (trigger.isCustomEvent)
domoticz.log('Déclenchement reset')
else
domoticz.log('Pas de déclenchement forcé')
end
end