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


    Привет, 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.

    Спасибо за внимание! Надеюсь, пригодится.
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 5
      –1
      Алекса же только по-английски умеет говорить. Тогда какой смысл ее использовать если не все в семье ею смогут пользоваться?
        0
        В статье упор на другое — на то, что можно включать и управлять устройствами, команды которых будут написаны, да, по английски, но внутри вашего кода на сайте, в боте и т.д.
        Т.е. речь не идет об общении, а только об управлении девайсами, но не голосом…
        –2
        Почему-то мне кажется, что большинство разумных людей не понатыкало бы себе девайсов, которыми можно управлять через какой-нибудь «Алексий», скажем лаборатории ксаперского.
        А амазон по умолчанию представляется пушистыми зайчиками? Это потому, что в детстве диснеевских мультфильмы были на порядок лучше местных или боевички сообщили, что добрый и справедливый американский парень всех спасет, никого не обманет?
        А потом удивляются, что IoT задидосил очередную жертву… /ворчит
          +2
          что большинство разумных людей не понатыкало бы себе девайсов, которыми можно управлять через какой-нибудь «Алексий»


          Уже понатыкано миллионами и тенденция продолжается.
          Миллионы мух не могут ошибаться :)
            0
            не понатыкало бы себе девайсов, которыми можно управлять через какой-нибудь «Алексий», скажем лаборатории ксаперского.

            Ну, тут начать надо с того, что лаборатория и не делает алексиев :). Тем не менее, до недавних пор продуктами лаборатории в забугорье пользовались довольно широко, втч в госсекторе (а алекса — это, всё же, бытовой продукт), раз потребовалось аж закон выпускать.


            амазон по умолчанию представляется пушистыми зайчиками? Это потому, что в детстве диснеевских мультфильмы были на порядок лучше местных или боевички сообщили, что добрый и справедливый американский парень всех спасет, никого не обманет?

            Нет, во-первых, у вас перекос в восприятии, а во-вторых, чьи же ещё устройства ставить американцам, как не американское? В России-то алексу три калеки поди поставили, причём двое из них исключительно для обзора, а потом выключили, тк она их вариант английского всё-равно не понимает.


            потом удивляются, что IoT задидосил очередную жертву

            IoT задидосил, а виновата алекса? Казалось бы, при чём здесь мэр Москвы лужков?

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое