Aller au contenu

bencol

Messages recommandés

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

Lien vers le commentaire
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
Lien vers le commentaire
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

Lien vers le commentaire
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 ? :)

Lien vers le commentaire
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.

Lien vers le commentaire
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

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...