Aller au contenu
lionel

Créer et utiliser une Variable

Recommended Posts

bonjour a tous

 

Je cherche a créer une scène entre le coucher  et le lever du soleil,

 

j ai essayé avec les scènes blocs ,mais ça ne fonctionne pas

 

une idée, de script?

 

Merci

 

Lionel

Modifié par moicphil
lionelA, je me suis permis de modifier le titre.

Partager ce message


Lien à poster
Partager sur d’autres sites

Ce que j'ai fais, c'est de créer 1 Variable qui change de valeur en fonction du lever ou du coucher du soleil, ensuite tu n'as plus qu'à  positionner cette variable dans tes scènes.

 

  • Dans le panneau "Variables" j'ai créé "LEVERCOUCHER"

gallery_2_5_41098.jpg

 

  • Ensuite 2 scènes pour changer la valeur de la variable en fonction du moment de la journée :

gallery_2_5_17029.jpg

 

gallery_2_5_23806.jpg

 

( Bien penser de cocher "lancer au démarrage du HC2" ! )

 

  • Voici un exemple utilisant la variable ci-dessus...

j'ai un capteur dans ma boite au lettre pour me prévenir quand le facteur est passé. Pour éviter d’être réveillé la nuit si quelqu'un met un prospectus par exemple.

En condition, j'ai donc rajouté cette variable en plus de mon détecteur :

 

gallery_2_5_44517.jpg

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

j ai créer mes deux variables prédefinies

-une 'jour'=On ou Off

-une 'nuit'=On ou Off

 

et ensuite j ai créer une scène 

-au lever du soleil

-jour=On

-nuit=Off

et inversement au coucher

 

je pense qu il doit exister un script  plus simple  :huh:

mais ça fonctionne  :60:

 

merci

Partager ce message


Lien à poster
Partager sur d’autres sites

je savais qu il y avait plus simple...

 

pas de problème pour le titre

 

par contre il faudrait déplacer le sujet vers tutoriels ?!

 

merci encore 

Partager ce message


Lien à poster
Partager sur d’autres sites

Un sm103 couplé avec un contact magnétique moulé et étanche.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir,

J'ai suivi le tuto de Cédric Locqueneux pour synchroniser l'agenda Google avec la HC2.

"maison-et-domotique.com/books/hc2-de-fibaro-et-calendrier-google"

Mais j'ai soucis sur la création des variables.( variable simple, pas prédéfinie)

Il faut mettre des lettre mais seul les chiffres sont acceptés.

Il y a une maniére spéciale pour créer de telle variable ou c'est juste plus possible?

Partager ce message


Lien à poster
Partager sur d’autres sites

Il est impossible de créer directement une variable avec des lettres. Il faut créer la variable avec 0 par exemple et la mettre àjour avec un fibaro:setGlobal et la tout est ok: lettres, true/false, etc...

Partager ce message


Lien à poster
Partager sur d’autres sites

OK je te remercie KriKroff, c'est donc dans le script qu'il y a un souci alors, car j'ai suivi àla lettre en mettant bien entendu mais mes paramétrages personnels et cela ne remonte pas juste qu'aux variables.

En fait, ça marche. Je pense que comme je le faisais àdistance, il y avait un problème de rafraîchissement car sur place ça fonctionne nickel.

Il y a qu'une chose que je ne comprends pas, c'est qu'elle périphérique avec l'ID 89 qu'il appelle àcette ligne.

fibaro:call(89, »setProperty », »ui.Label2.value »,response.demain_text)

Partager ce message


Lien à poster
Partager sur d’autres sites

oui 89 est l' ID du périphérique virtuel ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Une petite question (décidemment je fouine partout :P )

La variable lever/coucher du soleil dans le permier mode bloc, c'est une variable qui va automatiquement chercher les horaires sur le net ou c'est toi qui lui donne des heures fixent?

Partager ce message


Lien à poster
Partager sur d’autres sites

La box gère automatiquement les horaires de lever et coucher du soleil ( selon ta configuration géographique dans les paramètres "localisation" ) , tu n'as pas àt'en occuper.

Partager ce message


Lien à poster
Partager sur d’autres sites

La box gère automatiquement les horaires de lever et coucher du soleil ( selon ta configuration géographique dans les paramètres "localisation" ) , tu n'as pas à  t'en occuper.

C'est un poil embetant quand meme.

Cet hiver ça fonctionnait bien, mais cette semaine j'ai remarqué qu'avec le soleil et les jours qui ralongent, bien la lumière s'allume trop tot.

Pour etre vraiment certain je pense qu'il faudrait en passer par un détecteur de luminosité.

 

Donc question ; avec les jours qui ralonge avez vous le meme probleme que moi ?

Si oui, ça veut dire que le truc de localisation bug.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je n'ai pas remarqué de décalage, mais je vais faire attention.

 

Je ne sais pas ou la HC2 vient récupérer les infos, surement de "yahoo" comme pour le vent, humidité...etc

 

D'accord avec toi concernant le détecteur de luminosité.

Partager ce message


Lien à poster
Partager sur d’autres sites

je crois que les infos que  récupère la box sont mises a jour toutes les 30 mins ...

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour Jour nuit le mieux c'est de la faire en lua car si la box n'est pas allumé au moment du coucher ou lever du soleil il y a de forte chance pour que cela ne fonctionne pas

Voila comment j'ai résolu ce probléme : http://www.domotique-fibaro.fr/index.php/topic/4218-sunrisehour-sunsethour-osdate-et-variable-jour-nuit/?hl=%2Bjour+%2Bnuit

