1. SONOFF DIY. Базовые основы.

SONOFF: API ПРОТОКОЛ РЕЖИМА DIY* УСТРОЙСТВ

Краткий обзор режима SONOFF DIY

Режим Sonoff DIY разработан для пользователей и разработчиков домашней автоматизации IoT, которые хотели бы управлять устройством SONOFF с помощью существующей платформы домашней автоматизации с открытым исходным кодом или локального HTTP-клиента вместо приложения eWeLink. В режиме DIY, когда устройство подключено к сети, оно будет публиковать свои услуги и возможности в соответствии со стандартом mDNS / DNS-SD. Перед публикацией службы устройство включило HTTP-сервер на порту, указанном в записи DNS SRV. Устройство предоставляет возможности через RESTful API на основе HTTP. Пользователи могут получать информацию об устройстве, управлять устройством, отправляя запрос HTTP API.

*DIY — Самодельничество, или «сделай сам» (англ. DIY — Do It Yourself), — вид деятельности, при котором вы работаете своими руками. В последнее время стала популярна рубрика DIY поделки (источник).

Устройства SONOFF DIY с поддержкой RESTful API

Класс продуктаТип устройствУстройствоПримечание к версии прошивки
Одноканальные
устройства DIY
переключательBASICR3
RFR3
MINI
Прошивка 3.5.0 относится к протоколу API v2.1
Прошивка 3.3.0 относится к протоколу API v1.4
Одноканальное
устройство DIY
диммерD1Прошивка 3.5.0 относится к протоколу API v2.1

Устройства SONOFF могут работать либо в режиме eWeLink, либо в режиме DIY. В режиме eWeLink устройство подключено к облаку eWeLink и управляется приложением eWeLink APP (ссылка), а в режиме DIY устройство публикует свои возможности службы и управляется запросом HTTP Post.

Шаги входа в режим DIY и подключения к существующей сети Wi-Fi:

  1. Вход в режим совместимого сопряжения (AP) SONOFF DIY осуществляется путем длительного нажатия кнопки сопряжения в течение 5 секунд после включения.
Устройство в режиме "точки доступа" / Access Point
Устройство в режиме «точки доступа» / Access Point

2. Подключение точки доступа ITEAD-XXXXXXXXXX с паролем по умолчанию 12345678 через мобильный телефон или ПК.

Соединиться с устройством посредством мобильного телефона по WiFi
Соединиться с устройством посредством мобильного телефона по WiFi

3. Введите в адресной строке браузера http://10.10.7.1/

4. Заполните у существующей сети Wi-Fi SSID и пароль.

5. Вход в режим DIY будет выполнен успешно с подключением к выбранной сети WiFi

Устройство успешно соединилось с сетью Wi-Fi
Устройство успешно соединилось с сетью Wi-Fi

Пример для одноканального устройства SONOFF DIY (BASICR3, RFR3, MINI) входа в режим DIY:

  1. Включить;
  2. Нажмите и удерживайте кнопку в течение 5 секунд, чтобы войти в режим совместимого сопряжения (AP). Совет пользователю: если устройство было сопряжено с приложением eWeLink, необходимо выполнить сброс устройства, удерживая кнопку сопряжения в течение 5 секунд, затем нажмите еще 5 секунд для входа в режим сопряжения (AP)
  3. Светодиодный индикатор будет постоянно мигать.
  4. В настройках WiFi мобильного телефона или ПК будет найдена точка доступа устройства с именем ITEAD-XXXXXXXXXX , подключите ее с паролем по умолчанию 12345678
  5. Откройте браузер и зайдите в http://10.10.7.1/
  6. Затем введите SSID WiFi и пароль сети, к которой устройство должно было подключиться.
  7. Успешно, теперь устройство находится в режиме DIY.

