
Salut les Geektimes! La fabrication, par exemple, d'une prise intelligente pour les dispositifs de commutation avec alimentation 220V est le plus gros problème dans le développement de la domotique, de la maison intelligente et des systèmes similaires.
Ce problème a deux aspects - la complexité de l'auto-fabrication et la garantie de la fiabilité et de la sécurité de ces points de vente. Par conséquent, seuls des artisans expérimentés peuvent les réaliser de leurs propres mains.
Le plus souvent, l'incitation à créer une prise intelligente seule est le manque d'une API saine pour la plupart des modèles série.
Dans un article sur Geektimes sur les prises intelligentes, j'ai vu ce commentaire:
«
S'il n'y a pas d'API ouverte, comment vous différenciez-vous des centaines d'autres fournisseurs? Je rêve d'un point de vente que je peux gérer une demande https régulière. De n'importe quel OS et de n'importe quel appareil . "
C'est de cette façon que je veux partager presque n'importe quelle prise intelligente et de nombreux appareils IoT. La méthode décrite ci-dessous est pertinente à la fois pour la simple prise Wi-Fi HS100 de TP Link de n'importe quel magasin d'électronique et pour de nombreux autres appareils: lampes LED intelligentes de Philips, hubs de maison intelligente, thermostats Nest, bracelets de fitness, systèmes d'irrigation et même des voitures .
Sur le site Web de n'importe quel grand magasin d'électronique en ligne comme AliExpress ou eBay, à la recherche de «maison intelligente», vous pouvez voir des centaines d'appareils IoT intéressants pour les maisons intelligentes. La plupart d'entre eux ont un prix attractif, ils ont l'air cool, ont des certificats de sécurité, mais ils n'ont pas d'API ouverte - ce qui est vraiment important pour les geeks.
En fait, ce n'est pas entièrement vrai. La plupart des appareils ont une API, bien sûr, et dans la plupart des cas, elle est ouverte, mais pas pour tout le monde. Le plus souvent, Amazon y a accès, car il existe un grand nombre d'appareils compatibles avec la commande vocale
Assistant Alexa Echo. Plus de détails peuvent être lus
ici .
À son tour, le backend d'Amazon pour la gestion d'Alexa est également ouvert - AWS pour prendre en charge les appareils IoT et toutes sortes de compétences Alexa, Lambda, etc. Le problème est que tout cela est assez difficile à comprendre.
Je vais maintenant vous expliquer comment gérer à l'aide de requêtes JSON tout ce qu'Alexa Echo peut gérer. En écrivant simplement une commande comme «allumer le salon», vous pouvez contrôler presque n'importe quelle prise intelligente d'où vous voulez - depuis le site, l'appareil Arduino, le bot ou le messager.
À titre d'exemple simple, beaucoup utilisent déjà le célèbre commutateur Sonof pour 5 $. Habituellement, les artisans le reprogramment et utilisent
un firmware personnalisé pour leur serveur.
En fait, ils peuvent contrôler le texte ou la voix à partir d'une application gratuite, et également utiliser l'API pour transférer des commandes à l'aide de requêtes json simples à partir de votre site, Arduino, bot, etc., et vous n'avez pas besoin de souder ou de flasher quoi que ce soit - tout fonctionne " hors de la boîte. "

L'écosystème Alexa évolue constamment et de plus en plus de nouvelles équipes de gestion apparaissent. Des instructions détaillées sur la configuration des appareils Sonof pour travailler avec Alexa sont
ici .
Alors, que faut-il pour gérer des centaines de titres d'appareils et de systèmes IoT (prenant en charge Alexa Echo) à partir de vos sites, appareils de bricolage, bots, etc.?
Vous devez d'abord télécharger l'
application et vous enregistrer (l'identifiant et le mot de passe sélectionnés lors de l'inscription seront nécessaires lors de l'autorisation de l'API).
Vous aurez également besoin du nom d'utilisateur et du mot de passe de votre compte sur Amazon. Vous pouvez les saisir lors de la première activation du mode Alexa dans l'application (icône «a») ou vous inscrire et créer un nouveau compte sur Amazon.

Maintenant, nous créons un chat avec quelqu'un, dans lequel nous enverrons des commandes de l'API pour gérer les appareils.
Nous avons besoin d'un identifiant de chat. Nous l'obtenons avec la commande getSessions. Exemple d'exécution de commande:
{ "new": 0, "top": { "delivery": 1514009104111, "code": 0, "orig": "3996189326", "lifetime": -1, "mid": "1514009104111-b6cbe7fcccd49f9824", "time": 1514009104111, "event": 3, "type": 16, "content": "weather in london" }, "created": 1513996519209, "missed": 0, "count": 40, "parties": [ "3996189326", "3929915709" ], "id": "<b>1513996519209-ab612ee9434113c8d1</b>", "time": 1514009104111, "dialogid": "1513996519209-4b0cbad7b6e43ed36e", "updated": 1513999445871, "properties": { "keyGeoEnable": true, "push": false, "nodisturb": true },
Recherchez le chat que vous souhaitez (ici, il s'affiche comme "id": "1513996519209-ab612ee9434113c8d1") et copiez son ID - 1513996519209-ab612ee9434113c8d1. Maintenant, nous pouvons émettre une commande
pour le contrôle avec les paramètres suivants:
méthode sendMessage
id session1513996519209-ab612ee9434113c8d1
type 16
contenu météo à Londres
Si tout est fait correctement, votre smartphone signalera la météo actuelle à Londres. En savoir plus sur les commandes API
ici .
Vous devez maintenant lier l'appareil à votre compte Alexa. Des instructions détaillées sont dans
cet article sur Geektimes. Après la liaison, vous pouvez modifier l'expression dans le contenu.
Par exemple, si l'appareil est attaché au groupe Living Room, la demande json ressemblera à ceci:
méthode sendMessage
id session1513996519209-ab612ee9434113c8d1
type 16
contenu allume le salon
L'appareil correspondant lié au salon sera allumé - une prise intelligente, un interrupteur intelligent, etc.
Important! Dans les paramètres de l'application doit être cochée Always On:

Maintenant, vous pouvez non seulement gérer les systèmes à partir du site, du bot, des appareils comme Arduino et d'autres méthodes, mais aussi effectuer des achats sur Amazon - en général, utilisez tout ce que la colonne intelligente Alexa Echo peut faire.
Merci de votre attention! J'espère que cela vous sera utile.