fel-x Posté(e) il y a 7 heures Signaler Posté(e) il y a 7 heures (modifié) ok, je veux dire que pour récupérer la valeur d'une propriété dans le json d'un device tu dois faire un appel API. voici mon test (remplace juste par l'ID correct chez toi) function QuickApp:TestTempDelay() local deviceID = XXX -- ton id["SALON_TMP"] local dev = api.get("/devices/" .. deviceID) if not dev or not dev.properties or not dev.properties.lastChanged then hub.debug("Test pour jojo", "lastChanged non trouvé dans le JSON du device " .. deviceID) return end local lastChanged = dev.properties.lastChanged local now = os.time() local difference = now - lastChanged hub.debug("Test pour jojo", "Il s'est passé " .. difference .. " secondes depuis la dernière modification de température") end Modifié il y a 7 heures par fel-x 1
fel-x Posté(e) il y a 7 heures Signaler Posté(e) il y a 7 heures et pour le coup tu avais raison les timestamp sont des nombres et on peut faire des calculs directement avec, sans passer par tonumber()
jojo Posté(e) il y a 6 heures Signaler Posté(e) il y a 6 heures oui mais ce que fait ta fonction, c'est ce que devrait faire GEA avec l'instruction GEA.add ({"Property-", id["SALON_TMP"], "lastChanged", {"Function", function() return os.time() end}-5*3600}, 0, "", {"Email", "admin", "Valeur de SALON_TMP inchangée depuis 5 heures.\nLe #date# à #time#.", "Valeur inchangée"}) et qui ne veut pas fonctionner, et je ne comprends pas pourquoi. (en pur LUA c'est comme ta proposition, mais alors il faudrait y mettre un settimeout() pour le faire tourner en boucle, hors GEA le fait par défaut toutes les 30 secondes). Et pourquoi je veux faire cela ? Car La température retourneé par mon thermostat tire parfois droit sans que le noeud soit mort. Une simple coupure de son alim le remet d'applond. Et j'aimerais bien en être informé autrement qu'en le voyant par hasard sur DomoCharts.
fel-x Posté(e) il y a 6 heures Signaler Posté(e) il y a 6 heures il y a 2 minutes, jojo a dit : oui mais ce que fait ta fonction, c'est ce que devrait faire GEA avec l'instruction GEA.add ({"Property-", id["SALON_TMP"], "lastChanged", {"Function", function() return os.time() end}-5*3600}, 0, "", {"Email", "admin", "Valeur de SALON_TMP inchangée depuis 5 heures.\nLe #date# à #time#.", "Valeur inchangée"}) et qui ne veut pas fonctionner, et je ne comprends pas pourquoi. Comme je le disais, même si tu parviens à récupérer os.time() par GEA, je ne crois pas que ça va fonctionner car GEA ne connait pas la préférence 'lastChanged"; il n'est pas prévu dans le code de GEA qu'il aille puiser cette préférence dans les JSON des devices. C'est certainement possible mais il faut alors demander à @Lazer de l'implémenter pour toi. Ce n'est pas parce qu'une préférence existe et qu'elle est exposée par l'API que GEA peut la lire. Du moins c'est comme ça que je le conçois.
jojo Posté(e) il y a 6 heures Signaler Posté(e) il y a 6 heures oui, mais je ne crois pas que GEA a une liste exhaustive des "Property". De plus l'erreur est au niveau de la fonction os.time(), qui quand je supprime le +5*3600, ne me fait pas d'erreur.
fel-x Posté(e) il y a 6 heures Signaler Posté(e) il y a 6 heures Attends, je pense que tu dois mettre le calcul dans la fonction car GEA retourne une valeur, mais ne fait pas de calcul lui-même. {"Function", function() return os.time() - 5*3600 end} comme ça la soustraction est faite dans la fonction non ? 1
fel-x Posté(e) il y a 6 heures Signaler Posté(e) il y a 6 heures (modifié) il y a 12 minutes, jojo a dit : oui, mais je ne crois pas que GEA a une liste exhaustive des "Property". Si tu dis vrai, alors ça devrait marcher avec {"Property+", id["SALON_TMP"],"lastChanged", {"Function", function() return os.time() - 5*3600 end}... Modifié il y a 6 heures par fel-x
jojo Posté(e) il y a 5 heures Signaler Posté(e) il y a 5 heures il y a 30 minutes, fel-x a dit : Attends, je pense que tu dois mettre le calcul dans la fonction car GEA retourne une valeur, mais ne fait pas de calcul lui-même. {"Function", function() return os.time() - 5*3600 end} comme ça la soustraction est faite dans la fonction non ? très bonne idée, ça passe,mais je ne sais pas le tester car la température change très souvent de 0.1 °C Mais du coup, comme j'ai également des difficultés de concentration pour des choses binaires, je dois mettre "Property+" ou "Property-" avec dans ma fonction <os.time()-5*3600> ou <os.time()+5*3600> ? MERCI de ton aide
fel-x Posté(e) il y a 4 heures Signaler Posté(e) il y a 4 heures (modifié) Moi je traduis "if lastChanged < os.time() - 5*3600" par 'lastChanged a eu lieu il y a plus de 5 heures" Donc je dirais d'employer "Property-" puisque la syntaxe GEA explique ceci : "Property-" = Si la valeur de la propriété "lastChanged" du module ... est INFERIEURE à ... Modifié il y a 4 heures par fel-x 1
Messages recommandés