Aller au contenu
mprinfo

Sunrisehour, Sunsethour, Os.date Et Variable Jour_Nuit

Recommended Posts

re les boys,

 

mdr serait bien de poster un code tout prêt lol, moi je fais que des conneries avec tout ca  :2:

 

en tout cas merci de votre super taf !

Partager ce message


Lien à poster
Partager sur d’autres sites

yeah, toujours aussi super  ;-)

 

On apprend toujours et encore des anciens ;-)

 

Alors optimisons un max ;-)

 

Profitons profitons..;-)

 

PS : on pourrait faire aussi créer la VG si elle n'existe pas ;-)

 

à mprinfo : si tu mettais le code optimisé dans le 1er post ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

[DEBUG] 10:43:37: Lever Soleil : nil - Coucher Soleil : nil

 

Voilà  ce que j'ai dans le debug. Je suis en 4.042.

mais les variables locales lever et coucher sont bonnes. C'est la fonction string qui ne marche pas/plus.

Partager ce message


Lien à poster
Partager sur d’autres sites

question ? :D

 

le problème sur le truc, est que si on créer une scène par exemple en lui disant la nuit, éteint tel truc, il va se caler sur le coucher du soleil non ?

 

sera pas en fonction d'un timing genre 23h quoi ?

 

ou je sort ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Non, la variable est bonne. Un fibaro:debug(lever) juste avant l'appel me donne la bonne valeur. C'est le String et %s qui ne marche pas.

 

Update: J'ai trouvé. La variable pour le %S est "Lever" et pas "lever" mame chose pour coucher.

Partager ce message


Lien à poster
Partager sur d’autres sites

Ma faute, j'ai pas testé :(

 

J'ai corrigé dans mon post, j'ai pas pensé que cela allait être repris tel quel.

Partager ce message


Lien à poster
Partager sur d’autres sites

Ca me rassure, Maître Steven est un homme  :60: (et pas une machine infaillible)

Partager ce message


Lien à poster
Partager sur d’autres sites

Je vais même te faire rigoler :

 

Ma configuration de GEA ne tourne plus depuis 2 jours et je n'arrive pas trouver quel est la ligne en erreur.

 

Je pense que je fatigue  :D

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

faut prendre des vacs @Steven ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

pour ca que j'ai jamais voulu prog et jamais rien compris, ca chauffe trop le cerveau lol !  :60:

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

P@#*@ ... chercher l'erreur :

 

fibaro:setGlobal("Pushingbox")
fibaro:call(290, "pressButton", 1)
 
Dodo pépé ... dodo.
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah oui marche moins bien le setGlobal sur le Pushingbox ;-) comme ca hihi :60: :60:

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@mprinfo

Heuu, non ... NomVG est déclaré en tant que variable Globale au script, tout en haut du code. Elle est donc visible de partout dans le script. 

 

L'erreur que je vois dans mon code est 

 

function traitement(lever, coucher, heure)

   local valeur = "Nuit"

   -- test si on est le jour ou la nuit

   if (heure >= lever) and (heure < coucher) then

     valeur = "Jour"

   end

   UpdateVG(nuit) -- mise a jour de la VG Jour_Nuit

end

 

nuit n'existe pas, c'est valeur qu'il faut mettre.

 

Bien évidement, il peux y avoir d'autres erreurs.

 

 

Ca vous ira ?????

Moi je verrais bien un hystérésis  :60:

Partager ce message


Lien à poster
Partager sur d’autres sites

lol, salut les gars, vous avez pas ca de facon terminé, juste copier/coller :D

Partager ce message


Lien à poster
Partager sur d’autres sites

2ieme demande  :D

 

ca fait 2, je continu ? mdr

 

Oui intéressant car il peut faire encore jour ou nuit, pour le déclenchement de certaines scènes, c'est top !

Partager ce message


Lien à poster
Partager sur d’autres sites

@mprinfo, comme tu le sais cela peut également m'intéresser :60:

Ça fait 3 ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Moi je m'en fou suis super intéressé .. mais ça fait 5 :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Pas le choix !! On attend  :13:  :2:

Partager ce message


Lien à poster
Partager sur d’autres sites

allez fais pas la tete, je le suis aussi ;-) ..alors alors, on est combien ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

à‡a fait 12 !!!

mprinfo, mprinfo, mprinfo, mprinfo !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

