Page 2 sur 2

Re: Zwave et DiO

Publié : 11 janv. 2016, 10:35
par rimram31
Tu peux peut-être essayer un truc comme ça:

Code : Tout sélectionner

commandArray = {}
if (devicechanged['Capteur de porte'] == 'On') then
    print ('Ok capteur porte')      
    if (otherdevices['Inter entree'] == 'Off') then
        print ('Allumage 30mn inter entree')      
        commandArray['Inter entree']='On FOR 30'
    end
end	
return commandArray
Et en t'écrivant ça, je suis en train de penser que tu pourrais aussi essayer une "simple" scène domoticz. Une scène déclenchée par ton capteur de porte et qui allumerait ton inter avec délai d'extinction. Pas de script, tout peut se faire via le GUI

Re: Zwave et DiO

Publié : 11 janv. 2016, 11:54
par Neutrino
Bonjour,

Le problème est peut-être tout simple, en LUA, j'ai un contact de porte qui me renvoie 'Open' ou 'Closed' au lieu de 'On' ou 'Off'.
Essaie de voir avec un print ce que renvoie devicechanged['Capteur de porte'].

Re: Zwave et DiO

Publié : 11 janv. 2016, 13:37
par vil1driver
+1

pareil ici..

comme quoi jouer avec des prints permet de voir ce qu'il se passe...

Code : Tout sélectionner

-- script_device_porte.lua

time = os.date("*t")

t1 = os.time()
s = otherdevices_lastupdate['mv salon']
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 = {}

-- si la porte s'ouvre la nuit ou s'il fait noir et qu'aucun mouvement n'est détecté dans le salon depuis plus de 10 minutes, on allume la lampe
if (devicechanged['la porte'] == 'Open' and (timeofday['Nighttime'] or otherdevices['lumino salon'] == 'On') and difference > 600) then
   commandArray['le salon']='Set Level 60'
    
   
end
return commandArray 

Re: Zwave et DiO

Publié : 11 janv. 2016, 14:27
par leraver
Open.... ca semble normale , ok je teste.

Et cela pourrais meme etre la meme chose avec mon capteur de mouvement Fibaro qui ne dirait pas on mais "motion"...

Je teste de suite...

Re: Zwave et DiO

Publié : 11 janv. 2016, 14:56
par leraver
Mais une question un peu hors sujet:
Comment peux on savoir l'info qui est retourné par un capteur?

Re: Zwave et DiO

Publié : 11 janv. 2016, 15:00
par vil1driver
print print print :D

fallait dire que tu ne comprenais pas les réponses lol...

dans ton code tu mets

Code : Tout sélectionner

print(devicechanged['Capteur de porte'])
ou

Code : Tout sélectionner

print(otherdevices['Capteur de porte'])
et tu verras dans les logs le résultat

également comme ceci

Code : Tout sélectionner

print('etat de mon capteur de porte: ' .. otherdevices['Capteur de porte'])
ou

Code : Tout sélectionner

etat = otherdevices['Capteur de porte']
print('etat de mon capteur de porte: ' .. etat)

Re: Zwave et DiO

Publié : 15 janv. 2016, 18:22
par leraver
bon bin rien
avec ton code vil1
j'ai ca comme erreur

Code : Tout sélectionner

Error: EventSystem: /home/pi/domoticz/scripts/lua/script_device_porte.lua:7: bad argument #1 to 'sub' (string expected, got nil)

enfin voila le code que j'ai mis

Code : Tout sélectionner

-- script_device_porte.lua

time = os.date("*t")

t1 = os.time()
s = otherdevices_lastupdate['mv salon']
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 = {}

-- si la porte s'ouvre la nuit ou s'il fait noir , on allume la lampe
if (devicechanged['Capteur_porte'] == 'Open' and (timeofday['Nighttime']  == 'On') and difference > 600) then
   commandArray['inter_entree']='on'
    
   
end
return commandArray 

Re: Zwave et DiO

Publié : 15 janv. 2016, 18:37
par vil1driver
normal :D

le message d'erreur indique que l'erreur se trouve ligne 7
et qu'il attends une chaîne et qu'il n'obtient rien..

et pour cause
'mv salon' , c'est le nom de mon capteur de mouvement... que tu ne dois pas avoir ;)

je te montrais mon code en entier mais c'était juste pour que tu vois que j’utilisais 'Open' et non 'On'
pas pour que tu l'utilises telquel...
il faut essayer de comprendre ce qu'il fait et n'utiliser que ce qui peut t'être utile.

sinon tu as une autre erreur de code à la fin, 'On' ou 'Off' prennent toujours une majuscule

Code : Tout sélectionner

commandArray['inter_entree']='on'
et pour info, j'utilise le capteur de mouvement pour que la lampe ne s'allume pas si je sors de chez moi.. en gros je vérifie qu'il n'y ai personne depuis un moment avant de dire que si la porte s'ouvre, j'allume..

Re: Zwave et DiO

Publié : 15 janv. 2016, 19:26
par leraver
Bon je viens jouer en reprenant le code du demo
En modifiant 1 truc apres l'autre, et en utilisant ta commande print
Et... ca marche

Code : Tout sélectionner

-- script_device_porte.lua
--le capteur porte envoi open ce qui enclanche l'inter_entree pendant 1 min

print('script porte en cours')

commandArray = {}
if (devicechanged['Capteur_porte'] == 'Open' and otherdevices['inter_entree'] == 'Off') then
	commandArray['inter_entree']='On FOR 1'
	--commandArray=['inter_entree']='Off AFTER 10'
	
end
print(devicechanged['Capteur_porte'])
return commandArray