Re: Besoin d'aide Script Blockly > Lua
Publié : 12 sept. 2019, 05:36
Ce n'est pas le premier if qui décide si il s'agit d'un type Device ou Time.morninggoal a écrit : 11 sept. 2019, 20:52
mais du coup c'est quoi le declencheur dans ton code si le script est de type device?
Ce script est de type Time (voir le post initial), il sera donc exécuter toute les minutes.
https://easydomoticz.com/mon-premier-sc ... ondations/
Rappel
N’oubliez pas que les scripts Lua peuvent se déclencher suivant 4 types d’événements :
toutes les minutes,
au changement d’état d’un des périphériques,
au changement d’état d’une variable,
au changement d’état du panel de sécurité.
https://easydomoticz.com/mon-premier-sc ... ondations/
Cela signifie que dans un script_time_xxxx.lua si j’utilise la fonction devicechanged j’aurais une erreur :Error: EventSystem: /home/pi/domoticz/scripts/lua/script_time_xxxx.lua:9: attempt to index global ‘devicechanged’ (a nil value)
car cette fonction n’existe pas pour les script Time.
Et dans la modification du script initial, j'ai laisser à tord les 2 parenthèses et oublié un thenhttps://easydomoticz.com/point-scripts-lua/
Lorsque n’importe quelle variable change, TOUS les script_variable sont passés en revue pour voir si il y a quelque chose à faire avec la variable qui vient de changer de valeur.
Lorsque n’importe quel matériel change de valeur TOUS les script_device sont passés en revue pour voir si il y a quelque chose à faire avec ce matériel qui vient de changer de valeur. Cela est vrai avec les interrupteurs qui passent de On à Off mais aussi avec les capteurs dont la valeur se modifie au cours du temps.
Lorsque la minute change, ce qui arrive toutes les minutes, TOUS les script_time sont lus pour voir si il y a quelque chose à faire avec.
Code : Tout sélectionner
if otherdevices['Absence'] == 'Closed' then
if heure > '06:00' and time < '12:00' then
if otherdevices['Volet_salon'] == 'Closed' then
if otherdevices['Mouvement'] == 'Closed' then
--commandArray[#commandArray+1] = ---------------
end
end
end
end