Alexa-smartHome Documentation

alexasmarthome icon

Présentation du plugin

grandeimage promo smarthome

Plugin qui vient compléter les possibilités d’Alexa en apportant le lien avec les produits de la gamme Amazon smartHome.

Tous les équipements détectés par l’application Alexa devront pouvoir être détectés et remontés dans Jeedom.

Petit à petit, les développeurs intègrent les types et commandes possibles. Tous les équipements ne sont pas encore tous disponibles, utilisez le forum Community pour dialoguer avec la communauté.

La TODOList et le ChangeLog font l’ojet d’une page spéciale.

Équipements compatibles

Tous les équipements compatibles avec Amazon smartHome sont compatibles avec le plugin.

Ils seront tous détectés, la liste est ici
Quelques exemples sont donnés dans la suite de la documentation.

Si vous voulez uniquement des produits Amazon, vous pouvez consulter cette page.

L’intégration des commandes de chaque type de modules se fait petit à petit, au fur à mesure des achats/tests de chacun.

Les retours d’état ne fonctionnent pas encore car nous n’avons pas encore trouvé comment avoir l’information. Ainsi, si vous lancer un changement d’état d’une lampe, vous aurez un changement de la valeur du widget, mais attention, c’est uniquement basé sur l’action qui vient d’être effectuée et non d’une validation du module. (Ce n’est donc pas un retour d’état)

comme solution temporaire à l’absence de retour d’état, un CRON est prévu pour lancer un refresh et récupérer l’état des devices que nous renvoie le serveur Amazon. Cela est suffisant pour la plupart des devices, mais s’avère inadaptés pour de la détection de présence par exemple.

Consultez le ChangeLog pour voir l’évolution de la détection des modules. Si vous avez un besoin particulier, n’hésitez pas à rencontrer l’équipe de développement et les beta-testeurs sur le Slack.

Installation du Plugin Alexa-smartHome

Très important, Alexa-AmazonMusic a besoin du plugin Alexa-API (gratuit) pour dialoguer avec vos Alexa donc :

Étape 1 : Installer le plugin Alexa-API

Étape 2 : Installer le Plugin Alexa-smartHome

depuis le Market, catégorie Objets connectés ou en tapant son nom dans le champ de recherche

Note sur les versions :

Vous avez le choix entre la version Stable ou la version Beta.

Beaucoup de nouvelles fonctionnalités sont toujours plus présentes sur la Beta que sur la Stable mais elles sont en test.

Si vous êtes joueur et curieux, vous pouvez installer la version Béta.

Nota  Vous n’avez pas besoin d’installer Jeedom en Beta (c’est plutôt déconseillé d’ailleurs) pour installer le plugin en Béta.

Vous pouvez assez facilement passer d’une version Beta à une version Stable et réciproquement, il suffit de réinstaller par dessus l’autre version.

Étape 3 : Activer le Plugin

 Screenshot 2020 02 04 Alexa API Jeedom

Étape 4 : Retourner dans le plugin Alexa-API

Screenshot 2020 02 04 Alexaamazonmusic Jeedom

Étape 5 : Relancer le SCAN

Screenshot 2020 02 04 Alexaapi Jeedom

Les devices smartHome vont être générés automatiquement

Allez dans Alexa-smartHome pour les visualiser

Screenshot 2020 02 04 Alexa API Jeedom2

Mise à jour ou Changement de version (de Beta à Stable ou de Stable à Beta)

Que faire ?

Le plugin et son API étant vivants (Amazon n’ayant pas documenté l’API se permet de modifier au fil de l’eau ses protocoles), les mises à jour permettent d’apporter des corrections dans les liens entre le plugin et le serveur Amazon.

Notez qu’il est toujours conseillé de mettre à jour Alexa-API quand on met à jour les plugins multimedia (Alexa-AmazonMusic, Alexa-Deezer, Alexa-Spotify ou encore Alexa-smartHome)

Deux solutions pour avoir une installation opérationnelle :

  • Supprimer tous les équipements Amazon et leurs commandes et les recréer
  • Forcer la mise à jour de toutes les commandes
  • Lancer un SCAN qui détecte les nouveaux équipements ou les nouvelles commandes

Le choix entre ces trois solutions dépend du nombre de scénarios que vous avez développé grâce aux. En effet, la première solution supprime tous les devices et toutes les commandes, elle supprimera donc celles ci dans vos scénarios. La seconde solution est plus respectueuse de vos scénarios car elle mettra à jour vos commandes sans les supprimer et donc vos scénarios seront intacts.

Solution 1 : Supprimer tous les équipements et leurs commandes et les recréer

C’est le mode le plus propre et le plus optimisé puisque vous repartez avec une installation comme neuve des devices et de leurs commandes.

Pour se faire, il faut utiliser le bouton (dans l’écran de configuration du plugin Alexa-API)boutonalexaapi1

Attention, cette fonction supprime tous les équipements et leurs commandes, vous perdez donc tous les liens dans vos scénarios.

