Tempo sur NUT

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
djam
Messages : 51
Inscription : 09 déc. 2015, 19:33

Tempo sur NUT

Message par djam »

Bonjour à toutes et à tous

Je me suis équipé du tracker NUT détecté via Domoticz, cependant parfois il y a de très courtes déconnexion du dispositif.
Pour remédier à cela je souhaiterai une tempo sur le traitement de la variable quand celle ci passe sur "AWAY".

J'ai bidouillé et essayé plusieurs code, aucun n'a voulu prendre en compte la tempo donné (ici 2min).

Code : Tout sélectionner

time = os.date("*t")
t1 = os.time()
s = uservariables_lastupdate['NUT_dz']
-- Retourne la date au format --> 2016-10-11 17:23:12

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)
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = (os.difftime (t1, t2))

commandArray = {}

-- Detection NUT ---> Si variable "AWAY" pendant 2 minute
if (uservariables['NUT_dz'] == 'AWAY' and difference > 120) then
	commandArray['Presence-DZ']='Off'
end
return commandArray
Merci de votre aide par avance.
Dernière modification par djam le 18 nov. 2016, 15:10, modifié 1 fois.
Z600 Ubuntu server --> Domoticz V3.8153 // Raspberry Pi --> Openelec
RFLink --> HomeEasy // Mysensors 2.0 --> Arduino Nano (x5) : T°C/H, Mouvement,Lux, Gaz
LMS --> "Squeezbox" (x5) // MiLight
Google HOME
djam
Messages : 51
Inscription : 09 déc. 2015, 19:33

Re: Tempo sur NUT

Message par djam »

Salut à tous,

Je sèche complétement sur ce sujet. J'essaie toujours de "fiabiliser" le tracker suite a de micro coupure du BT.
J'ai essayé avec une tempo : rien a faire.

Je voudrai l'associer avec mon capteur de la porte d’entrée mais je ne vois pas comment mettre tout ça en LUA ni dans quel ordre ??
Si quelqu'un peut m'aiguiller ?

Merci d'avance ....
Z600 Ubuntu server --> Domoticz V3.8153 // Raspberry Pi --> Openelec
RFLink --> HomeEasy // Mysensors 2.0 --> Arduino Nano (x5) : T°C/H, Mouvement,Lux, Gaz
LMS --> "Squeezbox" (x5) // MiLight
Google HOME
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Tempo sur NUT

Message par patrice »

Bonjour
Pour debugger le script fait des print de difference et de nut_dz pour voir si ça contient bien ce que tu attends.


Envoyé de mon PULP 4G en utilisant Tapatalk
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Matt2cv
Messages : 1
Inscription : 11 nov. 2016, 10:33

Re: Tempo sur NUT

Message par Matt2cv »

djam a écrit :Salut à tous,

Je sèche complétement sur ce sujet. J'essaie toujours de "fiabiliser" le tracker suite a de micro coupure du BT.
J'ai essayé avec une tempo : rien a faire.

Je voudrai l'associer avec mon capteur de la porte d’entrée mais je ne vois pas comment mettre tout ça en LUA ni dans quel ordre ??
Si quelqu'un peut m'aiguiller ?

Merci d'avance ....
Salut,

Je suis dans le même cas que toi. Je pense que la temporisation ne servira à rien. Elle va éviter d'avoir plusieurs notifications.
Je suis en train de chercher à comparer 2 valeurs. Est-ce qu'il faut passer par les uservariables pour mémoriser le status précédent ?
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Tempo sur NUT

Message par thier »

Et avec un code dans ce genre ça le fait?

Code : Tout sélectionner

time = os.date("*t") 
local presence = uservariables["NUT_dz"]
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

-- date la dernière relève
local lastSeen = timedifference(presence)
commandArray = {}

-- Detection NUT ---> Si variable "AWAY" pendant 2 minute
if (uservariables['NUT_dz'] == 'AWAY' and lastSeen > 120) then
   commandArray['Presence-DZ']='Off'
