DomotiqueDomotique Home AssistantTutoriels domotique

[TUTORIEL] Piloter Home Assistant à la voix grâce à Alexa

Intégration gratuite d'Alexa et Echo dans Home Assistant

Home Assistant offre de nombreuses possibilités pour commander sa maison connectée. L’un des avantages les plus pratiques, c’est sa compatibilité avec les assistants vocaux comme Amazon Alexa, Google Assistant, Siri et Snips.

Ce serveur local est plus que complet, ainsi le coupler avec la charmante voix d’Alexa nous permet d’aller plus loin. En effet, notre serveur home assistant fraichement installé nous permettra de complexifier nos routines et nous pourrons également contrôler avec la voix des appareils nativement incompatible avec Alexa.

Pré-requis pour utiliser Home Assistant avec Alexa

Cette installation est totalement gratuite mais demande un peu plus de temps qu’une intégration habituelle.

Il existe également Nabu Casa qui vous permet de contrôler votre instance depuis l’extérieur ainsi que connecter votre serveur aux différents assistants vocaux. Bien évidemment tout cela est très sécurisé, cependant ce service est proposé à 5€/mois.

Vous souhaitez choisir la solution gratuite ? Parfait ! Voyons cela plus en détail..

Exigences pour votre configuration

  • L’API Alexa Smart Home nécessite que votre instance Home Assistant soit accessible depuis Internet via HTTPS, Duck DNS est la méthode la plus simple.
  • Un compte développeur Amazon
  • Un compte Amazon Web Services (AWS) est requis pour héberger la fonction Lambda pour votre skill Alexa. AWS Lambda est gratuit pour jusqu’à 1 million de demandes et 1 Go de transfert de données sortantes par mois. (Plus que suffisant pour ce que nous allons en faire 🙂 )
  • Télécharger mon document afin de simplifier la recherche de certaines données

Créer une skill Amazon Alexa Smart Home

Une fois votre compte développeur Amazon créé, connectez-vous à la console Alexa développeur puis accédez à l’onglet « skills » si vous ne l’êtes pas, cliquez sur le bouton « Create Skill ».

alexa console create skill

Donnez lui un nom, par exemple « lesalexiens », puis sélectionnez « Smart Home » et « Provision your own ».

alexa smart home skill

alexa smart home skill hassio

Vous pouvez maintenant créer votre skill en cliquant sur le bouton « Create Skill » en haut à droite de l’écran.

alexa developer console smart home assistant

Assurez vous que « v3 (preferred) » soit bien sélectionné.

Vous pouvez laisser cette page ouverte dans un coin de votre navigateur, nous devons y revenir plus tard.

Créer une fonction AWS Lambda

Votre skill Alexa Smart Home déclenchera une fonction AWS Lambda qui traitera la demande. Nous allons copier/coller (bah oui..nous ne sommes pas des développeurs!) un petit morceau de code hébergé en tant que fonction Lambda qui redirigera la demande vers notre serveur Home Assistant, puis l’intégration d’Alexa dans Home Assistant traitera la demande et donnera une réponse. C’est donc notre fonction Lambda qui fournira la réponse à Alexa.

Vous n’avez rien compris ? Ce n’est pas grave, on va copier coller quelques lignes de code et Alexa fonctionnera 🙂

Téléchargement et préparation de notre skill Alexa Adapteur

Commencez par télécharger la dernière version du projet, ce sera notre fonction AWS Lambda.

Le fichier se trouve en bas de la page, choisissez le fichier au format « .zip » :

haaska alexa hassio

Une fois le fichier téléchargé, rendez-vous sur File editor, nous allons ajouter quelques lignes au fichier configuration.yaml :

api alexa smart home

api:

alexa:
  smart_home:

Enregistrez le fichier puis redémarrez votre serveur

Création d’un jeton longue durée Home Assistant

Il vous faudra maintenant obtenir un jeton de longue durée, vous pouvez en créer depuis votre interface Home Assistant très facilement :

  1. Connectez-vous à votre interface Home Assistant
  2. Cliquez sur votre profil (le cercle bleu en bas à gauche de la page)
  3. Faites défiler jusqu’au bloc Jetons d’accès de longue durée
  4. Cliquez sur créer un jeton
  5. Une fenêtre s’ouvrira, donnez-lui un nom (Par exemple : lesalexiens)
  6. Une fois un nom ajouté, un jeton apparaitra. Collez-le dans le fichier d’aide, nous utiliserons ce jeton plus tard.
ARTICLE À LIRE :
[TEST] MoKo : veilleuse et détecteur de mouvement pour Echo Flex

Configuration de la connexion avec Amazon

Connectez-vous à votre console Amazon développeur puis cliquez sur le lien Login with Amazon :

connexion avec amazon lien vers la page

Cliquez sur créer un profil de sécurité :