Solution 2 : Forcer la mise à jour de toutes les commandes

C’est le mode le plus simple et sans risque puisque vos équipements et leurs commandes ne sont pas supprimés. Ce forçage n’impacte donc pas vos scénarios.

Pour se faire, il faut utiliser le bouton boutonalexaapi2

Si vous ne souhaitez pas lancer le forçage de mise à jour sur toutes les commandes de tous les équipements, vous pouvez le lancer sur un seul équipement (et donc sur toutes ses commandes). Pour cela, rendez vous sur l’équipement concerné et cliquez sur :

boutonalexaapi3

Solution 3 : Le SCAN

Screenshot 2020 02 04 Alexaapi Jeedom

Notez enfin que le scan peut être lancé à tout moment, il n’impacte pas les équipements déjà détectés ni les commandes existantes, par contre, il recrée tous les nouveaux devices ou les devices supprimés. Il recrée également toutes les nouvelles commandes ou les commandes supprimées.

Recherches des commandes « actions »

Les commandes « actions » sont en cours de détection par le développeur et les beta-testeurs.

Pour cela cette section va servir de base documentaire pour essayer de trouver les commandes à envoyer aux devices.

Alexa.BrightnessController Interface

La documentation de la skill (donnée à titre indicatif) indique :

{
  "directive": {
    "header": {
      "namespace": "Alexa.BrightnessController",
      "name": "SetBrightness",
      "messageId": "<message id>",
      "correlationToken": "<an opaque correlation token>",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "<an OAuth2 bearer token>"
      },
      "endpointId": "<endpoint id>",
      "cookie": {}
    },
    "payload": {
      "brightness": 50
    }
  }
}

La commande à envoyer sera SmarthomeCommand?command=setBrightness&brightness=50

Alexa.PowerController Interface

La documentation de la skill (donnée à titre indicatif) indique :

{
  "directive": {
    "header": {
      "namespace": "Alexa.PowerController",
      "name": "TurnOn",
      "messageId": "<message id>",
      "correlationToken": "<an opaque correlation token>",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "<an OAuth2 bearer token>"
      },
      "endpointId": "<endpoint id>",
      "cookie": {}
    },
    "payload": {}
  }
}

La commande a envoyer sera SmarthomeCommand?command=turnOn

Alexa.ColorController Interface

La documentation de la skill (donnée à titre indicatif) indique :

{
  "directive": {
    "header": {
      "namespace": "Alexa.ColorController",
      "name": "SetColor",
      "messageId": "<message id>",
      "correlationToken": "<an opaque correlation token>",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "<an OAuth2 bearer token>"
      },
      "endpointId": "<endpoint id>",
      "cookie": {}
    },
    "payload": {
      "color": {
        "hue": 350.5,
        "saturation": 0.7138,
        "brightness": 0.6524
      }
    }
  }
}

La commande à envoyer sera SmarthomeCommand?command=setColor&color=green

Liste des commandes

Liste des commandes données sur cette page

Supported actions are:

  • decrementPercentage
  • decrementTargetTemperature
  • getLockState
  • getTargetTemperature
  • getTemperatureReading
  • incrementPercentage
  • incrementTargetTemperature
  • setLockState
  • getLockState
  • setPercentage
  • setTargetTemperature
  • turnOff
  • turnOn

On continue à chercher les autres commandes… Merci de poster vos infos sur le Forum !!

 

One thought on “Alexa-smartHome Documentation

  1. Hi! Would you mind if I share your blog with my facebook group? There’s a lot of people that I think would really enjoy your content. Please let me know. Thanks

  2. Bonjour,

    En introduction vous indiquez « Les retours d’état ne fonctionnent pas encore ».
    Est-ce le cas aujourd’hui ?

    Merci

    1. Ils fonctionnent maintenant mais en pooling, donc avec un délai d’une minute. Ainsi, si c’est un capteur de température, cela ne pose aucun souci, si c’est un détecteur de porte, c’est génant.

  3. Bonjour Sigalou,
    Je viens d’installer (acheter) le plugin AlexaSmarthome sur mon RPI2, avec JeedomV4+, mais j’ai un message « Fichier introuvable : /var/www/html/core/php/../../plugins/alexaapi/desktop/js/alexaapi.js » dans la config du plugin lorsque j’essaye de l’activer.
    J’ai essayer de le réinstaller, rebooter etc… mais rin n’y fais. Il n’y a d’ailleurs pas de dossier /var/www/ sur mon RPI !
    D’avance, merci !
    Eric

    1. Ok, je n’avais pas installé le plugin Alexa API. J’ai confondu avec le plugin officiel Alexa de jeedom !!
      Je reprends un café et je sors 😉
      Merci pour l’excellent taff !
      Eric

  4. Bonjour,
    Avec ce plugin, pourrais-je avoir accès à mes équipements de la Skill  »Legrand Home + Control » ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *