j-psy Posté(e) le 5 novembre 2017 Signaler Posté(e) le 5 novembre 2017 Euh alors la je ne sais pas trop comment ça peut se passer avec ce genre de configuration (routeur + passerelle).. De mon côté j'ai une freebox crystal, j'ai défini un port au pif (2000 je crois) que j'ai redirigé vers l'adresse ip locale de ma HC2 sur le port 80. J'attaque donc ma freebox comme ça avec webhook : @27.158.xxx.xxx:2000 Ca a marché pour moi, j'espère que ça va aller pour toi..
Diuck Posté(e) le 5 novembre 2017 Signaler Posté(e) le 5 novembre 2017 (modifié) Ok Merci j-psy ci joint ce que j'ai mis dans webhook https://<login>:<pass>@adresse NOIP:443/api/scenes/idscene/action/start merci de me corriger si besoin Modifié le 5 novembre 2017 par Diuck
j-psy Posté(e) le 5 novembre 2017 Signaler Posté(e) le 5 novembre 2017 Je pense que ça peut le faire si tout est bien redirigé correctement, NOIP est ce qui m'avais été suggéré avant que je ne sache que chez free on est en ip fixe...
Diuck Posté(e) le 5 novembre 2017 Signaler Posté(e) le 5 novembre 2017 Bon Ok toujours Rien je Galère Je laisse pour aujourd’hui Merci pour ton Aide j-psy
j-psy Posté(e) le 5 novembre 2017 Signaler Posté(e) le 5 novembre 2017 Allez on y croit, tu verras c'est trop cool quand t'as enfin réussi à le faire marcher.. Tu as raison, demain boulot, faut se détendre maintenant.. Bonne soirée et bon courage pour la suite !
Steven Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 Le 05/11/2017 à 02:56, Diuck a dit : @ Steven Pourrais tu me dire ce qui ne colle pas dans ma configuration car je Galère pas mal ce qui m'oblige à te demander conseil Google Home répond bien mais ne lance pas la commande D'avance merci ! Je vois 2 soucis : Le premier "allumer la lumière" qui fait une turnOff --- étrange non ? :-) Le deuxième, si tu fais un appel simple au turnOff ou turnOn, ce n'est pas un POST mais un GET que tu dois faire. (Tu peux supprimer le contenu de Body) Le POST est utilisé pour envoyé des arguments à un sénario. Ce que j'utilise pour ma fameuse scène "Jarvis" car c'est une seule scène qui pilote tout les appels IFTTT. Voilà, courage. Une fois que tu auras un applet IFTTT qui fonctionne, tu seras tout bon.
Steven Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 Allez, petite mise à jour du script Jarvis. Ma fille de 7 ans voulait pouvoir dire "Jarvis allume la lumière du salon ET éteints la lumière de la cuisine" J'ai donc ajouté un petit morceau de code qui découpe les instructions en me basant sur le ET. Je souhaitais augmenter le chauffage de 2 degrés sans avoir à dire deux fois "Jarvis augmente le chauffage" J'ai donc créer un deuxième applet qui reçoit la même chose que le premier + un numéro. Je peux maintenant dire "Jarvis augmente le chauffage 2 fois" Voici donc le 2ème applets $ : Et le scénario modifié --[[ %% properties %% events %% globals --]] -- ========================================================== -- -- Script pour IFTT (Google Assistant + Webhooks -- input : "javis $" -- webhooks : https://<login>:<password>@<url>/api/scenes/<id scenario>/action/start -- method : post -- content : application/json -- body : {"args":[{"action":" {{TextField}}"}]} -- ========================================================== -- -- Ce script va comparer le texte énoncé à l'assistant -- avec les phrases contenues dans les champs liliCommand -- Il va d'abord chercher dans les modules puis les scénarios -- et finir par les modules virtuels -- Pour les modules virtuels il suffit d'énoncer le nom -- du VD suivis du libellé du bouton, ex : "Chauffage Manuel" -- ========================================================== -- -- Les synonymes permettent de remplacer des énoncés à la volée. -- Si par exemple vour avez une phrase lili "allume le chauffage" -- et que vous souhaitez aussi pouvoir dire "active le chauffage" -- il suffit d'ajouter : -- ["active le chauffage"] = "allume le chauffage", -- Vous pouvez aussi lier des phrases avec de boutons de VD -- Exemple ["ouvre le portail"] = "Portail action", -- va donc cliquer sur le bouton "action" du VD "Portail". -- Il est aussi possible de créer ses propres function -- Exemple : -- ["capture camera salon"] = function() -- fibaro:call(<id camera>, "sendPhotoToUser", <id user>) -- end, local mot_cle_separateur = "et" local synonymes = { ["ouvre le portail"] = "Portail action", ["diminue le chauffage"] = "Chauffage -1", ["augmente le chauffage"] = "Chauffage +1", ["éteins le jardin"] = "éteins la terrasse", ["allume le jardin"] = "allume la terrasse", ["chauffage automatique"] = "chauffage automatic", ["ouvre les volets"] = "brise-soleil ░ Ouvrir", ["ferme les volets"] = "brise-soleil Fermer ▓", ["stop les volets"] = "brise-soleil stop", ["allume la télé"] = "allume la télévision", ["éteins la télé"] = "éteins la télévision", ["voir le garage"] = "imperihome 2", ["voir l'entrée"] = "imperihome 3", ["dodo"] = "bonne nuit", ["mais tf 1"] = "Freebox TV 1", ["mais france 2"] = "Freebox TV 2", ["mais france 3"] = "Freebox TV 3", ["mais m 6"] = "Freebox TV 6", ["capture caméra salon"] = function() fibaro:call(158, "sendPhotoToUser", 2) end, ["capture caméra terrasse"] = function() fibaro:call(203, "sendPhotoToUser", 2) end, ["capture caméra entrée"] = function() fibaro:call(156, "sendPhotoToUser", 2)end, ["quelle est la température intérieure"] = function() fibaro:call(163, "pressButton", 2) end, ["quelle est la température extérieure"] = function() fibaro:call(163, "pressButton", 4) end, } -- Remplacement des caractères spéciaux -- function replaceChar(s) local sprime = s:gsub("à ", "à"):gsub("é", "é"):gsub("è", "è"):gsub("î", "î"):gsub("ô", "ô"):gsub("û", "û"):gsub("ù", "ù"):gsub("ê", "ê"):gsub("â","â"):gsub(" ' ", "'") return sprime end function trim(s) return (s:gsub("^%s*(.-)%s*$", "%1")) end -- Compare 2 chaines de caractères -- function isEqual(s1, s2) s1 = string.lower(s1) s2 = string.lower(s2) return s1 == s2 or replaceChar(s1) == replaceChar(s2) end -- Recherche un module correspondant -- -- et effectue l action nécessaire -- function doDevice(device, liliCommand) if (device.properties.liliOnCommand) then if (isEqual(device.properties.liliOnCommand, liliCommand)) then fibaro:call(device.id, "turnOn") return true, device.name elseif (isEqual(device.properties.liliOffCommand, liliCommand)) then fibaro:call(device.id, "turnOff") return true, device.name end end return false end -- Recherche une scène correspondante -- -- et effectue l action nécessaire -- function doScene(scene, liliCommand) if (isEqual(scene.liliStartCommand, liliCommand)) then fibaro:startScene(scene.id) return true, scene.name elseif (isEqual(scene.liliStopCommand, liliCommand)) then fibaro:killScenes(scene.id) return true, scene.name end return false end -- Recherche un module correspondant -- -- et effectue l action nécessaire -- function doVirtual(device, liliCommand) local fullname = device.name .. " " for k, v in ipairs(device.properties.rows) do for j, w in ipairs(v.elements) do if (w.caption) then if (isEqual(fullname .. w.caption, liliCommand)) then fibaro:call(device.id, "pressButton", w.id) return true, fullname .. w.caption end end end end return false end function split(text) local sep = " " .. mot_cle_separateur .. " " local tx = text local t = {} while (tx:find(sep)) do local pos = tx:find(sep) table.insert(t, tx:sub(1, pos)) tx = tx:sub(pos+sep:len(), tx:len()) end if (tx:len() > 0) then table.insert(t, tx) end return t end -- Lecture des paramètres de cette scène -- local params = fibaro:args() fibaro:debug(json.encode(params)) local action = nil local number = nil if (params) then for k, v in ipairs(params) do if (v.action) then action = v.action end if (v.nombre) then number = tonumber(v.nombre) end end end -- Recherche une action a effectuer -- if (action) then local actions = split(string.lower(replaceChar(trim(action)))) local occurence = number or 1 for j = 1, occurence do for i = 1, #actions do liliCommand = trim(actions[i]) fibaro:debug("Utilisé : " .. liliCommand) if (synonymes[liliCommand]) then liliCommand = synonymes[liliCommand] if (type(liliCommand) == "function") then liliCommand() return end end local name = "< none >" local done = false local devices = api.get("/devices?&enabled=true") for i = 1, #devices do thisDone, n = doDevice(devices[i], liliCommand) if (thisDone) then name = n done = true end end if (not done) then local scenes = api.get("/scenes") for i = 1, #scenes do thisDone, n = doScene(scenes[i], liliCommand) if (thisDone) then name = n done = true end end end if (not done) then local devices = api.get("/devices?type=virtual_device&enabled=true") for i = 1, #devices do thisDone, n = doVirtual(devices[i], liliCommand) if (thisDone) then name = n done = true end end end if (done) then fibaro:debug("Device reconnue : " .. name) end end end end 1
Peter Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 Merci @Steven pour ton partage Ton premier applet fonctionne nickel chez moi Je testerai se soire à la débauche Encore merci à toi et vivement que fibaro intègre le home
j-psy Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 Cool ! Super @Steven merci pour cette belle mise à jour ! J'adore l'idée du ET, et le remplacement des caractères spéciaux est génial aussi ! (j'ai un peu galeré avec le "à") Fibaro commence à avoir une sacrée longueur de retard si ils se décidaient à intégrer le GH.. Encore une fois, BRAVO !
Diuck Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 Il y a 3 heures, Steven a dit : Je vois 2 soucis : Le premier "allumer la lumière" qui fait une turnOff --- étrange non ? :-) Le deuxième, si tu fais un appel simple au turnOff ou turnOn, ce n'est pas un POST mais un GET que tu dois faire. (Tu peux supprimer le contenu de Body) Le POST est utilisé pour envoyé des arguments à un sénario. Ce que j'utilise pour ma fameuse scène "Jarvis" car c'est une seule scène qui pilote tout les appels IFTTT. Voilà, courage. Une fois que tu auras un applet IFTTT qui fonctionne, tu seras tout bon. Salut Steven Merci pour ta réponse mais en effet le turnOn et le turnOff sont inversé c’était pour les tests mais j'ai fini par tomber sur ta scène à ajouter à la HC avec "Jarvis" qui est vraiment super !! malheureusement impossible de faire fonctionner le System. La GH répond bien à la commande via l'applet IFTTT mais ne transmet pas l'ordre je pense que mon problème viens de la redirection des ports comme j'expliqué dans un message ci dessous dédié à j-psy. Depuis j'ai créer une IP Fixe avec no-ip dans le doute mais toujours rien. Comme j'expliqué ma box orange me sert juste de passerelle internet et mes adresses viennent de mon router. quand je fais la recherche de mon adresse extérieur sur http://www.mon-ip.com/ il me donne l'adresse de ma box Orange faut il lui indiquer le chemin pour aller sur mon router ? Comme tu le sais je ne suis pas un As dans le domaine mais j'essaye de me débrouiller au mieux. Si tu peux m'aider à avance je serais ravis D'avance merci Steven Bon Ok je viens de tout mettre à plat comme expliqué plus haut malheureusement je bloc comme toi avec les adresses je suis chez orange en adresse IP fixe je viens de contrôler sur http://www.mon-ip.com/ La commande à GH répond bien mais rien ne se passe j'ai modifié la scène en ajoutant la commande ["Lumière cuisine "] = "Allume la cuisine", qui est également dans la commande Lili du module concerné. Configuré dans WEBHOOKS comme ci dessous ========================================================== -- -- Script pour IFTT (Google Assistant + Webhooks) -- input : "javis $" -- webhooks : https://<login>:<password>@<adresse>:443/api/scenes/40/action/start -- method : post -- content : application/json -- body : {"args":[{"action":" {{TextField}}"}]} -- ========================================================== -- Je ne cache pas que configurer mon router me pose problème mon FAI c'est orange et ma box me sert de passerelle internet qui est reliée à mon router Linksys EA6300 qui dois être configurer pour la redirection des ports mais la gros problème un peu d'aide serait la bien venue D'avance merci
Steven Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 J'y connais pas grand chose en routeur ... mais j'ai une solution : @Lazer, help @Lazer, help please
Lazer Posté(e) le 6 novembre 2017 Auteur Signaler Posté(e) le 6 novembre 2017 Excellent ton nouvel avatar Steven Alors j'ai une expérience de 1h avec la Livebox d'Orange (le temps de chercher le tuto pour la virer), et je n'ai jamais utilisé de routeur Linksys. Mais de façon générale, mettre 2 routeurs l'un derrière l'autre, à moins d'être un pro de réseau qui sait ce qu'il fait, c'est se créer des ennuis... ce que tu ne peux nier Pour te donner une piste, ce qu'il faudrait, c'est que tu crées 2 redirections/ 1/ La Livebox redirige un port externe vers l'IP du Linksys. 2/ Le Linksys, à son tour, redirige ce port externe vers l'équipement interne (ton HC2) En résumé, une double redirection.
Steven Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 il y a une heure, Lazer a dit : Excellent ton nouvel avatar Steven Je me suis dis que Fibaro ou Stranger Things c'était un peu du pareil au même. Tu sais jamais dans quel monde tu te trouve mais tu fais tout pour t'en sortir. 3
JossAlf Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 (modifié) Salut tout le monde ! Ca fait une éternité que je n'étais pas passé ! Une vie bien chargée cette dernière année ... Ha ! Ca me fait plaisir de vous retrouver Super travail Steven comme d'habitude ! J'ai testé ta nouvelle version avec le "et" mais ca ne fonctionne pas tout à fait pour moi. Peut-être que mes phrases lili sont trop longues : (J'ai remplacé "Jarvis" par "Peux-tu" ou "Pourrais-tu" car ma femme veux que nous soyons polis avec GoogleHome ) Donc si je dis "ok google Peux-tu allumer la lumière de la cuisine" ou "ok google Peux-tu éteindre la lumière de l'escalier du haut" -> ca fonctionne très bien. Mais dis je dis "ok google Peux-tu allumer la lumière de la cuisine et éteindre la lumière de l'escalier du haut" et il me répond "Excusez-moi je n'ai pas compris" Si je dis "ok google Peux-tu allumer la lumière de la cuisine et éteindre la" -> il allume bien la cuisine et cherche le device "éteindre la " qui n'existe pas ... Mais si j'ajoute un mot de plus après "éteindre la ..." et il me répond "Excusez-moi je ne comprends pas". Il n'y aurait pas un problème de taille du tableau ou un truc dans le genre ? Modifié le 6 novembre 2017 par JossAlf
Diuck Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 Il y a 2 heures, Lazer a dit : Excellent ton nouvel avatar Steven Alors j'ai une expérience de 1h avec la Livebox d'Orange (le temps de chercher le tuto pour la virer), et je n'ai jamais utilisé de routeur Linksys. Mais de façon générale, mettre 2 routeurs l'un derrière l'autre, à moins d'être un pro de réseau qui sait ce qu'il fait, c'est se créer des ennuis... ce que tu ne peux nier Pour te donner une piste, ce qu'il faudrait, c'est que tu crées 2 redirections/ 1/ La Livebox redirige un port externe vers l'IP du Linksys. 2/ Le Linksys, à son tour, redirige ce port externe vers l'équipement interne (ton HC2) En résumé, une double redirection. Merci de votre aide comme tu dis il est vrais que cela génères des ennuis, mais la raison de cette installation qui semble compliquée m’évite d'avoir à reconfigurer ma box lorsque je change de FAI. Donc il me reste à faire appel à un pro pour me configurer tous ca. Encore Merci
Steven Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 @JossAlf Mon dieux, un revenant De mon côté, il n'y a pas de limitation, mais j'ai aussi constaté ce problème sur des phrase longues. Je pense que cela vient du Google Home. Personnellement, j'ai mis des phrases plus courtes car je n'ai pas trouvé d'autre solution "Ok Google Jarvis Allume la télé et allume l'entrée" fonctionne très bien. Par contre moi aussi si je rajoute quelque chose, j'ai une douce voix qui me dit qu'elle ne sais pas comment m'aider.
JossAlf Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 Oui me voilà de retour après Halloween ...
JossAlf Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 Et tu aurais une astuce pour allumer ou éteindre toutes les lumières du salon ou de la cuisine ? On aurait une phrase générique du style « éteindre les lumières de la cuisine » qui se baserait sur le nom de la pièce et sur le type lampe des modules.
Diuck Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 @Steven Bon j'essaye de configurer mon router et il y a du mieux maintenant je reçois les notification push de IFTT mais la commande ne fonctionne pas Une Idée ?
JossAlf Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 (modifié) Diuck (Salut vielle branche ) Regarde du côté de la syntaxe. J'avais un problème avec les apostrophes en fonction de ce que j'utilisais pour éditer le code j'avais des ' ‘ ’ Regarde au niveau du debug pour voir si la syntaxe dans "Lili commande allumer:" est vraiment identique à ce qui google home a envoyé ! Modifié le 6 novembre 2017 par JossAlf
Diuck Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 Salut JossAlf comment vas tu ? Merci pour ta réponse le Debug oui à quel endroit ?
JossAlf Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 Dans la scene (le scénario) que tu as créée (dans l'onglet avancé).
Diuck Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 Ok super JossAlf rien de le debug comme j'expliqué plus haut j'essaye de configurer mon router mais pas simple j'ai ouvert la porte à ma box orange c'est pourquoi je reçois le Notification de IFTTT mais maintenant je pense qu'il faut que je configure mon router linksys
Nico Posté(e) le 6 novembre 2017 Signaler Posté(e) le 6 novembre 2017 Vivement demain que je teste tout ça Mais Diuck, pour tester, commencer avec un accès distant simple à ta box par son IP publique, ça tu y arrives ?
Messages recommandés