flamalex Posté(e) le 17 avril 2020 Auteur Signaler Posté(e) le 17 avril 2020 ok, je ne suis pas sorti de l'auberge mais c'est deja Top il me reste 2 choses, - cette histoire de jour en sec et/inversement - dans mon VD plus haut, Last Rain affiche la date et l'heure, maintenant il est en seconde, lorsque je modifie dans le VD avec ce code --===========TIME LAST RAIN========== -- on affiche la variable contenant la date de la dernire pluie dans le champs saison --local time; --time = fibaro:getGlobal("time_last_rain"); --fibaro:debug(time); --fibaro:call(id.VD, "setProperty", "ui.LastRain.value", time.." "); local date_derniere_pluie; date_derniere_pluie = tonumber(fibaro:getGlobalValue("time_last_rain")) fibaro:debug(os.date("%d/%m/%Y - %H:%M:%S",date_derniere_pluie)) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LastRain.value", date_derniere_pluie..""); ------------------------- le debug fonctionne bien, mais la valeur affichée dans le VD reste en seconde, c'est pourtant impossible
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 il y a 3 minutes, J3R3M a dit : Beaucoup plus simplement, il faudrait que tu enregistres simplement la valeur os.time() dans tes variables dès qu'un évènement que tu souhaites historiser se passe. aussi oui...
flamalex Posté(e) le 17 avril 2020 Auteur Signaler Posté(e) le 17 avril 2020 (modifié) il y a 7 minutes, J3R3M a dit : Beaucoup plus simplement, il faudrait que tu enregistres simplement la valeur os.time() dans tes variables dès qu'un évènement que tu souhaites historiser se passe. Ainsi, lorsque tu voudras comparer ou calculer une différence, il te suffira d'effectuer le os.difftime() et ensuite de l'afficher sous la forme que tu préfères avec os.date(). etant donné que tt est en seconde, il faut que je transforme le contenu de ma VG WArrosage_J_avant 1,2,3 ...jours en sec pour le comparer directement avec la VG time_last_rain EDIT: ah oui, exemple dans ma scene, je memeorise ds une VG ttes les 60sec (par exemple) le time actuel? je me retrouverai alors avec VG time_last_rain VG time_actu VG Warrosage_J_avant Modifié le 17 avril 2020 par flamalex
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 oui tu peux biensûr le faire ! dans ce cas c'est simple...
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 il y a 6 minutes, flamalex a dit : le debug fonctionne bien, mais la valeur affichée dans le VD reste en seconde, c'est pourtant impossible J'ai pas compris !
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 en faisant un refresh du navigateur, téléphone ou autre peut être ?
flamalex Posté(e) le 17 avril 2020 Auteur Signaler Posté(e) le 17 avril 2020 label "last_rain" de ma capture d'ecran 1ere page je suis en jour mois année heure minute sec maintenant, malgré la modif effectuée ci dessus, je suis en seconde 1587109655
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 local date_derniere_pluie; date_derniere_pluie = tonumber(fibaro:getGlobalValue("time_last_rain")) fibaro:debug(os.date("%d/%m/%Y - %H:%M:%S",date_derniere_pluie)) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LastRain.value", date_derniere_pluie.."") pourtant ton code est jsute... Tu 'aurais pas un autre bout de code qui surchargerait ce label ? sinon pense au refresh de la page !
flamalex Posté(e) le 17 avril 2020 Auteur Signaler Posté(e) le 17 avril 2020 non, rien à faire, il reste en seconde alors que le debug est bon [DEBUG] 10:27:15: 17/04/20 10:27[DEBUG] 10:27:15: 17/04/2020 - 09:47:35[DEBUG] 10:27:15: Le Taux d'humidité exterieur est de : 76.8[DEBUG] 10:27:15: Il fait : cloudy[DEBUG] 10:27:15: Printemps [DEBUG] 10:27:15: 17/04/20 10:27 [DEBUG] 10:27:15: 17/04/2020 - 09:47:35 [DEBUG] 10:27:15: Le Taux d'humidité exterieur est de : 76.8 [DEBUG] 10:27:15: Il fait : cloudy [DEBUG] 10:27:15: Printemps
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 tu dois avoir une surcharge quelque part... un autre code écrit par dessus ! j'avais déjà eut des soucis d'affichage, si tu quittes le VD et que tu rentre anouveau ?
flamalex Posté(e) le 17 avril 2020 Auteur Signaler Posté(e) le 17 avril 2020 j'ai quitté, puis changé de label, rien à faire le nouveau label est bien passé de vide, puis clic sur bp VD et il m'affiche à nouveau les secondes 1587109655 il y a un problème lorsqu'il rappelle date_derniere_pluie ? le debug est bon
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 dans fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LastRain.value", date_derniere_pluie.."") enlève le .."" à la fin... sert à rien. Mais c'est pas ça qui va changer qqch... Du coup je reste persuader que tu as une surcharge de valeur. Quelque part ailleurs dans ton VD, tu dois certainement écrire dans ce label. par exemple dans le MainLoop !
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 ah mais nan mis c'est normal !!!! suis bête !!
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 local date_derniere_pluie = tonumber(fibaro:getGlobalValue("time_last_rain")) local ma_date_en_toute_lettre = os.date("%d/%m/%Y - %H:%M:%S",date_derniere_pluie) fibaro:debug(ma_date_en_toute_lettre) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LastRain.value", ma_date_en_toute_lettre) 1
flamalex Posté(e) le 17 avril 2020 Auteur Signaler Posté(e) le 17 avril 2020 oooohhhhooooohhhh bien vu c'est ça 1
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 (modifié) s'il te faut des explications, n'hésite pas... Modifié le 17 avril 2020 par jjacques68
flamalex Posté(e) le 17 avril 2020 Auteur Signaler Posté(e) le 17 avril 2020 ok, il me reste - cette histoire de jour en sec et/inversement de la VG Warrosage_J_avant
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 affiche nous le code des boutons +/- PS : utilise l’afficheur de code : bouton "</>" dans le bandeau d'édition du forum
flamalex Posté(e) le 17 avril 2020 Auteur Signaler Posté(e) le 17 avril 2020 (modifié) il y a 5 minutes, jjacques68 a dit : s'il te faut des explications, n'hésite pas... oui merci, pour le moment j'arrive à suivre concernant le VD, si j'ai bien comprendo local date_derniere_pluie = tonumber(fibaro:getGlobalValue("time_last_rain")) --ici on stock dans "date-derniere-pluie" en number, la valeur de la VG time last rain local ma_date_en_toute_lettre = os.date("%d/%m/%Y - %H:%M:%S",date_derniere_pluie) -- ici on stock dans "ma_date_en_toute_lettre" la conversion de "date derniere pluie" en format date et heure fibaro:debug(ma_date_en_toute_lettre) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LastRain.value", ma_date_en_toute_lettre)-- et ici on l'affiche Modifié le 17 avril 2020 par flamalex
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 il y a 1 minute, flamalex a dit : concernant le VD, si j'ai bien comprendo tes commentaires sont justes.
flamalex Posté(e) le 17 avril 2020 Auteur Signaler Posté(e) le 17 avril 2020 (modifié) code du BP VD - --[[ %% autostart %% properties %% globals --]] local statut = fibaro:getGlobalValue('Mode_Arrosage') local icon = { AUTO = 1178 , MANU = 1179 } if (statut == "AUTO") then -- Mode AUTO fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", icon['AUTO']) else -- Mode MANU fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", icon['MANU']) end ------------------------------------- -------------------------------------- local WArrosage_J_avant; -- incremantation de +1 de variable globale consigneT fibaro:setGlobal('WArrosage_J_avant', fibaro:getGlobalValue('WArrosage_J_avant') - 1); -- puis on affiche la variable dans le champs consigne WArrosage_J_avant= fibaro:getGlobal("WArrosage_J_avant"); fibaro:debug(WArrosage_J_avant); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.consigneTimeavant.value","Nbre de jours passés sans pluie: "..WArrosage_J_avant..""); code du BP VD + --[[ %% autostart %% properties %% globals --]] local statut = fibaro:getGlobalValue('Mode_Arrosage') local icon = { AUTO = 1178 , MANU = 1179 } if (statut == "AUTO") then -- Mode AUTO fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", icon['AUTO']) else -- Mode MANU fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", icon['MANU']) end ------------------------------------- local WArrosage_J_avant; -- incremantation de +1 de variable globale consigneT fibaro:setGlobal('WArrosage_J_avant', fibaro:getGlobalValue('WArrosage_J_avant') + 1); -- puis on affiche la variable dans le champs consigne WArrosage_J_avant= fibaro:getGlobal("WArrosage_J_avant"); fibaro:debug(WArrosage_J_avant); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.consigneTimeavant.value","Nbre de jours passés sans pluie: "..WArrosage_J_avant..""); Modifié le 17 avril 2020 par flamalex
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 local WArrosage_J_avant = tonumber(fibaro:getGlobalValue("WArrosage_J_avant"))/(24*60*60) -- incremantation de +1 de variable globale consigneT WArrosage_J_avant = WArrosage_J_avant + 1 fibaro:setGlobal('WArrosage_J_avant', WArrosage_J_avant * (24*60*60)) -- puis on affiche la variable dans le champs consigne fibaro:debug(WArrosage_J_avant) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.consigneTimeavant.value","Nbre de jours passés sans pluie: "..WArrosage_J_avant) explications : on a va donc stocker des jours converti en secondes dans la VG. Pour ça c'est un simple multiple de 24 heures * 60 minutes * 60 secondes. donc quand on récupère le contenu de la VG, on va diviser par 24*60*60, qui nous donnera le nombre de jours. on va incrémenter / décrémenter la valeur puis la re stocker dans la VG en la multipliant par 24*60*60 du coup dans la VG tu as les secondes, et à l'affichage, tu restes en jour. Y a le nom de la variable locale "WArrosage_J_avant" qui dérange un peu la compréhension, car elle a le même nom que la variable globale... En locale, elle contient une valeur 1-2 ou 3 mais en globale est contient les nombres de secondes.
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 Mais attention, il faut que ce soit des jours entier !! 1 jours, 2 jours, 3 jours ou plus ! mais pas genre 1 jour et demi !
flamalex Posté(e) le 17 avril 2020 Auteur Signaler Posté(e) le 17 avril 2020 bonne remarque, mais je mélange peut etre!!! mais alors, j'ai une scene GEA, qui va controler l'humidité, la temperature, la saison, si soleil coucher et nbr de jour > ou = 1&,2 ou 3 sans pluie il va lancer la verif ts les jours au coucher du soleil donc, si nous sommes à 2,5jrs de la derniere pluie ou 3,5jrs ???
jjacques68 Posté(e) le 17 avril 2020 Signaler Posté(e) le 17 avril 2020 ah là en effet... il faut alors modifier dans GEA et mettre 1*24*60*60 ou 2*24*60*60 ou 3*24*60*60... mais désolé, je n'ai jamais utilisé GEA, je ne sais pas comment ça marche...
Messages recommandés