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:11] – [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 116: | Ligne 121: | ||
| 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' | 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.1520460681.txt.gz · Dernière modification : 2018/03/07 23:11 de 88.164.131.165
                
                