Взаимодействовать со шлюзом можно с помощью HTTP API команд. Поддерживаются GET и POST сообщения. В большинстве случаев команды возвращают JSON объект с результатом запроса и его статусом.
В целях безопасности в меню Settings -> Users можно ограничить доступ к API токеном. В таком случае для доступа необходимо передавать параметр:
&token=e9d38bed.......f4ef49476a2ed9575
Большая часть команд возвращает объект JSON:
При успехе:
{"success":true,"result":[]|{}}При ошибке
{ "success": false }GET /api/messages-history?action=Параметр action может принимать следующие значения:
action=getBufferaction=setLevel&value=1action=getLevel
GET /api/rebootGET /api/zigbee/devicesGET /api/zigbee/remove?dev=XXXGET /api/zigbee/remove?dev=XXX&force=trueGET /api/zigbee/rename?old=XXX&new=YYYGET /api/zigbee/join?duration=255&target=XXX- duration: продолжительность режима. Значения больше 0 указывают период ожидания в секундах. Для выключения - 0. Параметр не обязательный.
- target: разрешает сопряжение на конкретном роутере. Параметр не обязательный.
Внимание! Запускать, только понимая, что вы делаете.
Процесс занимает несколько минут. Информацию об очистке видно в логе.
GET /api/zigbee/clearnvramGET /api/zigbee?dev=0xABCD&action=setInterview&state=0GET /api/wifi?action=scanNetworksGET /api/zigbee?dev=0x2855&action=getStateValue&name=brightnessВыполнить команду Get в конвертере
GET /api/zigbee?dev=0x2855&action=getState&name=brightnessGET /api/zigbee?dev=0x2855&action=setState&name=state&value=ONУстановка состояния state, равным ON для устройства с адресом nwkAddr = 0x2855.
Адрес может быть в формате IEEE, либо FriendlyName. Например:
stateможет принимать значенияon,off,togglecommandможет бытьopen,close,stopи другие, в зависимости от типа устройства.
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- получить текущий статус
Все команды 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
Получить список скриптов с назначенными таймерами
GET /api/scriptsЗапустить скрипт test.lua
GET /api/scripts?action=evalFile&path=/test.luaЗапустить текст скрипта
GET /api/scripts?action=evalCode&plain=print("ok!")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://192.168.1.34/gpio?st=2&pin=12")http.request2("http://192.168.1.71/switch/sw1/toggle", "POST")if Event.State.Value == "btn_2_single" then
http.request2("http://192.168.2.200/objects/?object=MegaD1-12&op=m&m=switch")
endlocal myIP = http.request("http://wtfismyip.com/text")
print("My IP: " .. myIP)