Aller au contenu

Messages recommandés

Posté(e)

@nigamais je pense que tu as un soucis au niveau du json qui récupère les températures mais je peux pas t'aider car j'y connais pas grand chose

Posté(e)

C'est pour cela que je n arrive pas a comprendre il faudrait voir ce que tu as comme reponse json

Envoyé de mon SM-G900F en utilisant Tapatalk

Posté(e)

la partie la fonctionne il a le nom de la ville

c'est la partie json ou on récupère les infos sur le site météo qui pose probléme

Posté(e)

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

 

Posté(e)

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
Posté(e)

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 ;-)

Posté(e)

Oui c'est vrai tu as raison mais lol je pense savoir d’où vient le probléme donc je réduis la recherche.

 

Par contre pour la saisie je sais plus si c'est un . ou ,

Posté(e)

 

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
 
Posté(e)

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

Posté(e)

 

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 ;)

Posté(e)

Déjà ,ça ne viens pas du site car  plusieurs personnes  on le même virtual device et ça fonctionne,quelqu'un peux m'aider sachant que je m'y connais pas en LUA et je suis un newbie.Merci a tous.

Posté(e)

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

Posté(e)

@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
 
Posté(e)

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

Posté(e)

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

Posté(e)

:)

Par contre le site est un peu mal programmé, car il devrait envoyer une réponse JSON même quand il y a une erreur afin de signaler le problème.

×
×
  • Créer...