Aller au contenu
oufman

Exécuter Et Stopper Une Scène Par Http

Recommended Posts

Bonjour à  tous,


 


J'ai vu que grâce à  l'api de Fibaro on peut stopper et démarrer une scène via une requête HTTP de type  : 


 


http://user:pass@IP/api/sceneControl?id=IDSCENE&action=start


http://user:pass@IP/api/sceneControl?id=IDSCENE&action=stop


 


Sans passer par le LUA, il devrait être possible via un module virtuel d'exécuter l'url via la fonction GET ?!


 


Mais visiblement ça n'as pas l'air de fonctionner...


 


Est-ce que qqun à  déjà  essayé de lancer l'ordre d'une requête http directement depuis la box elle même ?


 


D'avance merci pour votre retour.


Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai déjà  repondu là  : http://www.domotique-fibaro.fr/index.php/topic/1282-stopper-une-sc%C3%A8ne-via-une-sc%C3%A8ne-sur-hcl/#entry16342

 

Mais je remet pour les futures recherches

HC2 = Net.FHttp("192.168.X.XXX",80) -- Renseigner l'adresse ip de la HC2
HC2:setBasicAuthentication("admin", "XXXXXXXX") -- Renseigner le login + mot de passe


-- Envoi de la commande http :

HC2:GET("/api/sceneControl?id=XX&action=start") --Renseigner l'Id de la scène à  commander

Pour info, voici une liste de commande :

 

 

 

Devices: 
ID = device ID 
name = action 
arg1 = (e.g. value dimmer) 
http://<HC2 ip address>/api/callAction?deviceID=4&name=turnOff 
http://<HC2 ip address>/api/callAction?deviceID=7&name=setValue&arg1=39 


Virtual Devices 
ID = device ID 
arg1 = button ID 
arg2 = slider value (only for slider) 
http://<HC2 ip address>/api/callAction?deviceID=15&name=pressButton&arg1=2 
http://<HC2 ip address>/api/callAction?deviceID=51&name=setSlider&arg1=8&arg2=30 

Notification 
ID = Device (Iphone, e-mail et cetera) 
arg1 = Notification template 
http://<HC2 ip address>/api/callActiondeviceID=9&name=sendDefinedPushNotification&arg1=1 

Arm/Disarm devices 
arg1 = 1 - Armed 
arg1 = 0 - Disarmed 

http://<HC2 ip address>/api/callAction?deviceID=51&&name=setArmed&arg1=0 

Scene 
ID = SceneID 

http://<HC2 ip address>/api/sceneControl?id=14&action=start 
http://<HC2 ip address>/api/sceneControl?id=14&action=stop 

Get json status from api: 

http://<HC2 ip address>/api/rooms 
http://<HC2 ip address>/api/scenes 
http://<HC2 ip address>/api/devices 
http://<HC2 ip address>/api/devices?id=316 # Specific value of a device 
http://<HC2 ip address>/api/virtualDevices 
http://<HC2 ip address>/api/globalVariables 
http://<HC2 ip address>/api/weather 
http://<HC2 ip address>/api/sections 
http://<HC2 ip address>/api/users 
http://<HC2 ip address>/api/energy/now-3600/now/single/devices/power/58 

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Moicphil pour ta réponse.

 

Mais par contre c'est en LUA non ? Du coup incompatible avec la HCL ?

 

Merci encore pour ton aide.

Partager ce message


Lien à poster
Partager sur d’autres sites

Effectivement ça ne joue pas en URL Standard, uniquement en LUA la méthode citée.

 

Il y a surement une possibilité d'exécuter une scène en http en utilisant l'API Fibaro sans passez par du LUA.

Partager ce message


Lien à poster
Partager sur d’autres sites

Toutes les url proposées par Moicphil sont standards ;).

Par exemple:

 

SUR HC2 =>

 

http://<HC2 ip address>/api/sceneControl?id=14&action=start

 

SUR HCL => dans un virtual device en mode "string"

 

POST /api/sceneControl?id=14&action=start

HTTP/1.1
Host: xxx.xxx.xxx.xxx
Authorization: Basic USER:PASSWORD_ENCODE_EN_BASE64
0x0D0x0A0x0D0x0A

 

Voilou...

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour la Hc Lite...il va falloir encoder le couple user:password au format "Base64"

 

Tu peux utiliser cet encodeur : http://www.base64encode.org/

 

Une fois ton code obtenu, tu le saisis après "Authorization: Basic"

GET /api/sceneControl?id=XX&action=start HTTP/1.1
Host: 192.168.x.xxx
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxx
0x0D0x0A0x0D0x0A
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour vos réponses, mais visiblement ça ne je joue pas... 

 

Bon la en ce moment je fait le test sur une HC2 mais le résultat devrait êtres pareil non ?

 

J'ai entré comme indiqué après Autorization : Basic user:password (Encoder avec le site que tu m'as indiqué) Faut-il mettre UTF-8 ou autre en particulier ? Dois-je d'abord encoder l'user puis ensuite le pass et les saisir dans le module virtuel séparé par les 2 points ?

 

