flechg Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 et oui json {"System":{ "Build": 20000, "Unit": 0, "Uptime": 91, "Free RAM": 22192 }, "Sensors":[ { "TaskName": "TEMP", "Temperature": nan } ]}
jjacques68 Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Étrange ce truc !! bon alors du coup étrange pour étrange : enleves ce qu'on ajouté et rajoute Avant la conversion : if value == "nan" then value = "0" end
flechg Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 retour NAN NAN nan nan nan popopopo j en peux plus du nan la franchement je vois pas du tout en tout cas merci pour ta patience
jjacques68 Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Ça doit marché peux tu me remettre le code complet ?
flechg Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 par contre juste un truc que je comprends pas dans le code c est VgTemp cela correspond a quoi juste pour pas être moins bête
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 == "nan" 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 VgTemp était un nom pour ta variable VG (Variable Globale). Mais bien vu, Mais c'est pas ça qui est à l'origine du problème. l'impact était qu'il n'y avait pas de convention de la variable Hc2Temp du coup... et visiblement y en a pas besoin... Supprimes cette ligne, pas besoin. Par contre la ligne if value =="nan"... places là avant la conversion (value = string.format.....)
jjacques68 Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Ça donne ça : avec d'autres petites modif... 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:getGlobalValue("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") --Pour traiter le "nan" if value == "nan" then value = "0" end --conversion des string value = string.format("%.1f",value) --convertion en chiffre -----> A TESTER value = tonumber(value) VgHc2 = tonumber(VgHc2) --Pour voir la modif fibaro:debug("Valeur mesurée modifiée = "..value) fibaro:debug("Valeur mesurée modifié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 1
flechg Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 top ca fonctionne merci encore je peux te demander un truc en mp
jjacques68 Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Ok Mais je répond demain... vai me coucher la... 1
jjacques68 Posté(e) le 20 septembre 2017 Signaler Posté(e) le 20 septembre 2017 Mais le "nan" affiché dans le debug d'avant sort de ou ?Envoyé de mon iPhone en utilisant Tapatalk Pro
pepite Posté(e) le 20 septembre 2017 Signaler Posté(e) le 20 septembre 2017 Il y a 9 heures, flechg a dit : je peux te demander un truc en mp des secrets des secrets ;-) 2
flechg Posté(e) le 20 septembre 2017 Auteur Signaler Posté(e) le 20 septembre 2017 MdrEnvoyé de mon MHA-L09 en utilisant Tapatalk
flechg Posté(e) le 6 octobre 2017 Auteur Signaler Posté(e) le 6 octobre 2017 @jjacques68 SALUT je te sollicite encore un peu car je m arrache les cheveux là comment peut on faire pour ne pas faire remonté le nan dans le label et si nan alors = zero par exemple merci encore et bonne soirée
jjacques68 Posté(e) le 7 octobre 2017 Signaler Posté(e) le 7 octobre 2017 Alors dans le paragraphe « Update Label VD » du remplace la ligne par ça : if value == "nan" then fibaro:call(selfId, "setProperty", "ui.lbl1.value","0 °C") --remplace le nan par "0 °C" else fibaro:call(selfId, "setProperty", "ui.lbl1.value", value.. " °C") --sinon insere la température end C’est pas très pro (car on teste 2 fois de suite la valeur « value »... mais c’est facile à comprendre. Et par contre, la valeur « nan » renvoyée par la sonde, en réalité ne signifie pas « 0 °C » mais plutôt que la sonde ne renvoie rien comme valeur. Pour être plus pro, il faudrait inscrire non pas « 0 °C » mais plutôt « null ». C’est toi qui voit, ou tu mets 0 °C ou tu mets null dans la première commande d’affichage du label. 1
flechg Posté(e) le 7 octobre 2017 Auteur Signaler Posté(e) le 7 octobre 2017 pouf sympa moi je cherchais a traité le nan mais pas dans le label quel c.... tu m as bien aidé et j ai appris plein de chose merci encore 1
flechg Posté(e) le 7 octobre 2017 Auteur Signaler Posté(e) le 7 octobre 2017 ReBon j ai essayé de mettre 1 degré parce que 0 çà marche pas il prend en compte que nan et nan PopopopoJ ai essayé de créer une local x avec 1 et si nan attribué lea local x mais rien à faireJe baisse les brasEnvoyé de mon MHA-L09 en utilisant Tapatalk
jjacques68 Posté(e) le 7 octobre 2017 Signaler Posté(e) le 7 octobre 2017 Post le code complet pour voir
flechg Posté(e) le 7 octobre 2017 Auteur Signaler Posté(e) le 7 octobre 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 if value == "nan" then fibaro:call(selfId, "setProperty", "ui.lbl1.value", "1 °C") --remplace le nan par "0 °C" else fibaro:call(selfId, "setProperty", "ui.lbl1.value", value.. " °C") --sinon insere la température end --Pour traiter le "nan" if value == "nan" then value = "1" end --conversion des string value = string.format("%.1f",value) --convertion en chiffre -----> A TESTER value = tonumber(value) VgHc2 = tonumber(VgHc2) --Pour voir la modif fibaro:debug("Valeur mesurée modifiée = "..value) fibaro:debug("Valeur mesurée modifié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
flechg Posté(e) le 7 octobre 2017 Auteur Signaler Posté(e) le 7 octobre 2017 local x = 1 if value == "nan" then fibaro:call(selfId, "setProperty", "ui.lbl1.value", x.." °C") --remplace le nan par "0 °C" else fibaro:call(selfId, "setProperty", "ui.lbl1.value", value.. " °C") --sinon insere la température end j ai essayé ca aussi
jjacques68 Posté(e) le 7 octobre 2017 Signaler Posté(e) le 7 octobre 2017 Ceci doit marcher. si c’est pas le cas, il donne quoi comme message d’erreur ? 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 if value == "nan" then fibaro:call(selfId, "setProperty", "ui.lbl1.value", "null") --remplace le nan par "null" else fibaro:call(selfId, "setProperty", "ui.lbl1.value", value.. " °C") --sinon insere la température end --Pour traiter le "nan" if value == "nan" then value = "0" end --conversion des string value = string.format("%.1f",value) --convertion en chiffre -----> A TESTER value = tonumber(value) VgHc2 = tonumber(VgHc2) --Pour voir la modif fibaro:debug("Valeur mesurée modifiée = "..value) fibaro:debug("Valeur mémorisé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 1
flechg Posté(e) le 8 octobre 2017 Auteur Signaler Posté(e) le 8 octobre 2017 SalutNon le code fonctionne sauf que des fois le nan remonte dans le labelMerci et bonne journée Envoyé de mon MHA-L09 en utilisant Tapatalk
pepite Posté(e) le 8 octobre 2017 Signaler Posté(e) le 8 octobre 2017 Il y a 18 heures, flechg a dit : --Pour traiter le "nan" Pour moi le -- traiter le nan doit se trouver avant l -- update du label. 1
flechg Posté(e) le 8 octobre 2017 Auteur Signaler Posté(e) le 8 octobre 2017 Merci pepite je vais testerEnvoyé de mon MHA-L09 en utilisant Tapatalk
Messages recommandés