créer un profil de sécurité amazon

Il vous suffira ensuite de créer le profil comme ci dessous :

  1. Entrez le nom de votre profil de sécurité souhaité, par exemple « lesalexiens »
  2. Écrivez une brève description, par exemple « Profil pour l’utilisation de mon serveur home assistant »
  3. Ajoutez l’URL que vous souhaitez pour l’avis de confidentialité, par exemple « https://lesalexiens-tutoriel.duckdns.org »

Cliquez sur Enregistrer puis sur votre nouveau profil, cliquez sur le petit engrenage et choisissez Paramètres Web.

Notez l’ID client et le code secret client dans le fichier d’aide mis à votre disposition.

profil ID et code secret client

Gardez cette fenêtre ouverte nous y reviendrons plus tard.

Configuration du kit Alexa Skills

Depuis une nouvelle fenêtre, ouvrez la console développeur.

Alexa skill kit

Depuis Alexa Skills Kit, sélectionnez votre skill et récupérez votre Skill ID (Collez le dans votre fichier d’aide)

alexa skill ID

Actuellement vous devriez avoir 4 valeurs dans votre tableau d’aide

Préparation d’AWS Lambda Access

Connectez vous à votre console AWS en sélectionnant le profil Utilisateur IAM

connexion console AWS

Une fois connecté à votre console AWS l’onglet Services apparait en haut à gauche de la page. Cliquez dessus puis recherchez IAM

IAM service AWS

Une fois la page IAM ouverte, cliquez sur Rôles puis ensuite sur Créer un rôle

rôle IAM aws

Vous devriez voir apparaitre cette page :

  1. Sélectionnez Services AWS
  2. Cliquez sur Lambda
  3. Validez en cliquant sur le bouton Suivant : Autorisations

Vous devriez voir apparaitre cette nouvelle page :

Recherchez le mot basic vous devriez voir apparaitre une seule ligne qui a pour nom AWSLambdaBasicExecutionRole. Cochez cette ligne puis cliquez sur le bouton Suivant : Balises

Sur cette page n’entrez aucune balise et cliquez directement sur le bouton Suivant : Vérification

Nous voici sur la dernière étape de la création de notre rôle. Il vous suffit de lui donner le nom lambda_basic_execution puis valider en cliquant sur le bouton créer un rôle comme ci-dessous :

Votre rôle est créé, retournez sur la page principale en cliquant sur le logo AWS en haut à gauche de votre page

Configuration de la région

Cette étape est très importante pour poursuivre le tutoriel

En haut à droite de l’écran il y a votre identifiant (certainement votre adresse email) et à côté vous trouverez un menu listant différentes régions, sélectionnez la région Europe (Irlande) eu-west-1 et uniquement cette région.

Si vous vivez aux Etats unis ou au Canada sélectionnez la région USA Est (Virginie du Nord) us-east-1

Configuration du service AWS Lambda

Recherchez calcul depuis la barre de recherche du bloc Services AWS. La liste affichera différents services, sélectionnez le service Lambda.

calcul lambda service

Une fois la page Lambda apparue cliquez sur le bouton orange Créer une fonction.créer une fonction lambda

Assurez-vous que la vignette Auteur à partir de zéro est sélectionnée puis définissez les options suivantes :

fonction lambda parametres

  • Nom de la fonction : lesalexiens
  • Environnement d’exécution : Python 3.6
  • Rôle d’exécution : Utiliser un rôle existant
  • Rôle existant : lambda_basic_execution

La fonction est prête vous pouvez la créer en cliquant sur le bouton Créer une fonction.

Configuration du déclencheur Alexa Smart Home

Une fois votre fonction créée, vous devriez voir apparaitre un bloc qui a pour nom Designer. Vous y trouverez un bouton Ajouter un déclencheur,  cliquez dessus puis sélectionnez Alexa Smart Home.

alexa smart home skill id

Une fois Alexa Smart Home sélectionné, collez votre Skill ID (Vous le retrouverez très facilement grâce à votre fichier d’aide)

Assurez-vous que Activer le déclenchement est coché puis cliquez sur le bouton Ajouter.

alexa smart home lambda

Une fois Alexa Smart Home ajouté, cliquez sur le nom de votre fonction (Notre fonction a pour nom lesalexiens). Plus bas dans la page vous trouverez la section Code de fonction :

code de fonction aws lambda

Sélectionnez Charger un fichier .zip dans Type d’entrée de codeDepuis le bouton télécharger sélectionnez le fichier .zip sur votre ordinateur que nous avons téléchargé plus tôt.

Une fois le fichier téléchargé, remplacez ce qui est dans la case Gestionnaire par haaska.event_handler

haaska

Cliquez sur Enregistrer en haut à droite de la fenêtre et attendez quelques secondes que le fichier soit bien chargé.

