Aller au contenu
Lazer

Utilisation de net.HTTPClient() asynchrone dans une scène

Recommended Posts

Je me doute bien qu'il y a déjà des infos pour savoir comment faire, c'est pas faute d'avoir essayer de comprendre

Mais Désolé je n'arrive pas toujours

Pour moi c'est une nouveau chapitre que j'aborde avec la HC3

J'y arrive beaucoup mieux quant j'ai un exemple concret sous les yeux

Après cela me permet de mieux assimiler et de pouvoir adapter en fonction de mes besoins

J'ai déjà regarder tous le week-end comment on fait mais désolé je n'ai pas réussi

 

pour l'exemple ci dessus ok je comprends qu'il ne faut mettre que l'adresse IP et son port dans http:request(), mais du coup que faire du reste?

Ou le placer?

GET /googlehome? annoucement=someone%20at%20the%20door HTTP/1.1

Merci

Modifié par flacon030

Partager ce message


Lien à poster
Partager sur d’autres sites

Juste l'URL, comme dans ton navigateur.

Tout simple.

Exemple :

"http://mon.adresse.com/googlehome?annoucement=someone%20at%20the%20door"

 

Pour ton QuickApp, il te suffit de partir d'un QA exemple proposé par Fibaro. Choisi le type qui correspond à ton besoin.

En complément ne pas oublier la doc officielle : https://manuals.fibaro.com/home-center-3-quick-apps/

Il y a un paragraphe sur la création d'un bouton.

Partager ce message


Lien à poster
Partager sur d’autres sites

salut à tous

 

J'ai une erreur 400 de mon code ci-dessous, après un bonheur de recherche je ne trouve toujours pas le problème.

Merci d'avance pour votre aide

 

[22.03.2022] [13:25:39] [DEBUG] [SCENE253]: Erreur : status=400

 

https://voicemonkey.io/start

 


local var1 = "Hello%20monkey"

local http = net.HTTPClient()
http:request("https://api.voicemonkey.io/trigger?access_token=xxxxxxxxxxxde15&secret_token=xxxxxxxxxxxxx&monkey=fibaro&announcement="..var1, {
	success = function(response)
		if response.status == 200 then
			print('OK, réponse : '.. response.data)
		else
			print("Erreur : status=" .. tostring(response.status))
		end
	end,
	error = function(err)
		print("Erreur : " .. err)
	end,
	options = {
		method = 'GET'
	}
})

 

 

 

 

 

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

Le code http 400 signifie "bad request".

Jamais facile à débugger... mais tu n'aurais pas un caractère caché, ou autre problème de syntaxe dans l'URL que tu utilises pour ta requête ?

 

Car du point de vue de ta box domotique, ta requête a bien été effectuée, puis c'est la fonction success() qui a été appelée, donc c'est bien le serveur Web qui a reçu puis rejeté ta requête.

Partager ce message


Lien à poster
Partager sur d’autres sites

×