Skip to content

Latest commit

 

History

History
226 lines (146 loc) · 7.11 KB

http_api.md

File metadata and controls

226 lines (146 loc) · 7.11 KB

Описание HTTP API

Введение

Взаимодействовать со шлюзом можно с помощью HTTP API команд. Поддерживаются GET и POST сообщения. В большинстве случаев команды возвращают JSON объект с результатом запроса и его статусом.

Безопасность

В целях безопасности в меню Settings -> Users можно ограничить доступ к API токеном. В таком случае для доступа необходимо передавать параметр:

&token=e9d38bed.......f4ef49476a2ed9575

Возвращаемые значения

Большая часть команд возвращает объект JSON:

При успехе:

{"success":true,"result":[]|{}}

При ошибке

{ "success": false }

Доступные команды HTTP API

Система

Управление режимом логирования

GET /api/messages-history?action=

Параметр action может принимать следующие значения:

  • action=getBuffer
  • action=setLevel&value=1
  • action=getLevel

Перезагрузка шлюза

GET /api/reboot

Zigbee

Команды zigbee API не доступны в режиме моста.

Получить список устройств сети zigbee

GET /api/zigbee/devices

Запрос устройству XXX покинуть сеть zigbee

GET /api/zigbee/remove?dev=XXX

Запрос устройству XXX покинуть сеть Zigbee и безусловное удаление

GET /api/zigbee/remove?dev=XXX&force=true

Переименование устройства в сети zigbee

GET /api/zigbee/rename?old=XXX&new=YYY

Управление режимом сопряжения

GET /api/zigbee/join?duration=255&target=XXX
  • duration: продолжительность режима. Значения больше 0 указывают период ожидания в секундах. Для выключения - 0. Параметр не обязательный.
  • target: разрешает сопряжение на конкретном роутере. Параметр не обязательный.

Очистка NVRAM

Внимание! Запускать, только понимая, что вы делаете.

Процесс занимает несколько минут. Информацию об очистке видно в логе.

GET /api/zigbee/clearnvram

Запуск интервью на устройстве

GET /api/zigbee?dev=0xABCD&action=setInterview&state=0

Получить список доступных сетей WiFi

GET /api/wifi?action=scanNetworks

Получить текущее значение состояния из кэша

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=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

привязывает скрипт 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

Запустить скрипт test.lua с параметром parameter

GET /api/scripts?action=evalFile&path=test.lua&param=parameter

Запустить текст скрипта

GET /api/scripts?action=evalCode&plain=print("ok!")

Примеры

Отправк 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")

Переключение gpio 12 для прошивки wifi-iot

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")

Переключение 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

Запрос информации со стороннего ресурса

local myIP = http.request("http://wtfismyip.com/text")
print("My IP: " .. myIP)