SmartLiving.ru

Обсуждение проекта
 
Текущее время: Чт окт 19, 2017 8:38 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 1040 ]  На страницу Пред.  1 ... 41, 42, 43, 44, 45, 46, 47 ... 104  След.
Автор Сообщение
 Заголовок сообщения: Re: ESP8266
СообщениеДобавлено: Ср окт 14, 2015 5:11 pm 
В сети

Зарегистрирован: Пт дек 14, 2012 12:24 pm
Сообщения: 1157
Откуда: Россия, Нижняя Тура
Благодарил (а): 339 раз.
Поблагодарили: 72 раз.
[Показать] Скрытый текст: RCremote
Код:
//"Управление приборами по радио 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  


Класс RCRemote:
Вложение:
RCremoteClass.zip [456 байт]
Скачиваний: 80

_________________
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ESP8266
СообщениеДобавлено: Ср окт 14, 2015 7:08 pm 
Не в сети

Зарегистрирован: Вт июн 16, 2015 10:54 pm
Сообщения: 51
Благодарил (а): 4 раз.
Поблагодарили: 11 раз.
devoff писал(а):
T-REX-XP а что нужно сделать ? управлять розеткой или получать данные о включенной розетки ?
Если управлять то просто через GET, если получать то через скрипт.


Для начала, получать данные.
Второе задание, это управление розетками.

Пока ждал ответа, нашел на сайте [url]wiki.barxatperm.ru/index.php?title=ESP8266[/url] описание процесса интеграции.
Сделал все как там написано, все гуд, заработало, потом обновил скрипт на динамический(при котором новые поля создаются автоматом) . даже розетку вкл/выкл могу. но сделано через костыли. посмотреть бы на реализацию нормальную (гибкую, так сказать)) ).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ESP8266
СообщениеДобавлено: Чт окт 15, 2015 1:46 pm 
Не в сети

Зарегистрирован: Пт фев 13, 2015 9:16 pm
Сообщения: 8
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Может кому пригодиться?
Написано при помощи этого плагина для Ардуины
Вложение:
Key_1-4_Switch_1-5_ESP12.zip [3.8 КБ]
Скачиваний: 102

Получаем от 1 кнопка,1 реле,5 свичей(датчик движения,кнопка на дверь,...) до 4 кнопки, 4 реле, 1 свич. Выбирается до прошивки.
GET запросы под ремами в закладке "ReadFromServer".
Запускать скрипт естественно кликнув на "Key_1-4_Switch_1-5_ESP12.ino"

Добавить Объекты/класс : IPaddress

В MajorDoMo Скрипты :

Start
[Показать] Скрытый текст:
Код:
 $addr = $params["addr"];
 $digital = $params["digital"];
 $analog = $params["analog"];
 $switch = $params["switch"];
// Имя устройства
say("Старт $addr",4);
$name = gg("Address$addr.name");
$reboot = gg("Address$addr.reboot");
$reboot = $reboot + 1;
sg("Address$addr.reboot","$reboot");
if(
$name =="") $name ="NEW";
if(
$digital =="") $digital ="0";
if(
$analog =="") $analog ="0";
if(
$switch =="") $switch ="0";

//$hostname = ("Relay$name");

 addClassObject('IPaddress',"Address$addr");
sg("Address$addr.name","$name");
sg("Address$addr.digital","$digital");
sg("Address$addr.analog","$analog");
sg("Address$addr.switch","$switch");

 if($name !="NEW") {
for(
$a=0;$a<$digital;$a++) {
if (strlen($a) == 1) $a = "0".$a;
addClassObject('Relays', "Relay$name$a");
  sg("Relay$name$a.IP",$addr);
  sg("Relay$name$a.pin",$a);
 
 
}
}

//Температурные датчики DS1820 максимум 8 шт.
for($b=0;$b<8;$b++) {
 $dn = "ds$b";
 $dn = $params["ds$b"];
if ($dn != "") {
 $tn = "$t$b";
 $tn = $params["t$dn"];
 addClassObject("tempSensors", "$name$dn");
sg("$name$dn.temp",$tn);
 }
}

