Page 1 sur 3

[RESOLU]Script lumiere, capteur et heure marche pas

Publié : 22 déc. 2015, 12:35
par optik8
Bonjour, suite au bon coup de main de vil1driver j'ai réussi a allumer mon spot avec mon capteur.

Suivant ses conseil j'ai lu ces tuto très intéressants:

http://easydomoticz.com/point-scripts-lua/
http://easydomoticz.com/mon-premier-scr ... ondations/
http://easydomoticz.com/mon-premier-scr ... en-oeuvre/

Et je me suis dit qu'il faudrait que j'autorise l'allumage en fonction de l'heure.

J'avais déjâ essayé en créant un inter virtuel avec lever et coucher de soleil sans succès...malgrès google ou il y a des exemples mais rien n'y fait ça fera l'objet d'un topic dédié a ça.

Et en lisant ces tuto j'ai essayé de faire cela en lua

Pour cela j'utilise Notepad++ langage LUA (Si vous travaillez depuis Windows™ attention d’écrire votre fichier en UTF8, sans BOM)
mon fichier donne ceci:
--Allumage du spot garage si coco detecte et qu'il fait nuit.
--device utilisées: motion sensor 'coco' , interupteur garage 'inter_spot_garage'
--heure d'allumage avec la variable: Seuil_Heure (a indiquer avant comandArray)
-------------------------------------------------------------------------------------



-- la variable de seuil
Seuil_Heure="17:30:00"

--------------------------------------------------------------

commandArray = {}


if (devicechanged['coco']) then

Heure_Actuelle=os.date("%X")

print (Heure_Actuelle)

if Heure_Actuelle > Seuil_Heure then

print (ok heure sup a Heure_Actuelle)

if otherdevices['inter_spot_garage'] == 'Off')

print (le spot est bien éteint avant de l'allumer)

commandArray['inter_spot_garage']='On FOR 5'

end
else

print (Heure < a Heure_Actuelle)

end

return commandArray

Mais bien sur ça ne marche pas du premier coup :(


Le log m'envoie :
2015-12-22 12:10:13.861 Error: EventSystem: ...e/pi/domoticz/scripts/lua/script_device_allumagenuit.lua:24: ')' expected near 'heure'
La ligne 24 c'est: print (ok heure sup a Heure_Actuelle)


Ce qui me gène dans ce script c'est que je donne une variable a 17h30 mais ça devrait être par exemple 'entre 17h30 et 08h00' comme ça pour etre sur que ça marche je n'aurais qu'a modifier cette plage horaire pour etre soit dedans soit en dehors...non ? mais j'arrive pas a imaginer comment le faire...

Qu'en pensez vous ?

Merci de vos conseils

Re: Script lumiere, capteur et heure marche pas

Publié : 22 déc. 2015, 20:15
par patrice
Bonsoir

Sur la ligne

print (Heure < a Heure_Actuelle)

il faut faire

print ("Heure < a Heure_Actuelle")
entre guillemets pour afficher le texte tel quel
sinon Lua cherche qq chose qui se nomme Heure il ne trouve pas -> erreur

Re: Script lumiere, capteur et heure marche pas

Publié : 22 déc. 2015, 20:54
par optik8
Merci de ton aide.

Mais je laisse de coté ce topic pour l'instant, je viens de refaire une installation propre sur un pi2 que je viens de recevoir et plus rien ne fonctionne...mes périphériques sont reconnus j'ai 2 motion sensor et 2 inter et deux zones a éclairer, j'ai tout installé, nommé comme dans mon précédent topic "résolu" et bien rien ne marche... je suis déprimé.

Je reinstalle tout et on verra bien...

Re: Script lumiere, capteur et heure marche pas

Publié : 22 déc. 2015, 21:02
par ledouble33
fais une sauvegarde de ta carte sd de temp en temp ca t evitera de tous réinstaller depuis le debut

Re: Script lumiere, capteur et heure marche pas

Publié : 22 déc. 2015, 21:03
par vil1driver
effectivement le message dans le print doit être entre guillemets

mais..

si le message doit contenir une variable, je comprends Heure_Actuelle ?

tu dois l'exclure de la partie entre guillemet comme ceci (les .. servent à concaténer)

print ("Heure < a " .. Heure_Actuelle)

perso j'ai du mal à comprendre ce print ;)

sinon le code ça doit être rigoureux, pas d'oublie de parenthèse (il en manque une juste après le if ici):

Code : Tout sélectionner

if otherdevices['inter_spot_garage'] == 'Off')
pas non plus d'oublie de then après l'instruction if... then

chaque if doit se conclure par un end
dans ton script je compte 3 if pour seulement 2 end..

de la rigueur ;)

google t'aidera à comprendre comment fonctionne la série

if then
elseif then
else
end

bien comprendre cela t'aideras énormément, quelques devicechanged et otherdevices plus tard tu seras un chef =)

également bien faire attention à la casse.. Inter ou inter..

pour faire simple dans ton idée et éviter de jouer avec les heures, c'est parfois tordu..
domoticz permet facilement de dire dans lua si on est la nuit donc ça pourrait donner ceci :

Code : Tout sélectionner


-- script_device_coco.lua

-- Allumage du spot garage pour 5 minutes
-- si coco détecte
-- si le spot est éteint
-- s'il fait nuit.
-- device utilisés: motion sensor 'coco' , interrupteur garage 'Inter_spot_garage'

-------------------------------------------------------------------------------------

time = os.date("*t")

commandArray = {}
if (devicechanged['coco'] == 'On' and otherdevices['Inter spot garage'] == 'Off' and timeofday['Nighttime']) then
   commandArray['Inter spot garage']='On FOR 5'
end
return commandArray

Re: Script lumiere, capteur et heure marche pas

Publié : 22 déc. 2015, 21:06
par optik8
L'image est la même si je passe de pi1 à pi2 ? Parce que j'en ai de save de domoticz

Re: Script lumiere, capteur et heure marche pas

Publié : 22 déc. 2015, 21:08
par vil1driver
non

Re: Script lumiere, capteur et heure marche pas

Publié : 22 déc. 2015, 21:15
par ledouble33
non ca fonctionnera pas j ai essayé ,il y a peut etre une astuce mais je la connait pas :D
mais tu peux reinstaller domoticz et faire une restauration de la base de donnée dans parametre ,sauvegarde /restauration

Re: Script lumiere, capteur et heure marche pas

Publié : 22 déc. 2015, 21:20
par optik8
Donc je dois tout refaire... c'est en cours :D

Par contre merci pour ton...votre aide du script, des que j'ai retrouvé mes modules je te dis quoi.

Re: Script lumiere, capteur et heure marche pas

Publié : 22 déc. 2015, 21:31
par vil1driver
penses à réactiver les protocoles qui vont bien dans la config rfxcom