Merci encore :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Il faut encoder l'ensemble user:pass en utf-8 sans oublier les " : "

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Houla !

La gloire ne me revient pas...je me suis inspiré de ce post, grâce à  Krikroff : http://www.domotique-fibaro.fr/index.php/topic/561-rebooter-proprement-sa-hc2/

 

Mais en tout cas tant mieux si tu as réussi à  faire ce que tu souhaites...

 

J'en profite pour faire un appel :

-Y'aurait-il quelqu'un pour justement faire un petit tuto avec exemples sur les requetes Http (Get / Post / Json ) sur HC2 et HC Lite  ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Ouais c'est franchement top.

 

Du coup on arrive à  faire quelques fonctions pas trop mal avec la HCL :)

Partager ce message


Lien à poster
Partager sur d’autres sites

-Y'aurait-il quelqu'un pour justement faire un petit tuto avec exemples sur les requetes Http (Get / Post / Json ) sur HC2 et HC Lite  ?

 

Heuuuu ... pas moi :) Mais au moins, j'aurais répondu à  ton appel.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour a tous,

 

Je souhaite utiliser cette procédure pour créer une télécommande pour la Freebox avec mon HCL.

 

J'ai ce lien qui fonctionne en HTTP : http://hd2.freebox.fr/pub/remote_control?code=123456789&key=home

 

Je l'ai modifié comme vu plus haut :

 

POST /pub/remote_control?code=123456789&key=home

HTTP/1.1
 
Host: hd2.freebox.fr
 
Mais ça ne fonctionne pas.
 
Avez vous une idée ?
 
Niko

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

Merci de ta réponse, mais cela ne fonctionne pas.

 

Comment vérifier que l'info est bien partie ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu devrais utiliser l'adresse IP de ton freeplayer et bien préciser cette adresse et le port 80 dans les paramètres de ton module virtuel ...

Envoyé de mon iPhone àl'aide de Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Ceci marche bien pour moi :60: , voici le MUTE

 

- IP Adresse: hd1.freebox.fr

- Port: 80

GET /pub/remote_control?code=00000000&key=mute HTTP/1.1
Host: hd1.freebox.fr
0x0D0x0A0x0D0x0A

Partager ce message


Lien à poster
Partager sur d’autres sites

super mille merci, ça fonctionne parfaitement.

 

Du coup il y a plus de chose à  faire avec cette HCL.

Partager ce message


Lien à poster
Partager sur d’autres sites

Avec plaisir, amuse-toi bien :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à  tous,

 

je reviens sur ce sujet car j'arrive sans problème avec une HCL à  commander, via la commande GET, des éléments extérieurs (cam,PAW....) mais par contre je n'arrive pas à  lancer une scene par un device virtuel avec cette même commande et en reprenant ceci: 

  1. GET /api/sceneControl?id=20&action=start HTTP/1.1
    Host: 192.168.0.250
    Authorization: Basic YWRtaW46xxxxxxxxxxxxxx
    0x0D0x0A0x0D0x0A

 

rien ne se passe ? Si je lance la commande dans une page web : http://192.168.0.250/api/sceneControl?id=20&action=start cela fonctionne sans problème

Du coup je veux bien un petit coup de main.  :15:

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai édité ton précédent post et caché la fin, sinon ton mot de passe serait facile à  retrouver avec decode64  ;)

 

Je viens de faire un essais et j'arrive bien à  exécuter une scène...

 

Vous êtes 2 à  avoir le même pb : >>http://www.domotique-fibaro.fr/index.php/topic/1613-vitual-device/

Partager ce message


Lien à poster
Partager sur d’autres sites

Et bien ca àl'air vraiment bien de pouvoir contrôler des modules avec la fonction string mais je dois être le 3eme chez qui ça ne fonctionne pas, j'ai tout suivi àla lettre et même sur le post de Phil mais ça ne veut rien savoir, alors qu'en http le code fonctionne et je ne pense pas me tromper dans l'identification avec la page qui convertit en 64bit... Bon c'est pas bien grave c'était juste pour un test pour une réponse àun message d'un forumeur, que j'ai redirigé vers cette page du coup. Peut être aura t il plus de chance que moi. Je retesterai surement si la version 4.0 arrive un jour et sans bug :60:

Partager ce message


Lien à poster
Partager sur d’autres sites

idem, rien ne passe chez moi non plus! j'ai essayé de contourner le problème mais il n'y a rien àfaire... :(

Partager ce message


Lien à poster
Partager sur d’autres sites

 

J'en profite pour faire un appel :

-Y'aurait-il quelqu'un pour justement faire un petit tuto avec exemples sur les requetes Http (Get / Post / Json ) sur HC2 et HC Lite  ?

 

J'arrive un peu après la bataille, mais y a-t-il eu une suite à  cette suggestion ô combien intéressante.

Partager ce message


Lien à poster
Partager sur d’autres sites

×