pepite Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 pour l'appui sur le bouton : dans la boucle principale, le main loop pour les icones, dans le bouton ;-) voila, j'ai bien peche, je confirme, pas terrible terrible les icones, si un graphiste veut bien jeter un oeil ;-) et après si possible une mise à jour du 1er post ;-) prev_meteo.zip
Nico Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 Yop, et remettre le tout dans un module virtuel propre.
mprinfo Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 Allez pepite pas le choix il y a de la demande ☺ Envoyé de mon SM-G900F en utilisant Tapatalk
pepite Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 on va attendre l'aval des proprios de ce VD : @bencol et @CASINOS, ce sont eux qui ont initié le sujet ;-) et @mprinfo qui a modifé la plupart du code ;-) en tout cas :merci à vous tous
mprinfo Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 oui ensemble on progresse bon j'ai un peut de temps ce soir je vais faire un tuto pour la latitude longitude @pépite tu utilises quel programme pour tes captures
pepite Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 j'ai pas mis de capture d'ecran sur ce post ? sinon t'es sous windows ?
Berale64 Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 J'ai mixé un peu le tout, ça doit donner un truc comme ça. Reste àrajouter les icônes. Merci àmprinfo pour la façon de créer la table des icônes. On oublie trop souvent qu'en LUA les indexes d'une table peuvent être aussi des caractères. local icone = { ["Ensoleillé"] = 0000, ["Nuit claire"] = 0000, ["Ciel voilé"] = 0000, ["Nuit légèrement voilée"] = 0000, ["Faibles passages nuageux"] = 0000, ["Nuit bien dégagée"] = 0000, ["Brouillard"] = 0000, ["Stratus"] = 0000, ["Stratus se dissipant"] = 0000, ["Nuit claire et stratus"] = 0000, ["Eclaircies"] = 0000, ["Nuit nuageuse"] = 0000, ["Faiblement nuageux"] = 0000, ["Fortement nuageux"] = 0000, ["Averses de pluie faible"] = 0000, ["Nuit avec averses"] = 0000, ["Averses de pluie modérée"] = 0000, ["Averses de pluie forte"] = 0000, ["Couvert avec averses"] = 0000, ["Pluie faible"] = 0000, ["Pluie forte"] = 0000, ["Pluie modéree"] = 0000, ["Développement nuageux"] = 0000, ["Nuit avec développement nuageux"] = 0000, ["Faiblement orageux"] = 0000, ["Nuit faiblement orageuse"] = 0000, ["Orage modéré"] = 0000, ["Fortement orageux"] = 0000, ["Averses de neige faible"] = 0000, ["Nuit avec averses de neige faible"] = 0000, ["Neige faible"] = 0000, ["Neige modérée"] = 0000, ["Neige forte"] = 0000, ["Pluie et neige mêlée faible"] = 0000, ["Pluie et neige mêlée modérée"] = 0000, ["Pluie et neige mêlée forte"] = 0000 } HC2 = Net.FHttp("127.0.0.1",11111); local response, status, errorCode = HC2:GET("/api/settings/location"); fibaro:debug(errorCode); if (tonumber(errorCode) == 0) then jsonTable = json.decode(response); fibaro:debug(jsonTable.latitude); fibaro:debug(jsonTable.longitude); end local lat = jsonTable.latitude; local lng = jsonTable.longitude; HC2 = Net.FHttp("www.prevision-meteo.ch",80); -- documentation : http://www.prevision-meteo.ch/uploads/pdf/recuperation-donnees-meteo.pdf local response, status, errorCode = HC2:GET("/services/json/lat=" .. lat .. "lng=" .. lng); if (tonumber(errorCode) == 0) then jsonTable = json.decode(response); fibaro:debug("aujourd'hui : " .. jsonTable.current_condition.tmp .. "°c - " .. jsonTable.current_condition.condition); fibaro:debug(jsonTable.fcst_day_1.day_short .. ":" .. jsonTable.fcst_day_1.tmin .. "/" .. jsonTable.fcst_day_1.tmax .. "°c - " .. jsonTable.fcst_day_1.condition); fibaro:debug(jsonTable.fcst_day_2.day_short .. " : min : " .. jsonTable.fcst_day_2.tmin .. "°c - max : " .. jsonTable.fcst_day_2.tmax .. "°c - " .. jsonTable.fcst_day_2.condition); fibaro:debug(jsonTable.fcst_day_3.day_short .. " : min : " .. jsonTable.fcst_day_3.tmin .. "°c - max : " .. jsonTable.fcst_day_3.tmax .. "°c - " .. jsonTable.fcst_day_3.condition); fibaro:debug(jsonTable.fcst_day_4.day_short .. " : min : " .. jsonTable.fcst_day_4.tmin .. "°c - max : " .. jsonTable.fcst_day_4.tmax .. "°c - " .. jsonTable.fcst_day_4.condition); fibaro:debug(jsonTable.current_condition.icon_big); else fibaro:debug("error "..errorCode ) end local METEO_J = ("aujourd'hui : " ..jsonTable.current_condition.tmp .."°c - " ..jsonTable.current_condition.condition); local METEO_J1 = (jsonTable.fcst_day_1.day_short .. " : min : " .. jsonTable.fcst_day_1.tmin .. "°c max : " .. jsonTable.fcst_day_1.tmax .. "°c " .. jsonTable.fcst_day_1.condition); local METEO_J2 = (jsonTable.fcst_day_2.day_short .. " : min : " .. jsonTable.fcst_day_2.tmin .. "°c max : " .. jsonTable.fcst_day_2.tmax .. "°c " .. jsonTable.fcst_day_2.condition); local METEO_J3 = (jsonTable.fcst_day_3.day_short .. " : min : " .. jsonTable.fcst_day_3.tmin .. "°c max : " .. jsonTable.fcst_day_3.tmax .. "°c " .. jsonTable.fcst_day_3.condition); local METEO_J4 = (jsonTable.fcst_day_4.day_short .. " : min : " .. jsonTable.fcst_day_4.tmin .. "°c max : " .. jsonTable.fcst_day_4.tmax .. "°c " .. jsonTable.fcst_day_4.condition); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label1.value", METEO_J); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label2.value", METEO_J1); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label3.value", METEO_J2); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label4.value", METEO_J3); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label5.value", METEO_J4); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label211.value", os.date("%H:%M:%S")); local condition = jsonTable.current_condition.condition local Num_Icone = icone[condition] fibaro:call(fibaro:getSelfId() , "setProperty", "currentIcon", Num_Icone) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label211.value", os.date("%H:%M:%S")) --fibaro:debug(fibaro:getValue(262, "log")) fibaro:log(METEO_J) fibaro:sleep(6*60*1000) -- 6 minutes 1
Nico Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 Qqun a une astuce sur ce forum pour copier/coller un code sans se ramasser les 1.2.3. etc devant chaque ligne ???
mprinfo Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 oui sous windobe 7 et 8.1 j'utilise le logiciel qui et fourni avec OS Je suis pas top mais je voudrais connaitre un logiciel correcte pour faire de la capture et modification comme floutage de l'adresse ip. Le dernier logiciel de que j'ai utilisé c'est corel draw6 ca date lol j'ai fais le tuto pour la latitude longitude a toi de le faire pour ce module météo lol Bonjour a tous, Suite a la réalisation de Module Virtuel Météo débuté par Bencol et réalisé par un groupe de Membres du FORUM Casimos, Berale24, Pepite, et comme juge Arbitre pour le Main Loop LAZER Voici le lien domotique-fibaro.fr/index.php/topic/4087-pr%C3%A9vision-m%C3%A9t%C3%A9o/ Nous Nous sommes posés la question comment faire pour récupérer la latitude et la longitude dans notre box plus de l'écrire dans le module virtuel. J'avais fais un petit tour dans la docs de l'API mais comme je débute c'est un peu du charabia J'ai donc décidé d'y jeté un Å“il de plus prêt. Pour ceux qui ne le savent pas, la docs de notre HC2 ce trouve a l'adresse suivant http://<ip box>/docs Capture.PNG j'ai vu qu'il y avait settings Capture1.PNG Et la miracle je vois location (GET ou PUT) Je choisi GET car je veux récuperer les informations Capture3.PNG Je vois que finalement on peut récuperé pas mal d'info, En bas de la page je vois que l'on a json je clic sur TRY IT! Au miracle j'ai ma latitude, Longitude et pas mal d'information de mon panneau de configuration. Super tout cela mais comment faire pour récupérer tout cela. je poste donc l'api sur le fofo et miracle une réponse de Bencol que je remercie HC2 = Net.FHttp("127.0.0.1",80); HC2:setBasicAuthentication("admin","xxxx"); local response, status, errorCode = HC2:GET("/api/settings/location"); if (tonumber(errorCode) == 0) then jsonTable = json.decode(response); fibaro:debug(jsonTable.latitude); fibaro:debug(jsonTable.longitude); end Ok c'est cool mais il faut un mot de passe et un utilsateur donc je modifie le début du code comme cela HC2 = Net.FHttp("127.0.0.1",11111); en mettant le port 11111 a la place du 80 On a plus besoin de HC2:set.... Merci qui ? Merci Krikroff Donc maintenant que j'ai mon json cool je n'ai plus l'utiliser comme cela pour avoir la latitude et longitude HC2 = Net.FHttp("127.0.0.1",11111); local response, status, errorCode = HC2:GET("/api/settings/location"); if (tonumber(errorCode) == 0) then jsonTable = json.decode(response); fibaro:debug(jsonTable.latitude); fibaro:debug(jsonTable.longitude); end local latitude = (jsonTable.latitude); local Longitude = (jsonTable.longitude); fibaro:debug("Latitude = " ..latitude) fibaro:debug("Longitude = " ..longitude) On peut biensur retrouver la ville, numero de votre maison, ntpServer, etc.. Bon je début donc je n'irai pas plus loin au niveau de l'api. Commander la HC2 Par requetes HTTP Voici un lien : tutoriels.domotique-sto re.fr/content/49/45/fr/api-commander-le-home-center-par-des-requ%C3%AAtes-http.html
mprinfo Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 @Berale mets le port 11111 ça évite les mots de passe et users comme cela aucune modifs a faire
mprinfo Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 Ce qui serait bien pour mieux comprendre le Json c'est de rajouter la ville, L’attitude et mettre la date et l'heure de la prévision. Bon j'ai triché un peu c'est possible on a tout dans les jsons. Ca intéresse quelqu'un ce petit exercice ?
Berale64 Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 Merci mprinfo, j'ai fait la modif. Je ne comprends pas le lien vars la doc http://<ip box>/docs tu veux dire que la doc est DANS la box ??? J'ai mis l'IP de ma box et j'ai une erreur 403.
mprinfo Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 oui comme cela http://192.168.1.5/docs/ c'est super instructif même si je comprend pas tout, en plus on peut faire des "get" et des "put"
Berale64 Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 Pas chez moi. Mais je suis en 3.60. Peut être est-ce un répertoire importé avec la V4.
mprinfo Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 dsl Berale effectivement c'est pour la V4
bencol Posté(e) le 18 mars 2015 Auteur Signaler Posté(e) le 18 mars 2015 Content que ma découverte fasse des émules, et merci àvous d'avoir été au bout du device. En fait je ne suis pas tombé dessus par hasard, je cherchais àconnaitre la météo àl'avance pour anticiper sur le chauffage de ma maison. Je prépare un device pour piloter le chauffage de manière optimale...sortie prochaine... mais vu qu'on arrive au printemps il ne servira qu'àl'hiver prochain.
mprinfo Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 Merci bencol ca nous a fais faire un peu d exercice Envoyé de mon SM-G900F en utilisant Tapatalk
jojo Posté(e) le 18 mars 2015 Signaler Posté(e) le 18 mars 2015 Dites les gars, c'est génial tout ce travail ! Lorsque votre VD est finalisé, ne feriez-vous pas un beau petit tuto pour résumer tout ça, avec le fichier zip des icônes ? Merci
pepite Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 merci pour le tuto @mprinfo ;-) joliii Ok dès que possible je refais le VD "communautaire", bien propre et le partage ;-) Avez-vous regardé les icones ? si une bonne ame peut les retravailler un peu, sinon on repartira avec ceux-la ;-) pour commencer
mprinfo Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 Merci pepite pour les icones je peux oas trop t'aider car c'est pas mon truc mais peut être que le Monsieur icone du forum te fera cela aux petit oignons Envoyé de mon SM-G900F en utilisant Tapatalk
Nico Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 Bah celles là pour commencer c'est déjà top ! Pepite, au boulot =>Bon ok je sors...
TonyC Posté(e) le 19 mars 2015 Signaler Posté(e) le 19 mars 2015 Merci àtous ceux qui ont participé àélaborer ce VD vraiment au TOP et très utile !!!
Messages recommandés