Перейти к содержанию

Многофункциональный навык УДЯ на Zeit Now

Материал из Wiki yaboard
Внимание! Навык разрабатывался, как проверка своих способностей и опубликован как есть. Поэтому буду очень рад обратной связи при его тестировании. 100%-ная работа "без сучка и задоринки" не гарантируется=)

Предисловие

Сегодня рассмотрим вариант управления устройствами Умного дома Яндекс с помощью http-запросов с помощью собственного приватного навыка.

В данной статье представлено все, что нужно. Поэтому не стоит пугаться данного способа. Он максимально прост.

На данный момент существует прекрасный навык "Домовенок Кузя", но наш вариант подойдет тем, кто хочет быстро, легко и бесплатно поднять свой навык, чтобы быть уверенным в работоспособности трансфера между устройством и системой умного дома от Яндекс.

Что умеет навык?

  1. Управление устройствами с помощью http-запросов.
  2. Возможность добавления таких устройств, как "Выключатель", "Розетка", "Лампа", "Другое" (многофункциональное устройство).
  3. Принимать статус состояния устройств.
  4. Поддерживается следующие варианты подключения:
  • Blynk
  • IFTTT
  • Any - устройства, управление которыми происходит посредством отправки http-запросов в различных форматах (вариативно) - Требуется тестирование

Что будем делать? (или кратко по шагам для нетерпеливых)

  1. Заливаем архив с навыком в свой репозиторий github
  2. Подключаем учетную запись github к Zeit Now
  3. Создаем навык УДЯ
  4. Настраиваем файл конфига устройств device.txt
В данной статье будет много информации, которая казалось бы на поверхности. Но не будем забывать, что многие сталкиваются с ваше указанными задачами без нужных знаний. Поэтому я постараюсь рассказать процесс как можно подробнее.

От слова к делу...

Регистрируемся на github.com

  1. Для начала скачаем файлы нашего навыка по ссылке
  2. Переходим по ссылке регистрации на github.
  3. Вводим Username (Имя пользователя), Email address (свой e-mail) и password (пароль) и нажимаем кнопку "Create account".
  4. Выбираем бесплатный аккаунт, нажав кнопку Choose Free
  5. На следующей странице можно выбрать для чего вы собираетесь использовать ваш аккаунт (а можно и не выбирать=)). Нажимаем кнопку Complete Setup после чего будет предложено проверить свой почтовый ящик на наличие письма активации.
  6. Переходим в почту и нажимаем на кнопку Verify email address в полученном письме.
  7. После перехода по ссылке будет предложено создать новый репозиторий. Для этого требуется ввести его имя-ссылку, обязательно указать, что репозиторий приватный (нам же не нужно, чтобы кто то видел наши токены и ссылки на устройства) и нажать Create repository
  8. Репозиторий создан, теперь в него требуется загрузить файлы нашего навыка. Это можно сделать установив git на пк, настроить, и заpushить в свой репозиторий. Шучу. Просто выбираем ссылку uploading an existing file, а потом ссылку choose your files
  9. Далее загружаем файлы указанные на скрине 3 ниже

Регистрируемся на Zeit Now и запускаем сервер

Теперь требуется подключить наш репозиторий к серверу Zeit Now.

  1. Для регистрации переходим по ссылке и выбираем Continue with GitHub
  2. Далее подключаем наш репозиторий нажав на кнопку Authorize Now by ZEIT
  3. В следующем окне заполняем требуемые данные и соглашаемся с сервисом, до того момента, пока он не предложит Create a new project (Создать новый проект), где мы выбираем From Git Repository
  4. Далее будет предложено установить модуль для связи с GitHub. Нажимаем Install Now For GitHub и выбираем Only select repositories, где из выпадающего списка выбираем свой репозиторий.
  5. Теперь жмем Install
  6. После подключения модуля нужно создать проект с нашим навыком. Нажимаем New Project From GitHub
  7. Выбираем наш репозиторий кнопкой Select и импортируем кнопкой Import
  8. Задаем имя проекта (посложнее, чтобы оно не пересекалось с другими именами проектов Zeit), корневую папку (ROOT) оставляем как есть.
  9. Если все в порядке, то индикатор проекта засветиться бирюзовым и появится ссылка на наш навык.

Создаем приватный навык УДЯ

Для создания навыка УДЯ требуется перейти в кабинет разработчика по ссылке.

  1. Нажимаем большую кнопку "Создать навык" и выбираем типа навыка "Умный дом"
  2. Заполняем информацию о навыке как указано на рисунках 2, 3, 4, где:
  • Указываем Endpoint URL - Url из раздела DOMAINS в кабинете ZEIT. При этом обязательно ставим https:// в начале.
  • Обязательно ставим галочку "Не показывать в каталоге", чтобы не пришлось проходить долгую модерацию и навык не попал в общий каталог.
  • Нажав кнопку "Изменить" указываем:

- Идентификатор приложения - любая строка (можно пару раз упасть головой на клавиатуру) - Секрет приложения - также как и идентификатор - URL авторизации - ссылка, которую указывали в Endpoint URL - URL для получения токена - ссылка вида: https://ссылка_навыка/token - URL для обновления токена - ссылка вида: https://ссылка_навыка/refresh - Идентификатор группы действий - read,home:lights Нажимаем "Сохранить" в окне "Создание связки аккаунтов" и в настройках нашего навыка.
После этого Диалоги попросят подтвердить указанную электронную почту и после подтверждения можно будет подать навык на модерацию. Модерация для приватных навыков происходит мгновенно. После модерации нажимаем "Опубликовать".
После всех действий навык должен появиться в списке навыков при добавлении устройств в УДЯ.


На данном этапе навык создан и работает. Можно перейти к его настройке.

Настройка навыка и добавление устройств

Первоначальная настройка очень проста. В файле config.py нужно указать префикс пользователя и токен для IFTTT (если он будет использоваться).