Partager ce message


Lien à poster
Partager sur d’autres sites

j ai créer mes deux variables prédefinies

-une 'jour'=On ou Off

-une 'nuit'=On ou Off

 

et ensuite j ai créer une scène 

-au lever du soleil

-jour=On

-nuit=Off

et inversement au coucher

 

je pense qu il doit exister un script  plus simple  :huh:

mais ça fonctionne  :60:

 

merci

Bonjour,

Juste une remarque : dans ce cas précis cela ne sert à  rien d'avoir 2 variables. Il te suffit d'avoir une seule variable qui prend l'état JOUR le matin et l'état NUIT le soir.

C'est plus simple.

Partager ce message


Lien à poster
Partager sur d’autres sites
--[[
%% autostart
--]]
 
---------------------------------------------------
-- Mise a jour d'une variable global             --
---------------------------------------------------
function UpdateVG(NomVG, Valeur)
  fibaro:debug("VG = "..NomVG.." - Valeur = "..Valeur)
  fibaro:setGlobal(NomVG, Valeur);
end
 
----------------------------------------------------------------------
-- Envoi d'un Push pour avertir que le box àdémarrer ou redémarrer --
-- Ou que la scène àété Modifié                                    --
----------------------------------------------------------------------
local IdTel = 181
local Message = string.format("La box a démarré ou la scène a ete modifie le %s a %s", os.date("%d/%m/%Y"), os.date("%R"))
fibaro:debug(Message)
fibaro:call(IdTel, "sendPush", Message)
 
----------------------------------------------------------------------
-- Mise a jour de la variable au Démarrage de la Box                --
-- Ou lors de la sauvegarde de la scéne                             --
----------------------------------------------------------------------
local OsHeure = os.date("%H:%M", os.time())
local NomVG = "Jour_Nuit"
local Lever = fibaro:getValue(1, "sunriseHour")
local Coucher = fibaro:getValue(1, "sunsetHour")
local Valeur = ""
  if (OsHeure) >= Lever and (OsHeure) < Coucher then
    Valeur = "Jour"
    fibaro:debug("Jour")
  else
    Valeur = "Nuit"
    fibaro:debug("Nuit")
  end
UpdateVG(NomVG, Valeur)
----------------------------------------------------------------------
-- Controle si 1 Scéne et déjàen cours                             --
----------------------------------------------------------------------
local NbreScene = fibaro:countScenes()
fibaro:debug("Nombre de scéne : "..NbreScene)
if (NbreScene ~= 1) then; fibaro:abort(); end
----------------------------------------------------------------------
-- Boucle pour la surveillance si jour ou Nuit                      --
----------------------------------------------------------------------
while true do
    OsHeure = os.date("%H:%M", os.time())
    Lever = fibaro:getValue(1, "sunriseHour")
    Coucher = fibaro:getValue(1, "sunsetHour")
    -- Mise a jour de la VG Jour_Nuit
    if ( OsHeure == Lever ) or ( OsHeure == Coucher ) then
       NomMVG = "Jour_Nuit"
       if ( OsHeure == Lever ) then
           Valeur = "Jour"
       else
           Valeur = "Nuit"
       end
       UpdateVG(NomVG, Valeur)
    end
    -------------------------------------
    fibaro:debug(string.format("Lever Soleil : %s - Coucher Soleil : %s", Lever, Coucher))
    fibaro:sleep(60*1000);
end
 

on parle de cela ICI : http://www.domotique-fibaro.fr/index.php/topic/4218-sunrisehour-sunsethour-osdate-et-variable-jour-nuit/page-4

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Je ne sais pas trop ou poster donc je tente ici :/

Je cherche depuis 3 jours mais la je vais craquer :o

 

Je souhaite exécuter 1 scène mais 1 seule fois le matin entre 7h et 9h par exemple. 

J'ai souhaité pour cela utiliser une variable (globale) pour le coup pour m'assurer que la scène avait deja ete jouée ou pas et faire mon test.

Mais impossible pour moi d'utiliser ma variable globale qui me renvoie NIL a chaque fois :(

 

Ai-je raté un truc ?

 

--[[
%% properties
80 value
%% globals
Mavariable
--]]
 
local Maintenant = os.date("*t")
fibaro:debug(Maintenant)
local VALUE_SENSOR = fibaro:getValue(80, 'value')
fibaro:debug(VALUE_SENSOR)
 
local VarLocale = fibaro:getGlobal("Mavariable")
fibaro:debug(VarLocale)
if (VALUE_SENSOR == '1') then
if (Maintenant['hour'] >= 7 or Maintenant['hour'] < 9) then
    if (VarLocale ~= 1) then
fibaro:debug("on exécute la scène")
fibaro:startScene(79)
      fibaro:setGlobal("MaVariable", 1)
      else
      fibaro:debug("La Scène a déjà  été exécuté")
      end
else
    fibaro:debug("Mauvais créneau horaire")
    fibaro:setGlobal("MaVariable", 0)
end
end

 

Ou peut etre y a t-il un autre moyen plus simple ?

 

Merci pour votre aide !

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité chris6783

A priori une typo entre Mavariable et MaVariable il faut corriger le nom dans getGlobal

Envoyé de mon SM-G850F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Rhooooo l'erreur de débutant !! Si près du but ^^

 

Merci tout plein !! C'est bon, ça marche :)

 

Bonne année  :60:

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir à  vous,

Une question de débutant, quelle est la différence et dans quel cas utiliser une variable "normale" et une prédéfinie?

 

JP

Partager ce message


Lien à poster
Partager sur d’autres sites

×