Allumer une lampe avec la sonnette

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 <\>.
brunojus74
Messages : 48
Inscription : 12 mai 2016, 07:27
Localisation : France-Russie-Maroc

Allumer une lampe avec la sonnette

Message par brunojus74 »

Bonjour,
Je me lance un script lua simple et pourtant j'ai un problème.
Je voudrai allumer une lampe pendant une durée définie (3 minutes) lorsque l'on sonne à la porte.

Voilà ce que j'ai essayé de faire et qui ne fonctionne pas.

**************************
-- script_device_Sonnette.lua
-- **************************
-- ***************
-- mes dispositifs
-- ***************
-- Sonnette Type : lighting 2, AC, Doorbell
-- L. Entrée Type : lighting 2, AC On/Off
-- C'estla nuit Type : lighting 2, AC, On/Off
--********
-- Souhait
-- *******
-- Je voudrai simplement que la lampe Entrée s'éclaire pendant un laps de temps de 5 minutes
-- à condition que ce soit la nuit
-- *********************
-- Variables utilisateur
-- *********************
Local Sonnette = 'Sonnette'
Local Lumière = 'L. Entrée'
Local Nuit = 'C'est la Nuit'
-- ******************
-- début du programme
-- ******************
commandArray = {}
if (devicechanged[Sonnette]) and (otherdevices[Nuit]=='On') then
commandArray[Lumière]='On'
end
return commandArray


Pour info je ne suis pas informaticien et débutant en Domoticz

Merci d'avance
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Allumer une lampe avec la sonnette

Message par vil1driver »

salut,

Code : Tout sélectionner

commandArray[Lumière]='On FOR 5'
https://www.domoticz.com/wiki/Events
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
brunojus74
Messages : 48
Inscription : 12 mai 2016, 07:27
Localisation : France-Russie-Maroc

Re: Allumer une lampe avec la sonnette

Message par brunojus74 »

Merci
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Allumer une lampe avec la sonnette

Message par Neutrino »

Code : Tout sélectionner

Local Nuit = 'C'est la Nuit'
ça ne peut pas marcher, l'apostrophe est interpréter comme la fin de la chaîne.
Remplace par

Code : Tout sélectionner

Local Nuit = "C'est la Nuit"
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
brunojus74
Messages : 48
Inscription : 12 mai 2016, 07:27
Localisation : France-Russie-Maroc

Re: Allumer une lampe avec la sonnette

Message par brunojus74 »

Merci,
Je me suis aperçu de l'erreur et j'ai modifier tous mes inters dans Domoticz en supprimant les espaces et apostrophes.

Et ensuite j'ai fait (plutôt pomper...) 2 scripts :
- 1 device pour allumer la lampe
- 1 time pour éteindre la lampe
car en mettant comme le suggère Vil1driver cela ne fonctionne pas.

Merci à tous



-- **************************************************************************
-- script_device Sonnette
-- Allumage de la lampe extérieur lorsque quelqu'un sonne et s'il fait nuit
-- **************************************************************************
-- Programme pour allumage
-- ********************************
commandArray = {}
if (devicechanged['Sonnette']) and ( otherdevices['Il_Fait_Nuit'] == 'On') then
commandArray['L_Extérieure']='On'
end
return commandArray



-- **************************************************************************
-- script_time Sonnette
-- Allumage de la lampe extérieure lorsque quelqu'un sonne et qu'il fait nuit
-- **************************************************************************
-- Variables utilisateur
-- **********************
-- script_time_entreenuitallumagelampe.lua
t1 = os.time()
s = otherdevices_lastupdate['L_Extérieure']
-- returns a date time like 2013-07-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)

commandArray = {}
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = (os.difftime (t1, t2))
if (otherdevices['L_Extérieure'] == 'On' and difference > 60 ) then
commandArray['L_Extérieure']='Off'
print('Lampe éteinte')
end
return commandArray
Répondre