flechg Posté(e) le 19 octobre 2017 Auteur Signaler Posté(e) le 19 octobre 2017 (modifié) salut depuis le temps le nan ne t a pas manqué mdr voila l erreur dans le debug quand le nan est la [DEBUG] 20:08:29: tempMax = 38 [DEBUG] 20:08:29: tempMin = 32 [DEBUG] 20:08:29: extinction ventilo [DEBUG] 20:08:42: Valeur mesurée = 31.56 [DEBUG] 20:08:42: valeur converti : [DEBUG] 20:08:42: value = 31.56 [DEBUG] 20:08:42: tempNan = 10 [DEBUG] 20:08:42: Comparaison pour stockage dans variable : [DEBUG] 20:08:42: Valeur mémorisée actuelle = 40.4 [DEBUG] 20:08:42: température mesurée inférieure ou égal -> pas de mémorisation [DEBUG] 20:08:42: Comparaison avec 85 °C : [DEBUG] 20:08:42: <> 85 °C -> rien à faire [DEBUG] 20:08:42: Comparaison pour allumage du ventilo : [DEBUG] 20:08:42: tempMax = 38 [DEBUG] 20:08:42: tempMin = 32 [DEBUG] 20:08:42: extinction ventilo [DEBUG] 20:08:55: Valeur mesurée = nan [DEBUG] 20:08:55: valeur converti : [ERROR] 20:08:55: line 34: attempt to concatenate a nil value le problème ne vient il pas de la mauvaise lecture du json {"System":{ "Build": 20000, "Unit": 0, "Uptime": 91, "Free RAM": 22192 }, "Sensors":[ { "TaskName": "TEMP", "Temperature": nan } ]} merci cdt Modifié le 19 octobre 2017 par flechg
jjacques68 Posté(e) le 19 octobre 2017 Signaler Posté(e) le 19 octobre 2017 Tu pourrais m’afficher le contenu Json quand ça marche, donc avec une température ?Envoyé de mon iPhone en utilisant Tapatalk Pro
flechg Posté(e) le 19 octobre 2017 Auteur Signaler Posté(e) le 19 octobre 2017 VOILOU {"System":{ "Build": 20000, "Unit": 0, "Uptime": 82, "Free RAM": 21544 }, "Sensors":[ { "TaskName": "TEMP", "Temperature": 33.75 } ]}
jjacques68 Posté(e) le 19 octobre 2017 Signaler Posté(e) le 19 octobre 2017 Alors la faut que je fasse des essais, car le nan dans le json n’est pas de type string, il a pas de guillemet ! Envoyé de mon iPhone en utilisant Tapatalk Pro
jjacques68 Posté(e) le 19 octobre 2017 Signaler Posté(e) le 19 octobre 2017 Essayes voir en replaçant “nan *C” par “nan” dans le paragraphe force value à tempNan...If value == “nan”...Envoyé de mon iPhone en utilisant Tapatalk Pro 1
flechg Posté(e) le 19 octobre 2017 Auteur Signaler Posté(e) le 19 octobre 2017 j avais essayé sans succès même message d erreur
flechg Posté(e) le 19 octobre 2017 Auteur Signaler Posté(e) le 19 octobre 2017 laisse tomber le code que l on a fait en condensant le tout fonctionne même si il est pas trop beau ca suffit il fait ce qu on lui demande donc en tout cas merci pour ton soutien
jjacques68 Posté(e) le 19 octobre 2017 Signaler Posté(e) le 19 octobre 2017 On pourrait nettement le simplifier, car les températures renvoyées sont de type entier, il n’y a pas de « °c » après... Mais le nan me pose problème... Je sais pas ce que c’est... Mais peut être que... avec ceci qui remplacecompletement la ligne pour forcer value ?? if string.match(value, "[0-9.]+") == nil then value = tempNan end 1
flechg Posté(e) le 19 octobre 2017 Auteur Signaler Posté(e) le 19 octobre 2017 et bien voila ca marche super super merci mon cerveau fume
jjacques68 Posté(e) le 19 octobre 2017 Signaler Posté(e) le 19 octobre 2017 Ok alors maintenant sans perdre ton code actuel (au cas où ), essaye ce code complet là : local selfId = fibaro:getSelfId() --ID du VD de type integer local WEB = Net.FHttp("192.168.1.24",80) -- IP to your espeasy local VgHc2 = tonumber(fibaro:getGlobalValue("TempHc2")) --valeur mémorisée de type number local tempMax = 38 --de type number local tempMin = 32 --de type number local tempNan = 10 --de type number local response ,status, err = WEB:GET("/json?tasknr=1") -- task id on espeasy if (tonumber(status) == 200 and tonumber(err)==0) then -- si réponse ok local jsonTable = json.decode(response) --recupère la table des valeurs de retour local value = jsonTable.Temperature -- sélectionne que la température --force value à tempNan si réponse = nan if string.match(value, "[0-9.]+") == nil then value = tempNan end --debug fibaro:debug("Valeur mesurée = "..value) --update label VD (le "°C" est dans value) fibaro:call(selfId, "setProperty", "ui.lbl1.value", value.." °C") --Comparaison entre la Temperature mémorisée et la température mesurée fibaro:debug("Comparaison pour stockage dans variable : ") fibaro:debug("Valeur mémorisée actuelle = "..VgHc2) if value > VgHc2 then fibaro:debug("température mesurée supérieure -> Mise à jour de la VG") fibaro:setGlobal("TempHc2", value) else fibaro:debug("température mesurée inférieure ou égal -> pas de mémorisation") end --si temperature = 85 alors appui sur Btn 5 du device 747 fibaro:debug("Comparaison avec 85 °C :") if tonumber(fibaro:getGlobalValue("VgHc2")) == 85 then fibaro:call(747, "pressButton", "5"); fibaro:debug("= 85 °C -> eraz variable") else fibaro:debug("<> 85 °C -> rien à faire") end --allumage ou pas du ventilo fibaro:debug("Comparaison pour allumage du ventilo :") fibaro:debug("tempMax = "..tempMax) fibaro:debug("tempMin = "..tempMin) if value > tempMax then fibaro:call(747, "pressButton", "2"); fibaro:debug("allumage ventilo") elseif value < tempMin then fibaro:call(747, "pressButton", "3"); fibaro:debug("extinction ventilo") end fibaro:sleep(10*1000) -- en option : petite tempo pour calmer le code dans le VD end
flechg Posté(e) le 19 octobre 2017 Auteur Signaler Posté(e) le 19 octobre 2017 (modifié) [DEBUG] 22:41:22: Valeur mesurée = 10 °C [DEBUG] 22:41:22: valeur converti : [DEBUG] 22:41:22: value = 10 [DEBUG] 22:41:22: tempNan = 10 [DEBUG] 22:41:22: Comparaison pour stockage dans variable : [DEBUG] 22:41:22: Valeur mémorisée actuelle = 38.9 [DEBUG] 22:41:22: température mesurée inférieure ou égal -> pas de mémorisation [DEBUG] 22:41:22: Comparaison avec 85 °C : [DEBUG] 22:41:22: <> 85 °C -> rien à faire [DEBUG] 22:41:22: Comparaison pour allumage du ventilo : [DEBUG] 22:41:22: tempMax = 38 [DEBUG] 22:41:22: tempMin = 32 [DEBUG] 22:41:22: extinction ventilo j ai essayé celui la direct et ça marche ça remonte 10 si nan et donc plus d erreur cdt Modifié le 19 octobre 2017 par flechg
jjacques68 Posté(e) le 19 octobre 2017 Signaler Posté(e) le 19 octobre 2017 Juste pour propre dans les commentaires, j’ai oublié de préciser dans le dernier code complet, dans la ligne : --update label VD (le "°C" est dans value) il faut maintenant mettre : --update label VD (le "°C" N’EST PAS dans value !!) tu as un lien sur cette sonde de température ?
jjacques68 Posté(e) le 19 octobre 2017 Signaler Posté(e) le 19 octobre 2017 Ensuite tu peux mettre en commentaire tous les debug qui ne te sont pas utiles...
flechg Posté(e) le 19 octobre 2017 Auteur Signaler Posté(e) le 19 octobre 2017 j ai pas compris "tu as un lien sur cette sonde de température ?"
jjacques68 Posté(e) le 19 octobre 2017 Signaler Posté(e) le 19 octobre 2017 Oui un lien sur un site pour trouver des infos ! Elle est fiable question température mesurée ?
flechg Posté(e) le 19 octobre 2017 Auteur Signaler Posté(e) le 19 octobre 2017 non c est moi qui l ai fait a base d esp et 2 ou 3 composant et une sonde et aussi un ventilo d ordi portable si tu veux je t envoi les photos mais depuis elle fonctionne mieux ma hc2 avant elle était bouillante et dès fois elle buggait
jjacques68 Posté(e) le 19 octobre 2017 Signaler Posté(e) le 19 octobre 2017 Ah ok !! et tu as déjà atteint les 85 °C ???
flechg Posté(e) le 19 octobre 2017 Auteur Signaler Posté(e) le 19 octobre 2017 non la sonde question t° est fiable mais quand il y a une erreur dès fois elle remonte 85° c est pour cela que je l efface car dans ce project cela ne me dérange pas mais je suis en train d en faire un pour calculer la t° de l eau chaude qui sort de mon ballon d eau chaude et si elle remonte 85° cela peut fausser les données la t° remonte toute les 60 s et il y a peut être le nan qui remonte une fois toutes les 10min voila
jjacques68 Posté(e) le 19 octobre 2017 Signaler Posté(e) le 19 octobre 2017 D’accord Et bien bonne continuation et suite au prochain épisode ! 1
Messages recommandés