actions_on_google_et_domotique
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
actions_on_google_et_domotique [2018/03/07 23:04] – [Dialogflow] 88.164.131.165 | actions_on_google_et_domotique [2018/03/18 09:48] (Version actuelle) – [Etapes] 88.164.131.165 | ||
---|---|---|---|
Ligne 21: | Ligne 21: | ||
* Dans "What do you want the Assistant to say in response?", | * Dans "What do you want the Assistant to say in response?", | ||
* Dans Language sectionner French | * Dans Language sectionner French | ||
+ | |||
+ | {{:: | ||
+ | |||
* Cliquer sur +that pour créer l' | * Cliquer sur +that pour créer l' | ||
* Dans le choix du service sélectionner Webhook | * Dans le choix du service sélectionner Webhook | ||
* Dans URL, mettez l'URL de la page sur votre serveur qui sera en charge d' | * Dans URL, mettez l'URL de la page sur votre serveur qui sera en charge d' | ||
* (ex : http: | * (ex : http: | ||
+ | |||
+ | {{:: | ||
==== Coté serveur === | ==== Coté serveur === | ||
Ligne 108: | Ligne 113: | ||
Dans intents, vous trouverez deux intent par defaut " | Dans intents, vous trouverez deux intent par defaut " | ||
+ | Maintenant que notre commande est paramétrée, | ||
+ | Pour cela, il faut aller dans " | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | Si votre serveur est héberge chez vous et que vous ne souhaitez pas payer pour avoir un certificat SSL, vous pouvez utiliser letsencrypt qui est gratuit: https:// | ||
+ | Le certificat n'est valable que 3 mois. Il faudra le renouveler tous les 3 mois. Il existe des systèmes de renouvellement automatique. (Faites recherche sur Google avec Letsencryt ACME). Par ma part j' | ||
+ | |||
+ | Une fois votre URL paramétré, | ||
+ | Dès que cette intent sera déclenché, | ||
+ | Ce JSON contiendra plein d' | ||
+ | |||
+ | Il faudra que votre page, réponde à ce post en envoyant un JSON avec deux paramètres " | ||
+ | |||
+ | La class équivalent/ | ||
+ | |||
+ | <code csharp> | ||
+ | public class JsonReponse | ||
+ | { | ||
+ | public string speech { get; set; } | ||
+ | public string displayText { get; set; } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Voici un exemple en ASP MCV pour le traitement du JSON envoyé par Google | ||
+ | |||
+ | <code csharp> | ||
+ | [HttpPost] | ||
+ | public async Task< | ||
+ | { | ||
+ | JsonReponse resp = await DecodeRequest(); | ||
+ | return resp; | ||
+ | } | ||
+ | | ||
+ | async Task< | ||
+ | { | ||
+ | string jsonData = await this.Request.Content.ReadAsStringAsync(); | ||
+ | string question = (string)jObject[" | ||
+ | string intent = (string)jObject[" | ||
+ | |||
+ | JsonReponse resp = new JsonReponse(); | ||
+ | resp.speech = "Cette demande n'a pas pû être traitée"; | ||
+ | resp.displayText = "Cette demande n'a pas pû être traitée"; | ||
+ | |||
+ | switch (intent) | ||
+ | { | ||
+ | case " | ||
+ | resp = DecodeQuestionVolets(jObject); | ||
+ | break; | ||
+ | default: | ||
+ | break; | ||
+ | } | ||
+ | |||
+ | return resp; | ||
+ | } | ||
+ | | ||
+ | private JsonReponse DecodeQuestionVolets(Newtonsoft.Json.Linq.JObject jObject) | ||
+ | { | ||
+ | JsonReponse resp = new JsonReponse(); | ||
+ | resp.speech = " | ||
+ | resp.displayText = " | ||
+ | |||
+ | Dictionary < string, string> parametres = jObject[" | ||
+ | |||
+ | if (parametres.Count > 0) | ||
+ | { | ||
+ | var parametre = parametres.First(); | ||
+ | string piece = parametre.Value; | ||
+ | | ||
+ | if (piece.Contains(" | ||
+ | { | ||
+ | //Monte le volet de la chambre | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Il peut aussi être utile d' | ||
+ | Pour cela vous pouvez faire une simple fonction de log pendant votre période de debuggage | ||
+ | |||
+ | <code csharp> | ||
+ | /// < | ||
+ | /// Enregistrement dans un fichier de log | ||
+ | /// </ | ||
+ | /// <param name=" | ||
+ | void log(string JsonData) | ||
+ | { | ||
+ | string directory = @" | ||
+ | |||
+ | if (!Directory.Exists(directory)) | ||
+ | { | ||
+ | try | ||
+ | { | ||
+ | Directory.CreateDirectory(directory); | ||
+ | } | ||
+ | catch (Exception ex) | ||
+ | { | ||
+ | } | ||
+ | } | ||
+ | try | ||
+ | { | ||
+ | File.AppendAllText(directory + @" | ||
+ | } | ||
+ | catch (Exception ex) | ||
+ | { | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | Vous pourrez tester votre application sur le site mais elle sera aussi deployé sur votre Google Home. | ||
+ | Pour la démarrer il suffira de dire "Ok google parler avec < | ||
| |
actions_on_google_et_domotique.1520460270.txt.gz · Dernière modification : 2018/03/07 23:04 de 88.164.131.165