Aller au contenu

Créer Variable Avec Temps X Avant Le Couché Du Soleil


Messages recommandés

Posté(e)

Tout en haut du site tu as un lien dans l'onglet : API Fibaro.fr (http://www.domotique-fibaro.fr/index.php/cp/2-api-fibarofr/)

Vas jeter un œil et essaye de comprendre au moins la présentation et la partie "ce qu'il faut savoir".

Pour ce que tu veux faire réfères toi a ce qu'on a fait ensemble pour trouver l'heure dite avant le coucher du soleil et ensuite enregistre ça dans ta variable (que tu auras créée auparavant dans le panneau variable) avec fibaro:setGlobale explication là-> http://www.domotique-fibaro.fr/index.php?app=cp&do=show&pageId=24

Posté(e)

Et si tu as fermé la porte parce qu'il fait 40 dehors et que tu ne veux pas que la chaleur africaine entre chez toi ;)

Non sa va, car sa active en même temps des ventilateurs et je ne referme pas entièrement la baie vitré.

Et de toute façon je ne sors jamais sans une de mes tablettes ^^.

Posté(e)

Dernière chose avant d'aller me coucher... Je pense que ce que tu veux faire est trop compliqué et ne sert qu'àéviter le code lua.

Reprends le message 2 dans lequel je t'ai copié/collé le code.

La seule chose que tu as àchanger est la ligne 18 qui correspond àl'allumage d'un module lampe.

Tu peux donc copier/coller ce code autant de fois que tu veux pour faire ce que tu veux en réglant l'heure avant le coucher du soleil àla ligne 15 juste après os.time.

Pour t'expliquer rapidement le code :

Ligne 9 : si le déclencheur (trigger) est "autostart" (déclenchement toutes les x secondes)

Ligne 10 : tant que cette condition est vraie

Ligne 15 : si on est lundi ou mardi ou mercredi ou jeudi ou vendredi ou samedi ou dimanche ET que l'heure est 10 minutes avant le coucher du soleil

Ligne 17 : Alors

Ligne 18 : allumer le module 12

Ligne 21 : attendre une minute avant de retourner àla ligne 10

En espérant que ça t'aide. :)

Posté(e)
--[[
%% autostart
%% properties
%% globals
METEO
--]]

local sourceTrigger = fibaro:getSourceTrigger();
if (sourceTrigger["type"] == "autostart") then
while true do

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
 ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and os.date("%H:%M", os.time()+480*60) == fibaro:getValue(1, "sunsetHour")) )
and
 ( fibaro:getGlobalValue("METEO") == "DECOUVERT" ) -- état météo 
)
then
	fibaro:call(25, "setValue", "40"); -- ouverture volet arrière cuisine 40 pourcent
	fibaro:call(20, "setValue", "50"); -- ouverture volet salon 50 pourcent
	fibaro:call(22, "sendDefinedPushNotification", "5"); -- notification fermeture volets partiel début aprés midi
	fibaro:sleep(20000); -- temps avant reouverture des volets ID 25 ET 20
	fibaro:call(25, "open");
	fibaro:call(25, "setValue2", "99"); -- ouverture totale volet arriere cuisine
	fibaro:call(20, "open");
	fibaro:call(20, "setValue2", "99"); -- ouverture totale volets salon
	fibaro:call(22, "sendDefinedPushNotification", "6"); -- notification ouverture volets total fin de journée
end

fibaro:sleep(60*1000);
end
else

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
 ( (currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) )
and
 ( fibaro:getGlobalValue("METEO") == "DECOUVERT" )
or
startSource["type"] == "other"
)
then
	fibaro:call(25, "setValue", "40");
	fibaro:call(20, "setValue", "50");
	fibaro:call(22, "sendDefinedPushNotification", "5");
	fibaro:sleep(30000);
	fibaro:call(25, "open");
	fibaro:call(25, "setValue2", "99");
	fibaro:call(20, "open");
	fibaro:call(20, "setValue2", "99");
	fibaro:call(22, "sendDefinedPushNotification", "6");
end

end


Salut Jossalf

 

une petite question pourquoi la scène se relance ligne 36

Posté(e)

Je n'ai pas d'ordinateur ce soir alors je ne peux pas te poster le code corrigé mais il faut que tu fasses 2 scènes.

Une pour le coucher du soleil anticipé (la première partie de ton code)

Et

Une autre pour le coucher du soleil.

Tu devras corriger ton code en effaçant tout ce qui suit la ligne 34. Il faut aussi que tu remplaces "else" par end. Pour terminer le 1er IF.

En suite tu fais un copier/coller de toute cette scène corrigée mais tu remplaces ce qu'il y a entre les lignes 21 à29 par ce qui était lignes 46 à54.

  • Upvote 1
Posté(e)

et pour la ligne 32 c'est une pause avant un autre déclanchement ?

