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

Re: Tempo sur NUT

Message par djam »

Non il ne fonctionne pas , le premier que tu mas gentiment filer (d’ailleurs très bon exemple ;) ) ne fonctionnai pas, j’avais une erreur .
Et par la suite rien du tout ...
J'ai repris la lecture et les tests mais RIEN. Je sais que la réponse est sous mon nez en plus :evil:

J'ai surement une mauvaise approche du déroulement des choses a effectuer.
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 »

fait la modifcation suivante:
print('test1')
if (uservariables['NUT_dz'] == 'AWAY' and lastSeen > 120) then
print('test2')
commandArray['Presence-DZ']='Off'

Ton script_time va se lancer toutes les minutes et comme il doit au moins t'écrire 'test1' tu verras dans tes log qu'il se lance.
Si un script se lance mais ne fait rien il n’apparaît pas dans les log.
le print2 te permettra de valider la ligne 'if (uservariables['NUT_dz'] == 'AWAY' and lastSeen > 120) then'
poste ton erreur et on verra.
enregistre en script_time.
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 »

Je reprend parcque je m'exprime très mal :)

Le code que tu ma filer

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
en l’état me retourne l'erreur :
lua:9: bad argument #1 to 'sub' (string expected, got nil)
Ensuite en remplacant la ligne n°8

Code : Tout sélectionner

s = otherdevices_lastupdate[d] 
par

Code : Tout sélectionner

 s = uservariables_lastupdate['NUT_dz'] 
et en nommant le script, "script_time_..." celui ci fonctionne mais en boucle, puisque le NUT est bien éloigne pendant plus de deux minutes...
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 »

lua 9 ton erreur doit être ligne 9. c'est quoi la ligne9?
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 »

J'ai repris ton code pour être sur et toujours la même erreur
Voici l'erreur exact :
EventSystem: in /home/pi/domoticz/scripts/lua/script_time_nut.lua: /home/pi/domoticz/scripts/lua/script_time_nut.lua:5: bad argument #1 to 'sub' (string expected, got nil)
et la ligne 5 est celle ci :

Code : Tout sélectionner

 year = string.sub(s, 1, 4) 
Je ne voit pas l'erreur .
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 »

J'ai déja eu cette erreur. Si je me souviens bien c'est que le device auquel tu veux calculer timedifference est mal défini. string expected, got nil veut dire qu'il cherche une chaine de caractèere et il ne trouve rien
Dans ton cas il s'agirait de local presence = uservariables["NUT_dz"]. problème de thypographie? essai local presence = uservariables['NUT_dz']. Sinon essai de remplacer local presence = uservariables['NUT_dz'] par local presence = 'le nom de ton device qui gère ta variable NUT-dz'
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.
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Tempo sur NUT

Message par thier »

Maintenant c'est sport je reviens en fin de soirée. Post ton avancement.
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 thier pour tes explications :idea:

En changeant la typo comme conseillé j'ai toujours le même code d'erreur.
Et pour
Sinon essai de remplacer local presence = uservariables['NUT_dz'] par local presence = 'le nom de ton device qui gère ta variable NUT-dz'
la variable NUT_dz est géré par le script "check_beacon_presence.py" (https://easydomoticz.com/detection-de-p ... -partie-2/)qui passe cette variable de "HOME" à "AWAY" ou vice versa quand détection du tracker NUT.

Encore merci thier
BON SPORT surtout en tout cas ;)
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 »

donc je mettrais comme toi
s = uservariables_lastupdate['NUT_dz']
local presence = uservariables["NUT_dz"]
et pour éviter que le script tourne en boucle je changerais
if (uservariables['NUT_dz'] == 'AWAY' and lastSeen > 120) then
par if (otherdevices [Presence-DZ]=='On' and uservariables['NUT_dz'] == 'AWAY' and lastSeen > 120) then

Quand à l'erreur que j'avais eue le message n'était pas le même. voir ici viewtopic.php?f=8&t=1818&p=16106#p16106
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

Yess ! effectivement comme ça c 'est parfait, un ÉNORME merci a toi thier ;)
Avec tes explications et les changements apportés je comprend beaucoup mieux la logique de traitement, et comment ce "déroule" le code .

En espérant que cela puisse servir ...

Encore MERCI :)
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
Répondre