Главная  /  Программа «Smacont-ESP»  /  Обмен данными с устройством по HTTP протоколу методом GET

Обмен данными с устройством по HTTP протоколу методом GET


Содержание

Общие данные
Отправка данных на устройство
Запрос данных от устройства
Чтение данных, с использованием действия «GET-запрос»
Запись данных, с использованием действия «GET-запрос»
Состояние обмена




Общие данные

Отправка и запрос данных устройства по HTTP протоколу методом GET используется в следующих случаях:

• для обмена данными между устройствами (device-to-device);

• для обмена данными между устройством и другими приложениями и сервисами, такими как:
- приложение «HTTP Request Shortcuts»;
- приложение «Tasker» (или его аналогами: Locale, Llama, Automagic, AutomateIt, MacroDroid, E-Robot, Automate — automatic tasks, EasyProfiles, Dessin, Atooma, Swip);
- приложение «Ассистент Дуся»;
- системы умного дома «ioBroker»;
- системы умного дома «MajorDomo»;

При этом, устройства под управлением программы «Smacont-ESP», могут быть объединены в сеть через роутер, так и без него.



Отправка данных на устройство

Отправка данных на устройство подразумевает под собой изменение значения какой-либо переменной «Vx».

В зависимости от того, какое устройство «привязано» к переменной «Vx», будет выполнено то или иное действие, например, включение/отключение GPIO, изменение положения сервопривода, изменение яркости освещения (изменение скважности ШИМ), изменение цвета (изменение скважности ШИМ) и т.д.

Для изменения значения переменной «Vx» необходимо отправить на устройство GET-запрос следующего формата:

http://192.168.1.207/set/?V10=1000.01&pwd=oper

или

http://192.168.1.207/set/?V10=1000.01&pwda=admin


где:
192.168.1.207 - IP-адрес устройства;
set - признак изменения значения переменной;
V1=1000.01 - номер переменной и новое значение для данной переменной;
pwd - признак пароля «Оператор»;
oper - пароль «Оператор»;
pwdа - признак пароля «Администратор»;
admin - пароль «Администратор»;

В ответ на команду изменения переменной «Vx», устройство сформирует ответ в json-формате (см. рис. ниже).


Смаконт. Изменение значения переменной «Vx» по HTTP протоколу методом GET

Изменение значения переменной «Vx» по HTTP протоколу методом GET

Допускается в одном запросе указывать сразу несколько переменных «Vx», разделенных между собой, символом «&»:

http://192.168.1.207/set/?V10=1000.01&V12=1&V14=0&V139=33.5789&pwd=oper



Запрос данных от устройства

Для запроса данных от устройства, необходимо отправить на устройство GET-запрос следующего формата:

http://192.168.1.207/get/?p=status&pwd=oper

или

http://192.168.1.207/get/?p=status&pwda=admin


где:
192.168.1.207 - IP-адрес устройства;
get - признак запроса значений переменных;
p=status - тип запроса (запрос значений переменных);
pwd - признак пароля «Оператор»;
oper - пароль «Оператор»;
pwdа - признак пароля «Администратор»;
admin - пароль «Администратор»;

В ответ на команду изменения переменной «Vx», устройство сформирует ответ в json-формате (см. рис. ниже).


Смаконт. Изменение значения переменной «Vx» по HTTP протоколу методом GET

Запрос данных от устройства по HTTP протоколу методом GET



Чтение данных, с использованием действия «GET-запрос»

Для изменения или для запроса значений переменных «Vx» другого устройства используется действие «GET-запрос».

Пример запроса значений переменных «Vx» устройством «А» от устройства «В». С устройства «В» запрашивается массив переменных с номерами «V10»...«V23» включительно (14 переменных).

Устройство «А»: IP-адрес 192.168.1.250
Устройство «В»: IP-адрес 192.168.1.207

Внешний вид окна, для настройки действия на устройстве «А», представлен на рис. ниже.


Смаконт. Изменение значения переменной «Vx» по HTTP протоколу методом GET

Запрос данных от устройства по HTTP протоколу методом GET

Далее необходимо заполнить два текстовых шаблона (в действии «GET-запрос» по умолчанию используется «T06» и «T07»), в которых будут храниться параметры «<хост>» и «[/][?<параметры>]».


Смаконт. Текстовые шаблоны

Текстовые шаблоны

После заполнения текстовых шаблонов, окно настройки действия «GET-запрос» будет выглядеть как на рис. ниже.


