Aller au contenu

Recommended Posts

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Yop, et remettre le tout dans un module virtuel propre.

Partager ce message


Lien à poster
Partager sur d’autres sites

Allez pepite pas le choix il y a de la demande ☺

Envoyé de mon SM-G900F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai pas mis de capture d'ecran sur ce post ?

sinon t'es sous windows ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Qqun a une astuce sur ce forum pour copier/coller un code sans se ramasser les 1.2.3. etc devant chaque ligne ???

Partager ce message


Lien à poster
Partager sur d’autres sites

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

 

attachicon.gifCapture.PNG

 

j'ai vu qu'il y avait settings

 

attachicon.gifCapture1.PNG

 

Et la miracle je vois location (GET ou PUT)

 

Je choisi GET car je veux récuperer les informations

 

attachicon.gifCapture3.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

Partager ce message


Lien à poster
Partager sur d’autres sites

@Berale mets le port 11111 ça évite les mots de passe et users comme cela aucune modifs a faire

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ? :)

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Pas chez moi. Mais je suis en 3.60. Peut être est-ce un répertoire importé avec la V4.

Partager ce message


Lien à poster
Partager sur d’autres sites

dsl Berale effectivement c'est pour la V4

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci bencol ca nous a fais faire un peu d exercice

Envoyé de mon SM-G900F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Bah celles là  pour commencer c'est déjà  top ! Pepite, au boulot :)

 

=>Bon ok je sors...

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci àtous ceux qui ont participé àélaborer ce VD vraiment au TOP et très utile !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

×