[RESOLU]Script lumiere, capteur et heure marche pas

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 <\>.
optik8
Messages : 87
Inscription : 17 déc. 2015, 12:23

[RESOLU]Script lumiere, capteur et heure marche pas

Message 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
Dernière modification par optik8 le 13 janv. 2016, 22:54, modifié 2 fois.
PI2, RFX
APIR2150,coco ACM-1000,Z-Wave Stick Gen5,everspring SP103,smarthome AN179,ZG8101,FGSD-002,RGBW Z-Wave,Zipato PAN04 - Micromodule 2 relais avec mesure de conso,RepeteurZ-WaveZR1202
3volets Somfy
HW0039
AXIS 1034W
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Script lumiere, capteur et heure marche pas

Message 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
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
optik8
Messages : 87
Inscription : 17 déc. 2015, 12:23

Re: Script lumiere, capteur et heure marche pas

Message 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...
PI2, RFX
APIR2150,coco ACM-1000,Z-Wave Stick Gen5,everspring SP103,smarthome AN179,ZG8101,FGSD-002,RGBW Z-Wave,Zipato PAN04 - Micromodule 2 relais avec mesure de conso,RepeteurZ-WaveZR1202
3volets Somfy
HW0039
AXIS 1034W
ledouble33
Messages : 286
Inscription : 07 févr. 2015, 07:45

Re: Script lumiere, capteur et heure marche pas

Message par ledouble33 »

fais une sauvegarde de ta carte sd de temp en temp ca t evitera de tous réinstaller depuis le debut
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script lumiere, capteur et heure marche pas

Message 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
Dernière modification par vil1driver le 22 déc. 2015, 21:34, 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
optik8
Messages : 87
Inscription : 17 déc. 2015, 12:23

Re: Script lumiere, capteur et heure marche pas

Message par optik8 »

L'image est la même si je passe de pi1 à pi2 ? Parce que j'en ai de save de domoticz
PI2, RFX
APIR2150,coco ACM-1000,Z-Wave Stick Gen5,everspring SP103,smarthome AN179,ZG8101,FGSD-002,RGBW Z-Wave,Zipato PAN04 - Micromodule 2 relais avec mesure de conso,RepeteurZ-WaveZR1202
3volets Somfy
HW0039
AXIS 1034W
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script lumiere, capteur et heure marche pas

Message par vil1driver »

non
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
ledouble33
Messages : 286
Inscription : 07 févr. 2015, 07:45

Re: Script lumiere, capteur et heure marche pas

Message 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
optik8
Messages : 87
Inscription : 17 déc. 2015, 12:23

Re: Script lumiere, capteur et heure marche pas

Message 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.
Dernière modification par optik8 le 22 déc. 2015, 21:39, modifié 1 fois.
PI2, RFX
APIR2150,coco ACM-1000,Z-Wave Stick Gen5,everspring SP103,smarthome AN179,ZG8101,FGSD-002,RGBW Z-Wave,Zipato PAN04 - Micromodule 2 relais avec mesure de conso,RepeteurZ-WaveZR1202
3volets Somfy
HW0039
AXIS 1034W
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script lumiere, capteur et heure marche pas

Message par vil1driver »

penses à réactiver les protocoles qui vont bien dans la config rfxcom
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
Répondre