ARTICLE À LIRE :
[SOLDES] Les bons plans Maison Connectée sur Amazon.fr

Configuration de votre fonction

Dans la section Code de fonction, vous trouverez une liste de fichiers. Double-cliquez sur le fichier config.json:

aws token hassio

Et ajoutez les deux attributs suivants :

  • url : L’URL de votre serveur Home Assistant (par exemple ici, https://lesalexiens-tutoriel.duckdns.org:8123/api)
  • bearer_token : Le jeton d’accès longue durée (que vous retrouverez facilement dans votre fichier d’aide)

N’oubliez pas de mettre /api à la fin de votre URL.

Vous pouvez maintenant enregistrer depuis le bouton en haut à droite.

Lier AWS avec le kit Alexa

Une fois le fichier enregistré, revenez en haut de la page. Vous y trouverez un ARN, collez-le dans votre fichier d’aide.

ARN Lambda aws

Depuis la console développeur Alexa,  sélectionnez votre Skill et insérez votre ARN dans la zone default endpoint :

default endpoint aws hassio

Exemple d’ARN à coller dans Default endpoint :

arn:aws:lambda:eu-west-1:1234567891011:function:lesalexiens

Vous pouvez sélectionner la région Europe, India et y coller également votre ARN :

arn-aws-homeassistant

Enregistrez en cliquant sur le bouton SAVE 

Connecter Alexa Smart Home à Amazon

En bas de la console développeur Alexa vous trouverez un bouton Setup account linking

Cliquez sur le bouton puis saisissez les informations suivantes :

  • Authorization URI : https://www.amazon.com/ap/oa
  • Access Token URI : https://api.amazon.com/auth/o2/token
  • Your Client ID : Votre Client ID (Vous le retrouverez dans le fichier d’aide)
  • Your Secret : Votre Secret du client (Vous le retrouverez dans le fichier d’aide)
  • Your Authentication Scheme : HTTP Basic (Recommended)
  • Scope : Créez un scope en cliquant sur Add Scope et ajoutez profile

Une liste d’URI de redirection sera disponible dans la section Alexa Redirect URLs, collez-les dans votre fichier aide.

Enregistrez vos modifications en cliquant sur le bouton save en haut à droite de la page.

Afin de finaliser la configuration, rendez vous sur la console Amazon puis cliquez sur Login with Amazon

Votre skill apparaitra, il faudra alors passez votre souris sur l’engrenage et cliquer sur paramètres web.

Cliquez sur Modifier en bas à droite de votre page :

Collez les trois URI dans la section URL de retour autorisées comme ci-dessous :

Il ne vous reste plus qu’à enregistrer vos modifications.

A ce stade notre configuration est terminée nous allons tester notre fonction puis finir notre installation dans Home Assistant ainsi que dans l’application Alexa.

Tester notre fonction Lambda

En haut de la page de configuration de votre fonction Lambda, il y a le bouton Tester, cliquez dessus.

Créer un nouvel événement de test

Vous pouvez Configurer un nouvel événement de test en utilisant les données suivantes :

test aws fonction lambda

Donnez un nom à votre événement (par exemple, mon événement).

{
  "directive": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover",
      "payloadVersion": "3",
      "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "payload": {
      "scope": {
        "type": "BearerToken",
        "token": "VOTRE_JETON_D'ACCES_LONGUE_DUREE"
      }
    }
  }
}

Il vous suffit de créer votre test en cliquant sur Créer en bas de la page. Une fois votre test créé, sélectionnez-le depuis le menu déroulant à gauche du bouton tester.

Cliquez sur le bouton Tester, et si le test réussit, un message vert apparaîtra.

Félicitations! Votre fonction peut communiquer avec votre installation Home Assistant. 🙂

Configuration finale dans Home Assistant

Depuis File editor, accédez à votre fichier configuration.yaml afin de finaliser notre intégration d’Alexa.

Précédemment nous avions les trois lignes suivantes pour Alexa :

api:

alexa:
  smart_home:

Vous devez les modifier afin d’avoir la configuration suivante :

api:

alexa:
  smart_home:
    locale: fr-FR
    endpoint: https://api.eu.amazonalexa.com/v3/events
    client_id: VOTRE_CLIENT_ID
    client_secret: VOTRE_SECRET_CLIENT

vos client_id et client_secret sont disponibles dans votre fichier d’aide. Enregistrez et redémarrez votre serveur Home Assistant.

Ajouter notre skill dans l’application Alexa

Dernière étape! Rendez-vous dans votre application Amazon Alexa

Il vous suffit de vous rendre dans Skill et jeux puis de sélectionnez l’onglet Vos Skills

Votre Skill apparaitra (par exemple, lesalexiens), il vous suffit de cliquer dessus et de vous identifier avec votre compte Amazon. 🙂

