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
