Описание HTTP API
Введение
Взаимодействовать со шлюзом можно с помощью HTTP API команд. Поддерживаются GET
и POST
сообщения. В большинстве случаев команды возвращают JSON объект с результатом запроса и его статусом.
Безопасность
В целях безопасности в меню Settings -> Users
можно ограничить доступ к API токеном. В таком случае для доступа необходимо передавать параметр:
&token=e9d38bed.......f4ef49476a2ed9575
Возвращаемые значения
Большая часть команд возвращает объект JSON:
При успехе:
{"success":true,"result":[]|{}}
{"success":true,"result":[]|{}}
При ошибке
{ "success": false }
{ "success": false }
Доступные команды HTTP API
Система
Управление режимом логирования
GET /api/messages-history?action=
GET /api/messages-history?action=
Параметр action
может принимать следующие значения:
action=getBuffer
action=setLevel&value=1
action=getLevel
Перезагрузка шлюза
GET /api/reboot
GET /api/reboot
Zigbee
Команды zigbee API не доступны в режиме моста.
Получить список устройств сети zigbee
GET /api/zigbee/devices
GET /api/zigbee/devices
Запрос устройству XXX покинуть сеть zigbee
GET /api/zigbee/remove?dev=XXX
GET /api/zigbee/remove?dev=XXX
Запрос устройству XXX покинуть сеть Zigbee и безусловное удаление
GET /api/zigbee/remove?dev=XXX&force=true
GET /api/zigbee/remove?dev=XXX&force=true
Переименование устройства в сети zigbee
GET /api/zigbee/rename?old=XXX&new=YYY
GET /api/zigbee/rename?old=XXX&new=YYY
Управление режимом сопряжения
GET /api/zigbee/join?duration=255&target=XXX
GET /api/zigbee/join?duration=255&target=XXX
- duration: продолжительность режима. Значения больше 0 указывают период ожидания в секундах. Для выключения - 0. Параметр не обязательный.
- target: разрешает сопряжение на конкретном роутере. Параметр не обязательный.
Очистка NVRAM
Внимание! Запускать, только понимая, что вы делаете.
Процесс занимает несколько минут. Информацию об очистке видно в логе.
GET /api/zigbee/clearnvram
GET /api/zigbee/clearnvram
Запуск интервью на устройстве
GET /api/zigbee?dev=0xABCD&action=setInterview&state=0
GET /api/zigbee?dev=0xABCD&action=setInterview&state=0
Получить список доступных сетей WiFi
GET /api/wifi?action=scanNetworks
GET /api/wifi?action=scanNetworks
Получить текущее значение состояния из кэша
GET /api/zigbee?dev=0x2855&action=getStateValue&name=brightness
GET /api/zigbee?dev=0x2855&action=getStateValue&name=brightness
Отправить устройству команду чтения состояния
Выполнить команду Get в конвертере
GET /api/zigbee?dev=0x2855&action=getState&name=brightness
GET /api/zigbee?dev=0x2855&action=getState&name=brightness
Записать значение состояния
GET /api/zigbee?dev=0x2855&action=setState&name=state&value=ON
GET /api/zigbee?dev=0x2855&action=setState&name=state&value=ON
Установка состояния state
, равным ON
для устройства с адресом nwkAddr = 0x2855
.
Адрес может быть в формате IEEE
, либо FriendlyName
. Например:
state
может принимать значенияon
,off
,toggle
command
может бытьopen
,close
,stop
и другие, в зависимости от типа устройства.
Настроить правило Simple Bind при изменении состояния
GET /api/zigbee?dev=0x1841&action=setSimpleBind&state=contact&value=test.lua
GET /api/zigbee?dev=0x1841&action=setSimpleBind&state=contact&value=test.lua
привязывает скрипт test.lua
на запуск при изменении состояния contact
, на устройстве с адресом nwkAddr = 0x1841
. Также поддерживается адрес IEEE
, либо FriendlyName
. Также в параметре value
можно указать другие доступные правила SB. Подробнее о SimpleBind
Управление Аудио
Все команды GET
/api/audio?action=play&url=xxx
- проигрывание звука из URL/api/audio?action=geturl
- получить текущий URL/api/audio?action=stop
- остановить проигрывание/api/audio?action=setvolume&value=xxx
- установить уровень громкости/api/audio?action=getvolume
- получить текущий уровень громкости/api/audio?action=getstatus
- получить текущий статус
Touchlink
Все команды GET
/api/zigbee/touchlink
- получить список устройств рядом/api/zigbee/touchlink?action=scan
- запуск сканирования/api/zigbee/touchlink?action=identify&dev=0x00158D00011D8CB1
- Идентификация устройства0x00158D00011D8CB1
/api/zigbee/touchlink?action=reset&dev=0x00158D00011D8CB1
- сброс устройства0x00158D00011D8CB1
Скрипты LUA
Получить список скриптов с назначенными таймерами
GET /api/scripts
GET /api/scripts
Запустить скрипт test.lua
с параметром parameter
GET /api/scripts?action=evalFile&path=test.lua¶m=parameter
GET /api/scripts?action=evalFile&path=test.lua¶m=parameter
Запустить текст скрипта
GET /api/scripts?action=evalCode&plain=print("ok!")
GET /api/scripts?action=evalCode&plain=print("ok!")
Хранилище
LEDs
Объекты
Примеры
Отправк POST запроса
http.request2("http://postman-echo.com:80/post?foo1=bar1", "POST", "Content-Type: text/text; charset=utf-8\r\n", "body")
-- Альтернативный вариант:
http.request("http://postman-echo.com:80/post?foo1=bar1", "POST", "Content-Type: text/text; charset=utf-8\r\n", "body")
http.request2("http://postman-echo.com:80/post?foo1=bar1", "POST", "Content-Type: text/text; charset=utf-8\r\n", "body")
-- Альтернативный вариант:
http.request("http://postman-echo.com:80/post?foo1=bar1", "POST", "Content-Type: text/text; charset=utf-8\r\n", "body")
Переключение gpio 12 для прошивки wifi-iot
http.request2("http://192.168.1.34/gpio?st=2&pin=12")
http.request2("http://192.168.1.34/gpio?st=2&pin=12")
Переключение реле sw1 в прошивке espHome
http.request2("http://192.168.1.71/switch/sw1/toggle", "POST")
http.request2("http://192.168.1.71/switch/sw1/toggle", "POST")
Переключение gpio для MegaD при однократном нажатии btn_2 пульта Jager
if Event.State.Value == "btn_2_single" then
http.request2("http://192.168.2.200/objects/?object=MegaD1-12&op=m&m=switch")
end
if Event.State.Value == "btn_2_single" then
http.request2("http://192.168.2.200/objects/?object=MegaD1-12&op=m&m=switch")
end
Запрос информации со стороннего ресурса
local myIP = http.request("http://wtfismyip.com/text")
print("My IP: " .. myIP)
local myIP = http.request("http://wtfismyip.com/text")
print("My IP: " .. myIP)