//==================================
if ($digital != "") {
for(
$i=0;$i<$digital;$i++) {
if (strlen($i) == 1) $i = "0".$i;
 $onoff = gg("Relay$name$i.OnOff");
 if ($onoff == "1")  {
$read = getURL("http://192.168.1.$addr/Donoff$i,1",0);
if ($read)
{
if (ereg ("([0-9]{3}):([0-9]{2}):([0-1]{1}):([0-9]{3})", $read, $data)) {
 $IP = $data[1];
 $pin = $data[2];
 $onoff = $data[3];
 $level = $data[4];
 
$name 
= gg("Address$IP.name");
$hostname = ("Relay$name");

sg("$hostname$pin.IP",$IP);
sg("$hostname$pin.pin",$pin);
sg("$hostname$pin.OnOff",$onoff);
 
 if 
($onoff == "0") {
  sg("$hostname$pin.OnOff","0");
  sg("$hostname$pin.TextOnOff","off");
  sg("$hostname$pin.Text","выключен");
  
 
}
 if ($onoff == "1") {
  sg("$hostname$pin.OnOff","1");
  sg("$hostname$pin.TextOnOff","on");
  sg("$hostname$pin.Text","включён");
  
 
}
}
}
 }
 }
}
//==================================

if ($analog != "") {
for(
$i=0;$i<$analog;$i++) {
if (strlen($i) == 1) $i = "0".$i;
 $onoff = gg("Lamp$name$i.OnOff");
 $level = gg("Lamp$name$i.Level");
getURL("http://192.168.1.$addr/Alevel$i,$onoff,$level",0);
 }
}

Relay
[Показать] Скрытый текст:
Код:
//$name = "Relays";
$days = "400";

$addr = $params['addr'];
$pin = $params['pin'];
$onoff = $params['onoff'];

$name = gg("Address$addr.name");
$hostname = ("Relay$name");
addClassObject("Relays", "$hostname$pin");
addClassProperty("Relays", "OnOff", "$days");

sg("$hostname$pin.pin",$pin);
sg("$hostname$pin.IP",$addr);
sg("$hostname$pin.OnOff",$onoff);
if ($onoff == 0) {
 sg("$hostname$pin.Text","выключен");
 sg("$hostname$pin.TextOnOff","off");
}
if ($onoff == 1) {
 sg("$hostname$pin.Text","включен");
 sg("$hostname$pin.TextOnOff","on");
}
//$say=gg("$hostname$pin.Text");

//say("Реле $say",3);        

Switch
[Показать] Скрытый текст:
Код:
$days = "400";

$addr = $params['addr'];
$sw = $params['sw'];
$onoff = $params['onoff'];

$name = gg("Address$addr.name");
$hostname = ("Switch$name");
addClassObject("Switchs", "$hostname$sw");
addClassProperty("Switchs", "OnOff", "$days");
sg("$hostname$sw.OnOff",$onoff);

$Metod = gg("$hostname$sw.Metod");

//+++++++ Metod - "move" start +++++++++++++++++

if($Metod =="move") {
$rele = gg("$hostname$sw.OffReley");

$ip=gg("$rele.IP");
$pin=gg("$rele.pin");

$read = getURL("http://192.168.1.$ip/Donoff$pin,$onoff",0);
}
if ($onoff == 0) {
 sg("$hostname$sw.Text","нет движения");
 sg("$hostname$sw.TextOnOff","off");
}
if ($onoff == 1) {
 sg("$hostname$sw.Text","есть движение");
 sg("$hostname$sw.TextOnOff","on");
}
//+++++++ Metod - "move" stop ++++++++++++++++++
//+++++++ Metod - "door" start +++++++++++++++++

if($Metod =="door") {
$rele = gg("$hostname$sw.OffReley");

$ip=gg("$rele.IP");
$pin=gg("$rele.pin");

if ($onoff == 1) {
 sg("$hostname$sw.Text","дверь открыта");
 sg("$hostname$sw.TextOnOff","on");
$read = getURL("http://192.168.1.$ip/Donoff$pin,$onoff",0);
}
if ($onoff == 0) {
 sg("$hostname$sw.Text","дверь закрыта");
 sg("$hostname$sw.TextOnOff","off");
}
}
//+++++++ Metod - "door" stop ++++++++++++++++++