end
return commandArray

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.
djam
Messages : 51
Inscription : 09 déc. 2015, 19:33

Re: Tempo sur NUT

Message par djam »

Salut à tous

Merci pour vos précieux conseils ...
Et avec un code dans ce genre ça le fait?

Déja merci thier pour le code ;)

En faisant des tests avec ce code j'obtient une erreur :
lua:9: bad argument #1 to 'sub' (string expected, got nil)
Je pense a la ligne 8 ?

Code : Tout sélectionner

 s = otherdevices_lastupdate[d] 
?

Je ne suis pas bon en code, encore pire lorsqu'il est question de gérer le "temps".
Z600 Ubuntu server --> Domoticz V3.8153 // Raspberry Pi --> Openelec
RFLink --> HomeEasy // Mysensors 2.0 --> Arduino Nano (x5) : T°C/H, Mouvement,Lux, Gaz
LMS --> "Squeezbox" (x5) // MiLight
Google HOME
djam
Messages : 51
Inscription : 09 déc. 2015, 19:33

Re: Tempo sur NUT

Message par djam »

En remplaçant le

Code : Tout sélectionner

 s = otherdevices_lastupdate[d] 
par

Code : Tout sélectionner

 s = uservariables_lastupdate['NUT_dz'] 
cela fonctionne en appelant le script : "script_time_...", mais celui ci s’exécute toutes les deux minutes, ce que je comprend puisque "script_time_..."
par contre en l'appelant "script_variable_..." cela ne fonctionne pas du tout .

Je suis vraiment perdue avec cette notion de gestion du temps. :|
Z600 Ubuntu server --> Domoticz V3.8153 // Raspberry Pi --> Openelec
RFLink --> HomeEasy // Mysensors 2.0 --> Arduino Nano (x5) : T°C/H, Mouvement,Lux, Gaz
LMS --> "Squeezbox" (x5) // MiLight
Google HOME
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Tempo sur NUT

Message par thier »

Script_time s’exécute toutes les minutes et ce n'est pas autrement possible. Par contre tu pourrais mettre dans un script des conditions pour n'exécuter le script que toutes les X minutes. ça ne change pas, ton script_time sera lancé toutes les minutes, par contre il ne s'exécutera que toutes les X minutes en fonction de ta condition.
Un script_device repère un changement d'état de quelque chose. Pour le faire il a besoin de 'si mon device change' ce qui donne en script 'If (devicechanged['mon device']== 'On') Etc...
Les script_device, c'est pareil, ils sont tous lancé par contre n'agit que celui qui correspond au device qui a changé.
Un script_variable c'est comme un srcipt_device sauf qu'il surveille le changement d'état des uservariable. Normal que ça ne fonctionne pas pour toi puisque mon script ne surveille pas de variable.
Tu peux lire les script_demo qui sont dans domoticz/script/lua ils sont explicitent.
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.
djam
Messages : 51
Inscription : 09 déc. 2015, 19:33

Re: Tempo sur NUT

Message par djam »

Merci à toi thier de repasser par la ...

J'ai bien compris le principe des scripts avec leurs différences, mais j'ai du mal à bien appliquer tout cela .
Surtout lorsqu'il est question de gestion du "temps".
Je me suis justement servie des scripts démo pour tout mes autres scripts, et c'est nickel.

Mais la gestion de la variable en question et du "temps" c'est franchement compliquer.

Merci quand même
Z600 Ubuntu server --> Domoticz V3.8153 // Raspberry Pi --> Openelec
RFLink --> HomeEasy // Mysensors 2.0 --> Arduino Nano (x5) : T°C/H, Mouvement,Lux, Gaz
LMS --> "Squeezbox" (x5) // MiLight
Google HOME
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Tempo sur NUT

Message par thier »

Ton script 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.
Répondre