Alexa est opérationnelle avec votre serveur Home Assistant. Vous pouvez communiquer avec tous vos appareils, plus de besoin de vous souciez de la compatibilité. 🙂

Dans le prochain tutoriel, nous allons voir comment ajouter nos appareils Echo à Home Assistant afin de contrôler le lecteur multimédia et utiliser le système vocal pour nous alerter ou nous informer. 🙂

Rejoignez notre groupe Facebook Les Alexiens

Aurélien Buret

Passionné de high tech et de domotique, j'ai un temps rejoint la rédaction du site pour partager avec vous ma passion pour la domotique et en particulier mes découvertes sur Home Assistant.

80 commentaires

    1. Merci pour le retour ! Plus que chaud, c’est un peu long, mais Aurélien nous a parfaitement guidé je pense. 🙂

  1. Bonjour, lorsque je teste ma fonction j’ai le message d’erreur suivant:
    « errorMessage »: « 404 Client Error: Not Found for url: https://rom*****ox.duckdns.org:8123/api/alexa/smart_home« ,

    Une idée du problème?

    – L’adresse est correct car j’accède à ma machine quand je la tape sans le /api/alexa/smart/home.
    – Dans la config yaml de HA, j’ai bien ajoutée les ligne suivante:
    api:

    alexa:
    smart_home:

    Je ne sais pas, à quel moment ça a déconné.

    Merci pour votre aide

    1. Bonjour, j’ai eu la même erreur

      J’ai copié dans le fichier configuration.yaml

      api:

      alexa:
      smart_home:

      au lieu de

      api:

      alexa:
      smart_home:

      L’espace au début de api a posé problème, après suppression de l’espace tout fonctionne parfaitement.

    2. Bonjour, merci pour votre retour! je viens de corriger l’erreur d’indentation 🙂

  2. Merci, Tuto très bien fait.
    PEtit conseil pour ceux ayant des pb avec le test ou la recherche de matériel (pb acces token) –> Pensez à vérifier aussi les accès ports de votre box (avec duckdns). 8123 (ou 443….)

  3. Bonjour,

    HA peut être piloter pas Alexa avec la voix. Mais l’inverse est-il possible?

    C’est à dire, HA peut-il piloter les objets connectés via Alexa ?

    Merci d’avance

    1. Bonsoir,
      En général, vos objets connectés à Alexa remonteront automatiquement dans Alexa car elle se sert des mêmes applications. Si vous parlez des hubs ZigBee Echo, par contre, nous n’avons pas de réponse pour l’heure, nous n’avions pas encore pensé à cette possibilité, mais nous allons vérifier ça. 🙂
      Bonne soirée

  4. Franchement, merci pour ce super tuto, il est vraiment bien détaillé. Je n’ai pas réussi du premier coup, j’avais loupé le gestionnaire haaska.event_handler, j’avais une erreur sur le test que j’ai finalement résolue.

    Je pensais en avoir bavé a intégrer mon google home maisc’était une partie de rigolade comparé à celui ci..
    Je ne comprends pas pourquoi c’est aussi compliqué, mais bon si ca permet d’économiser 5€ par mois je suppose que c’est un moindre mal.

    Merci encore, en espérant que les screens ne soit pas obsolète rapidement comme pour l’intégration du google home.

  5. Personnellement mon Smart home skill tourne depuis quelques temps, et fonctionne pour toutes les lumières de ma maison (dev perso qui transfert les demandes à mon automate).
    J’arrive également à faire detecter les volets, et à les controler depuis l’application Alexa.. Mais impossible de les controler en parlant directement à Alexa.. Etrange !

    1. Effectivement, c’est bizarre. Et en routine, avec une phrase personnalisée, ça fonctionne?

  6. Est ce que quelqu’un arrive à piloter autres choses que des lampes et des prises ? J’ai l’impression que les input boolean ne sont pas activable. Je vois les scripts mais comme la plupart du temps il en faut 2 (1 pour allumer et 1 pour eteindre), elle me dit qu’elle en voit plusieurs et me demande lequel activer.
    Je n’ai pas trouvé de doc sur comment transformer un input boolean en switch. Bref les possibilités sont un peu limité, c’est dommage.

  7. bonjour, j’ai une erreur dans les tests,
    lors de l’étape de chargement du fichier haaska_1.1.0.zip dans la partie lambda > fonction > code fonction, je ne trouves dans les écrans la possibilité de changer le Gestionnaire (action 3 de l’écran), j’ai peut-être loupé quelque chose ou une fenêtre, de ce fait il est possible que le message d’erreur lors des tests :
    Response:
    {
    « errorMessage »: « Unable to import module ‘lambda_function' »
    }

    soit lié à cette étape qui n’est pas comme décrite dans ce très bon tuto.
    merci de votre aide

  8. Salut, super tuto ! J’ai une question bête, une fois le tuto réaliser comme je peux faire pour demander à alexa de fermer mes volets par exemple

  9. Bonjour,

    Je rencontre un problème lors de l’activation pour utilisation. L’association du compte ne fonctionne et pour cause, dans les détailsj’ai un Unknown client_id. en effet, l’ID que je vois ne correspond pas à celui que j’ai dans sur amazon developer. Et à aucun moment lors de l’activation j’ai une demande pour saisir mes ID/mdp. Auriez-vous une idée?

    Merci beaucoup et merci pour ce site que je viens de découvrir.

    Greg

  10. Bonjour,

    J’ai rencontré le même souci. La capture ne correspond plus à ce qu’il y a maintenant. Plus bas dans la page de ta fonction, tu as un bloc « Paramètres de base ». tu fais « modifier » et dans la partie gestionnaire, tu remplaces par haaska.event_handler.

    Ton test devrait fonctionner.

    Mois je reste bloqué sur l’activation dans l’application. Si ca fonctionne pour toi, je suis preneur.

    Greg

    1. Bonjour Greg,
      En effet, HA évolue vite et il nous faut mettre à jour le tuto, nous allons nous pencher sur la question. 😉

  11. la possibilité de changer de gestionnaire à changé d’endroit et n’est plus dans la fenêtre de téléchargement comme montré dans les copies d’écrans , mais un plus bas dans une zone à part, si comme moi vous n’avez pas scrollé vers le bas , alors vous ne voyez pas cette partie , qui est bloquante si pas mise à jour, une fois mise à jour c’est OK ça fonctionne.

  12. bonjour , après la mise en place et l’association du skill, j’ai toujours un message d’erreur dans HA:
    Error when sending ChangeReport to Alexa: INVALID_ACCESS_TOKEN_EXCEPTION: Access token is not valid.

    comme précisé dans les doc HA, j’ai dissocié puis réssocié la skill , puis rdémarré HA , mais c’est pareil, suis-je le seul ? y a t il correctif ?

    Nota: dans la partie Account linking: la documentation HA et le tutoriel donne des valeurs différentes pour autorization URI et authorization Token ainsi que pour Authentification scheme ==> qui a raison ?

  13. @Greg , non je n’ai pas eu ce souci , par contre je reste avec le problème : Error when sending ChangeReport to Alexa: INVALID_ACCESS_TOKEN_EXCEPTION: Access token is not valid.

  14. Bonjour,

    Merci pour ce guide, mais je rencontre un souci, sûrement une erreur de ma part, mais je ne trouve pas mon skill dans l’application Alexa Amazon, je ne vois pas l’onglet skil dev sur l’application.

    Vous avez une idée du pourquoi du comment ? Je précise que le test fonctionne bien , je pense avoir bien fait le guide.

    Merci a vous.

  15. Bonjour,

    Déjà merci pour ce guide, mais je rencontre un souci, sûrement une erreur de ma part, mais je ne trouve pas mon skill dans l’application Alexa Amazon, je ne vois pas l’onglet skil dev sur l’application.

    Vous avez une idée du pourquoi du comment ? Je précise que le test fonctionne bien , je pense avoir bien fait le guide.

    Merci a vous.

  16. Bonjour à tous,

    Durant le test petit problème « errorMessage »: « 2020-09-12T16:20:07.883Z 7eb1ef0f-ab00-4730-bb20-83f42334f119 Task timed out after 3.00 seconds »
    pourtant tout le reste est ok, est ce que quelqu’un aurait eu le même problème?
    Merci d’avance

  17. Bonjour, tout niquel jusqu’à ce que j’active le skill et … aucun appareil trouvé !
    pourtant depuis la console aws le test est un succès et je vois bien tout mes appareils dans le log.
    mais l’application alexa n’en découvre aucun ..

  18. Pour ceux qui ont un problème du type:
    Error when sending ChangeReport to Alexa: INVALID_ACCESS_TOKEN_EXCEPTION: Access token is not valid.

    1 – Dans le securiy profile « login with amazon », bien ajouter son l’url+port de HA dans « Allowed Origins »
    2 – dans la skill alexa, onglet permission: cocher « send alexa event » et copier dans le pense bête les alexa client ID et client secret qui apparaissent plus bas
    3 – de le fichier de conf.yaml: replacer client id et client_secret par ceux que l’on a copier juste avant
    4 – s’assurer egalement que l’external url est configurer pour HASS (onglet configuration>general> external url > votre domain:port) (dans votre profil, les parametres avancés doivent être activé)
    5- desactive/reactive skil /redemare hass autant que necessaire

    et plus d’erreur pour moi….

  19. Bonjour,
    J’ai suivi à la lettre les instructions et ça a marché du premier coup ! Du pur bonheur quand ca fonctionne comme ça, en plus avec les capture, le tuto est génial !
    Un grand merci pour ce super boulot !

  20. bonjour,

    cela ne fonctionne pas pour moi, j’ai cette erreur qui apparaît à chaque fois dans les logs dHA :

    Error when sending ChangeReport to Alexa: INVALID_ACCESS_TOKEN_EXCEPTION: Access token is not valid.

  21. bonjour,
    j’ai une erreur « `{
    « errorMessage »: « HTTPConnectionPool(host=’localhost’, port=8123): Max retries exceeded with url: /api/alexa/smart_home (Caused by NewConnectionError(‘: Failed to establish a new connection: [Errno 111] Connection refused’,)) »,
    « errorType »: « ConnectionError »,
    « stackTrace »: [
    [
    « /var/task/haaska.py »,
    111,
    « event_handler »,
    « return ha.post(‘alexa/smart_home’, event, wait=True) »
    ],
    [
    « /var/task/haaska.py »,
    65,
    « post »,
    « timeout=(None, read_timeout)) »
    ],
    [
    « /var/task/requests/sessions.py »,
    581,
    « post »,
    « return self.request(‘POST’, url, data=data, json=json, **kwargs) »
    ],
    [
    « /var/task/requests/sessions.py »,
    533,
    « request »,
    « resp = self.send(prep, **send_kwargs) »
    ],
    [
    « /var/task/requests/sessions.py »,
    646,
    « send »,
    « r = adapter.send(request, **kwargs) »
    ],
    [
    « /var/task/requests/adapters.py »,
    516,
    « send »,
    « raise ConnectionError(e, request=request) »
    ]
    ]
    }« `|
    j’ai bien le skill dev dans Alexa.
    merci pour votre aide

  22. Salut,

    j’avais la meme erreur et ca viens d’une info long token qui ne faut par mettre a l’etape « account linking » dans token il faut rien mettre et apres je n’ai plus cette d’erreur mais malheureusement faut que tu effaczes tous pour recommencer

  23. Bonjour,

    Occupé depuis plus de 6h à refaire et refaire et encore refaire la procédure que je connais quasiment par coeur maintenant.
    IMPOSSIBLE d’avoir un test correct.

    voici la réponse.

    {
    « errorMessage »: « HTTPSConnectionPool(host=’did****.duckdns.org’, port=8123): Max retries exceeded with url: /api/alexa/smart_home (Caused by SSLError(SSLError(1, ‘[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:852)’),)) »,
    « errorType »: « SSLError »,
    « stackTrace »: [
    [
    « /var/task/haaska.py »,
    111,
    « event_handler »,
    « return ha.post(‘alexa/smart_home’, event, wait=True) »
    ],
    [
    « /var/task/haaska.py »,
    65,
    « post »,
    « timeout=(None, read_timeout)) »
    ],
    [
    « /var/task/requests/sessions.py »,
    581,
    « post »,
    « return self.request(‘POST’, url, data=data, json=json, **kwargs) »
    ],
    [
    « /var/task/requests/sessions.py »,
    533,
    « request »,
    « resp = self.send(prep, **send_kwargs) »
    ],
    [
    « /var/task/requests/sessions.py »,
    646,
    « send »,
    « r = adapter.send(request, **kwargs) »
    ],
    [
    « /var/task/requests/adapters.py »,
    514,
    « send »,
    « raise SSLError(e, request=request) »
    ]
    ]
    }

    Si quelqu’un a une réponse, avant que j’abandonne définitivement le projet.

    en vous remerciant par avance.

  24. Rien à faire, 10 fois que je refais la procédure, toujours INVALID_ACCESS_TOKEN_EXCEPTION…
    Quelque chose à changé du côté d’Amazon, ce tuto n’est plus d’actualité c’est pas possible autrement

  25. personnellement j’ai retiré les 3 derniere ligne du fichier yaml et ca fonctionne correctement j’ai tous mes sensor y compris deconz. est que votre test fonctionne ?

  26. Bonjour, Super tuto ! Merci bcp. J’ai du faire une erreur quelque part ?
    le teste me donne cette erreur
    {
    « errorMessage »: « Unable to import module ‘lambda_function' »
    }

    Lambda ne trouve pas le fichier lambda_function.py. Vérifiez que votre gestionnaire respecte le format file-name.method.

    Vous voyez d’ou cela peut venir ?
    Merci
    Clt

  27. il nous faut plus d’info Nicolas. j’ai eu des soucis aussi au debut car il me manquait des infos. du coup j’ai pris aussi le tuto de Dzzz voir lien youtube au dessus.
    Refait un check des parametres.

    Merci pour ton retour

  28. Bonjour Sébastien, merci pour ton retour. Penses tu qu’il est possible de refaire toute la procédure sans que ça mette le bazar ?
    merci

  29. non tu peux mais surtout efface a chaque fois le précédent, personnellement j’ai mis nom different et efface l’ancien. tiens moi au jus

  30. Ca fonctionne très bien ! En complément, j’ai ajouté quelques lignes dans le fichier de configuration.yaml afin de ne donner autoriser Alexa à controller quelques devices bien définies. Seulement, cette dernière étape ne semble pas vouloir fonctionner .

    ci-joint les lignes ajoutées :

    alexa:
    smart_home:
    locale: fr-FR
    endpoint: https://api.eu.amazonalexa.com/v3/events
    filter:
    include_entities:
    – light.toto
    – light.tata

  31. Bonjour, le test ne fonctionne pas… ça m’indique :

    « errorMessage »: « Unable to import module ‘lambda_function’: No module named ‘lambda_function' »

    Si je change par haaska.event_handler, idem erreur 😕

  32. Et maintenant :

    Response
    {
    « errorMessage »: « Unable to import module ‘haaska’: No module named ‘haaska' »,
    « errorType »: « Runtime.ImportModuleError »
    }

    Help

  33. Un grand merci pour ces info complémentaire qui m’ont permis d’activer la skill.
    Dans le tuto le point n°2 n’est pas spécifié.
    Le point n°3 contredi ce qui est indiqué dans le tuto (ce dernier ne nous fais pas prendre les bon ID/Secret pour le fichier de configuration)

    Il serai peut-être bien de mettre à jour pour les prochain 😉
    Quoi qu’il en soit un grand merci j’ai pu aller au bout de l’activation 🙂

  34. Bonjour bonjour,
    Super tuto. ca a du prendre du temps. Malheureusement pour moi ca ne fonctionne pas.
    J’ai également un petit soucis lors du test (voir ci-dessous). Je me demande si ce n’est pas lié à l’authentification multi facteur?
    Quand je me connecte à HA de mon app il me demande une 2e clé de sécurité.
    J’imagine que c’est pareil ici? ou alors c’est juste géré par le token?
    Je ne comprends pas le commentaire de Romain Denis (13/05/2020) avec les espaces devant api:. Je ne vois pas d’espaces dans son post.
    Moi j’ai eu le soucis en telechargeant le zip qu’il y a un haaska-1.1.0.zip et un haaska_1.1.0. Forcément j’ai pris le mauvais.
    Mon accès fonctionne bien de l’extérieur mais j’ai cette erreur :

    Response
    {
    « errorMessage »: « Expecting value: line 4 column 12 (char 266) »,
    « errorType »: « JSONDecodeError »,
    « stackTrace »: [
    [
    « /var/task/haaska.py »,
    106,
    « event_handler »,
    « config = Configuration(‘config.json’) »
    ],
    [
    « /var/task/haaska.py »,
    80,
    « __init__ »,
    « self._json = json.load(f) »
    ],
    [
    « /var/lang/lib/python3.6/json/__init__.py »,
    299,
    « load »,
    « parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw) »
    ],
    [
    « /var/lang/lib/python3.6/json/__init__.py »,
    354,
    « loads »,
    « return _default_decoder.decode(s) »
    ],
    [
    « /var/lang/lib/python3.6/json/decoder.py »,
    339,
    « decode »,
    « obj, end = self.raw_decode(s, idx=_w(s, 0).end()) »
    ],
    [
    « /var/lang/lib/python3.6/json/decoder.py »,
    357,
    « raw_decode »,
    « raise JSONDecodeError(\ »Expecting value\ », s, err.value) from None »
    ]
    ]
    }

    Function Logs
    START RequestId: 41535708-afbe-4e16-b2c0-4ee2ace1a89b Version: $LATEST
    Expecting value: line 4 column 12 (char 266): JSONDecodeError
    Traceback (most recent call last):
    File « /var/task/haaska.py », line 106, in event_handler
    config = Configuration(‘config.json’)
    File « /var/task/haaska.py », line 80, in __init__
    self._json = json.load(f)
    File « /var/lang/lib/python3.6/json/__init__.py », line 299, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
    File « /var/lang/lib/python3.6/json/__init__.py », line 354, in loads
    return _default_decoder.decode(s)
    File « /var/lang/lib/python3.6/json/decoder.py », line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File « /var/lang/lib/python3.6/json/decoder.py », line 357, in raw_decode
    raise JSONDecodeError(« Expecting value », s, err.value) from None
    json.decoder.JSONDecodeError: Expecting value: line 4 column 12 (char 266)

    END RequestId: 41535708-afbe-4e16-b2c0-4ee2ace1a89b
    REPORT RequestId: 41535708-afbe-4e16-b2c0-4ee2ace1a89b Duration: 0.83 ms Billed Duration: 1 ms Memory Size: 128 MB Max Memory Used: 53 MB

    Request ID
    41535708-afbe-4e16-b2c0-4ee2ace1a89b

    Bonne journée,
    L.

  35. Super article qui m’a bien aidé car la version française de l’aide hass sans images d’illustration est trop compliquée pour un novice. j’ai eu un pb à la fin de l’intégration, vérifiez votre duckdns si ca ne fonctionne pas bien. merci encore

  36. Petite question annexe. Depuis que j’ai activé le duckdns je ne sais plus accéder au ha que depuis le DNS (l’adresse duckdns externe) et plus depuis l’IP interne avec l’App.
    Je suis obligé de couper le wifi de mon téléphone pour passer en data. Pourtant
    -j’ai bien configuré les deux adresses et le ssid dans l’App
    – j’ai bien configuré les deux adresses dans la config> généralités de ha
    – avec l’interface web (via navigateur web) les deux adresses fonctionnement

    Une idée ?
    Bonne journée

  37. Wahou, hyper technique mais sa fonctionne…incroyable. BRAVO !!
    Mais ce serait cool que les développeurs de HA et que les équipes Amazon Alexa se dote d’API mieux partagé pour éviter ce genre de manipulation accessible qu’a quelques passionnés, ou geek en herbe comme moi.

    Et merci Berno pour pour tes qq conseil qui m’ont aider à me sortir du Test final qui était en défaut au départ.
    Comme toi j’ai raté le fait de remplacer « haaska.event_handler » dans le gestionnaire, juste après le code fonction Lambda.

  38. Bonjour et merci pour ce tuto.
    tout s’est bien déroulé jusqu’au test 🙁
    voilà ce que j’ai en retour:
    {
    « errorMessage »: « Unable to import module ‘lambda_function' »
    }

    Function Logs
    START RequestId: 7778cefc-e7a6-408e-9120-53f242c98a6d Version: $LATEST
    Unable to import module ‘lambda_function’: No module named ‘lambda_function’

    END RequestId: 7778cefc-e7a6-408e-9120-53f242c98a6d
    REPORT RequestId: 7778cefc-e7a6-408e-9120-53f242c98a6d Duration: 0.41 ms Billed Duration: 1 ms Memory Size: 128 MB Max Memory Used: 43 MB Init Duration: 1.10 ms

    Request ID
    7778cefc-e7a6-408e-9120-53f242c98a6d

    Auriez-vous une idée du problème

    Merci
    Cdlt
    Stéphane.

  39. super tuto (pas facile faut le dire) à mettre à jour mais ok pour moi: bonne galère sur le test mais fonctionnel après avoir cliqué sur Deploy une fois les modifs effectuées dans l’encadrer « code de fonction » et la modif des gestionnaire « haaska.event_handler » dans l’encadrer « paramètres d’exécution »

  40. Bonjour a tous
    j ai bien exécuté la manip et cela fonctionne .
    j’ai remarque que au bout de quelque temps les nouveaux appareils ajouté apres ne sont plus detectes par Alexa .
    les appareils retirés d’alexa ne sont plus découvert non plus .
    apres test la fonction lambda voit bien tous les appareils . j’ai désactivé puis réactivé la skill mais pas de changements .
    sur la console Amazon l’indicateur nombre d’utilisateur est tombé a zéro alors que avant un utilisateur unique .
    cela m’était déjà arrive et j’avais fait une reinstal fresh et tout était revenu .
    une idée du pourquoi ?

  41. Bonjour à tous,
    Excellent tuto et plutôt bien détaillé. J’ai un peu galérer au départ, car je ne voulais pas passer par DuckDNS mais par Gandi mais j’ai eu des soucis avec le certificat donc j’ai préféré revenir dans les rails. Ma lambda fonctionne nickel et me renvoie bien la liste des appareils.
    Par contre, lorsque je vais voir mes skills dans l’app Alexa, il me montre bien ma skills en mode dev avec un message « cette skill requiert l’association d’un compte » et lorsque je tente de l’activer pour utilisation, cela ne marche pas avec un message : « le serveur d’autorisation a renvoyé un paramètre « error ». Et ils précisent qu’ils rencontrent un probleme de connection avec la skill pour associer mon compte.

    Vous auriez une idée ?

  42. Bonjour,
    voir la reponse de Greg du 21 juin 2020 : sur la page de declaration de la fonction lambda, dans la rubrique « Paramètres d’exécution » il faut préciser le gestionnaire : haaska.event_handler

  43. Bonjour à tous
    Merci beaucoup pour ce travail .
    Fonctionne impeccable .
    Petit soucis à cause du changement d’interface de la plateforme de développement Amazon mais en lisant les commentaires on s’y retrouve.
    Bonne journée et, continuez comme ça.

Laisser un commentaire

Rejoignez notre groupe Facebook Les Alexiens
Bouton retour en haut de la page