Aller au contenu

variable haute


Messages recommandés

Posté(e)

pouf :angry::angry:

a part la remontée dans la variable le reste ne fonctionne pas

il garde que la t° actuelle et non la plus haute 

je cherche je cherche :15:

Posté(e)

Bonjour, attention j'ai bien écrit que c'était un exemple et qu'il fallait regarder dans l API pour trouver où se situait la temperaure. Cela ne peut pas marcher avec le code tel quel.

Envoyé de mon Nexus 5X en utilisant Tapatalk

  • Upvote 1
Posté(e) (modifié)

@flechg J'ai repris ton code :

 

Tu copie cela dans don VD :

 

Mais j'ai un doute sur le type de contenu des 2 variables "VgHC2" et "value".

Si il n'y a pas le "°C" alors comme dis @pepite, il faut virer les ligner dans le paragraphe "Conversion des string".

Ensuite il faut se méfier du symbole décimale : "." <> ","

local selfId = fibaro:getSelfId()
local WEB = Net.FHttp("192.168.1.24",80) -- IP to your espeasy
local response ,status, err = WEB:GET("/json?tasknr=1") -- task id on espeasy
local VgHc2 = fibaro:getGlobal("TempHc2")

if (tonumber(status) == 200 and tonumber(err)==0) then

	--récupère la valeur de la sonde
	local jsonTable = json.decode(response)
	value = jsonTable.Temperature
  		
  	--debug + log
	fibaro:log(value)
	fibaro:debug("Valeur mesurée = "..value)
	fibaro:debug("Valeur mémorisée = "..VgHc2)  
        
	--update label VD
	fibaro:call(selfId, "setProperty", "ui.lbl1.value", value.. " °C")
  		
	--conversion des string -----> A VERIFIER		
	value = string.format("%d+",value);
	VgTemp = string.format("%d+",VgTemp);
	--Pour voir la modif	
	fibaro:debug("Valeur mesurée modifiée = "..value)
	fibaro:debug("Valeur mémorisée modifée = "..VgHc2)
		
	--Comparaison entre la Temperature mémorisée et la température mesurée
	if  value > VgHc2 then        
		fibaro:setGlobal("TempHc2", value)
		fibaro:debug("température supérieure = Mise à jour de la VG")
	else
		fibaro:debug("température inférieure = rien")
	end 
 end

Est ce que ta VG s'appelle bien "TempHc2" ??? (attention aux MAJ/min)

Modifié par jjacques68
Ajout des "" dans le setGlobal
  • Upvote 1
Posté(e)
Il y a 4 heures, pepite a dit :

qu'il fallait regarder dans l API pour trouver où se situait la temperaure

 

J'ai chercher et je pense que cette info n'est pas présente dans l'API.

Ou alors j'ai mal chercher...

  • Upvote 1
Posté(e)

@jjacques68 MERCI pour ton aide le code fonctionne a merveille 

il a fallut juste que je change ce bout de code et tout est ok:16:

value = string.format("%.1f",value);
VgTemp = string.format("",VgTemp);

merci encore 

cdt:74::13:

Posté(e)

Bonsoir par-contre j ai un petit problème si j ai une mauvaise remontée ou bien l esp qui reboot j ai une remontée dans la variable NAN

et la après la variable ne se met plus a jours je suis obligé de mettre 0 dans la variable afin que les remontées se fassent 

une idée

merci

  

Posté(e) (modifié)
[DEBUG] 22:13:37: Valeur mesurée = 31.37
[DEBUG] 22:13:37: Valeur mémorisée = 36.0
[DEBUG] 22:13:37: Valeur mesurée modifiée = 31.4
[DEBUG] 22:13:37: Valeur mémorisée modifée = 36.0
[DEBUG] 22:13:37: température inférieure = rien
[DEBUG] 22:13:44: Valeur mesurée = 31.37
[DEBUG] 22:13:44: Valeur mémorisée = 36.0
[DEBUG] 22:13:44: Valeur mesurée modifiée = 31.4
[DEBUG] 22:13:44: Valeur mémorisée modifée = 36.0
[DEBUG] 22:13:44: température inférieure = rien
[DEBUG] 22:13:50: Valeur mesurée = 31.37
[DEBUG] 22:13:50: Valeur mémorisée = 36.0
[DEBUG] 22:13:50: Valeur mesurée modifiée = 31.4
[DEBUG] 22:13:50: Valeur mémorisée modifée = 36.0
[DEBUG] 22:13:50: température inférieure = rien
[DEBUG] 22:13:57: Valeur mesurée = 31.37
[DEBUG] 22:13:57: Valeur mémorisée = 36.0
[DEBUG] 22:13:57: Valeur mesurée modifiée = 31.4
[DEBUG] 22:13:57: Valeur mémorisée modifée = 36.0
[DEBUG] 22:13:57: température inférieure = rien
[DEBUG] 22:14:04: Valeur mesurée = nan
[DEBUG] 22:14:04: Valeur mémorisée = 36.0
[DEBUG] 22:14:04: Valeur mesurée modifiée = nan
[DEBUG] 22:14:04: Valeur mémorisée modifée = 36.0
[DEBUG] 22:14:04: température supérieure = Mise à jour de la VG
[DEBUG] 22:22:44: Valeur mesurée = nan
[DEBUG] 22:22:44: Valeur mémorisée = nan
[DEBUG] 22:22:44: Valeur mesurée modifiée = nan
[DEBUG] 22:22:44: Valeur mémorisée modifée = nan
[DEBUG] 22:22:44: température inférieure = rien
[DEBUG] 22:22:50: Valeur mesurée = nan
[DEBUG] 22:23:12: Valeur mesurée = 38.13
[DEBUG] 22:23:12: Valeur mémorisée = nan
[DEBUG] 22:23:12: Valeur mesurée modifiée = 38.1
[DEBUG] 22:23:12: Valeur mémorisée modifée = nan
[DEBUG] 22:23:12: température inférieure = rien

