Aller au contenu

Prévision Météo


pepite

Messages recommandés

alors essayons cela dans un bouton ;-) et donne le debug ;-). Quand pensez-vous ?

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);
fibaro:debug(jsonTable.city);
end
 
local date = os.date("%d/%m/%y %H:%M")
local lat = (jsonTable.latitude);
local lng = (jsonTable.longitude);
local ville = (jsonTable.city);

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);
else
fibaro:debug("error "..errorCode )
end

 

Lien vers le commentaire
Partager sur d’autres sites

moi je réduirai ma recherche comme cela

il faut renseigner la latitude et la longitude a la main

local lat = --a renseigner
local lng = --a renseigner
 
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);
else
fibaro:debug("error "..errorCode )
end
Lien vers le commentaire
Partager sur d’autres sites

pourquoi pas oui, mais au moins avec le json de la HC2 on est sur de la lat et de la long :-), pas d'erreur de saisie ;-)

 

au fait mprinfo, attention a la position de ton bouton dans la V2 avec Affichage de sunset et sunrise sinon ton main loop ne fait rien, il faut adapter le pressbutton ;-)

Lien vers le commentaire
Partager sur d’autres sites

 

moi je réduirai ma recherche comme cela

il faut renseigner la latitude et la longitude a la main

local lat = --a renseigner
local lng = --a renseigner
 
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);
else
fibaro:debug("error "..errorCode )
end

Merci a tous de vos aides.j'ai encore essayé avec vos codes  et toujours en debug:

 

DémarrerArrêterNettoyer

[ERROR] 08:41:38: line 12: Expected value but found invalid token at character 1
 
Lien vers le commentaire
Partager sur d’autres sites

Tu dois avoir un soucis reseau

A priori ton hc2 àun accès limitée et ne peu récupérer les données sur le site météo ce soir je te dirai comment faire un test pour etre sur que ca viens de la

Envoyé de mon SM-G900F en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

 

Merci a tous de vos aides.j'ai encore essayé avec vos codes  et toujours en debug:

 

DémarrerArrêterNettoyer

[ERROR] 08:41:38: line 12: Expected value but found invalid token at character 1
 

 

Y'a de grandes chance que ce soit un problème d'encodage du JSON en UTF8 avec BOM (Byte Order Mark).

Je te laisse faire une recherche, mais essaye d'afficher les 3 premiers caractères cachés de ta chaine response en hexadecimal; et tu devrais y trouver 3 caractères bizarres, qui sont le BOM.

 

Si c'est le cas, soit tu demande au site d'encoder proprement ses pages, soit tu supprimes manuellement les 3 premiers caractères de ta chaine pour contourner le problème.

 

Bon courage, moi je vais faire dodo ;)

Lien vers le commentaire
Partager sur d’autres sites

Nigamais, tu peux essayer ceci et nous copier ce que tu vois :

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);
	fibaro:debug(jsonTable.city);
end

local date = os.date("%d/%m/%y %H:%M")
local lat = (jsonTable.latitude);
local lng = (jsonTable.longitude);
local ville = (jsonTable.city);

HC2 = Net.FHttp("www.prevision-meteo.ch",80);
-- documentation : http://www.prevision-meteo.ch/uploads/pdf/recuperation-donnees-meteo.pdf

local payload = "/services/json/lat=" .. lat .. "lng=" .. lng
--fibaro:debug(payload);
local response, status, errorCode = HC2:GET(payload);

if (tonumber(errorCode) == 0 and tonumber(status) == 200)
then
	fibaro:debug("string.len(response) = " .. string.len(response));
	for i = 1, 6 do
		fibaro:debug( "0x" .. string.format('%02X', string.byte(response, i)) .. " : " .. response:sub(i,i) );
	end
	jsonTable = json.decode(response);
	fibaro:debug("aujourd'hui : " .. jsonTable.current_condition.tmp .. "°c - " .. jsonTable.current_condition.condition);
else
	fibaro:debug("errorCode="..errorCode .. " , status="..status )
end

Lien vers le commentaire
Partager sur d’autres sites

@Lazer j'ai mis tout ça dans un vd et voila le résultat.

[DEBUG] 21:37:03: 52.25
[DEBUG] 21:37:03: 16.53
[DEBUG] 21:37:03: Doazon
[DEBUG] 21:37:03: string.len(response) = 142
[DEBUG] 21:37:03: 0x43 : C
[DEBUG] 21:37:03: 0x6F : o
[DEBUG] 21:37:03: 0x6F : o
[DEBUG] 21:37:03: 0x72 : r
[DEBUG] 21:37:03: 0x64 : d
[DEBUG] 21:37:03: 0x6F : o
[ERROR] 21:40:55: line 31: Expected value but found invalid token at character 1
 
Lien vers le commentaire
Partager sur d’autres sites

ah ouais y'a un vrai problème là .

Je pense que tes coordonnées LAT LON ne sont pas bonnes, ça ne ressemble à  rien.

Du coup le site Web d'envoi un message pour te dire que c'est pas bon :

Coordonnées hors limites : veuillez indiquer une latitude comprise entre 41.3000° et 51.9000° et une longitude entre -5.2000° et 10.7000°

 

Oh punaise, t'es tout à  coté de Denguin, faut que tu viennes l'année prochaine aux rencontres domotique-info :D

Lien vers le commentaire
Partager sur d’autres sites

Cool :77:

Etrange coà¯ncidence il vient de m'ajouter il y a 1h sur Linkedin :60:

 

oui c'est tout simple pour ton problème, il faut que tu trouves des coordonnées GPS avec Google maps. Il y a un tuto pour ça je crois....

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...