Итак, давайте разбираться с HTTP запросами (HTTP Requests). Я буду повторяться, но зато мысль будет стройнее.
Такс, HTTP запросы нам позволяют управлять контроллером VERA3/VeraLite без доступа на веб-морду. Управлять можно как находясь локально с контроллером в одной сети (local access), так и удаленно (remote access) из любой точки Земли, где есть интернет. Сами запросы будут различаться только первой частью строки запроса, но сейчас мы рассмотрим локальное управление, когда вы с контроллером в одной сети и имеете прямой доступ по IP-адресу.
Итак, ниже привожу пример НТТР запроса:
http://ip_address:3480/data_request?id=action&output_format=xml&DeviceNum=6&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1
давайте разбирать по порядку запрос, чтобы понимать что обозначают и для чего нужны каждая из частей запроса.
Первая часть запроса:
http://ip_address:3480/ - ip_address это адрес вашего контроллера локально, сюда нужно его ввести вместо текста, чтобы запрос пробрался по сети именно к вашему контроллеру, а не ушел мимо. Здесь вы меняете ip_address на 4 числа разделенные точками (так называемые стэки). Для примера: 192.168.1.34 после этого через двоеточие идет номер порта 3480, эта цифра всегда остается без изменений, только по этому порту проходят все команды в контроллер. С этим блоком закончили.
Идем дальше.
data_request?id=action&output_format=xml – это код обращения к контроллеру, чтобы он понял что делать и о чем пойдет запрос в дальнейшем. Вы здесь ничего не меняете, эта строка будет меняться в зависимости от того запрос на что вы посылаете. Эта часть является шаблонной и потом я сделаю список по функциям запросов, где вы сможете увидеть как она меняется в зависимости от цели запроса.
Далее.
&DeviceNum=6 – эта часть сообщает контроллеру к какому устройству идет запрос. Вам необходимо только поменять цифру после знака «=». Эту цифру вы можете взять из настроек нужного вам устройства на вкладке settings или advanced. Не путайте Номер устройства, который нам нужен с ID устройства в вашей сети, он нам не нужен. См. картинку.
Следующее.
&serviceId=urn:upnp-org:serviceId:SwitchPower1& - эта часть строки обращается к LUUP engine контроллера и сообщает ему, что ему нужно будет выполнить команду по включению/выключению устройства. Здесь вы ничего не меняете, все остается как есть.
Продолжаем.
action=SetTarget& - данная часть строки запроса сообщает контроллеру, что он сейчас будет выполнять запрос на установку параметра SetTarget. Собственно этот параметр известен всем фанатам LUUP программирования, он означает установку цели для выключателя. Цель может быть включить/выключить. Здесь ничего не меняем.
Финал строки.
newTargetValue=1 – это указание контроллеру установить новое значение для параметра SetTarget, в данном случае новое значение равно 1, что означает включить. Это значение может быть либо 0 (выключить) либо 1 (включить). Эту цифру вы меняете в зависимости от того, что вам нужно сделать.
Итак, смотрим на строку еще раз, красным выделено то, что вам надо менять под свои нужды, а все остальное остается без изменений.
http://ip_address:3480/data_request?id=action&output_format=xml&DeviceNum=6&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1
то есть фактически вам надо постоянно ставить свой IP-адрес контроллера, а далее, в зависимости от того, чем хотите управлять, номер устройства и собственно что делать с ним включить/выключить.
Теперь рассмотрим какие запросы бывают и что они обозначают. Красным обозначаю те значение, которые вам нужно менять под свои нужды, остальное не трогаете.
User_data – этот запрос выдает вам данные конфигурации контроллера, которые представляют собой список всех устройств и UPnP переменных, которые сохранялись между перезагрузками контроллера, а также номера, имена и другие данные заданные пользователем при конфигурации.
http://ip_address:3480/data_request?id=user_data&output_format=xml
status – этот запрос показывает текущее состояние всех устройств, включая всех текущих переменных UPnP и статуса любых активных заданий.
http://ip_address:3480/data_request?id=status&output_format=xml - общий запрос на все устройства в сети.
http://ip_address:3480/data_request?id=status&output_format=xml&DeviceNum=6 – запрос на конкретное устройство
sdata - Это сокращенная форма user_data и status (SDATA = сводные данные). Этот запрос позволяет пользователю получить краткую информацию о данных, которые представляются пользователю для мониторинга изменений.
http://ip_address:3480/data_request?id=sdata&output_format=xml
Actions (действия)
Device (устройства)
Следующие запросы выполняют следующие функции:
http://ip_address:3480/data_request?id=device&action=rename&device=5&name=Chandalier&room=3
Переименование устройства. В данном запросе мы хотим присвоить устройству №5 название Chandalier и перенести его в комнату №3. (вместо номера комнаты можно указать ее название, например, room=Garage)
http://ip_address:3480/data_request?id=device&action=delete&device=5
Удаление устройства – этим запросом мы хотим удалить из системы устройство №5
Lua Actions (действия Lua)
Запросы на отправку UPnP действий (управление устройствами)
http://ip_address:3480/data_request?id=action&output_format=xml&DeviceNum=6&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1
Данный запрос позволяет включить/выключить какое-либо устройство (возможные значения для команды newTargetValue могут быть либо 1 либо 0. 1=включить, 0=выключить)
http://ip_address:3480/data_request?id=action&output_format=json&DeviceNum=7&serviceId=urn:upnp-org:serviceId:Dimming1&action=SetLoadLevelTarget&newLoadLevelTarget=30
Данный запрос позволяет диммировать нагрузку. (возможные значения для команды newLoadLevelTarget могут быть в диапазоне от 0 до 100, что равняется проценту накала лампочки)
http://ip_address:3480/data_request?id=action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=RunScene&SceneNum=1
Этот запрос позволяет запускать, предварительно созданную в контроллере сцену. SceneNum вы найдете в настройках сцены в контроллере. См. картинку.
http://ip_address:3480/data_request?id=action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=CreatePlugin&PluginNum=3066
Данный запрос позволяет вам установить какой-либо плагин на контроллер, если вы знаете его номер. В примере выше мы хотим установить плагин с номером 3066 (это ProgramLogicEventGenerator)
http://ip_address:3480/data_request?id=update_plugin&Plugin=3066
Данный запрос позволяет вам обновить любой плагин до последней версии. В данном примере плагин c номером 3066 (ProgramLogicEventGenerator)
Variableset (установка переменной)
http://ip_address:3480/data_request?id=variableset&DeviceNum=6&serviceId=urn:micasaverde-com:serviceId:DoorLock1&Variable=Status&Value=1
Этот запрос позволяет устанавливать переменную для устройства. Сам пока не до конца разобрался. Если мы управляем реле для включения света, то мы используем команду описанную ранее. А если мы управляем другими типами устройств, вроде замков, датчиков движения и прочее, то мы используем эту команду. Здесь помимо IP-адреса, номера устройства и значения переменной, нужно указывать какому устройству (тип) мы будем присваивать переменную. Вроде как-то так.
Variableget (запрос переменной)
http://ip_address:3480/data_request?id=variableget&DeviceNum=6&serviceId=urn:micasaverde-com:serviceId:DoorLock1&Variable=Status
Данный запрос позволяет узнать, какая переменная в данный момент установлена на устройстве.
Reload (перезагрузка)
http://ip_address:3480/data_request?id=reload
с помощью этого запроса мы можем перезагрузить наш контроллер.
Iprequests (IP запросы)
http://ip_address:3480/data_request?id=iprequests&timeout=3600
Данный запрос позволяет получить данные о последних отправленных запросах за определенный промежуток времени (timeout). Промежуток указывается в секундах. В полученном ответе самыми первыми будут самые недавние запросы, а в конце – самые последние.
Relay (ретранслирование)
Контроллер позволяет через НТТР запросы получить ретранслированный доступ к любому другому IP адресу находящемуся в одной сети с контроллером. Например, можно через контроллер с помощью НТТР запроса получить доступ к сетевому хранилищу.
Например, ваше сетевое хранилище находится по адресу 192.168.1.55, доступ осуществляется через порт 80. Значит НТТР запрос будет выглядеть следующим образом:
http://ip_address:3480/data_request?id=relay&ip=192.168.1.55&port=80
в ответ на этот запрос придет примерно следующее: "someserver:20202". С этого момента в течение 15 минут ваше сетевое хранилище будет доступно по адресу: http://someserver:20202
если вы хотите получить доступ к камере наблюдения (например, устройство №5 в вашей Z-Wave сети), то нужно выполнить следующий запрос:
http://ip_address:3480/data_request?id=relay&device=5
В ответ на запрос придет примерно вот такое сообщение: "someserver:20211" и если вы знаете, что DataStreamingURL, например video.mpeg то в течение 15 минут у вас будет доступ к камере по адресу: http://someserver:20211/video.mpeg
В случае, если для доступа к камере необходимо пройти НТТР аутентификацию, то вам нужно для просмотра видео в строке браузера написать:
http://login:password@someserver:20211/video.mpeg
Где login:password через двоеточие это ваши логин и пароль для доступа к камере.
Все то же самое вы можете делать и удаленно, с использование серверов MiOS из любой точки мира, где есть интернет. Все НТТР запросы для этого остаются такими же как и для локального использования, единственное отличие в том, что вам необходимо заменить локальный адрес и порт контроллера.
https://fwdX.mios.com/mioslogin/miospassword/serialnumber/data_request?id=user_data
выделенное красным цветом это те данные, которые вам необходимо ввести вместо IP-адреса и номера порта, продолжение строки остается таким же, как и в случае локального управления.
В начале строки по порядку указываются следующие данные:
fwdX.mios.com – это сервер по которому вы удаленно подключаетесь к контроллеру, он для всех одинаковый кроме цифры, которая ставится в замен символа «Х». я не знаю как у остальных, у меня эта цифра «7» и адрес сервера выглядит так: fwd7.mios.com
mioslogin – это ваш логин для входа на сервер MiOS
miospassword – это ваш пароль для входа на сервер MiOS
serialnumber – это серийный номер вашего контроллера. Он обычно указывается на дне контроллера и состоит из 8 цифр.
P.S. я обошел вниманием ряд HTTP запросов, которые есть в вики, потому что я просто в них еще не разобрался и не понимаю для чего они применяются. Если у кого-то есть дополнения, прошу дописывать. Я хотел бы, чтобы эта информация с максимально возможными разъяснениями была доступна большинству пользователей у которых недостаточно знаний, чтобы почерпнуть эту информацию из англоязычных источников, к тому же в этих источниках очень скупые описания, т.к. пользователи, которые там пишут в основном считают, что информацию, которую я описал выше все должны знать как само собой разумеющееся.
Благодарю за внимание.
UPD 09/2016: описанный способ для удаленного сервера в UI7 не работает.