Как стать автором
Обновить

Управляем умными розетками и сотнями других IoT девайсов с помощью DIY-устройств, сайтов, ботов и мессенджеров

Время на прочтение 4 мин
Количество просмотров 16K

Привет, Geektimes! Изготовление, например, умной розетки для коммутации устройств с питанием 220В — самая большая проблема при разработке домашней автоматизации, умного дома и схожих систем.

У этой проблемы есть два аспекта — сложность самостоятельного изготовления и обеспечение надежности и безопасности работы таких розеток. Поэтому лишь опытные умельцы могут делать их своими руками.

Чаще всего стимулом к тому, чтобы изготовить умную розетку самостоятельно служит отсутствие вменяемого API у большинства серийных моделей.

В одной статье на Geektimes про умные розетки я увидел такой комментарий:

«Если нет открытого API, чем вы отличаетесь от сотен других поставщиков? Я мечтаю о розетке, которой могу управлять обычным https-запросом. С любой ОС и с любого устройства».

Именно таким способом управлять практически любой умной розеткой и многими IoT- устройствами я и хочу поделиться. Изложенный ниже метод актуален как для простой Wi-Fi-розетки HS100 от TP Link из любого магазина электроники, так и для множества других устройств: умных светодиодных ламп от Philips, хабов умного дома, термостатов Nest, фитнес-браслетов, систем полива и даже автомобилей.

На сайте любого крупного интернет-магазина электроники типа AliExpress или eBay в поиске по запросу «smart home» можно увидеть сотни интересных IoT-устройств для умного дома. У большинства из них привлекательная цена, они круто выглядят, имеют сертификаты безопасности, но у них нет открытого API — того, что по-настоящему важно гикам.

В действительности это не совсем так. В большинстве устройств API, конечно, есть и в большинстве случаев он открыт, но не для всех. Доступ к нему есть чаще всего у Amazon, ибо есть огромное количество устройств, совместимых с управлением при помощи голосового
помощника Alexa Echo. Подробнее можно прочитать здесь.

В свою очередь backend от Amazon для управления Alexa тоже открыт — AWS для поддержки IoT-устройств и всевозможных Alexa Skills, Lambda и так далее. Проблема в том, что со всем этим довольно сложно разобраться.

Сейчас я расскажу, как управлять с помощью запросов JSON всем, чем умеет управлять Alexa Echo. Просто написав команду вида «turn on the living room» можно управлять практически любой умной розеткой откуда хотите — с сайта, устройства Arduino, бота или мессенджера.

В качестве простого примера — многие уже используют популярный выключатель Sonof за 5 долларов. Обычно умельцы его перепрограммируют и используют кастомные прошивки для своего сервера.

На самом деле, им можно управлять текстом или голосом из бесплатного приложения, а также использовать API для передачи команд с помощью простых json запросов с вашего сайта, Ардуино, бота и т.д., причем не нужно ничего паять или прошивать — все работает «из коробки».



Экосистема Alexa постоянно развивается, и появляется все больше новых команд для управления. Подробная инструкция по настройке устройств от Sonof для работы с Alexa здесь.

Итак, что нужно для того чтобы управлять сотнями наименований IoT устройств и систем (поддерживающих Alexa Echo) с ваших сайтов, DIY устроств, ботов и т. д.?

Сначала нужно скачать приложение и зарегистрироваться ( логин и пароль, выбранный при регистрации потребуется при авторизации для API).

Также понадобится логин и пароль вашего аккаунта на Amazon. Вы можете ввести их при первом включении режима Alexa в приложении (иконка «a») или зарегистрироваться и создать новый аккаунт на Amazon.



Теперь создаем с кем-нибудь чат, в который будем отправлять из API команды для управления устройствами.

Нам потребуется ID чата. Получаем его командой getSessions. Пример выполнения команды:

        {
            "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
            },

Находим нужный чат (здесь он отображается как «id»: «1513996519209-ab612ee9434113c8d1») и копируем его ID — 1513996519209-ab612ee9434113c8d1. Теперь мы можем подавать команду
для управления со следующими параметрами:

method sendMessage
sessionid 1513996519209-ab612ee9434113c8d1
type 16
content weather in London

Если все сделано правильно, то ваш смартфон сообщит текущую погоду в Лондоне. Подробнее про команды API можно прочитать здесь.

Теперь нужно привязать устройство к учетной записи Alexa. Подробная инструкция есть в этой статье на Geektimes. После привязки вы можете менять фразу в контенте.

Например, если устройство привязано к группе Living Room, то json запрос будет выглядет так:

method sendMessage
sessionid 1513996519209-ab612ee9434113c8d1
type 16
content turn on the living room

Будет будет включаться соответствующее устройство, привязанное к living Room — умная розетка, умный выключатель и прочее.

Важно! В настройках приложения должна стоять галочка Always On:



Теперь вы можете не только управлять системами с сайта, бота, устройств типа Arduino и другими методами, но и делать покупки на Amazon — в общем, пользоваться всем тем, что умеет делать умная колонка Alexa Echo.

Спасибо за внимание! Надеюсь, пригодится.
Теги:
Хабы:
+4
Комментарии 5
Комментарии Комментарии 5

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн