Domoticz, Freebox & IFTTT
-
58djarviss
- Messages : 16
- Inscription : 28 déc. 2016, 18:59
Domoticz, Freebox & IFTTT
Hello,
Je bloque sur la façon dont je peux demander à Google Home, via une action IFTTT Webhooks de lancer une requête HTTP sur ma Freebox (via Domoticz sur l'URL publique) pour changer de chaîne en fonction de ce que je demande à Google Home.
Je m'explique, dans IFTT, mon applet est la suivante :
Déclencheur : Dire une phrase avec un nombre
Contenu : met la chaîne #65
Action : lance une requête web
Requête : https://username:password@domoticz_public_ip:SSL_PORT/json.htm?type=command¶m=switchlight&idx=82&switchcmd=On
Dans Domoticz j'ai:
Un capteur Virtuel nommé "TOTO" ayant pour IDX 82
Un script LUA nommé script_device_TOTO.lua
La requête http vers ma freebox pour changer de chaîne (et mettre la 65) est la suivante:
http://hd1.freebox.fr/pub/remote_contro ... long=false
Mais je ne sais pas comment récupérer la valeur "65" depuis IFTTT. Par contre, je sais comment l'insérer dans la requête, il suffit d'ajouter # et IFTTT rajoute la valeur qui va bien. Donc maintenant, comment récupérer çà dans Domoticz ?
Mon idée est de lancer la requête https qui va actionner un script dans lequel je récupère la valeur "#" et l'insère dans ma requête vers la Freebox (via command_array(openURL)...
Depuis IFTTT je sais parfaitement allumer et éteindre la Freebox via Domoticz car la requête vers la Freebox pour l'appui sur le bouton power simple, à la place de 65 il suffit de mettre power, mais c'est une constante pas une variable.
Merci pour votre aide
Je bloque sur la façon dont je peux demander à Google Home, via une action IFTTT Webhooks de lancer une requête HTTP sur ma Freebox (via Domoticz sur l'URL publique) pour changer de chaîne en fonction de ce que je demande à Google Home.
Je m'explique, dans IFTT, mon applet est la suivante :
Déclencheur : Dire une phrase avec un nombre
Contenu : met la chaîne #65
Action : lance une requête web
Requête : https://username:password@domoticz_public_ip:SSL_PORT/json.htm?type=command¶m=switchlight&idx=82&switchcmd=On
Dans Domoticz j'ai:
Un capteur Virtuel nommé "TOTO" ayant pour IDX 82
Un script LUA nommé script_device_TOTO.lua
La requête http vers ma freebox pour changer de chaîne (et mettre la 65) est la suivante:
http://hd1.freebox.fr/pub/remote_contro ... long=false
Mais je ne sais pas comment récupérer la valeur "65" depuis IFTTT. Par contre, je sais comment l'insérer dans la requête, il suffit d'ajouter # et IFTTT rajoute la valeur qui va bien. Donc maintenant, comment récupérer çà dans Domoticz ?
Mon idée est de lancer la requête https qui va actionner un script dans lequel je récupère la valeur "#" et l'insère dans ma requête vers la Freebox (via command_array(openURL)...
Depuis IFTTT je sais parfaitement allumer et éteindre la Freebox via Domoticz car la requête vers la Freebox pour l'appui sur le bouton power simple, à la place de 65 il suffit de mettre power, mais c'est une constante pas une variable.
Merci pour votre aide
Re: Domoticz, Freebox & IFTTT
J'avais le même besoin avec GoogleHome pour changer les chaîne de la FreeboxRevolution.
J'ai donc créé sous Domoticz un matériel type Dummy et ensuite un capteur virtuel de type Lux (d'autres types peuvent faire l'affaire mais j'ai pas pris le temps de tester et de chercher les url correspondantes).
Il faut juste retenir le numéro IDX et le nom de ce capteur virtuel que l'on devra reporter dans le script LUA ci-dessous.
Ensuite dans /domoticz/scripts/lua il faut créer un fichier script LUA (ex dans mon cas script_device_FreeboxChaine.lua) :
commandArray = {}
--print ("tata")
if (devicechanged['FreeboxChaine']) then
chaine=tonumber(otherdevices_svalues['FreeboxChaine'])
print ("Chaine demandée="..chaine)
cmd="curl 'http://hd2.freebox.fr/pub/remote_control?code=XXXXXXXX&key="..chaine.."&long=false'"
print ("cmd="..cmd)
os.execute(cmd)
end
return commandArray
où en rouge on retrouve le nom du capteur virtuel et qui apparaît aussi dans le nom du script LUA
où en vert on retrouve le code de la télécommande de la Freebox
Côté IFTTT, voici la requête que j'envoie
Http://login:password@ADRESSE_IP:PORT/json.htm?type=command¶m=udevice&idx=IDX&svalue={{NumberField}}
en rouge les valeurs à changer en fonction de votre conf Domoticz
{{NumberField}} étant la valeur de la chaîne récupérée par IFTTT
J'ai donc créé sous Domoticz un matériel type Dummy et ensuite un capteur virtuel de type Lux (d'autres types peuvent faire l'affaire mais j'ai pas pris le temps de tester et de chercher les url correspondantes).
Il faut juste retenir le numéro IDX et le nom de ce capteur virtuel que l'on devra reporter dans le script LUA ci-dessous.
Ensuite dans /domoticz/scripts/lua il faut créer un fichier script LUA (ex dans mon cas script_device_FreeboxChaine.lua) :
commandArray = {}
--print ("tata")
if (devicechanged['FreeboxChaine']) then
chaine=tonumber(otherdevices_svalues['FreeboxChaine'])
print ("Chaine demandée="..chaine)
cmd="curl 'http://hd2.freebox.fr/pub/remote_control?code=XXXXXXXX&key="..chaine.."&long=false'"
print ("cmd="..cmd)
os.execute(cmd)
end
return commandArray
où en rouge on retrouve le nom du capteur virtuel et qui apparaît aussi dans le nom du script LUA
où en vert on retrouve le code de la télécommande de la Freebox
Côté IFTTT, voici la requête que j'envoie
Http://login:password@ADRESSE_IP:PORT/json.htm?type=command¶m=udevice&idx=IDX&svalue={{NumberField}}
en rouge les valeurs à changer en fonction de votre conf Domoticz
{{NumberField}} étant la valeur de la chaîne récupérée par IFTTT
-
frenchyyii
- Messages : 310
- Inscription : 16 oct. 2015, 06:29
Re: Domoticz, Freebox & IFTTT
Ton système ne fonctionnera pas avec les chaines à 2 chiffres. Je pense par contre qu'on peut bidouiller quelque chose via Sarah mais chez moi je n'arrive pas à passer à cette dernière des commandes en URL.
-
58djarviss
- Messages : 16
- Inscription : 28 déc. 2016, 18:59
Re: Domoticz, Freebox & IFTTT
Salut et merci pour le coup de main.
Bon effectivement çà fonctionne nickel avec un chiffre mais pas 2. Jevais oir également comment on peut faire maintenant.
Merci
Bon effectivement çà fonctionne nickel avec un chiffre mais pas 2. Jevais oir également comment on peut faire maintenant.
Merci
-
58djarviss
- Messages : 16
- Inscription : 28 déc. 2016, 18:59
Re: Domoticz, Freebox & IFTTT
Je tente quelque chose d'un peu plus chiant à mettre en place mais je pense m'être égaré...
J'ai crée autant de fichier bash que de chaîne que souhaite appeler via Google Home. Pour les chaînes de 0 à 9, pas de soucis et pour les chaînes de 10 à plus, je lance le script bash suivant :
Ensuite j'ai un capteur virtuel masqué qui porte le nom de la chaîne ($tmc). Et enfin, un script_device_tmc.lua qui apelle soit le bash si la chaîne est à 2 chiffre, soit l'url http de la freebox si la chaine est à 1 chiffre.
Rest amintenant à appeler tout çà depuis IFTTT, et là autant pour les chaine à 1 chiffre c'est bon mais pour les autres... je sèche. Existe t-il une type de capteur virtuel qui accepterait une variable qui serait un nom de chaine et non pas un numéro, il suffirait ensuite de récupérer cette variable et de la placer dans un script_device où le nom du device seraitla variable et idem pour le script à lancer.
Tout autre idée est la bienvenue
J'ai crée autant de fichier bash que de chaîne que souhaite appeler via Google Home. Pour les chaînes de 0 à 9, pas de soucis et pour les chaînes de 10 à plus, je lance le script bash suivant :
Code : Tout sélectionner
#!/bin/bash
curl 'http://hd1.freebox.fr/pub/remote_control?code=XXXXXXXX&key=1&long=false'
curl 'http://hd1.freebox.fr/pub/remote_control?code=XXXXXXXX&key=0&long=false'
exit
Rest amintenant à appeler tout çà depuis IFTTT, et là autant pour les chaine à 1 chiffre c'est bon mais pour les autres... je sèche. Existe t-il une type de capteur virtuel qui accepterait une variable qui serait un nom de chaine et non pas un numéro, il suffirait ensuite de récupérer cette variable et de la placer dans un script_device où le nom du device seraitla variable et idem pour le script à lancer.
Tout autre idée est la bienvenue
Re: Domoticz, Freebox & IFTTT
Pour faire plus simple tu peux passer par ton téléphone avec Tasker + autovoice par exemple
Moi je fais ça et les chaîne à deux chiffre et ça fonctionne très bien juste le son qui est plus galère.
Sî besoin je peux fournir plus d'infos sur tasker amis je pense que tu vas trouver tout seul
Moi je fais ça et les chaîne à deux chiffre et ça fonctionne très bien juste le son qui est plus galère.
Sî besoin je peux fournir plus d'infos sur tasker amis je pense que tu vas trouver tout seul
Re: Domoticz, Freebox & IFTTT
Salut,
J'ai fait un tuto hier en ce sens, tu pourra controler ta freebox avec google home en passant par ifttt.
Pour le moment je n'ai mis que les chaines, je vais ajouter le reste d'ici ce weekend.
voici le liens du tuto : https://easydomoticz.com/forum/viewtopi ... =17&t=5225
J'ai fait un tuto hier en ce sens, tu pourra controler ta freebox avec google home en passant par ifttt.
Pour le moment je n'ai mis que les chaines, je vais ajouter le reste d'ici ce weekend.
voici le liens du tuto : https://easydomoticz.com/forum/viewtopi ... =17&t=5225
-
58djarviss
- Messages : 16
- Inscription : 28 déc. 2016, 18:59