BenjyNet Posté(e) le 21 septembre 2019 Signaler Posté(e) le 21 septembre 2019 Bah là c'est pareil non ?
MAM78 Posté(e) le 21 septembre 2019 Auteur Signaler Posté(e) le 21 septembre 2019 (modifié) ou faire un boucle dans la scène pour chaque zone. Modifié le 21 septembre 2019 par MAM78
BenjyNet Posté(e) le 21 septembre 2019 Signaler Posté(e) le 21 septembre 2019 Heu non même pas tu fais ça dans le VD, normalement le JSON a toutes les zones.
MAM78 Posté(e) le 21 septembre 2019 Auteur Signaler Posté(e) le 21 septembre 2019 (modifié) Alors pourquoi tu indiques la ville dans ton VD ? Modifié le 21 septembre 2019 par MAM78
MAM78 Posté(e) le 21 septembre 2019 Auteur Signaler Posté(e) le 21 septembre 2019 Donc il faut bien 2 scenes ou une boucle pour traiter chacune des académies.
BenjyNet Posté(e) le 21 septembre 2019 Signaler Posté(e) le 21 septembre 2019 Mais non, ta VG n'est pas filtrée, elle récupère l'ensemble des vacances, c'est dans le VD que tu filtres la ville. Donc une scène et 2 VD à la rigueur.
MAM78 Posté(e) le 21 septembre 2019 Auteur Signaler Posté(e) le 21 septembre 2019 Il me semble sans avoir analysé tout ton code que tu filtres bien sur la ville selon la ligne de code ci-dessous. Ou alors j'ai loupé quelque chose if jsonTable[j].fields.location == Ville and jsonTable[j].fields.annee_scolaire == Annee then
BenjyNet Posté(e) le 21 septembre 2019 Signaler Posté(e) le 21 septembre 2019 Oui, dans le VD et non dans la scène. Donc je te le redis, la variable globale issue de la scène (le json de l'état) renvoi bien l'ensemble des vacances. Donc tu fais 2 VD et une scène si tes enfants sont dans 2 acad différentes.
MAM78 Posté(e) le 21 septembre 2019 Auteur Signaler Posté(e) le 21 septembre 2019 (modifié) Ou là, je suis un gros boulet. j'ai inversé la lecture du code de la scène et du VD. Laisse tomber ça fait au mois 6 mois que je n'ai pas remis les mains sur ma HC2. Désolé pour la perte de temps. Modifié le 21 septembre 2019 par MAM78
BenjyNet Posté(e) le 21 septembre 2019 Signaler Posté(e) le 21 septembre 2019 Huhu non non c'est pas une perte de temps. Par contre je pense qu'il y aura un soucis sur la bascule d'année scolaire. Coder en dur la date du mois d'Aout ça me gène.
Rem's Posté(e) le 7 octobre 2019 Signaler Posté(e) le 7 octobre 2019 Bonjour à tous, j’essaye de faire fonctionner ce VD, mais j’ai un message d’erreur : ERROR] 17:41:17: line 176: bad argument #1 to 'difftime' (number expected, got nil) Une idée ...? D’avance merci du coup de main !
BenjyNet Posté(e) le 7 octobre 2019 Signaler Posté(e) le 7 octobre 2019 T'as modifié avec la dernière MAJ des messages précédents ?
Rem's Posté(e) le 13 octobre 2019 Signaler Posté(e) le 13 octobre 2019 Désolé, le boulet, je n'y arrive pas !! [ERROR] 20:15:49: line 41: attempt to index field '?' (a nil value)
TonyC Posté(e) le 13 octobre 2019 Signaler Posté(e) le 13 octobre 2019 Salut @Rem's essaye de mettre l’académie dont tu depends et non pas ta ville, j.ai eu le même souci.
Rem's Posté(e) le 22 octobre 2019 Signaler Posté(e) le 22 octobre 2019 Bonjour à tous, J'essaye en vain de faire tourner ce VD, je voudrais me servir des variables vacances pour mes scènes. local Ville = "Marseille" local dayofchange = 31 -- Jour du changement d'Année scolaire local monthofchange = 8 -- Mois du changement d'Année scolaire local Annee = "2019" local data = fibaro:getGlobal("VacancesScolaire") local i = 1 local now = os.time() local holiday = false local holidayd1 = false local vacance = {} -- -------------------------------------------------------------------------------------------------------------- -- Determine l'Année Scolaire par rapport aux paramètres monthofchange & dayofchange -- -------------------------------------------------------------------------------------------------------------- local dateofchange = os.time({day=dayofchange,month=monthofchange,year=os.date("%Y"),hour=0,min=0,sec=0}) if now > dateofchange then Annee = os.date("%Y").."-"..(os.date("%Y") + 1) else Annee = (os.date("%Y") -1).."-"..os.date("%Y") end -- -------------------------------------------------------------------------------------------------------------- -- Calcule le nombre de jours entre 2 dates -- -------------------------------------------------------------------------------------------------------------- function delai(dated, dateparam) diff = os.difftime(dated, dateparam) return math.floor(diff / (60*60*24)) end -- -------------------------------------------------------------------------------------------------------------- -- Transforme une date en string en date exploitable -- -------------------------------------------------------------------------------------------------------------- function getDateFormat(sdate) year,month,day = sdate:match("(%d+)-(%d+)-(%d+)") return os.time({day=day,month=month,year=year,hour=0,min=0,sec=0}) end local status, jsonTable = pcall(function() return json.decode(data) end) for j = 1, #jsonTable do if jsonTable[j].fields.location == Ville and jsonTable[j].fields.annee_scolaire == Annee then local Description = jsonTable[j].fields.description local Annee_Scolaire = jsonTable[j].fields.annee_scolaire local Start_date = tostring(jsonTable[j].fields.start_date) local End_date = tostring(jsonTable[j].fields.end_date) Zone = jsonTable[j].fields.zones --local Ville = jsonTable[j].fields.location if (now > getDateFormat(Start_date) and now < getDateFormat(End_date)) then holiday = true elseif ( getDateFormat(Start_date) > now and not holiday) then if nextholiday ~= nil then if getDateFormat(Start_date) < nextholiday then nextholiday = getDateFormat(Start_date) end else nextholiday = getDateFormat(Start_date) end end if (now+24*60*60 > getDateFormat(Start_date) and now+24*60*60 < getDateFormat(End_date)) then holidayd1 = true end table.insert(vacance, getDateFormat(Start_date).." - "..getDateFormat(End_date).." | "..Description) end end fibaro:call(fibaro:getSelfId(), "setProperty", "ui.ville.value", Ville) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.zone.value", Zone) table.sort(vacance) for k, v in pairs(vacance) do local date1 = string.match(v, "(%d+)%s"); local date2 = string.match(v, "-%s(%d+)%s"); local libelle = string.match(v, "|%s(.+)"); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..k..".value", os.date("%d.%m.%Y", date1) .. " - " .. os.date("%d.%m.%Y", date2) .. " | " .. libelle) end if holiday then fibaro:call(fibaro:getSelfId(), "setProperty", "ui.today.value", "Oui") else fibaro:call(fibaro:getSelfId(), "setProperty", "ui.today.value", "Non") fibaro:call(fibaro:getSelfId(), "setProperty", "ui.status.value", "Dans ".. delai(nextholiday, now) .. " Jours") end if holidayd1 then fibaro:call(fibaro:getSelfId(), "setProperty", "ui.tomorrow.value", "Oui") else fibaro:call(fibaro:getSelfId(), "setProperty", "ui.tomorrow.value", "Non") end Un coup de main serait chouette !! d'avance merci !!
pepite Posté(e) le 22 octobre 2019 Signaler Posté(e) le 22 octobre 2019 Bonjour, Le fork (scene + VD) d'ADN est OK chez moi, as-tu une erreur ?
TonyC Posté(e) le 22 octobre 2019 Signaler Posté(e) le 22 octobre 2019 @Rem's, dans mon post précédent, je te disais qu'il fallait mettre le nom de l'académie dont tu dépends, or l'académie dont tu dépends n'est pas Marseille mais"Aix-Marseille" . ps: il faut respecter les majuscules comme dans l'exemple. 1
Rem's Posté(e) le 22 octobre 2019 Signaler Posté(e) le 22 octobre 2019 En fait j'ai même essayé avec Lille et Rouen !! (les pauvres, c'est une honte ...) J'ai toujours l'erreur : [ERROR] 21:04:34: line 41: attempt to index field '?' (a nil value) J'ai essayé avec Marseille, Aix - Marseille, Aix-Marseille, aix - marseille, 13 Faut il bien renseigner l'année entre les "" : soit 2019 ? Merci pour ton aide, au top
TonyC Posté(e) le 22 octobre 2019 Signaler Posté(e) le 22 octobre 2019 @Rem's as tu créé la variable globale puis exécuté le script comme indiqué ici : ? ce dernier va stocker la liste le VD va la parser pour récupérer les info. Il faut que la variable est le même nom que celui déclaré au niveau du VD. Tiens nous au jus.
Rem's Posté(e) le 27 octobre 2019 Signaler Posté(e) le 27 octobre 2019 bonjour à tous, J'avance, mais doucement , ... quel boulet !! j'ai une erreur : [ERROR] 19:17:53: line 26: bad argument #1 to 'difftime' (number expected, got nil) J'ai bien la scène qui au début : succès. Une idée ?
Sakkhho Posté(e) le 29 février 2020 Signaler Posté(e) le 29 février 2020 ca fonctionne chez vous ? la scene mets success, mais j'ai l'impression qu'il y a rien dans la variable ?
Sakkhho Posté(e) le 29 août 2020 Signaler Posté(e) le 29 août 2020 (modifié) @BenjyNet j'ai voulu voir si ce VD ce mets à jour, le json semble bien contenir l'année 2021 par contre si je change la date dans le bouton du VD pour prendre le changement d'année scolaire j'ai ca ? [ERROR] 09:09:14: line 39: field 'day' missing in date table Modifié le 29 août 2020 par Sakkhho
BenjyNet Posté(e) le 29 août 2020 Signaler Posté(e) le 29 août 2020 Yep, je pense que c'est parce qu'il n'y a pas de date de vacances d'été encore. Faut rajouter un test pour éviter cette erreur.
Messages recommandés