Page 1 sur 2

Planning avec un Script

Publié : 10 août 2017, 19:38
par stephG38
Bonjour à tous,
Je galère depuis un bon moment pour faire simplement un planning avec un script !
Il me manque encore quelque chose pour soit déclencher mon inter soit ne pas avoir un log toute les secondes :

Code : Tout sélectionner

--------------------------------
 ------ Variables ------
 --------------------------------

 local ECS ='Test'
 local heure = os.date("%H:%M")
 ---------------------------
 -- Fin Variables -- 
 
 commandArray = {}

          if (devicechanged['Test'])
        then
           
            if (heure > '18:59' and heure < '20:01') then
                    commandArray[ECS]='On'
            else    commandArray[ECS]='Off'
       
            end
        end

 return commandArray
Si je met le "devicechanged" mon inter ne bouge pas
et sans cela fonctionne bien mon inter s'allume et s'éteint aux heures demandées mes j'ai des logs toutes les secondes :

Code : Tout sélectionner

2017-08-10 19:35:52.349 EventSystem: Script event triggered: Eau Chaude
2017-08-10 19:35:52.338 (Temp Virtuel) Light/Switch (Test)
2017-08-10 19:35:52.387 EventSystem: Script event triggered: Eau Chaude
2017-08-10 19:35:52.375 (Temp Virtuel) Light/Switch (Test)
2017-08-10 19:35:52.403 EventSystem: Script event triggered: Eau Chaud
HELP
Merci par avance pour votre aide !!
Stéphane

Re: Planning avec un Script

Publié : 10 août 2017, 20:22
par stephG38
Bon j'avance mais c'est pas encore ça :

Code : Tout sélectionner

--------------------------------
 ------ Variables ------
 --------------------------------

 local ECS ='Test'
 local heure = os.date("%H:%M")
 ---------------------------
 -- Fin Variables -- 
 
 commandArray = {}
        if (heure == '20:16') then
            commandArray[ECS]='On'
        end    
        if (heure == '20:17') then
            commandArray[ECS]='Off'
        end    
       
   

 return commandArray
avec cette version les logs sont seulement dans l'intervale !
j'ai pensé ajouter les secondes mais défois elle sont suté et l'inter ne démare pas !!
HELP !!
Ca doit pas etre compliqué !!!!

Re: Planning avec un Script

Publié : 10 août 2017, 20:50
par thier
c'est bien un script time ?

Re: Planning avec un Script

Publié : 10 août 2017, 20:52
par stephG38
Bonjour
Je ne sait pas !

Re: Planning avec un Script

Publié : 10 août 2017, 21:09
par Neutrino
Moi je fais ça :

Code : Tout sélectionner

---récupère l'heure actuelle en minutes
time=os.time()
minutes=tonumber(os.date('%M',time))
hours=tonumber(os.date('%H',time))
maintenant=tonumber(hours*60+minutes)

---calcule entre 7h et 9h30
if(maintenant>=420 and maintenant<= 570)then
...
C'est sale, mais ça marche.

Re: Planning avec un Script

Publié : 10 août 2017, 21:13
par thier
tu ne sais pas ? je pense que tu devrais lire les bases de la programmation lua. regarde sur le wiki officiel.
regarde les différents noms de types de scripts, device, time, etc. du nom dépend la fréquence d'exécution du script.

Re: Planning avec un Script

Publié : 10 août 2017, 21:17
par Neutrino
Et même des tutos en français rédigés par notre hôte Patrice !
pour commencer :
https://easydomoticz.com/point-scripts-lua/

Pour tout déchirer :
https://easydomoticz.com/?s=lua

Re: Planning avec un Script

Publié : 10 août 2017, 21:19
par thier

Re: Planning avec un Script

Publié : 10 août 2017, 21:24
par thier
un dernier conseil puisque tu débute en lua, mets des prints dans tes scripts. ils s'ecriront dans les logs de Domoticz ce qui te permet de contrôler le déroulement de ton script et t'aide à trouver où ça bug

Re: Planning avec un Script

Publié : 10 août 2017, 23:23
par stephG38
Bonsoir à vous deux,
Un grand merci pour vos conseils !
Effectivement un peu de lecture ne fais pas de mal !!
J'ai basculé mon script en "Time" et cela fonctionne parfaitement !

Code : Tout sélectionner

--------------------------------
 ------ Variables ------
 --------------------------------

 local ECS ='Test'
 local heure = os.date("%H:%M")
 ---------------------------
 -- Fin Variables -- 
 
 commandArray = {}
        if (heure == '23:18') then
            commandArray[ECS]='On'
            print("Démarrage ECS")
        end    
        if (heure == '23:20') then
            commandArray[ECS]='Off'
            print("Arret ECS")
        end    
       
 return commandArray
J'ai même ajouté les print suivant vos conseils :D
Encore merci et je vais faire un peu de lecture sur les bases grâce à vos liens pour progresser en LUA.
Bonne soirée
Stéphane