Aller au contenu

Afficher un etat sonde de temperature dans un module virtuel


Messages recommandés

Posté(e)

Bonjour,

 

J'ai besoin de recuperer l'etat, value d'une sonde de temperature dans un module virtuel.

 

Est-ce que je suis obligé de creer un scene qui va m'envoyer ma valeur dans Globals Variable et ensuite je peux recupérer les valeurs pour mon module virtuel comme ceci :

 

fibaro:setGlobal("SysPrise_auto", "ON");
fibaro:call(103, "setProperty", "ui.Label1.value", "Auto");

ou

 

Je peux directement recuperer mes valeurs de temperature et les afficher directement dans mon module virtuel comme un fibaro.debug par exemple ...

 

local OutsideTemperature = tonumber(fibaro:getValue(3, "Temperature"));
fibaro:call(103, "setProperty", "ui.Label1.value", "OutsideTemperature");

 

J'ai du mal a comprendre le systeme de Boucle principale dans les modules virtuels.

 

Si quelqu'un peut m'aider ?

 

Merci.

Posté(e) (modifié)

Bonjour,

 

Tu peux le faire directement comme dans ton 2ème exemple mais sans les apostrophes pour la variable

Dans ton exemple tu récupères la température utilisée par défaut par la HC2, soit YR Meteo
 

local OutsideTemperature = tonumber(fibaro:getValue(3, "Temperature"));

fibaro:call(103, "setProperty", "ui.Label1.value", OutsideTemperature);

Le Main loop est configuré pour tourner toutes les  secondes je crois, faudrait vérifier, mais c'est écrit juste sous Mainloop dans le VD

tu mets le code que tu veux dedans. Attention tout de même, mieux vaut éviter les sleeps

Bien réflechir à ce que tu vas mettre dedans en se posant la question de la nécessité de faire tourner un code toutes les x secondes pour optimiser au maximum en évitant la surcharge de la box, bien que la HC2 soit solide ;-)

Modifié par pepite
  • Upvote 1
Posté(e)

Merci @pepite

 

C'est exactement ca !

 

Sur certains posts ils disent qu'il faut justement mettre le sleep. Tu me conseilles de ne pas en mettre ? Mon module virtuel recupere 6 valeurs de temperature differentes.

 

Merci.

Posté(e)

De rien.

 

Mettre le sleep dans le mainloop, c'est possible, tout à fait, mais mieux vaut prendre l'habitude de mettre le code du main loop dans un bouton et dans le main loop mettre l'appui sur le bouton toutes les X mins ou sec ou heures avec ce type de code de
@Steven

maintenant = os.date("%H:%M", os.time())
local selfId = fibaro:getSelfId()
        
-- 1ère fois que le main loop s'exécute, on crée une variable nommée "instance" car elle n'existe pas. Elle existera au 2ème passage donc ne sera pas recrée.
if (not instance) then
    -- on indique la fréquence d'execution souhaitée (en minutes)
    instance = { lastrun = 0, every = 1 }
    fibaro:debug("first run")
end
 
-- on vérifie la différence entre cette exécution et la dernière (stocké dans instance.lastrun)
diff = os.date("*t", os.difftime(os.time(), instance.lastrun))
 
    
-- si la différence en minutes et supérieure ou égale à la fréquence souhaitée (instance.every)
  if (diff.min >= instance.every) then
      fibaro:call(selfId, "pressButton", "14")
      -- on stock l'heure de la nouvelle exécution
      instance.lastrun = os.time()
      fibaro:debug("executed")
  end

 

 

Ca evite en fait les erreurs qu'on a pu avoir avec les gros sleeps dans le main loop qui faisait planter.

  • Upvote 1
Posté(e)

J'avais vu ce post par @jojo  pour le sleep ...

 

Question LUA intermediaire, maintenant je recupère bien toute mes sondes avec la temperature. Histoire d'être carré jusqu'au bout j'aimerais recuperer mes valeurs de temperature avec 1 seul chiffre après la virgule. Là je suis à 2. exemple 20,33°

 

Ya pas une histoire de substr pour remonter mes valeurs avec juste un chiffre après la virgule. 20,3°

 

J'avoue que je titille un peu :P

 

Merci.

Posté(e)
local SalonTemperature = tonumber(fibaro:getValue(247, "value"));
fibaro:call(306, "setProperty", "ui.Label2.value", string.format("%.1f", SalonTemperature).."°C");

Parfait ca ! Merci beaucoup, ca fonctionne ! :60:

  • 3 ans après...
Posté(e)

Hello,

 

Je fais suite à cette ancien post, qui m'intéresse.

 

Je suis à la recherche d'un module virtuelle, pour récupérer des valeurs de température d'une cave à vins...

 

Je pensais me servir de mon FGMS pour récupérer la valeur (ID93.0.1)

 

J'ai pas trouvé sur le site, est ce que l'un d'entre pourrait m'aider à le faire ou encore mieux l'un d'entre vous l'a déjà fait ?

 

Ce qui m'intéresse de savoir :

  • Température actuel 
  • Température la plus haute et la plus basse de cette semaine 
  • Température la plus haute et la plus basse de ce mois
  • Température moyenne du mois en cours
  • Température moyenne mois par mois (sur les 12 derniers mois)
  • Température annuel moyenne (comparaison an par an)

Gros projet....Mais cela peux certainement intéressé d'autre utilisateurs

 

Merci d'avance de vos précieux conseils

 

 

 

 

×
×
  • Créer...