if ($read)
{
if (ereg ("([0-9]{3}):([0-9]{2}):([0-1]{1}):([0-9]{3})", $read, $data)) {
 $IP = $data[1];
 $pin = $data[2];
 $onoff = $data[3];
 $level = $data[4];
 
$name 
= gg("Address$IP.name");
$hostname = ("Relay$name");

sg("$hostname$pin.IP",$IP);
sg("$hostname$pin.pin",$pin);
sg("$hostname$pin.OnOff",$onoff);
 
 if 
($onoff == "0") {
  sg("$hostname$pin.OnOff","0");
  sg("$hostname$pin.TextOnOff","off");
  sg("$hostname$pin.Text","выключен");
  
 
}
 if ($onoff == "1") {
  sg("$hostname$pin.OnOff","1");
  sg("$hostname$pin.TextOnOff","on");
  sg("$hostname$pin.Text","включён");
  
 
}
}
}



Releys Методы

refresh
[Показать] Скрытый текст:
Код:
$ip=$this->getProperty("IP");
$pin=$this->getProperty("pin");

$read = getURL("http://192.168.1.$ip/Dswitch$pin",0);
if ($read)
{
if (ereg ("([0-9]{3}):([0-9]{2}):([0-1]{1}):([0-9]{3})", $read, $data)) {
 $IP = $data[1];
 $pin = $data[2];
 $onoff = $data[3];
 $level = $data[4];
 
$name 
= gg("Address$IP.name");
$hostname = ("Relay$name");

sg("$hostname$pin.IP",$IP);
sg("$hostname$pin.pin",$pin);
sg("$hostname$pin.OnOff",$onoff);
 $room = gg("$hostname$pin.room");
 $roomOn = gg("$room.ReleyOnOff");
 
 if 
($onoff == "0") {
  sg("$hostname$pin.OnOff","0");
  sg("$hostname$pin.TextOnOff","off");
  sg("$hostname$pin.Text","выключен");
  $roomOn = $roomOn -1;
  sg("$room.ReleyOnOff","$roomOn");
  
 
}
 if ($onoff == "1") {
  sg("$hostname$pin.OnOff","1");
  sg("$hostname$pin.TextOnOff","on");
  sg("$hostname$pin.Text","включён");
  $roomOn = $roomOn +1;
  sg("$room.ReleyOnOff","$roomOn");
  
 
}
}

switch
[Показать] Скрытый текст:
Код:
$onoff=$this->getProperty("OnOff");
$ip=$this->getProperty("IP");
$pin=$this->getProperty("pin");

$read = getURL("http://192.168.1.$ip/Donoff$pin,$onoff",0);

if ($read)
{
if (ereg ("([0-9]{3}):([0-9]{2}):([0-1]{1}):([0-9]{3})", $read, $data)) {
 $IP = $data[1];
 $pin = $data[2];
 $onoff = $data[3];
 $level = $data[4];
 
$name 
= gg("Address$IP.name");
$hostname = ("Relay$name");

sg("$hostname$pin.IP",$IP);
sg("$hostname$pin.pin",$pin);
sg("$hostname$pin.OnOff",$onoff);
 
 if 
($onoff == "0") {
  sg("$hostname$pin.OnOff","0");
  sg("$hostname$pin.TextOnOff","off");
  sg("$hostname$pin.Text","выключен");
  
 
}
 if ($onoff == "1") {
  sg("$hostname$pin.OnOff","1");
  sg("$hostname$pin.TextOnOff","on");
  sg("$hostname$pin.Text","включён");
  
 
}
}


После старта платы зайти в свойства IPaddress/AddressXXX(XXX - последние 3 знака IPишника),
заменить в "name" NEW на свой типа "Bedroom" и снова стартануть плату.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ESP8266
СообщениеДобавлено: Вс окт 18, 2015 1:41 pm 
Не в сети

Зарегистрирован: Вс янв 05, 2014 5:37 am
Сообщения: 133
Благодарил (а): 6 раз.
Поблагодарили: 10 раз.
Коллеги, доброго времени суток. Собираю стенд с датчиками движения, и esp, не могу понять как MDM принять данные с esp8266, прошивка с homes-smart последняя. прописал в скрипте, но это скорее всего не то.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ESP8266
СообщениеДобавлено: Вс окт 18, 2015 2:19 pm 
Не в сети

Зарегистрирован: Сб дек 21, 2013 9:21 pm
Сообщения: 208
Откуда: Spain
Благодарил (а): 1 раз.
Поблагодарили: 21 раз.
Вот не понимаю снова если вы делает программы, то почему не сделаете прошивку самостоятельно. Если же вы не программист, то почему не купите готовую систему с поддержкой последенй homes-smart. Если вам нужен MDM - закажите работу создателю этой программы.

_________________
http://onename.com/ignat


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ESP8266
СообщениеДобавлено: Пн окт 19, 2015 10:34 pm 
Не в сети

Зарегистрирован: Вт фев 25, 2014 2:13 pm
Сообщения: 13
Благодарил (а): 6 раз.
Поблагодарили: 0 раз.
присоединяюсь к вопросу alekszander.
Я первый раз имею дело с системой МДМ. И мне с первого раза не понятно как оно работает. В настройках дачтика (у меня дачтик температуры) прописал IP адрес МДМ сервера. А вот что и как прописывать в самой МДМ не понятно.

Может кто скинет скрины созданных объектов и сценариев с системы МДМ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ESP8266
СообщениеДобавлено: Вт окт 20, 2015 6:49 pm 
Не в сети

Зарегистрирован: Вс янв 05, 2014 5:37 am
Сообщения: 133
Благодарил (а): 6 раз.
Поблагодарили: 10 раз.
lcf2003 писал(а):
присоединяюсь к вопросу alekszander.
Я первый раз имею дело с системой МДМ. И мне с первого раза не понятно как оно работает. В настройках дачтика (у меня дачтик температуры) прописал IP адрес МДМ сервера. А вот что и как прописывать в самой МДМ не понятно.

Может кто скинет скрины созданных объектов и сценариев с системы МДМ?

Создаеш в сценариях скрипт с именем espdata
Вложение:
2015-10-21 01-40-17 Панель управления - Google Chrome.png
2015-10-21 01-40-17 Панель управления - Google Chrome.png [ 51.79 КБ | Просмотров: 18377 ]


Вот с таким содержимым
[Показать] Скрытый текст: Вот с таким содержимым
$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 минут а может и меньше и все.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ESP8266
СообщениеДобавлено: Чт окт 22, 2015 12:34 pm 
Не в сети

Зарегистрирован: Вс янв 05, 2014 5:37 am
Сообщения: 133
Благодарил (а): 6 раз.
Поблагодарили: 10 раз.
В общем опытным путём выяснилось что во время сработки датчика движения, скрипт отрабатывает, так как меняется время аптайма, но свойство не прописывается. Почему не понятно. Согласно документации разработчика необходимо создать скрипт espdata..... Свойство для датчиков движения active send-"gpioint", в скрипте прописано. Если кто нибудь сталкивался с такой проблемой как решали?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ESP8266
СообщениеДобавлено: Чт окт 22, 2015 12:40 pm 
Не в сети

Зарегистрирован: Ср сен 05, 2012 7:30 am
Сообщения: 420
Откуда: Киров
Благодарил (а): 0 раз.
Поблагодарили: 70 раз.
В новой версии модуля с поддержкой 4 прерываний нумеруются от 1 до 4 , т.е. gpioint1 , gpioint2, gpioint3, gpioint4, а не gpioint.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ESP8266
СообщениеДобавлено: Вт окт 27, 2015 4:08 pm 
Не в сети

Зарегистрирован: Вс янв 05, 2014 5:37 am
Сообщения: 133
Благодарил (а): 6 раз.
Поблагодарили: 10 раз.
Всем доброго времени суток. В общем так и не ушла система дальше стола, до сих пор не могу понять, почему mdm не может нормально в свойствах объекта отбразить сработку геркона. Подключаю к GPIO14. Причем опять же, по времени видно, что скрипт отрабатывает, так как обновляется время. Но свойства gpioint1 не обновляется.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1040 ]  На страницу Пред.  1 ... 41, 42, 43, 44, 45, 46, 47 ... 104  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB