Création de ma SKILL domotique avec Alexa

Niveau:3

Introduction:

Dans cet article nous allons voir comment réaliser une SKILL avec Alexa qui permettra de piloter mes objets connectés créer à l’aide d’ESP8266 . Nous utiliserons le service Alexa Voice Service et un serveur php avec certificat SSL. Bien sur, cela vous permettra de voir comment utiliser un serveur PHP pour envoyer une réponse à votre Echo.

Cet article va évoluer en fonction de l’avancement de mon programme, mais je souhaite partager mes travaux au fils de l’eau.

Pré-requis:

Avoir un compte chez https://developer.amazon.com/fr/
Un serveur php avec un certificat SSL sur un raspberry en local https://caron.ws/diy-cartes-microcontroleurs/alexa/votre-raspberry-comme-endpoint-dans-alexa-skill/
Serveur php avec alexa: https://caron.ws/diy-cartes-microcontroleurs/alexa/recuperer-ma-station-meteo-via-alexa-damazon/
Objets connectés: https://caron.ws/diy-cartes-microcontroleurs/esp01-controle-des-diodes-ws2812-a-laide-de-lide-arduino-documentation/

Diagramme pour création de la SKILL:

La SKILL:

Donner un nom à votre Skill et choisissez le modèle Custom.

Paramètres:

Skill Invocation Name: Domotique

Créer vos Utterances.

Créer vos Slot Types:

Voici mon fichier json: https://caron.ws/wp-content/uploads/telechargement/Alexa/domotique.json

Mettre votre serveur en EndPoint.

Serveur PHP:

La structure du serveur PHP sera  identique à celle que j’utilise pour avoir les informations de ma station météo; avec en plus des fichiers au format json pour créer les configurations des objets connectés. Part le fait que notre Raspberry est sur votre réseau local, il pourra commander l’ensemble des objets. A ce jour, j’utilise des requêtes GET car mes objets l’utilisent avec leurs clients WEB actuels.

Blocage de la lectures des fichiers de configuration:

Pour bloquer la lecture des fichiers de configuration (Fichiers textes), vous devez éditer les fichiers default-ssl.conf et 000-default.conf afin d’ajouter les lignes suivantes:

<Directory /var/www/html/data>
<Files *.txt>
Order allow,deny
Deny from all
</Files>
</Directory>

Le répertoire est /etc/apache2/sites-available

Fichiers de configuration de ma domotique:

Nous aurons deux fichiers json,

  • le premier permettra de définir l’objet IOT:
"device" : [
		{
			"nom" : ["halogène"],
			"zone" : "salon",
			"host" : "prisehalogene",
			"type" : "sonoff"
		},
		{
			"nom" : [ "lumière", "lampe" ],
			"zone" : "salon",
			"host" : "MyLED3564343",
			"type" : "led"
		},
Paramètre Définition Type
nom Définie le nom et les synonymes de l’objet. Tableau
zone Définie la zone ou se trouve l’objet String
host Définie le nom d’hôte String
type Définie le modèle de l’objet String

 

  • le deuxième définira les commandes suivant le type:
"led" : [
{
"marche" : "/set?p=m",
"allumer" : "/set?p=m",
"allume" : "/set?p=m"
},
{
"stop" : "/set?p=a",
"stopper" : "/set?p=a",
"arrêt" : "/set?p=a",
"arrête" : "/set?p=a",
"arrêter" : "/set?p=a",
"éteindre" : "/set?p=a",
"éteins" : "/set?p=a"
},

Mes fichiers et mon programme sur https://github.com/christophe94700/Alexa-Domotique

En cours de rédaction.