Aller au contenu
flechg

variable haute

Recommended Posts

euh... @pepite :

local jsonTable = api.get("/settings/info")
local Tempactuellehc2 = tonumber(jsonTable.Temp)

elle existe pas la propriété "Temp"...

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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:

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites
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

Partager ce message


Lien à poster
Partager sur d’autres sites

@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:

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok !

et si tu remplaces la ligne Vgtemp... par VgTemp = tostring(VgTemp) ça devrait aussi fonctionner... à tester...

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Well done @jjacques68

Sans reflechir, je serais alle voir la temperature dans diagnostics ;-). Dommage qu'on est pas cette info, quoique.

  • Upvote 1

Partager ce message


Lien à poster
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

  

Partager ce message


Lien à poster
Partager sur d’autres sites

Mais logiquement la VG ne se met à jour que si la valeur mesurée est plus élevée ??!!


Envoyé de mon iPhone en utilisant Tapatalk Pro

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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

 

Partager ce message


Lien à poster
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

:(

Partager ce message


Lien à poster
Partager sur d’autres sites

Mais le "nan" affiché dans le debug d'avant sort de ou ?


Envoyé de mon iPhone en utilisant Tapatalk Pro

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

×