Page 2 sur 3

Re: Help Vil1DRIVER ou autre ( script lua avec heure fixe pour différence )

Publié : 16 nov. 2015, 22:02
par oula85
je dois avoir une petite couille , apparement ca merde dans l'affectation de l'heure 06h35 j'ai essayé avec 6 ca n'a pas l'air mieux ( ptet en l'affectant en variable numérique ? ) dans les variables à éditer en tête de script mais je ne sais pas trop si les nombres sont acceptés

2015-11-16 21:59:58.836 Error: EventSystem: ...i/domoticz/scripts/lua/script_device_chauffagehorsHC.lua:25: ')' expected near '='

Code : Tout sélectionner

-- script_device_chauffagehorsHC.lua
-- ce script détecte une chauffe hors période heure creuse passé 06h30 et indique le temps depuis lequel le chauffage fonctionne dans la zone à la coupure de celui ci afin de faciliter le recalage en fonction de la température extérieure fluctuente 
 
--------------------------------
------ Variables à éditer ------
--------------------------------

local chauffe = 'Module Salon' -- Nom du module fil pilote
local chauffe2 = 'Module Cuisine' -- Nom du module fil pilote
local chauffe3 = 'Module Chambre 2' -- Nom du module fil pilote
local chauffe4 = 'Module Chambre Capucine' -- Nom du module fil pilote

--------------------------------
-- Fin des variables à éditer --
--------------------------------

function timedifference(d)
   s = otherdevices_lastupdate[d]
   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)
   t1 = os.time(year=os.date(%Y), month=os.date(%m), day=os.date(%d), hour='06', min='35', sec='00')
   t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
   difference = os.difftime (t1, t2)
return difference

commandArray = {}

if (devicechanged[chauffe] == 'Off') then
delta = timedifference(chauffe)
commandArray['SendNotification']='chauffe Salon décalée # de ' .. delta
end

if (devicechanged[chauffe2] == 'Off') then
delta = timedifference(chauffe2)
commandArray['SendNotification']='chauffe Cuisine décalée # de ' .. delta
end

if (devicechanged[chauffe3] == 'Off') then
delta = timedifference(chauffe3)
commandArray['SendNotification']='chauffe Chambre 2 décalée # de ' .. delta
end

if (devicechanged[chauffe4] == 'Off') then
delta = timedifference(chauffe4)
commandArray['SendNotification']='chauffe Chambre Capucine décalée # de ' .. delta
end
    
   
return commandArray

Re: Help Vil1DRIVER ou autre ( script lua avec heure fixe pour différence )

Publié : 16 nov. 2015, 22:06
par vil1driver
ah, désolé :mrgreen:

mes pauvres yeux :ugeek:

la ligne t1=

en début et fin changes les () par des {}

Re: Help Vil1DRIVER ou autre ( script lua avec heure fixe pour différence )

Publié : 16 nov. 2015, 22:13
par oula85
vil1driver a écrit :ah, désolé :mrgreen:

mes pauvres yeux :ugeek:

la ligne t1=

en début et fin changes les () par des {}

punaise je venais d'arriver à la même conclusion après avoir tenté avec les variables !!! en même temps je t'en demande beaucoup aussi :D

Code : Tout sélectionner

heure = 06
minute = 35
seconde = 00
 t1 = os.time(year=os.date(%Y), month=os.date(%m), day=os.date(%d), hour=heure, min=minute, sec=seconde)
   t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
avec ta modif j'en suis là

2015-11-16 22:14:16.887 Error: EventSystem: ...i/domoticz/scripts/lua/script_device_chauffagehorsHC.lua:25: unexpected symbol near '%' c'est la majuscule qui merde ?

Re: Help Vil1DRIVER ou autre ( script lua avec heure fixe pour différence )

Publié : 16 nov. 2015, 22:17
par oula85
non apparement pas ça

j'ai modifié ainsi ;

Code : Tout sélectionner

   t1 = os.time{year=year, month=month, day=day, hour='06', min='35', sec='00'}
   t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
ca bloque désormais plus loin

2015-11-16 22:19:29.016 Error: EventSystem: ...i/domoticz/scripts/lua/script_device_chauffagehorsHC.lua:30: 'end' expected (to close 'function' at line 17) near 'commandArray'

manquait visiblement un END à la fin du timedifference du départ

Re: Help Vil1DRIVER ou autre ( script lua avec heure fixe pour différence )

Publié : 16 nov. 2015, 22:26
par vil1driver
arg, ça m'apprendra à me précipiter sur les réponses sans rien tester.. désolé :?
voila qui fonctionne ici, testé :mrgreen:

Code : Tout sélectionner

os.time{year=os.date("%Y"), month=os.date("%m"), day=os.date("%d"), hour='06', min='35', sec='00'}

Re: Help Vil1DRIVER ou autre ( script lua avec heure fixe pour différence )

Publié : 16 nov. 2015, 22:30
par oula85
vil1driver a écrit :arg, ça m'apprendra à me précipiter sur les réponses sans rien tester.. désolé :?
voila qui fonctionne ici, testé :mrgreen:

NO PROBLEM comment pourrais je te reprocher ton investissement !!!

Code : Tout sélectionner

os.time{year=os.date("%Y"), month=os.date("%m"), day=os.date("%d"), hour='06', min='35', sec='00'}
ca change quoi du coup par rapport au mien modifié à ma sauce d'inculte ?

Code : Tout sélectionner

   t1 = os.time{year=year, month=month, day=day, hour='06', min='35', sec='00'}
   t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
je viens de tester apparement ça marche il me revoit bien une notification avec -57193

maintenant j'ai plus qu'a demander le lancement du script qu'entre telle heure et telle heure eviter qui ne sonne à tout va dans la journée

Re: Help Vil1DRIVER ou autre ( script lua avec heure fixe pour différence )

Publié : 16 nov. 2015, 22:34
par vil1driver
bah year, month et day sont empruntés au lastseen de ton chauffage.. ça va si les 2 sont du même jour..

comme chaque script sert aussi de pense bête autant utiliser les bonnes fonctions,

Re: Help Vil1DRIVER ou autre ( script lua avec heure fixe pour différence )

Publié : 16 nov. 2015, 22:37
par oula85
vil1driver a écrit :bah year, month et day sont empruntés au lastseen de ton chauffage.. ça va si les 2 sont du même jour..

comme chaque script sert aussi de pense bête autant utiliser les bonnes fonctions,
Clair ta modif si je comprends bien avec les % récupère les infos de mon interrupteur directement ; le Y en majuscule c'est normal par rapport aux autres ? ( autant pour moi année sur 4 chiffres doc inside …. )

je vais ptet juste rajouter un interrupteur virtuel de créneau de déclenchement ce sera plus simple à implémenter que de rajouter un code de condition d'heures dans le lua

Re: Help Vil1DRIVER ou autre ( script lua avec heure fixe pour différence )

Publié : 16 nov. 2015, 22:54
par oula85
Tout est parfaitement fonctionnel j'ai juste rajouté une condition de déclenchement avec un interrupteur planning "Delta" pour que l'action ne se déclenche que lorsque je le souhaite entre 6h et 8h par ex

Code : Tout sélectionner

-- script_device_chauffagehorsHC.lua
-- ce script détecte une chauffe hors période heure creuse passé 06h35 et indique le temps depuis lequel le chauffage fonctionne dans la zone à la coupure de celui ci afin de faciliter le recalage en fonction de la température extérieure 
 
--------------------------------
------ Variables à éditer ------
--------------------------------

local chauffe = 'Module Salon' -- Nom du module fil pilote
local chauffe2 = 'Module Cuisine' -- Nom du module fil pilote
local chauffe3 = 'Module Chambre 2' -- Nom du module fil pilote
local chauffe4 = 'Module Chambre Capucine' -- Nom du module fil pilote

--------------------------------
-- Fin des variables à éditer --
--------------------------------

function timedifference(d)
   s = otherdevices_lastupdate[d]
   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)
   t1 = os.time{year=os.date("%Y"), month=os.date("%m"), day=os.date("%d"), hour='06', min='35', sec='00'}
   t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
   difference = os.difftime (t1, t2)
return difference
end

commandArray = {}

if (devicechanged[chauffe] == 'Off') and (otherdevices['Delta'] == 'On') then
delta = timedifference(chauffe)
commandArray['SendNotification']='chauffe Salon décalée # de ' .. delta
end

if (devicechanged[chauffe2] == 'Off') and (otherdevices['Delta'] == 'On') then
delta = timedifference(chauffe2)
commandArray['SendNotification']='chauffe Cuisine décalée # de ' .. delta
end

if (devicechanged[chauffe3] == 'Off') and (otherdevices['Delta'] == 'On') then
delta = timedifference(chauffe3)
commandArray['SendNotification']='chauffe Chambre 2 décalée # de ' .. delta
end

if (devicechanged[chauffe4] == 'Off') and (otherdevices['Delta'] == 'On') then
delta = timedifference(chauffe4)
commandArray['SendNotification']='chauffe Chambre Capucine décalée # de ' .. delta
end
    
   
return commandArray

Re: timedifférence entre un DEVICE et une heure fixe avec notification , Vil1DRIVER MERCIIII

Publié : 16 nov. 2015, 22:57
par vil1driver
;)