Salut 

je sais mais je rencontre ce problème et je vois pas pourquoi

je reprends le code mais avec mon niveau je patine un peu

je pensais faire par exemple

if variable=nan 

alors attribuer un chiffre exemple 0 et la ca repart 

Modifié par flechg
Posté(e)

Hmm... je me demande si c'est pas à cause de la comparaison effectuée avec des chaînes de caractères...

Si tu fais un debug de value avant la conversion, ça donne quoi ?


Tu pourrais essayer un truc du genre avant ou après la conversion :

if value == nil or value =="" then value = "0" end


Envoyé de mon iPhone en utilisant Tapatalk Pro

Posté(e) (modifié)
[DEBUG] 22:14:04: Valeur mesurée = nan
[DEBUG] 22:14:04: Valeur mémorisée = 36.0
[DEBUG] 22:14:04: Valeur mesurée modifiée = nan
[DEBUG] 22:14:04: Valeur mémorisée modifée = 36.0
[DEBUG] 22:14:04: température supérieure = Mise à jour de la VG
[DEBUG] 22:22:44: Valeur mesurée = nan
[DEBUG] 22:22:44: Valeur mémorisée = nan
[DEBUG] 22:22:44: Valeur mesurée modifiée = nan
[DEBUG] 22:22:44: Valeur mémorisée modifée = nan
[DEBUG] 22:22:44: température inférieure = rien

le problème doit venir de là

qu en pensez vous

Modifié par flechg
Posté(e)

C'est certainement la comparaison entre les chaînes de caractères.
Il faudrait pas mettre "nan". Tu devrais mettre "".

Je me demande s'il faudrait pas après conversion des valeurs, les convertir encore en chiffre avec le commande value = tonumber(value).
Idem pour la VG.



Envoyé de mon iPhone en utilisant Tapatalk Pro

Posté(e)
il y a 37 minutes, jjacques68 a dit :

Hmm... je me demande si c'est pas à cause de la comparaison effectuée avec des chaînes de caractères...

Si tu fais un debug de value avant la conversion, ça donne quoi ?


Tu pourrais essayer un truc du genre avant ou après la conversion :

if value == nil or value =="" then value = "0" end


Envoyé de mon iPhone en utilisant Tapatalk Pro

je vois pas ou je dois le mettre 

merci

 

Posté(e)
local selfId = fibaro:getSelfId()
local WEB = Net.FHttp("192.168.1.24",80) -- IP to your espeasy
local response ,status, err = WEB:GET("/json?tasknr=1") -- task id on espeasy
local VgHc2 = fibaro:getGlobal("TempHc2")

if (tonumber(status) == 200 and tonumber(err)==0) then
  

	--récupère la valeur de la sonde
	local jsonTable = json.decode(response)
	value = jsonTable.Temperature
  		
  	--debug + log
	fibaro:log(value)
	fibaro:debug("Valeur mesurée = "..value)
	fibaro:debug("Valeur mémorisée = "..VgHc2)  
        
	--update label VD
	fibaro:call(selfId, "setProperty", "ui.lbl1.value", value.. " °C")
  		
	--conversion des string -----> A VERIFIER		
	value = string.format("%.1f",value);
	VgTemp = string.format("",VgTemp);
	--Pour voir la modif	
	fibaro:debug("Valeur mesurée modifiée = "..value)
	fibaro:debug("Valeur mémorisée modifée = "..VgHc2)
  
if value == nil or value == ""  then value = "0" end			
	--Comparaison entre la Temperature mémorisée et la température mesurée

  if  value > VgHc2 then        
		fibaro:setGlobal("TempHc2", value)
		fibaro:debug("température supérieure = Mise à jour de la VG")
	else
		fibaro:debug("température inférieure = rien")
	end 
 end

:(

Posté(e) (modifié)

il vient de la remontée de l esp si il y a une baisse de tension ou autre pb

Json de esp

{"System":{
"Build": 20000,
"Unit": 0,
"Uptime": 91,
"Free RAM": 22192
},
"Sensors":[
{
"TaskName": "TEMP",
"Temperature": nan
}
]}

 

Modifié par flechg
×
×
  • Créer...