Aller au contenu

variable haute


flechg

Messages recommandés

@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
Lien vers le commentaire
Partager sur d’autres sites

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

  

Lien vers le commentaire
Partager sur d’autres sites

[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
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

[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
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

 

Lien vers le commentaire
Partager sur d’autres sites

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

:(

Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...