/ tech

Mise en place de api.ai

Home assistant permet d'utiliser api.ai, c'est un service online qui permet de faire du mode conversationnel via des intégrations avec notamment google-assistant, telegram, ...

Nous allons voir comment l'intégrer avec telegram (en attendant la sortie de google assistant qui devrait pas tarder).

Configuration API.AI et Home Assistant

Il faut suivre la doc home assistant pour configurer API.AI
https://home-assistant.io/components/apiai/
Avec son compte google (utilisé sous home assistant).

pour la partie configuration de Home assistant on déclare ça de cette manière dans le configuration.yaml :

 apiai:
  intents:
    GetTemperature:
      speech: Voici les temperatures de la maison,  il fait {{ states('sensor.salon_temperature') }} degrés dans le salon, {{ states('sensor.tempchambre_temperature') }} degrés dans le chambre, {{ states('sensor.tempetage_temperature')}} degrés à l etage, {{ states('sensor.tempsdb_temperature')}} degrés dans la salle de bain et {{ states('sensor.tempext_temperature')}} degrés à l'exterieur. 
      async_action: False

On peut alors tester que tout fonctionne via la page de api.ai (la partie droite de la page).

On peut d'emblée voir, que meme si on ne teste que le mot temperature l'intent fonctionne correctement.

Mais bon on va pas passer par l'interface d'API.AI .
Voyons comment on intègre Telegram dans la boucle.

Telegram et API.AI

sur la partie gauche de API.AI on choisi "Integrations",on sélectionne Telegram et on l'active.

Un Telegram Token nous ait demandé.
On va sur Telegram sur le BotFather et on exécute la commande :
/token

et on choisit le bot qu'on a déjà créé.
Celui que j'ai permet déjà à Home Assistant, de m'envoyer les photos des webcam lors de mon absence.

Pour le Token on devrait avoir quelque chose de la forme :
XXXXXXXX:akejizfhZARAZa1488RZR5451

On rentre donc ce token sur API.AI

et c'est tout.

Il ne reste plus qu'a tester.

exemple d'implémentation :

 apiai:
  intents:
    GetTemperature:
      speech: Voici les temperatures de la maison,  il fait {{ states('sensor.salon_temperature') }} degrés dans le salon, {{ states('sensor.tempchambre_temperature') }} degrés dans le chambre, {{ states('sensor.tempetage_temperature')}} degrés à l etage, {{ states('sensor.tempsdb_temperature')}} degrés dans la salle de bain et {{ states('sensor.tempext_temperature')}} degrés à l'exterieur. 
      async_action: False
    SurfAi:
      speech: Voici les conditions mises à jour !
      async_action: False
      action:
        - service: notify.teleha
          data:
           title: surfcast
           message: Surf Alert
           data:
             photo:
             - file: /home/toto/.homeassistant/www/surf/surf.png
    BonjourAction:
      async_action: False
    RoutesAi:
      speech: Pour aller au travail il vous faudra {{ states('sensor.travail') }} minutes et pour la plage il faudra {{ states('sensor.plage') }}. 
      async_action: False
Mise en place de api.ai
Share this