help - éclairrage exterieur temporisé

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 <\>.
Répondre
xeone
Messages : 7
Inscription : 08 nov. 2017, 18:48

help - éclairrage exterieur temporisé

Message par xeone »

bonjour,

voila j'ai un petit soucis avec mon premier script lua:
j'ai un détecteur de mouvement Fibaro et un module relais qui allumé a lumière extérieur.
je voudrais que lorsque qu'il y a un mouvement détecté et que la luminosité est en dessous de 50 lux la lumière s'allume pendant 5 minutes.

voila mon ébauche de script mais ça ne fonction pas !!
Si quelqu'un peut m'aider je lui serait reconnaissant. ;)

Code : Tout sélectionner

commandArray = {}
if (devicechanged['Motion Sensor Garage']) then
    valeur_lux_garage = (otherdevices_svalues['Niveau lux garage'])
    valeur_lux_garage = tonumber(valeur_lux_garage)
        if (otherdevices['Motion Sensor Garage'] == 'On' and valeur_lux_garage < 50)  then
            print("Présence détecté Garage !!")
            print("Lumière Garage allumée !!")
            commandArray['Lumière Garage']='On FOR 5'
        else
            commandArray['Lumière Garage']='Off AFTER 5'
        end
end
return commandArray
Dernière modification par xeone le 12 nov. 2017, 12:24, modifié 1 fois.
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: help - éclairrage exterieur temporisé

Message par landaisbenj »

Bonjour.

[Met ton code entre les balises fournient par le bbcode s'il te plait.]


Peut etre que ta valeur_lux_garage est mal prise en compte?
Essai d'inclure plus de print:

Code : Tout sélectionner


if (devicechanged['Motion Sensor Garage']) then
print(otherdevices_svalues['Niveau lux garage'])
	valeur_lux_garage = (otherdevices_svalues['Niveau lux garage'])
	valeur_lux_garage = tonumber(valeur_lux_garage)
print(valeur_lux_garage)
	if (otherdevices['Motion Sensor Garage'] == 'On' and valeur_lux_garage < 50) then
		print("Présence détecté Garage !!")
		print("Lumière Garage allumée !!")
		commandArray['Lumière Garage']='On FOR 5'
	else
print('Raté')
		commandArray['Lumière Garage']='Off AFTER 5'
	end
end

Sinon simplifie.
Ca:

Code : Tout sélectionner

	else
		commandArray['Lumière Garage']='Off AFTER 5'
Ca ne sert a rien ???
Si ta lumière est déjà allumée, le "On FOR 5" suffira à la faire s’éteindre après 5min...
En gros tu dis:
'si je détecte un mouvement j'allume les lumières pour 5 minutes, sinon je les éteins après 5 minutes"
Pourquoi les éteindre si tu n'as pas détecté de mouvement ? D'ailleurs pourquoi elle serait allumées lol

Aussi tu dis: "si mon motion change" et apres "si mon motion est a on"... Je ne pense pas qu'il y ait un intérêt.

Tu devrais essayer ça (sous réserve que j'ai raison vu que je n'y connais rien en LUA):

Code : Tout sélectionner

if devicechanged['Motion Sensor Garage']=='On' and tonumber(otherdevices_svalues['Niveau lux garage']) < 50 then
print("Présence détectée - Lumière Garage allumée!!")
	commandArray['Lumière Garage']='On FOR 5'
end
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: help - éclairrage exterieur temporisé

Message par landaisbenj »

En supplément, je rajouterai pour tous ceux qui passe, le premier script LUA devrais être ça:

Code : Tout sélectionner

if devicechanged['Bouton de test']=='On' then
	print('Test reussi')
end
Lol :P

Partir de cette base c'est casiment tout reussir.
Apres tu rajoute ta detection de lux par exemple:

Code : Tout sélectionner

if devicechanged['Bouton de test']=='On' and tonumber(otherdevices_svalues['Niveau lux garage']) < 50 then
	print('Test reussi')
end
Et après tu rajouteras l'allumage de la lampe... Etc.

Faire par palier ça permet de valider chaque chose. Avec le script au dessus tu peux faire des essais facilement en variant le 50. Apres t'as plus qu'a remplacer: "devicechanged['Bouton de test']=='On'" par "devicechanged['Motion garage']=='On'"
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
xeone
Messages : 7
Inscription : 08 nov. 2017, 18:48

Re: help - éclairrage exterieur temporisé

Message par xeone »

merci pour les conseil je vais reprendre depuis le début.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: help - éclairrage exterieur temporisé

Message par vil1driver »

salut,
landaisbenj a écrit :(...) j'allume les lumières pour 5 minutes, sinon je les éteins après 5 minutes (...)
AFTER est en seconde ;)
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
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: help - éclairrage exterieur temporisé

Message par landaisbenj »

Lol t’es un sniper. C’était surtout pour l’explication à vrai dire mais c’est bien de le rappeler.

Xeone donne nous des nouvelles si tu agrémente tes script.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
xeone
Messages : 7
Inscription : 08 nov. 2017, 18:48

Re: help - éclairrage exterieur temporisé

Message par xeone »

je reviens aux nouvelles en faisant comme ça les lumière s'allume bien par contre ça ne s’éteint pas !!

Code : Tout sélectionner

commandArray = {}
if devicechanged['Motion Sensor Entrée']=='On' and tonumber(otherdevices_svalues['Niveau lux entrée']) < 50 then
   print('Présence détectée à l\'entrée - Lumière entrée et garage allumée !!')
   commandArray['Lumière Entrée']='On FOR 3'
   print('Lumière Entrée allumée')
   commandArray['Lumière Garage']='On FOR 5'
   print('Lumière Garage allumée')
end
return commandArray
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: help - éclairrage exterieur temporisé

Message par vil1driver »

C'est le problème de FOR..
Ça revient à l'état précédent et non à l'état opposé..
(de même anciens derniers essais mais tu sembles confirmer que ça n'a pas changé)

Perso je règle la tempo dans ce cas directement dans les options du switch.
Le script servant juste à faire On..

Pour faire de la pub pour une fonction sympa,
SwitchOnFor() n'à pas ce soucis ;)
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
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: help - éclairrage exterieur temporisé

Message par landaisbenj »

Dans ce cas la solution serait d’allumer et de faire un off after a la suite.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
xeone
Messages : 7
Inscription : 08 nov. 2017, 18:48

Re: help - éclairrage exterieur temporisé

Message par xeone »

SwitchOnFor() !! Je ne connais pas cette fonction !!
Sinon je vais jouer sur le temps d'extinction des capteurs de mouvements.
Merci beaucoup pour votre aide.
Répondre