Aller au contenu

Messages recommandés

Je suis en train de mettre en place des commandes HTTP pour appeler des commandes de la Fibaro via Google Home et IFTTT.

 

J'arrive bien à envoyer les commandes mais je souhaiterais coder mon login : mp via Base64

 

Exemple :

 

http://<LOGIN>:<PASS>@<IP>/api/callAction?deviceID=<ID>&name=pressButton&arg1=<BUTTON ID>

donc je vais sur le cite je tape :

login = admin = YWRtaW4K

Mp = admin = YWRtaW4K

 

Ce qui donne:

http://YWRtaW4K:YWRtaW4K@XX.XX.XX.XX:XX/api/callAction?deviceID=175&name=pressButton&arg1=4

mais malheureusement quand je tape l'adresse ci dessus dans mon navigateur il me demande mon login et mp.

 

Avez vous une petite idée ??

 

Lien vers le commentaire
Partager sur d’autres sites

Attention, dans l'URL, il ne faut pas encoder en base64, mais faire un url-encode (cherche ça sur google)

Le base64, c'est si tu veux encoder ton login:password pour le mettre en en-tête d'une requête http, afin de conserver une URL propre (ce que tu ne peux pas tester depuis ton navigateur, à moins d'utiliser un plugin spécifique). Par contre je n'ai aucune idée de ce que IFTTT sait faire, donc mon discours est purement théorique.

Lien vers le commentaire
Partager sur d’autres sites

Voilà.

 

Pour être clair (enfin j'espère) :

- Pour l'URL, c'est bien deux url_encode() distincts séparés avec le : au milieu.

- Pour le header de la requête, c'est le login:password concaténé, et le tout encodé en base64.

Lien vers le commentaire
Partager sur d’autres sites

@speckery : perso j’ai l’impression d’être plus maître du système :) 

 

imagine que tu ne veuilles pas qu’un device soit accessible via le GH (exemple chez les volets ne peuvent pas s’ouvrir via une commande vocale...)

Je sais pas si c’est possible avec le plugin de Fibaro dans le GH ??

Lien vers le commentaire
Partager sur d’autres sites

@Steven @Lazer 

 

Merci beaucoup pour les renseignements je vais tester d'encoder login:mp avec base64 est d'envoyer la commande dans IFTTT avec Webhooks pour voir si cela fonctionne.

 

 

Bon malheureusement cela ne fonctionne pas.

j'ai fait admin:admin encodé Base64 ce qui donne YWRtaW46YWRtaW4K

 

après j'ai renseigné l'URL dans Webhooks comme ceci :

 

http://YWRtaW46YWRtaW4K@XX.XX.XX.XX:XX/api/callAction?deviceID=175&name=pressButton&arg1=4

Je pense que je n'ai pas compris quelque chose.

 

Modifié par soulac
Lien vers le commentaire
Partager sur d’autres sites

@Lazer

 

Bon je reprends url encode égal admin:admin  admin%3Aadmin

 

après j'ai renseigné l'URL dans Webhooks comme ceci :

 

http://admin%3Aadmin@XX.XX.XX.XX:XX/api/callAction?deviceID=175&name=pressButton&arg1=4

cela fonctionne super.

 

Il y a 14 heures, Lazer a dit :

Voilà.

 

Pour être clair (enfin j'espère) :

- Pour l'URL, c'est bien deux url_encode() distincts séparés avec le : au milieu.

- Pour le header de la requête, c'est le login:password concaténé, et le tout encodé en base64.

quand tu dit le tout encodé en base64 tu entends par la de reprendre admin%3Aadmin et les encoder en base64 ?

 

Ou je lache l'affaire avec Base64 ?

Lien vers le commentaire
Partager sur d’autres sites

Oui voilà

 

Tu comprends pourquoi je suis opposé à IFTTT....

 

Remarque que le base64 n'est pas plus sécurisé, puisque ça se décode aussi vite que ça s'encode.

 

Le seul moyen de sécuriser, c'est de faire du HTTPS, ce que ne sais pas faire la HC2, sauf à installer un reverse proxy (tuto sur le forum avec un NAS Synology)

Lien vers le commentaire
Partager sur d’autres sites

@Lazer

 

Du coup je tais écouté en faisant du HTTPS avec synology et un reverse proxy et cela fonctionne en passant par IFTTT.

N'étant pas expert j'ai quelques questions :

J'envois dans IFTTT la commande suivante

https://admin:admin@nondudomaine/api/callAction?deviceID=175&name=pressButton&arg1=4

Mon login et password est tjrs en claire. Peux tu me confirmer quand faisant du HTTPS l'ensemble de l'URL est codé et donc que le password ne se voit pas.

 

autre question je souhaite avoir le retour d'information de la température de mon salon via un FGMS-001.

Je tape la commande :

http://<LOGIN>:<PASS>@<IP>/api/devices?id=XXX

je me retrouve avec une liste d'information je souhaiterais récupérer l'information 

"userDescription":"","value":"24.30"

comment dois je faire ? Tu vas me dire il faut parcer mais malheureusement je ne sais pas le faire.

 

Merci encore pour ton aide

 

Lien vers le commentaire
Partager sur d’autres sites

@Steven

Effectivement pas de rapport avec la scène Google Home

 

Je continue la discutions avec Lazer et l'ensemble des informations précise sur l'interaction IFTTT et Google Home et essayer de sécuriser tout cela.

 

Maintenant ci cela dérange je sors.

Lien vers le commentaire
Partager sur d’autres sites

Oui en https l'URL aussi est chiffrée.

Pour info, attention en entreprise, la plupart des équipes réseaux se permettent d'installer un certificat auto-signé sur les portes de travail des salariés afin de pouvoir faire un gros man in the middle, à savoir intercepter toutes les requêtes https, les déchiffrer, pour les rechiffrer. Officiellement ce n'est que pour journaliser (et filtrer) les URL.... espérons qu'ils n'en fassent pas plus.

Dans le doute, je partage ma connexion 4G depuis mon portable, c'est idiot, mais au final j'ai plus confiance dans le réseau d'Orange que dans celui des entreprises que je visite....

Par contre là c'est vraiment HS, donc désolé.

 

Pour les remontée de température dans IFTTT / Google Home, désolé aucune idée.

Lien vers le commentaire
Partager sur d’autres sites

Moi les requêtes https sont filtré. Du coup je passe par une borne ouverte que nous avons. Font chier les cowboys du réseau a la con. Les https est reconnus et puis après analyse il est bloqué par le proxy. 

Modifié par Domodial
Lien vers le commentaire
Partager sur d’autres sites

bon sinon a part notre discutions http et htpps j'ai réussie à faire mon Applets IFTTT effectivement je me suis trompé dans le choix du trigger GH j'avais prit <Say a simple phrase> alors qu'il faut <Say a phrase whith a text ingredient>

merci @jjacques68

 

Maintenant je souhaite appuyer sur un bouton nommé <alarme> d'un VD nommé <Passerelle SMS> je vais au plus simple pour comprendre et tester.

Si j'ai bien compris je dois écrire dans ma scène :

 

local synonymes = {
  ["alarme"] 		    = "Passerelle SMS",

et la dans le débug j'ai

 

[DEBUG] 14:53:41: null
[DEBUG] 14:53:51: [{"action":"test SMS"}]
[DEBUG] 14:53:51: Utilisé : test sms
[DEBUG] 14:53:51: 2019-01-16 14:53:51.702507 [ fatal] Unknown exception: /opt/fibaro/scenes/169.lua:69: bad argument #1 to 'lower' (string expected, got nil)

par contre je n'ai pas inséré les lignes 

liliOnCommand = "allume la télévision"
liliOffCommand = "éteins la télévision"

car je ne comprends pas ou je dois le faire.

 

merci pour votre retour

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

chez moi je fais

["alarme"] = function() fibaro:call(147, "pressButton", 1) end

ou 147 est l’ID du VD en question et 1 est le n° du bouton dans le VD (= numéro de l’objet dans le VD... les labels sont aussi des objets...)

Modifié par jjacques68
Lien vers le commentaire
Partager sur d’autres sites

Le 15/01/2019 à 09:48, soulac a dit :

je suis obligé d'envoyé l'adesse avec mon login et mp en claire ? il y a quelque chose de plus sécurise a faire ?

tu peux créer un user spécifique à l’utilisation dans la HC2 et lui donner l’accès que à la scène qui doit exécuter les ordres.

c’est pas le top mais ça réduit les risques...

et c’est ce user que tu utilises dans la recettes d’IFTTT. du coup pas besoin de communiquer le super user.

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...