mprinfo, mprinfo, mprinfo, mprinfo !!!

 

ouinnnn nous sommes 50 ayé, c'est over la :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour vous faire patientez en attendant que sa fille le laisse se reposer un peu :)

 

C'est un complément à  ceci : Précis Sur Les Variables Locales/globales

 

 

Pour la variable avec une portée globale et les passages de paramètres, voici une explication et un petit script pour bien comprendre son fonctionnement.

 

Notion de base sur le passage de paramètre :

Les paramètres d'une fonction peuvent être de 2 manières différentes (par référence ou par valeur) : 

- référence : la fonction reçoit l'adresse mémoire du paramètre. Un changement de valeur affectera TOUT le script

- valeur : on reçoit la valeur du paramètre Ce dernier est copié dans une nouvelle référence propre à  la fonction. Un changement de valeur n'affectera que la fonction.

 

en LUA, chaque passage de paramètre ce fait en "valeur" SAUF pour les tables (c'est comme en français, il y a toujours une exception).

 

Donc si je fais

 

function maFonction(var)

   print(var)

end

maFonction("Coucou")

 

j'envoi à  ma fonction la valeur, soit une copie de "Coucou". Si a l'intérieur de maFonction je modifie la valeur, cela n'aura un impact QU'AU sein de maFonction.

maFonction va donc créer une nouvelle variable "var" dans laquelle il va copier la valeur "Coucou"

 

Si je fais

 

local coucou = "Coucou"

function maFonction()

   print(coucou)

end

 

et que dans maFonction je modifie coucou, alors coucou va être modifié pour tout le script puisque la modification aura eu lieu sur sa référence.

 

En bref, si on est au sein d'un script ou d'une fonction, nous travaillons sur les références. Si nous passons les informations en tant que paramètre, nous travaillons sur une valeur.

 

local coucou = "Coucou"

function maFonction(variable)

   print(coucou)

   print(variable)

end

maFonction("Coucou")

 

Plus compliqué car la référence coucou est envoyée en paramètre et devient donc une copie de valeur.

local coucou = "Coucou"

function maFonction(variable1, variable2)

   print(variable1)

   print(variable2)

end

maFonction("Coucou", coucou)

 
 
Allez un bon script vaut mieux qu'un long discours :
 
function scope1()
  -- la variable var n'existe pas
  print(var)  --- nil (variable inexistante)
end

function scope2(var)
  -- la variable est passée en paramètres donc visible
  -- bien que déclarée après
  -- En sortant de cette méthode, var aura repris ça valeur
  -- initial car elle a été passée en paramètre soit par
  -- valeur
  print(var .. " dans scope2()") -- ______
  var = "Scope2"
  print(var) -- Scope2
end

local var = "-=init=-"

function scope3()
  -- la variable est connue car déclarée avant. Elle est assignable
  -- par contre, si on déclare une variable du même nom au sein
  -- de cette même function, en sortant la variable aura repris sa valeur "Scope3"
  print(var .. " dans scope3()")
  var = "Scope3"
  print(var)
  local var = "Byebye"
  print(var)
end

function exception(unTableau) 
  -- Les tableaux sont toujours traité comme une référence
  unTableau[1] = "Et voilà "
end

print(var .. " avant tout")
scope1()
print(var .. " après scope1()")
scope2(var)
print(var .. " après scope2()")
scope3()
print(var .. " après scope3()")

-- Exception avec les table qui sont toujours envoyé en tant que référence.
local table = {[1]="Humm"}
print(table[1])
exception(table)
print(table[1])

Debug :

[DEBUG] 11:39:22: -=init=- avant tout
[DEBUG] 11:39:22: nil
[DEBUG] 11:39:22: --init=- après scope1()
[DEBUG] 11:39:22: --init=- dans scope2()
[DEBUG] 11:39:22: Scope2
[DEBUG] 11:39:22: -=init=- après scope2()
[DEBUG] 11:39:22: -=init=- dans scope3()
[DEBUG] 11:39:22: Scope3
[DEBUG] 11:39:22: Byebye
[DEBUG] 11:39:22: Scope3 après scope3()
[DEBUG] 11:39:22: Humm
[DEBUG] 11:39:22: Et voilà 

.

.

Allez, dans combien de temps, notre mprinfo national va en faire un tuto avec des jolies couleurs ?  :)

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×