Closed nusmiaf closed 6 years ago
peut on faire l'inverse ? a savoir qu'une action de l'IPX répercute une notification sur Google home ( une simple phrase donc )
Je dirais que oui. Si tu utilises assistant-plugins
il te faudra installer le plugin notifier
.
Ensuite :
Je rajoute : notifier_"Ok ça marche du tonnerre"
le problème c'est que je ne maitrise pas les API ,
je ne sais pas comment crée un message push via mon IPX sur chaque entrées / sorties j'ai la possibilités d'envoyer un mail ou un push a chaque changement d’état .
mais j'ai aucune idée de comment faire , j'imagine que dans mon cas , je doit envoyer un push a Webhook's ou directement a pushBullet
Après une rapide recherche sur le net (ici par exemple) je pense que dans Server tu dois mettre maker.ifttt.com et dans Port tu dois mettre 443. Click la case Enable et Save.
Pour le Push1 tu mets le path de l'url, donc par exemple /trigger/NomDeTonWebHook/with/key/TaCléQuiCommenceParDpHXXXX
alors j'ai essayer de crée un applet pour test , donc un IF ,Webhook que j' appel " relais 30" , ça ok
en suite une action , un pusbullet en note comme tu le décrit plus haut , mais quel doit etre la syntaxe du message ?
j'ai essayer title = " relais 30 " et message = " relais 30 ON "
ça me repond => Unrecognized Ingredient in action field: {{relais}} Unrecognized Ingredient in action field: {{relais}}
et la clé qui commence pas PDHXXXX j'imagine que c'est quand l' applet est crée..?
Il suffit de relire ce que j'ai noté :
La note Pushbullet doit avoir "Assistant" dans Title et "notifier_Le phrase qui sera lue par Google Home" pour le Message
Là dans ton Title tu as mis {{OccuredAt}}
et dans Message tu as mis un truc qui n'a aucun rapport...
Ensuite, évite les espaces dans le nom de ton WebHook. Donc appelle le "relai30".
Quant à la clé elle se trouve là : https://ifttt.com/maker_webhooks/settings
Donc le "push1" sera : /trigger/relai30/with/key/TaClé
désolé la copie d'écran était avant que je renseigne...
alors j'en suis là :
mais y a aucun effet au changement d'état du relais
mais y a sans doute des paramètre a rentré dans mon IPX car sur la page de ton lien =>http://gurau-audibert.hd.free.fr/josdblog/2014/05/ipx800-fonction-push/
il paramètre les deux page : le push " centralisé " et " l'individuel "
dans Path par contre je reprend pas " /trigger/NomDeTonWebHook/with/key/TaCléQuiCommenceParDpHXXXX
Pour IPX j'en sais rien. Je n'utilise pas donc tu dois te démerder....
Pour la note Pushbullet, ce n'est toujours pas correct.... dans la partie Message tu dois mettre notifier_
suivi de ton message. Si tu ne mets pas notifier_
au début du message, le plugin notifier ne sera pas déclenché.
ok j'ai corriger le " notifier_XXXX
merci pour ton aide précieuse je vais creuser les paramètre global push de ma machine
j'ai trouver ça , mais j'ai beaucoup de mal avec les syntaxe , je comprend pas :/ => 2 – Comment déclencher un trigger IFTTT avec l’IPX.
Le principe est de faire du PUSH sur le Maker Channel de IFTTT.
Première étape, se connecter au Channel. Ensuite en allant sur https://ifttt.com/maker18 vous obtenez toutes les informations nécessaires pour calculer l’URL a programmer sur l’IPX. En particulier allez sur ‘How to Trigger Events’ Où vous verrez le guide suivant :
[quote]To trigger an Event Make a POST or GET web request to: https://maker.ifttt.com/trigger/1{event}/with/key/<> With an optional JSON body of: { “value1” : “”, “value2” : “”, “value3” : “” } The data is completely optional, and you can also pass value1, value2, and value3 as query parameters or form variables. This content will be passed on to the Action in your Recipe. [/quote]
Traduit en PUSH IPX cela donne
[ul]Serveur : maker.ifttt.com1 PORT : 443 URL ON : /trigger/{event}/with/key/<> ?value1=ON URL ON : /trigger/{event}/with/key/<> ?value1=OFF METHODE : GET SSL : ON. [/ul] J’ai fait l’essai avec port 80 et SSL Off, cela marche aussi. Nous reviendrons sur les URL plus bas.
Ne faites pas la même erreur de débutant que moi. Pensez au ‘/’ en début de l’URL et utilisez le paramètre valueN avec un V minuscule.
j'ai ces liens si tu veux jeter un œil
=> https://forum.gce-electronics.com/t/interface-ipx800-et-ifttt/2681/3
=> http://www.gce-electronics.com/attachment.php?id_attachment=47
=> http://gce-electronics.com/fr/content/gce-electronics.com/fr/index.php?controller=attachment&id_attachment=140
j'ai uniquement modifier le port 443 par le 80 et là ça passe ! le push part bien ,
j'ai une notification sur l'écran du PC mais rien de l'assistant Google home
donc là c'est l'applet a qui il manque un addon pour déclencher la lecture du message ?
Tu as quoi dans la console du plugin ? Ça doit marquer :
[assistant] Commande reçue: [ 'notifier_relais 30 on' ]
[assistant] Appelle du plugin 'notifier'
j'ai bien ce que tu dit , mais Google home n'a pas lu le message j'ai uniquement le popup sur mon écran pc
1) As-tu bien configuré le plugin notifier en indiquant la bonne adresse IP pour ton Google Home dans le fichier configuration.json
?
2) As-tu bien redémarré l'assistant-plugins après avoir modifié le fichier de configuration ?
3) Ton Google Home est-il bien sur le même réseau que ton PC ?
le " configuration.json " c'est celui a la racine du répertoire assistant-plugins
il y a celui dans le repertoir assistant-plugins\node_modules\assistant-notifier\ ,, celui là on y touche pas ?
IP : freebox 192.168.0.2 Pc 192.168.0.11 ipx 192.168.0.31 googlehome 192.168.0.32
oui j'ai redémarrer , j'ai testé ( au cas ou) les 2 cas en renseignant l'IP et sans dans
assistant-plugins\node_modules\assistant-notifier\configuration.json
pareil donc le je renseigne ou pas normalement celui là ?
j'ai tester avec l'ancienne version de l’assistant-plugin ..
ça donne ça :
ça te donne peut etre une info sur ce qui ne va pas ?
Donc oui c'est bien le configuration.json de la racine qu'il faut modifier.
Concernant ton erreur... je sèche :o) Peut-être un problème de firewall ou d'antivirus ?
et bien il est bien modifier ( sauf erreur de ma part ) { "main": { "pushbullet_token": "o._R" }, "plugins": { "freebox": { "code_telecommande": "1_8", "search_path": "/Disque dur/Vidéos/", "use_Mon_Bouquet": false, "box_to_control": "hd1", "apptoken": "C____R" }, "ifttt": { "key": "c_____0" }, "notifier": { "host": "192.168.0.32" } } }
celui du sous répertoire " assistant-plugins\node_modules\assistant-notifier... je l'ai remis tel que d'origine : { "host":"" }
je n'ai pas d’antivirus et le firewall laisse sortir/entré les requêtes puisque les applets fonctionnent freebox et autres allumage de luminaire via ma domotique.. même l'applet test que tu fait faire en test " répète la phrase " fonctionne de la même façon j'ai bien le retour de pushbullet , avec le popup sur le pc et l'action prise en compte sur la fenêtre CMD
c'est donc forcement une erreur quelque part dans le plugin ( de ma part )
Il faudrait déboguer de ton côté pour situer l'erreur... Mais ce n'est pas une chose que je peux t'expliquer :-/
En tout cas, je ne sais pas ce qui peut merder...
As-tu un autre PC ? Pour tester et voir déjà si ça vient de ton PC ?
peut etre un coup de teamviewer ?
j'ai un autre pc mais mini portable
Non, désolé, j'ai beaucoup d'autres choses à faire aujourd'hui...
Essaie sur un autre ordinateur si tu peux.
alors pareil que sur le PC fixe , les requêtes sortes et son prises en compte
les popup de pushbullet apparaissent sur le PC fixe ( rien sur le portable ) et googlehome ne dit toujours rien
par contre je viens de voit en suivant la procédure d'installation que le Update.bat est bien sur l'intallation du potable :
alors que je ne lai jamais eu sur le pc fixe :
Le update.bat
, ouais je l'ai rajouté tout à l'heure, pour pouvoir faire des mises à jour facilement :-)
Donc ça nous apprend que le problème n'est pas le PC. Donc vraiment là, je ne sais pas... désolé...
Pfff !! ( Lol )moi qui pensait que c'était résolu ! juste que j'avais mal installer du fait de pas avoir fait " update " ... :-/ dans tous les cas la j'ai tout viré , désinstallé node et de refait tout propre
bon voilà j’ai tout ré-installé , node , assistant , avec les plugin IFTTT, Notifier, Wait, Freebox le token pushbulet ok le code télécommande free ok la clé Ifttt ok l'IP de googlehome ok update Node ok l’appairage avec la freebox ok
resultat identique , mais pas un mot....
et idem pour la commande " répète la phrase "
Tu arrives à pinguer ta Google Home depuis ton PC ?
oui le ping j'ai tester dès que jai attribuer cette ip a GH en fixe sur sa MAC adresse ca ping sans probleme
Je suis à court d'idées, désolé...
ba si t'a un moment un autre jour , tu peut prendre la main sur mon pc ... voir de toi même si tu veux
alors y a un truc improbable avec un autre applet que je viens de crée par acquis pour être sûr ...
le push part bien quand le relais 31 cette fois change d'état .. mais RIEN ne se produit dans la fenêtre CMD
alors qu'il y a bien la notification PopUp sur le PC !? "Chelou" si je peux me permettre :o
1- j'ai fait " repete la phrase ...caca ..." => ça apparait
2- relais 30 actionné => ça apparait
3- relais 31 actionné => rien nada
4- relais 30 ré actionné => ça apparait
Ta notification pour relais 31 apparait avec le titre "Google Assistant" au lieu de "Assistant". Du coup il n'est pas reconnu :
Quoi qu'il en soit, le problème n'est pas là. C'est le plugin notifier qui ne fonctionne pas chez toi.
exact ! c'est dans ma tête... j'ai voulu écrire un truc et j'en ai mis un autre google assistant / assistant comme tu dite de toutes façon ça fait pas parler google home donc , ça fonctionne pas aller je te remercie encore pour ton aide ( surtout que je suis un boulet :p ) et comme dit plus haut ... si tu a un moment pour voir ca de toi même hésite pas Merci Ps: tu a peut être en stock un applet avec Notifier fonctionnel pour me monter un exemple ?
Tu as tout fait correctement côté applet. Le problème vient du plugin qui n'arrive pas à envoyer à Google Home.
Si tu veux tester des choses, tu peux ouvrir le fichier notifier.js
qui est dans le dossier ./node_modules/assistant-notifier/
Puis tu rajoutes des console.log
. Par exemple dans la fonction AssistantNotifier.prototype.action
:
AssistantNotifier.prototype.action = function(text) {
var _this=this;
return new Promise(function(prom_res) {
// on génère le texte
console.log("on entre dans action");
GoogleTTS(text, "fr-FR", 1)
.then(function(url) {
console.log("Google TTS correctement effectué. URL =>", url);
var client = new Client();
client.connect(_this.host, function() {
console.log("Connexion au client");
client.launch(DefaultMediaReceiver, function(err, player) {
console.log("Connexion suite");
var media = {
contentId: url,
contentType: 'audio/mp3',
streamType: 'BUFFERED'
};
console.log("lecture du MP3 produit par Google TTS");
player.load(media, {
autoplay: true
}, function(err, status) {
console.log("tout s'est bien passé");
player.on('status', function(status) {
if (status.playerState == "IDLE") {
player.stop();
client.close();
prom_res();
}
});
});
})
})
})
})
};
Puis tu relances le programme et tu regardes les informations qui s'affichent.
bonjour ,
j'ai modifier le notifier.js
comme suit:
var Client = require('castv2-client').Client;
var DefaultMediaReceiver = require('castv2-client').DefaultMediaReceiver;
var GoogleTTS = require('google-tts-api');
var AssistantNotifier = function(configuration) {
this.host = configuration.host;
}
AssistantNotifier.prototype.init = function(plugins) {
this.plugins = plugins;
if (!this.host) return Promise.reject("[assistant-notifier] Erreur : vous devez configurer ce plugin !");
return Promise.resolve(this);
};
/**
* Fonction appelée par le système central
*
* @param {String} text Le texte à lire (par exemple: "bonjour et bienvenue")
*/
AssistantNotifier.prototype.action = function(text) {
var _this=this;
return new Promise(function(prom_res) {
// on génère le texte
console.log("on entre dans action");
GoogleTTS(text, "fr-FR", 1)
.then(function(url) {
console.log("Google TTS correctement effectué. URL =>", url);
var client = new Client();
client.connect(_this.host, function() {
console.log("Connexion au client");
client.launch(DefaultMediaReceiver, function(err, player) {
console.log("Connexion suite");
var media = {
contentId: url,
contentType: 'audio/mp3',
streamType: 'BUFFERED'
};
console.log("lecture du MP3 produit par Google TTS");
player.load(media, {
autoplay: true
}, function(err, status) {
console.log("tout s'est bien passé");
player.on('status', function(status) {
if (status.playerState == "IDLE") {
player.stop();
client.close();
prom_res();
}
});
});
})
})
})
})
};
/**
* Initialisation du plugin
*
* @param {Object} configuration La configuration
* @param {Object} plugins Un objet qui contient tous les plugins chargés
* @return {Promise} resolve(this)
*/
exports.init=function(configuration, plugins) {
return new AssistantNotifier(configuration).init(plugins)
.then(function(resource) {
console.log("[assistant-notifier] Plugin chargé et prêt.");
return resource;
})
}
résultat en image , pas un mot de GH
Laisse tomber ! ça fonctionne depuis le début ...... !!!
le volume du sond de la voix de GoogleHome est indépendant du volume du sond pour la lecture du MP3 j'avais le sond au minimum , ( les 4 leds de GH éteintes ) je ne m'en était pas rendu compte car quand je pose des questions/requêtes a GH le volume de la voix en réponse est de niveau suffisant , mais le lecture du reste apparemment non.. avec le sond augmenté ( au moins 1 led allumée sur GH ) j' entend enfin le fameux " relais 30 on " 👍 !!!!!!!!!!!! 💃
Arf...
Merci , Aymkdn Merci pour ta patience ( je suis plutôt nul ..les codes et moi... :/ j'ai bcoup de mal a comprendre ) Merci pour ton aide et pour ton travail avec ton "Assistant"
et désolé de t'avoir fait chercher des problèmes là ou il n'y en avait pas .... !
bonjour, une question , ets il possible de demander l'etat d'une sortie a Google.H ? avec ifttt ou autre ?
merci
Tu veux dire quoi par "l'état d'une sortie"?
Pardon , je veux dire ... Savoir si une sortie est a 1 ou a 0 Toujours sur mes relais de mon ipx 800v3
Aucune idée
Bonjour Aymeric , une question au hasard , est il possible de récupéré les " commandes envoyées par une appli de mobile " a partir du fichier .APK de cette même appli ? explication : j'ai une alarme que je peux armé /désarmé avec un mode partiel ou total avec retour d'état sur l'appli et évidement j'aimerai bien avoir les commandes correspondante pour mixé tout ça avec la domotique et IFTTT & Google Home
merci
C'est très difficile, voire impossible selon les cas. Cherche sur Google on trouve quelques informations là dessus...
ok merci bcoup
Bonjour , Aymeric est il possible avec Webhooks d'envoyer 2 url distinctes à un interval donner ? ex : http://user:mdp@mon_ip/Set_relais1=1&set_relais2=1 ( temps 1 s ou plus ) et http://user:mdp@mon_ip/Set_relais1=1
explication , une commande de volet individuelle demande un appuis double haut+bas suivi de haut ( ou bas ) pour commander une ouverture ou fermeture générale et non individuelle ..
merci pour ta reponse
Si ta question est de savoir si IFTTT permet de faire ça nativement, la réponse est non.
Il faudra utiliser ces deux plugins pour y arriver : https://aymkdn.github.io/assistant-plugins/?plugin=wait https://aymkdn.github.io/assistant-plugins/?plugin=ifttt
bonjour , ça n'a pas grand chose a voir avec l'assistant freebox .. mais je te pose la question tout de même Aymeric , connais tu le serveur domotique IPX800V3 ? (de chez GCE-Electronic's) ce la fonctionne très bien avec IFTTT = une demande " simple phrase " et un trigger Webhooks pour une action physique sur l' IPX ( comme fermé ou ouvrir un relais .. ) ma question est: peut on faire l'inverse ? a savoir qu'une action de l'IPX répercute une notification sur Google home ( une simple phrase donc )