[LUA] Script de fermeture et d"ouverture volets roulants
Publié : 29 mars 2017, 13:25
Edit du 22/04/2017: le script fonctionne, voir le code dans ce message
Bonjour à tous.
Débutant dans la domotique, j'ai honteusement pompé le code de ce super site
(tout en laissant les commentaires dans le code non mais...)
Le but est d'ouvrir les volets et de les fermer suivant l'heure et la luminosité mais aussi suivant certaines conditions: Invité present, jour férié (non implementé encore), samedi dimanche, ....
le soucis est que cela ne fonctionne pas pour l'ouverture
et pour la fermeture, je pourrais vous dire ce soir.
Le but étant de me former au script LUA, je ne desire pas reprendre un script deja fait.
Pouvez vous me mettre sur la voie et m'indiquer ce qui pourrait bloquer sans me donner forcement la réponse (il faut que je progresse...
) ?
Je n'ai pas accès au log de ce matin car la fenêtre de log ne remonte pas assez loin.
Savez vous ou accéder simplement en mode fichier au log ?
De plus, peux t'on afficher plus de log dans la fenêtre log de domoticz ?
De plus, d'apres ce que je comprend, le script se lance a chaque changement de charge CPU... cela n'est il pas trop gourmand ?
Ou regarder la charge du serveur Domoticz ?
Merci a vous.
SCRIPT QUI FONCTIONNE - V2 du 22/04/2017
ATTTENTION CE SCRiPT NE FONCTIONNE PAS
Bonjour à tous.
Débutant dans la domotique, j'ai honteusement pompé le code de ce super site
Le but est d'ouvrir les volets et de les fermer suivant l'heure et la luminosité mais aussi suivant certaines conditions: Invité present, jour férié (non implementé encore), samedi dimanche, ....
le soucis est que cela ne fonctionne pas pour l'ouverture
et pour la fermeture, je pourrais vous dire ce soir.
Le but étant de me former au script LUA, je ne desire pas reprendre un script deja fait.
Pouvez vous me mettre sur la voie et m'indiquer ce qui pourrait bloquer sans me donner forcement la réponse (il faut que je progresse...
Je n'ai pas accès au log de ce matin car la fenêtre de log ne remonte pas assez loin.
Savez vous ou accéder simplement en mode fichier au log ?
De plus, peux t'on afficher plus de log dans la fenêtre log de domoticz ?
De plus, d'apres ce que je comprend, le script se lance a chaque changement de charge CPU... cela n'est il pas trop gourmand ?
Ou regarder la charge du serveur Domoticz ?
Merci a vous.
SCRIPT QUI FONCTIONNE - V2 du 22/04/2017
Code : Tout sélectionner
-- Gestion des volets roulants en fonction
-- de la luminosite et d l'heure
-- le capteur utilisé est celui du salon nommé 'Luminosite Oeil Salon',
-- le groupe Volets est basculé si on est inf a 150 Lux et
-- qu'il est plus de 19h00
--
-- source de base (et modifié par schwinny) https://easydomoticz.com/mon-premier-script-lua-dans-domoticz-la-mise-en-oeuvre/
-- V2: 22/04/2017: correction de detection baie vitre ouverte
--------------------
-- les variables de seuil.
Seuil_Heure_Soir="20:00:00"
Seuil_Lux=100
Seuil_Heure_Matin="07:00:00"
-------------------
--------------------
-- les variables Locales
--- Récuperation du jour de la semaine: 1:Dimanche 2:Lundi .... 7:Samedi
local JourSemaine=os.date("*t").wday
--------------------
commandArray = {}
time = os.date("*t")
if ((time.min % 60)==0) then
Heure_Actuelle=os.date("%X")
print('Script de fermeture des volets lancé')
print(Heure_Actuelle)
--Heure de Fermeture
if Heure_Actuelle >= Seuil_Heure_Soir then
print ("Heure de Fermeture Volet Atteinte")
valeur_lux = otherdevices_svalues['Luminosite oeil salon']
valeur_lux=tonumber(valeur_lux)
print("luminosite actuelle = "..valeur_lux)
if (valeur_lux < Seuil_Lux) then
if (otherdevices['Capteur ouverture salon']=="Off") then
print("Fermeture des volets")
commandArray['Scene:Fermeture Volets']='On'
else
print("Baie Vitrée Ouverte, Mise en sécurité")
end
else
print("Il fait encore Jour, nous ne faisons rien")
end
else
if Heure_Actuelle == Seuil_Heure_Matin then
print(JourSemaine)
if ((JourSemaine==7)or(JourSemaine==0)) then
print("Heure d'ouverture atteinte mais Jour non travaillé")
else
if (otherdevices['Invite Present'] == 'On') then
print("Heure d'ouverture atteinte, Invité Present")
else
print("Heure d'ouverture atteinte")
print("Ouverture des volets")
commandArray['Scene:Ouverture Volets']='On'
end
end
end
end
end
return commandArray
ATTTENTION CE SCRiPT NE FONCTIONNE PAS
Code : Tout sélectionner
-- Gestion des volets roulants en fonction
-- de la luminosite et d l'heure
-- le capteur utilisé est celui du salon nommé 'Luminosite Oeil Salon',
-- le groupe Volets est basculé si on est inf a 150 Lux et
-- qu'il est plus de 19h00
--
-- https://easydomoticz.com/mon-premier-script-lua-dans-domoticz-la-mise-en-oeuvre/
--------------------
-- les variables de seuil.
Seuil_Heure_Soir="19:00:00"
Seuil_Lux=150
Seuil_Heure_Matin="07:00:00"
-------------------
--------------------
-- les variables Locales
--- Récuperation du jour de la semaine: 0:Dimanche 1:Lundi ....
local JourSemaine=os.date("*t").wday
--------------------
commandArray = {}
if (devicechanged['CPU_Usage'])then
Heure_Actuelle=os.date("%X")
print (Heure_Actuelle)
--Heure de Fermeture
if Heure_Actuelle > Seuil_Heure_Soir then
print ("Heure de Fermeture Volet Atteinte")
valeur_lux = (otherdevices_svalues['Luminosite Oeil Salon'])
valeur_lux=tonumber(valeur_lux)
print("lum = "..valeur_lux)
if ((valeur_lux < Seuil_Lux) and (otherdevices_svalues['Capteur Ouverture Salon']=='On')) then
print("Heure de Fermeture atteinte")
commandArray['Scene:Fermeture Volets']='On'
else
print("Heure de Fermeture atteinte mais Baie Vitrée Ouverte")
end
else
if Heure_Actuelle > Seuil_Heure_Matin then
if ((JourSemaine==0)or(JourSemaine==6)) then
print("Heure d'ouverture atteinte mais Jour non travaillé")
else
if (otherdevices['Invite Present'] == 'On') then
print("Heure d'ouverture atteinte, Invité Present")
else
print("Heure d'ouverture atteinte")
commandArray['Scene:Ouverture Volets']='On'
end
end
else
print("Heure de Fermeture Volet NON Atteinte")
end
end
end
return commandArray