Zwave et DiO

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: Zwave et DiO

Message 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
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Zwave et DiO

Message 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'].
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Zwave et DiO

Message 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 
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
leraver
Messages : 143
Inscription : 09 oct. 2015, 12:38
Contact :

Re: Zwave et DiO

Message 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...
Un jour j'irais vivre en théorie.
Parce que en théorie tous ce passe bien...
leraver
Messages : 143
Inscription : 09 oct. 2015, 12:38
Contact :

Re: Zwave et DiO

Message par leraver »

Mais une question un peu hors sujet:
Comment peux on savoir l'info qui est retourné par un capteur?
Un jour j'irais vivre en théorie.
Parce que en théorie tous ce passe bien...
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Zwave et DiO

Message 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)
Dernière modification par vil1driver le 15 janv. 2016, 18:30, modifié 2 fois.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
leraver
Messages : 143
Inscription : 09 oct. 2015, 12:38
Contact :

Re: Zwave et DiO

Message 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 
Un jour j'irais vivre en théorie.
Parce que en théorie tous ce passe bien...
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Zwave et DiO

Message 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..
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
leraver
Messages : 143
Inscription : 09 oct. 2015, 12:38
Contact :

Re: Zwave et DiO

Message 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
Un jour j'irais vivre en théorie.
Parce que en théorie tous ce passe bien...
Répondre