Пример для одноканального диммера SONOFF DIY (D1) входа в режим DIY:

  1. Включить;
  2. Нажмите и удерживайте кнопку сопряжения на пульте дистанционного управления RM433 в течение 5 секунд, чтобы войти в режим совместимого cопряжения (AP). Советы пользователя: если устройство было сопряжено с приложением eWeLink, необходимо выполнить сброс устройства путем длительного нажатия кнопки сопряжения на пульте дистанционного управления RM433 в течение 5 секунд. секунд, затем нажмите еще 5 секунд для входа в режим совместимого сопряжения (AP)
  3. Регулируемый свет, подключенный к D1, будет непрерывно мигать (быстро перейти со 100% на 1%, с 1% на 100%…)
  4. Шаги с 4 по 7 такие же, как в примере с одноканального устройства/выключателя DIY.

Примечание:

  • Пользовательские настройки будут очищены после смены режима работы с одного на другой.
  • Маршрутизатор Wi-Fi или точка доступа должны работать на частоте 2,4 ГГц и поддерживать службу mDNS.
  • Значение мигания светодиода: Быстрое однократное мигание — устройство не подключается к сети WiFi; Быстрое двойное мигание — устройство успешно подключается к Wi-Fi, его можно обнаружить через mDNS и ответить на запрос из сети LAN.
  • Когда устройство уже находится в режиме DIY, страница конфигурации Wi-Fi http://10.10.7.1/ становится недоступной.
  • Если был введен неправильный SSID или пароль Wi-Fi, устройству не удастся подключиться к определенной сети Wi-Fi, с механизмом тайм-аута 20 секунд устройство перестанет подключаться к сети Wi-Fi. Повторите попытку, выполнив шаги 1-7.
  • Официальное обновление прошивки доступно только в приложении eWeLink.

Механизм обнаружения LAN в режиме DIY

Обнаружение LAN в режиме DIY реализует протокол IETF Multicast DNS и протокол обнаружения служб на основе DNS.

Протокол управления устройством RESTful API (HTTP POST)

Устройство должно открыть HTTP-сервер в порту, указанном в записи DNS SRV, прежде чем устройство опубликует свои службы; устройство публикует возможности через RESTful API на основе HTTP. Из-за безопасности локальной сети и ограниченной вычислительной мощности устройства в этом документе рекомендуется, чтобы устройство предоставляло интерфейс HTTP вместо интерфейса HTTPS.

Тип устройства и версия интерфейса API для каждого продукта показаны ниже:

Producttypeapi version
BASICR3
RFR3
MINI
diy_plug1
D1diylight1

Формат запроса и ответа RESTful API устройства SONOFF DIY

Формат запроса RESTful API устройства

URL: http: // [ip]: [port]/[path]

Формат возвращаемого значения: json

Метод HTTP: POST

Пример запроса RESTful API к устройству, работает в методе POST и теле запроса в формате JSON.

{
  "deviceid" : "100000140e" ,
  "data" :
          {
           "switch" : "on"
          }
}

Ответ RESTful API устройства

Пример ответа RESTful API к устройства. работает с кодом ответа HTTP 200 OK и телом ответа в формате JSON.

{
 "seq" : 2 ,
 "error" : 0 ,
 "data" : {
           "signalStrength" : -67
           }  
}

Описание возможных ответов

АтрибутТипОбязательноОписание
seqчислоДаПорядок обновления статуса устройства (также порядок обновления записи TXT)
errorчислоДаУспешно ли устройство устанавливает указанную информацию об устройстве. — 0: успешно — 400: операция завершилась неудачно, и запрос был отформатирован неправильно. Тело запроса не является допустимым форматом JSON. — 401: операция завершилась неудачно, запрос был несанкционированным. На устройстве включено шифрование информации об устройстве, но запрос не зашифрован. — 404: операция завершилась неудачно, устройство не существует. Устройство не поддерживает запрошенный идентификатор устройства. — 422: операция завершилась неудачно, параметры запроса недействительны. Например, устройство не поддерживает настройку конкретной информации об устройстве.
dataОбъектДаТип объекта, он возвращает конкретную информацию об устройстве при проверке информации об устройстве

Примечание:

  • Из-за вычислительных возможностей устройства временной интервал каждого HTTP-запроса должен быть не менее 200 мс.
  • Порт по умолчанию: 8081

Валерий Осин

Оставьте комментарий