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 <\>.
--Script pour allumer les lumières du couloir
--En fonction de l'heure et de la luminosité
--Si luminosité pas suffisante on allume
--La petite lampe entre 23h et 9h
--Les 2 plafonniers sinon
commandArray = {}
if (devicechanged['detecteur_haut'] == 'On')then
print('mouvement')
if (tonumber(otherdevices_svalues['detecteur_haut_lum'])<10) then
print('lumiere faible')
if (os.date('%H') > '23' and os.date('%H') < '9') then
print('entre 23h et 9h')
commandArray['Lampe_couloir']='On FOR 30 SECONDS'
elseif
print('entre 9h et 23h')
commandArray['Group:Couloir']='On FOR 30 SECONDS'
end
end
end
return commandArray
Actuellement quand je place le fichier dans le dossier domoticz/scripts/lua j'ai le message d'erreur:
if (os.date('%H') > '23' and os.date('%H') < '9') then
print('entre 23h et 9h')
commandArray['Lampe_couloir']='On FOR 30 SECONDS'
elseif
print('entre 9h et 23h')
commandArray['Group:Couloir']='On FOR 30 SECONDS'
end
Le message 'then' expected near 'commandArray' indique un problème avec un then, très certainement manquant ...
commandArray = {}
if (devicechanged['detecteur_haut'] == 'On')then
print('mouvement')
if (tonumber(otherdevices_svalues['detecteur_haut_lum'])<10) then
print('lumiere faible')
if (os.date('%H') > '23' or os.date('%H') < '9') then
print('entre 23h et 9h')
commandArray['Lampe_couloir']='On FOR 30 SECONDS'
else
print('entre 9h et 23h')
commandArray['Group:Couloir']='On FOR 30 SECONDS'
end
end
end
return commandArray
FOR est chiant car retourne à l'état précédent et non opposé.
Si déjà On lors du On FOR.. A la fin du décompte : retour à On..
Du moins c'était comme ça... Aujourd'hui je ne sais pas
Je testerai avec "On FOR 30 SECONDS" sinon je testerai la méthode @boum.
Pour le retour à l'état précédent c'est pas un soucis je trouve, au contraire.