Cette ligne fait une pause avant de continuer la boucle qui commence ligne 11.

En bas de ton code lua tu as un bouton debug qui te permet de tester ton code.

Posté(e)

Merci jossalf

désolé de te demander ça mais c'est pas trop te demander de m'envoyer une copie corriger des que tu pourras que je puisse comprendre

J'apprends mieux en mettant en pratique qu'a lire des textes incompréhensible

Posté(e)

Oula tu es dur en affaires ;) je t'ai tout dit au message 82. Tu y es presque.

Mais si tu as la patience, je te fera ça dès que possible.

Posté(e)


--[[

%% properties

%% globals

JOUR_NUIT

METEO

--]]

local sourceTrigger = fibaro:getSourceTrigger();

if (sourceTrigger["type"] == "autostart") then

while true do

local currentDate = os.date("*t");

local startSource = fibaro:getSourceTrigger();

if (

( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and os.date("%H:%M", os.time()+540*60) == fibaro:getValue(1, "sunsetHour")) )

and

( fibaro:getGlobalValue("JOUR_NUIT") == "JOUR" and fibaro:getGlobalValue("METEO") == "DECOUVERT" )

)

then

fibaro:call(25, "setValue", "50");

fibaro:call(20, "setValue", "50");

fibaro:call(22, "sendDefinedPushNotification", "5");

fibaro:sleep(21600000);

fibaro:call(25, "open");

fibaro:call(25, "setValue2", "99");

fibaro:call(20, "open");

fibaro:call(20, "setValue2", "99");

end

fibaro:sleep(60*1000);

end

end

  • Upvote 1
Posté(e)

Oui je sais cela fait parti de mon boulo  :P

 

comme je te disais je comprend beaucoup mieux en comparant le différentes scènes mais si tu ne peux pas ce n'est pas grave je t’avouerais que je colle quand tu dis  qu'il faut que je fasse 2 scènes pour le reste c'est ok

Posté(e)

Seconde scène au coucher du soleil :

--[[
%% properties
%% globals
JOUR_NUIT
METEO
--]]
 
local sourceTrigger = fibaro:getSourceTrigger();
if (sourceTrigger["type"] == "autostart") then
while true do
 
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
 ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and os.date("%H:%M", os.time())== fibaro:getValue(1, "sunsetHour")) )
and
 ( fibaro:getGlobalValue("JOUR_NUIT") == "JOUR"  and  fibaro:getGlobalValue("METEO") == "DECOUVERT" )
)
then
		fibaro:call(25, "setValue", "40");
	fibaro:call(20, "setValue", "50");
	fibaro:call(22, "sendDefinedPushNotification", "5");
	fibaro:sleep(30000);
	fibaro:call(25, "open");
	fibaro:call(25, "setValue2", "99");
	fibaro:call(20, "open");
	fibaro:call(20, "setValue2", "99");
	fibaro:call(22, "sendDefinedPushNotification", "6");
end
 
fibaro:sleep(60*1000);
end 
end
  • Upvote 1
Posté(e)

Attention j'ai fait ça sur iPad avec plusieurs éditions. Ça devrait être bon maintenant.

Je n'ai fait que ce que je te disais dans le message 82.

Je n'ai pas testé mais l'idée est là. À toi d'analyser maintenant.

Oui je suis gentil :) mais je sais surtout ce qu'est la frustration du débutant. ;)

C'est quoi ton taf ?

  • Upvote 1
Posté(e)

Je suis carrossier responsable d'atelier donc beaucoup de négoce avec les experts, donc tu te doute bien que mon boulo est très loin des scripts LUA 

Posté(e)

PS : attention je n'ai pas vérifié dans le détail les codes pour voir si ça fonctionne. Tu verras àl'usage ;)

Personnellement je n'aurais pas fait comme ça, surtout avec un sleep de 21600000 !

Mais ça je te l'ai déjàdit et Shad aussi...

Posté(e)

PS : attention je n'ai pas vérifié dans le détail les codes pour voir si ça fonctionne. Tu verras à  l'usage ;)

Personnellement je n'aurais pas fait comme ça, surtout avec un sleep de 21600000 !

Mais ça je te l'ai déjà  dit et Shad aussi...

 Oui je sais je modifierais à  l'usage le temps d'apprendre  ;)

Posté(e)

Pour éviter les sleeps importants je vais créer 1 scène pour le l’ensoleillement et 1 autre pour la fin de l'ensoleillement  :D

Posté(e)

Oui mais attention, la HC2 utilise sa propre bibliothèque de script et certaine fonctions peuvent être désactivé.

Posté(e)

Perso j'utilise notepad++.

Après si tu as envie Benjy àmis un code au point pour avoir les même couleur syntaxique que la HC2.

  • Upvote 1
×
×
  • Créer...