Смаконт. Действие «GET-запрос»

Действие «GET-запрос»

Следующим шагом, необходимо заполнить следующие поля:
«Vx - начало массива в ответе на GET-запрос» - «V10», с какой переменной «Vx» устройства «В», будут сохранены на устройстве «А»;
«Количество элементов массива в ответе на GET-запрос» - «V10»...«V23» включительно (14 переменных);
«Vx, куда будет сохраняться массив» - «V40»;


Смаконт. Действие «GET-запрос»

Действие «GET-запрос»

После выполнения действия «GET-запрос», значения переменных «V10»...«V23» включительно (14 переменных), от устройства «В», будут отображаться на устройстве «А», как переменные «V40»...«V53» включительно.


Смаконт. Переменные «Vx»

Переменные «Vx»



Запись данных, с использованием действия «GET-запрос»

Пример запроса изменения значения переменной «V10» устройством «А», на устройстве «В».

Устройство «А»: IP-адрес 192.168.1.250
Устройство «В»: IP-адрес 192.168.1.207

Аналогично примеру выше, необходимо заполнить два текстовых шаблона (в действии «GET-запрос» по умолчанию используется «T06» и «T07»), в которых будут храниться параметры «<хост>» и «[/][?<параметры>]».


Смаконт. Текстовые шаблоны

Текстовые шаблоны

Как видно на рис. выше, в качестве значения переменной «V10», указано значение «$V10» (/set/?V10=$V10&pwd=oper). Данная запись означает, что при обработке текстового шаблона, вместо значения «$V10», будет подставлено текущее значение переменной «V10».

Внешний вид окна, для настройки действия на устройстве «А», представлен на рис. ниже.


Смаконт. Изменение значения переменной «Vx» по HTTP протоколу методом GET

Изменение данных по HTTP протоколу методом GET

Одновременно с изменением значения переменной на устройстве «В», можно настроить запрос значений от устройства «В». Для этого необходимо заполнить параметры как и в примере выше.

В этом случае, изменение значения переменной и запрос значений переменных от устройства «В» будет происходить одновременно.

Созданное действие можно использовать в сценариях, например, вызывать действие при изменении переменной «V10». В этом случае, изменение переменной «V10» на устройстве «А» будет вызывать изменение значения переменной «V10» на устройстве «В».



Состояние обмена

При необходимости, возможен контроль состояния обмена между устройствами. Для этого используется параметр «Состояние обмена», который можно «привязать», например, к переменной «V70» (см. рис. ниже).


Смаконт. Состояние обмена

Состояние обмена

Значения параметра «Состояние обмена»:
0 – сетевое соединение с сервером не удалось (ошибка подключения к серверу);
1 – успешный обмен данными с сервером (код ответа сервера 200);
2 – превышение времени ожидания ответа от сервера (тайм-аут);
3 – неверный запрос на сервер (код ответа сервера 400);
4 – неверный запрос на сервер (код ответа сервера 500);
5 – нет информации о состоянии соединения с сервером;
6 – отсутствует подключение к точке доступа;
10 – ошибка парсинга ответа от сервера;

В результате, можно создать сценарий, когда при ошибке обмена будет формироваться световая или звуковая сигнализация, или отправка тревожного сообщения по mqtt-протоколу.



Программы

Прошивка «Smacont-ESP»:
скачать

«Программа Настройки»:
запусить (только браузер Firefox)
скачать zip-архив

Телеграм канал

Новости

Энергонезависимая память (EEPROM)

Переменные «Vx» (карта переменных «Vx»)

WEB-интерфейс

Действие «wifi_CheckConn()». После подключения к WiFi-сети, выполнить действие с задержкой

Обмен данными. Open Monitoring

Датчики температуры и влажности AHT10/AHT15/AHT20/AHT21/AHT25

Датчик температуры и влажности SHT30 (SHT31/SHT35)

Действие «valueToVx()», «valueToArrVx()». Отслеживание заданного уровня в диапазоне значений

Действие «termostat()». Термостат

ESP-NOW. Датчик температуры и влажности с питанием от батареек

Последовательные интерфейсы (UART, I2C, SPI)

Управление одноканальным модулем реле

Протокол MQTT

Обмен данными. NarodMon

Обмен данными. ioControl



Программы для модулей ESP     Программы     Применения     Справочник         Контакты     SMACONT. Напишите нам smacont@ya.ru