fel-x Posté(e) il y a 1 heure Signaler Posté(e) il y a 1 heure (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 1 heure par fel-x 1
fel-x Posté(e) il y a 1 heure Signaler Posté(e) il y a 1 heure 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 40 minutes Signaler Posté(e) il y a 40 minutes 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 28 minutes Signaler Posté(e) il y a 28 minutes 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 19 minutes Signaler Posté(e) il y a 19 minutes 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 12 minutes Signaler Posté(e) il y a 12 minutes 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 ?
fel-x Posté(e) il y a 7 minutes Signaler Posté(e) il y a 7 minutes (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 minutes par fel-x
Messages recommandés