//"Управление приборами по радио v1.2"
//
//Пример использования сценария RCremote:
//runScript("RCremote",array("device"=>'устройство',"state"=>'статус'));
//
//устройство - название управляемого устройства. Должно совпадать с названием управляемого объекта из класса RCremote!
//статус - устанавливаемый статус устройства. Может принимать значения on (или 1) для включения, и off (или 0) для выключения,
//также возможны значения fullon и fulloff для включения и выключения всех устройств.
$rcremotehub = "192.168.0.4"; //IP RCRemote передатчика
if ($params['state']=="fullon") {
$objects=getObjectsByClass("RCremote");
foreach($objects as $obj) {
say("Включаю все доступные по радиоканалу устройства",0);
if (gg($obj['TITLE'].".on")) {
$url = "http://".$rcremotehub."/rcremote?cmd=".gg($obj['TITLE'].".on")."&bits=".gg($obj['TITLE'].".bits"); //Собираем ссылку для RCRemote передатчика
getURL($url,0); //Посылаем команду для RCRemote передатчика
sleep(1); //Ждём 1 секунду и продолжаем перебирать доступные по радиоканалу устройства
} return; }//Перестаем отрабатывать сценарий
}
if ($params['state']=="fulloff") {
$objects=getObjectsByClass("RCremote");
foreach($objects as $obj) {
say("Выключаю все доступные по радиоканалу устройства",0);
if (gg($obj['TITLE'].".off")) {
$url = "http://".$rcremotehub."/rcremote?cmd=".gg($obj['TITLE'].".off")."&bits=".gg($obj['TITLE'].".bits"); //Собираем ссылку для RCRemote передатчика
getURL($url,0); //Посылаем команду для RCRemote передатчика
sleep(1); //Ждём 1 секунду и продолжаем перебирать доступные по радиоканалу устройства
} return; }//Перестаем отрабатывать сценарий
}
if ($params['device']=="") {say("Я не знаю с каким устройством должна работать",0); return;} //Если устройство не указано, то перестаем отрабатывать сценарий
$device = $params['device']; //Каким устройством управляем?
if (gg($device.".name") != "") { //Устанавливаем имя устройства
$name = gg($device.".name");
} else {$name = $device;}
if ($params['state']=="") {say("Я не знаю, что должна сделать с устройством под названием «".$name."»",0);return;} //Если состояние устройства не указано, то перестаем отрабатывать сценарий
$state = $params['state']; //Что делаем с устройством?
if ($state == "on" or $state == "1") {$statestat = "Включаю";} else {$statestat = "Выключаю";}
$bits = gg($device.".bits"); //Устанавливаем битность команд управления
$url = "http://".$rcremotehub."/rcremote?cmd=".gg($device.".".$state)."&bits=".$bits; //Собираем ссылку для RCRemote передатчика
getURL($url,0); //Посылаем команду для RCRemote передатчика
say($statestat." устройство под названием «".$name."»",0);
//P.S.: Сценарий выложен по принципу DonateWare. Это значит, что им можно пользоваться безвоздмездно (т.е. - даром),
//но я не откажусь от любой, не обременительной для пользующегося этим сценарием человека, финансовой благодарности.
//Благодарность можно перечислить на следующие электронные кошельки:
//WebMoney: R382335515497 или Z390998873179
//Яндекс.Деньги: 41001355945165
devoff писал(а):T-REX-XP а что нужно сделать ? управлять розеткой или получать данные о включенной розетки ?
Если управлять то просто через GET, если получать то через скрипт.
Для начала, получать данные.
Второе задание, это управление розетками.
Пока ждал ответа, нашел на сайте wiki.barxatperm.ru/index.php?title=ESP8266 описание процесса интеграции.
Сделал все как там написано, все гуд, заработало, потом обновил скрипт на динамический(при котором новые поля создаются автоматом) . даже розетку вкл/выкл могу. но сделано через костыли. посмотреть бы на реализацию нормальную (гибкую, так сказать)) ).
Получаем от 1 кнопка,1 реле,5 свичей(датчик движения,кнопка на дверь,...) до 4 кнопки, 4 реле, 1 свич. Выбирается до прошивки.
GET запросы под ремами в закладке "ReadFromServer".
Запускать скрипт естественно кликнув на "Key_1-4_Switch_1-5_ESP12.ino"
После старта платы зайти в свойства IPaddress/AddressXXX(XXX - последние 3 знака IPишника),
заменить в "name" NEW на свой типа "Bedroom" и снова стартануть плату.
Коллеги, доброго времени суток. Собираю стенд с датчиками движения, и esp, не могу понять как MDM принять данные с esp8266, прошивка с homes-smart последняя. прописал в скрипте, но это скорее всего не то.
Вот не понимаю снова если вы делает программы, то почему не сделаете прошивку самостоятельно. Если же вы не программист, то почему не купите готовую систему с поддержкой последенй homes-smart. Если вам нужен MDM - закажите работу создателю этой программы.
присоединяюсь к вопросу alekszander.
Я первый раз имею дело с системой МДМ. И мне с первого раза не понятно как оно работает. В настройках дачтика (у меня дачтик температуры) прописал IP адрес МДМ сервера. А вот что и как прописывать в самой МДМ не понятно.
Может кто скинет скрины созданных объектов и сценариев с системы МДМ?
lcf2003 писал(а):присоединяюсь к вопросу alekszander.
Я первый раз имею дело с системой МДМ. И мне с первого раза не понятно как оно работает. В настройках дачтика (у меня дачтик температуры) прописал IP адрес МДМ сервера. А вот что и как прописывать в самой МДМ не понятно.
Может кто скинет скрины созданных объектов и сценариев с системы МДМ?
Создаеш в сценариях скрипт с именем espdata
2015-10-21 01-40-17 Панель управления - Google Chrome.png
Вот с таким содержимым
Вот с таким содержимымSPOILER_SHOW
$bmpp=$params['bmpp']; //Данные с датчика BMP (давление)
$bmpt=$params['bmpt']; //Данные с датчика BMP (температура)
$dhth1=$params['dhth1']; //Данные с первого датчика DHT (влажность)
$dhth2=$params['dhth2']; //Данные со второго датчика DHT (влажность)
$dhtt1=$params['dhtt1']; //Данные с первого датчика DHT (температура)
$dhtt2=$params['dhtt2']; //Данные со второго датчика DHT (температура)
$dsw1=$params['dsw1']; //Данные с датчика DS18B20 №1
$dsw2=$params['dsw2']; //Данные с датчика DS18B20 №2
$dsw3=$params['dsw3']; //Данные с датчика DS18B20 №3
$dsw4=$params['dsw4']; //Данные с датчика DS18B20 №4
$dsw5=$params['dsw5']; //Данные с датчика DS18B20 №5
$freemem=$params['freemem']; //Объем свободной памяти модуля
$hostname=$params['$hostname']; //Имя модуля
$idesp=$params['idesp']; //ID устройства
$light=$params['light']; //Данные с датчика BH1750
$uptime=$params['uptime']; //Время непрерывной работы модуля
$vdd=$params['vdd']; //Напряжение на модуле
$ver=$params['ver']; //Версия прошивки
if ($idesp=="") { return; } //Если ID устройства отсутствует, то перестаем отрабатывать сценарий
addClass('ESP8266'); //Создаем класс ESP8266
addClassObject('ESP8266',$idesp); //Создаёт класс заданного имени дочерним от ParentClass
//say("yyyyyyyyyyyyy");
//Распихиваем всё по свойствам. Если полученное значение пустое, то свойство не записываем
if ($bmpp!="") { sg(($idesp.".bmpp"),$bmpp); }
if ($bmpt!="") { sg(($idesp.".bmpt"),$bmpt); }
if ($dhth1!="") { sg(($idesp.".dhth1"),$dhth1); }
if ($dhth2!="") { sg(($idesp.".dhth2"),$dhth2); }
if ($dhtt1!="") { sg(($idesp.".dhtt1"),$dhtt1); }
if ($dhtt2!="") { sg(($idesp.".dhtt2"),$dhtt2); }
if ($dsw1!="") { sg(($idesp.".dsw1"),$dsw1); }
if ($dsw2!="") { sg(($idesp.".dsw2"),$dsw2); }
if ($dsw3!="") { sg(($idesp.".dsw3"),$dsw3); }
if ($dsw4!="") { sg(($idesp.".dsw4"),$dsw4); }
if ($dsw5!="") { sg(($idesp.".dsw5"),$dsw5); }
if ($freemem!="") { sg(($idesp.".freemem"),$freemem); }
if ($hostname!="") { sg(($idesp.".hostname"),$hostname); }
if ($light!="") { sg(($idesp.".light"),$light); }
if ($uptime!="") { sg(($idesp.".uptime"),$uptime); }
if ($vdd!="") { sg(($idesp.".vdd"),$vdd); }
if ($ver!="") { sg(($idesp.".ver"),$ver); }
В настройках ESP указывашь IP MDM ждешь 5 минут а может и меньше и все.
В общем опытным путём выяснилось что во время сработки датчика движения, скрипт отрабатывает, так как меняется время аптайма, но свойство не прописывается. Почему не понятно. Согласно документации разработчика необходимо создать скрипт espdata..... Свойство для датчиков движения active send-"gpioint", в скрипте прописано. Если кто нибудь сталкивался с такой проблемой как решали?
Всем доброго времени суток. В общем так и не ушла система дальше стола, до сих пор не могу понять, почему mdm не может нормально в свойствах объекта отбразить сработку геркона. Подключаю к GPIO14. Причем опять же, по времени видно, что скрипт отрабатывает, так как обновляется время. Но свойства gpioint1 не обновляется.