jjacques68 Posté(e) le 16 septembre 2017 Signaler Posté(e) le 16 septembre 2017 euh... @pepite : local jsonTable = api.get("/settings/info") local Tempactuellehc2 = tonumber(jsonTable.Temp) elle existe pas la propriété "Temp"... 1
flechg Posté(e) le 16 septembre 2017 Auteur Signaler Posté(e) le 16 septembre 2017 pouf 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
pepite Posté(e) le 16 septembre 2017 Signaler Posté(e) le 16 septembre 2017 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 1
jjacques68 Posté(e) le 16 septembre 2017 Signaler Posté(e) le 16 septembre 2017 (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é le 16 septembre 2017 par jjacques68 Ajout des "" dans le setGlobal 1
jjacques68 Posté(e) le 16 septembre 2017 Signaler Posté(e) le 16 septembre 2017 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... 1
flechg Posté(e) le 17 septembre 2017 Auteur Signaler Posté(e) le 17 septembre 2017 @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 value = string.format("%.1f",value); VgTemp = string.format("",VgTemp); merci encore cdt
jjacques68 Posté(e) le 17 septembre 2017 Signaler Posté(e) le 17 septembre 2017 Ok ! et si tu remplaces la ligne Vgtemp... par VgTemp = tostring(VgTemp) ça devrait aussi fonctionner... à tester... 1
flechg Posté(e) le 17 septembre 2017 Auteur Signaler Posté(e) le 17 septembre 2017 effectivement cela fonctionne aussi merci en tout cas 1
pepite Posté(e) le 18 septembre 2017 Signaler Posté(e) le 18 septembre 2017 Well done @jjacques68 Sans reflechir, je serais alle voir la temperature dans diagnostics ;-). Dommage qu'on est pas cette info, quoique. 1
flechg Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 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
jjacques68 Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 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
flechg Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 (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é le 19 septembre 2017 par flechg
jjacques68 Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 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" endEnvoyé de mon iPhone en utilisant Tapatalk Pro
flechg Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 avant conversion ca donne 33.19 ect
jjacques68 Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Donc pas besoin de conversion... et la VG ?Envoyé de mon iPhone en utilisant Tapatalk Pro
flechg Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 (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é le 19 septembre 2017 par flechg
jjacques68 Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 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
flechg Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 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
jjacques68 Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Juste avant la comparaison.Envoyé de mon iPhone en utilisant Tapatalk Pro
flechg Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 idem me rend fou ce truc
jjacques68 Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Poste voir le code complet...Envoyé de mon iPhone en utilisant Tapatalk Pro
flechg Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 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
jjacques68 Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Mais le "nan" affiché dans le debug d'avant sort de ou ?Envoyé de mon iPhone en utilisant Tapatalk Pro
flechg Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 (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é le 19 septembre 2017 par flechg
jjacques68 Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Et il renvoie "nan" ?
Messages recommandés