Модуль работы с Vera lite
Добавлено: Вс ноя 29, 2015 11:51 pm
Поскольку сеть z-wave с контроллером Vera lite у меня есть, а возможностей на Vera реализовать все свои хотелки у меня нет, то я начал искать, что вообще есть по умным домам и нашел MJD. Проект мне очень понравился, огромнейшее спасибо
Сергею за проделанную работу!
Сам я ни разу не программист, если не считать, что в детстве видел Basic... на ZX-Spectrum... издалека... на этом мое программирование заканчивается. В общем-то из-за этого я не могу реализовать свои желания на Vera, хотя технически для этого там все есть, можно самому писать плагины или модифицировать имеющиеся и даже вроде бы все описывается обычным xml-ем.
Но, для любой внешней интеграцией (даже с тем же погодным сайтом) нужен плагин и далеко не для всего они есть, а писать свой, я пока не готов. Поэтому, поставил MD и пробую настраивать.
Для интеграции MD с Vera можно использовать http-запросы. Т.е. все, что сконфигурировано в Vera легко управляется по http.
Например (пробел вставлен чтобы ссылка не укорачивалась):
http:// 192.168.1.34:3480/data_request?id=lu_action&DeviceNum=19&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1
http:// 192.168.1.34:3480/data_request?id=lu_action&DeviceNum=19&serviceId=urn:upnp-
org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=0
Установить значение устройства 19 (реле на свет) 1 или 0, где 1 - включить, 0 - выключить
Или
http://192.168.1.34:3480/data_request?i ... lTarget=30
Установить диммеру с номером 23, значение 30 (30% яркости)
Или
http://192.168.1.34:3480/data_request?i ... eviceNum=7
Получить данные с устройства 7 (температурный датчик)
В ответ приходит:
{ "Device_Num_7": { "states": [ { "id": 80, "service": "urn:upnp-org:serviceId:TemperatureSensor1", "variable": "CurrentTemperature", "value": "24" }...
В целом, интеграция выглядит несложно, но поскольку, как я уже сказал, что далеко не программист, то дается мне это крайне тяжко.
За вчерашний вечер я научился получать http-запросом температуру и вписывать её во вкладку климат. Для этого использовал веб-переменные, где переменная устанавливается http-запросом, а дальше отображается в меню. Насколько это рационально, пока не понял.
За сегодняшний вечер научился управлять диммером, опять же через меню управления и элемент "Выключатель". Самое сложное было найти подходящий пример кода, который отправляет http-запрос.
Эх, почти час ушел на поиск вот этих волшебных строк
getURL("http://192.168.0.67/cgi-bin/master?op=s ... in').";",0);
$this->setProperty("status",1);
Ну а дальше, поскольку читать переменные с устройства и посылать управляющие запросы получилось, то осталось только масштабировать это на все имеющиеся устройства в z-wave.
Отсюда и вопрос, может быть я изобретаю велосипед? Может быть до меня это уже все сделано, а я не нашел нужной темы?
Если уже есть, подскажите пожалуйста.
А если еще нет, то вопрос к Сергею, насколько сложно создать http-интеграцию с Vera?
Вся конфигурация Vera выгружается в xml файл, а управляются все устройства однотипно.
Типов устройств не так много, вот все основные примеры. http://wiki.micasaverde.com/index.php/L ... ts#actions
Sends a UPnP action.
To call the action for a single device, use DeviceNum.
To call the action for all devices in the same category, use Category.
Examples:
Turn off a light:
http://ip_address:3480/data_request?id=action&output_format=xml&DeviceNum=6&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=0
Set a dimmable light to 30%:
http://ip_address:3480/data_request?id=action&output_format=json&DeviceNum=7&serviceId=urn:upnp-org:serviceId:Dimming1&action=SetLoadLevelTarget&newLoadlevelTarget=30
Run a scene:
http://ip_address:3480/data_request?id=action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=RunScene&SceneNum=<SceneNum>
Turn off all lights:
http://ip_address:3480/data_request?id=action&output_format=xml&Category=999&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=0
Arm all sensors:
http://ip_address:3480/data_request?id=action&output_format=xml&Category=4&serviceId=urn:micasaverde-com:serviceId:SecuritySensor1&action=SetArmed&newArmedValue=1
Сергею за проделанную работу!
Сам я ни разу не программист, если не считать, что в детстве видел Basic... на ZX-Spectrum... издалека... на этом мое программирование заканчивается. В общем-то из-за этого я не могу реализовать свои желания на Vera, хотя технически для этого там все есть, можно самому писать плагины или модифицировать имеющиеся и даже вроде бы все описывается обычным xml-ем.
Но, для любой внешней интеграцией (даже с тем же погодным сайтом) нужен плагин и далеко не для всего они есть, а писать свой, я пока не готов. Поэтому, поставил MD и пробую настраивать.
Для интеграции MD с Vera можно использовать http-запросы. Т.е. все, что сконфигурировано в Vera легко управляется по http.
Например (пробел вставлен чтобы ссылка не укорачивалась):
http:// 192.168.1.34:3480/data_request?id=lu_action&DeviceNum=19&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1
http:// 192.168.1.34:3480/data_request?id=lu_action&DeviceNum=19&serviceId=urn:upnp-
org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=0
Установить значение устройства 19 (реле на свет) 1 или 0, где 1 - включить, 0 - выключить
Или
http://192.168.1.34:3480/data_request?i ... lTarget=30
Установить диммеру с номером 23, значение 30 (30% яркости)
Или
http://192.168.1.34:3480/data_request?i ... eviceNum=7
Получить данные с устройства 7 (температурный датчик)
В ответ приходит:
{ "Device_Num_7": { "states": [ { "id": 80, "service": "urn:upnp-org:serviceId:TemperatureSensor1", "variable": "CurrentTemperature", "value": "24" }...
В целом, интеграция выглядит несложно, но поскольку, как я уже сказал, что далеко не программист, то дается мне это крайне тяжко.
За вчерашний вечер я научился получать http-запросом температуру и вписывать её во вкладку климат. Для этого использовал веб-переменные, где переменная устанавливается http-запросом, а дальше отображается в меню. Насколько это рационально, пока не понял.
За сегодняшний вечер научился управлять диммером, опять же через меню управления и элемент "Выключатель". Самое сложное было найти подходящий пример кода, который отправляет http-запрос.
Эх, почти час ушел на поиск вот этих волшебных строк
getURL("http://192.168.0.67/cgi-bin/master?op=s ... in').";",0);
$this->setProperty("status",1);
Ну а дальше, поскольку читать переменные с устройства и посылать управляющие запросы получилось, то осталось только масштабировать это на все имеющиеся устройства в z-wave.
Отсюда и вопрос, может быть я изобретаю велосипед? Может быть до меня это уже все сделано, а я не нашел нужной темы?
Если уже есть, подскажите пожалуйста.
А если еще нет, то вопрос к Сергею, насколько сложно создать http-интеграцию с Vera?
Вся конфигурация Vera выгружается в xml файл, а управляются все устройства однотипно.
Типов устройств не так много, вот все основные примеры. http://wiki.micasaverde.com/index.php/L ... ts#actions
Sends a UPnP action.
To call the action for a single device, use DeviceNum.
To call the action for all devices in the same category, use Category.
Examples:
Turn off a light:
http://ip_address:3480/data_request?id=action&output_format=xml&DeviceNum=6&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=0
Set a dimmable light to 30%:
http://ip_address:3480/data_request?id=action&output_format=json&DeviceNum=7&serviceId=urn:upnp-org:serviceId:Dimming1&action=SetLoadLevelTarget&newLoadlevelTarget=30
Run a scene:
http://ip_address:3480/data_request?id=action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=RunScene&SceneNum=<SceneNum>
Turn off all lights:
http://ip_address:3480/data_request?id=action&output_format=xml&Category=999&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=0
Arm all sensors:
http://ip_address:3480/data_request?id=action&output_format=xml&Category=4&serviceId=urn:micasaverde-com:serviceId:SecuritySensor1&action=SetArmed&newArmedValue=1