Страница 22 из 121
Re: ESP8266
Добавлено: Пн мар 30, 2015 11:48 am
SergeyM
Скрипт надо немного допилить и будет работать:
Код: Выделить всё
$idesp=$params['idesp'];
if (!$idesp) return;
say ($idesp);
addClass('ESP8266'); //Создаем класс ESP8266
addClassObject('ESP8266',$idesp); //Создаёт класс заданного имени дочерним от ParentClass
sg ('ESP8266.'.$idesp.".idesp",$idesp);
$esp=getObjectsByClass("ESP8266");
foreach($esp as $obj)
{
if (gg($obj['TITLE'].".idesp") ==$idesp) //
{
if (is_array($params)) {
sg ($obj['TITLE'].".LastUpdate",date("H:i",time()));
foreach($params as $k=>$v) {
if ($k!="script") {
sg($obj['TITLE'].".".$k,$v);
}
}
}
}
}
Re: ESP8266
Добавлено: Вт мар 31, 2015 10:45 pm
visitor2100
Amarok, что то автоматом не создает, можешь экспорт класса выложить.
Re: ESP8266
Добавлено: Вт мар 31, 2015 11:28 pm
visitor2100
Вот мой рабочий скрипт:
Код: Выделить всё
//$light=$params['light']; //Данные с датчика BH1750
//$ds=$params['ds']; //Данные с датчика DS18B20
$adc=$params['adc'];
$counter=$params['counter'];
//$countrst=$params['countrst'];
$counterreset=$params['counterreset'];
$bmpt=$params['bmpt']; //Данные с датчика BMP (температура)
$bmpp=$params['bmpp']; //Данные с датчика BMP (давление)
$dhtt1=$params['dhtt1']; //Данные с первого датчика DHT (температура)
$dhth1=$params['dhth1']; //Данные с первого датчика DHT (влажность)
//$dhtt2=$params['dhtt2']; // Данные со второго датчика DHT (температура)
//$dhth2=$params['dhth2']; //Данные со второго датчика DHT (влажность)
$idesp=$params['idesp']; //ID устройства
$ver=$params['ver']; //Версия прошивки
$vdd=$params['vdd']; //Напряжение на модуле
$freemem=$params['freemem']; //Объем свободной памяти модуля
//setGlobal(($idesp.".light"),$light);
//setGlobal(($idesp.".ds"),$ds);
setGlobal(($idesp.".adc"),$adc);
setGlobal(($idesp.".counter"),$counter);
//setGlobal(($idesp.".countrst"),$countrst);
setGlobal(($idesp.".counterreset"),$counterreset);
setGlobal(($idesp.".bmpt"),$bmpt);
setGlobal(($idesp.".bmpp"),$bmpp);
setGlobal(($idesp.".dhtt1"),$dhtt1);
setGlobal(($idesp.".dhth1"),$dhth1);
//setGlobal(($idesp.".dhtt2"),$dhtt2);
//setGlobal(($idesp.".dhth2"),$dhth2);
setGlobal(($idesp.".idesp"),$idesp);
setGlobal(($idesp.".ver"),$ver);
setGlobal(($idesp.".vdd"),$vdd);
setGlobal(($idesp.".freemem"),$freemem);
+Аналоговый вход ADC;
+Counter Reset
Re: ESP8266
Добавлено: Вт мар 31, 2015 11:33 pm
visitor2100
SergeyM писал(а):Скрипт надо немного допилить и будет работать:
Код: Выделить всё
$idesp=$params['idesp'];
if (!$idesp) return;
say ($idesp);
addClass('ESP8266'); //Создаем класс ESP8266
addClassObject('ESP8266',$idesp); //Создаёт класс заданного имени дочерним от ParentClass
sg ('ESP8266.'.$idesp.".idesp",$idesp);
$esp=getObjectsByClass("ESP8266");
foreach($esp as $obj)
{
if (gg($obj['TITLE'].".idesp") ==$idesp) //
{
if (is_array($params)) {
sg ($obj['TITLE'].".LastUpdate",date("H:i",time()));
foreach($params as $k=>$v) {
if ($k!="script") {
sg($obj['TITLE'].".".$k,$v);
}
}
}
}
}
Этот код у меня ESP на колени ставит) отваливаются. По LastUpdate почти каждую секунду запись. ХЗ может только у меня.
Re: ESP8266
Добавлено: Ср апр 01, 2015 8:33 am
Amarok
visitor2100 писал(а):Amarok, что то автоматом не создает, можешь экспорт класса выложить.
Его нет смысла выкладывать. Эту версию попробуй:
Код: Выделить всё
if ($params['idesp']=="") { return; } //Если ID устройства отсутствует, то перестаем отрабатывать сценарий
addClass('ESP8266'); //Создаем класс ESP8266
addClassObject('ESP8266',$params['idesp']); //Создаем в классе ESP8266 объект где в качестве имени
addClassProperty('ESP8266', 'vdd', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'bmpp', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'bmpt', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'dhth1', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'dhth2', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'dhtt1', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'dhtt2', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'dsw1', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'updated', 1); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 1 дней
addClassProperty('ESP8266', 'updatedTime', 1); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 1 дней
addClassProperty('ESP8266', 'alive', 1); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 1 дней
//Распихиваем всё по свойствам. Если полученное значение пустое, то свойство не записываем
if ($params['bmpp']!="") { sg(($params['idesp'].".bmpp"),$params['bmpp']); } //Данные с датчика BMP (давление)
if ($params['bmpt']!="") { sg(($params['idesp'].".bmpt"),$params['bmpt']); } //Данные с датчика BMP (температура)
if ($params['counter']!="") { sg(($params['idesp'].".counter"),$params['counter']); } //Количество импульсов со счетчика
if ($params['dhth1']!="") { sg(($params['idesp'].".dhth1"),$params['dhth1']); } //Данные с первого датчика DHT (влажность)
if ($params['dhth2']!="") { sg(($params['idesp'].".dhth2"),$params['dhth2']); } //Данные со второго датчика DHT (влажность)
if ($params['dhtt1']!="") { sg(($params['idesp'].".dhtt1"),$params['dhtt1']); } //Данные с первого датчика DHT (температура)
if ($params['dhtt2']!="") { sg(($params['idesp'].".dhtt2"),$params['dhtt2']); } //Данные со второго датчика DHT (температура)
if ($params['dsw1']!="") { sg(($params['idesp'].".dsw1"),$params['dsw1']); } //Данные с датчика DS18B20 №1
if ($params['dsw2']!="") { sg(($params['idesp'].".dsw2"),$params['dsw2']); } //Данные с датчика DS18B20 №2
if ($params['dsw3']!="") { sg(($params['idesp'].".dsw3"),$params['dsw3']); } //Данные с датчика DS18B20 №3
if ($params['dsw4']!="") { sg(($params['idesp'].".dsw4"),$params['dsw4']); } //Данные с датчика DS18B20 №4
if ($params['dsw5']!="") { sg(($params['idesp'].".dsw5"),$params['dsw5']); } //Данные с датчика DS18B20 №5
if ($params['freemem']!="") { sg(($params['idesp'].".freemem"),$params['freemem']); } //Объем свободной памяти модуля
if ($params['hostname']!="") { sg(($params['idesp'].".hostname"),$params['hostname']); } //Имя модуля
if ($params['light']!="") { sg(($params['idesp'].".light"),$params['light']); } //Данные с датчика BH1750
if ($params['uptime']!="") { sg(($params['idesp'].".uptime"),$params['uptime']); } //Время непрерывной работы модуля
if ($params['vdd']!="") { sg(($params['idesp'].".vdd"),$params['vdd']); } //Напряжение на модуле
if ($params['ver']!="") { sg(($params['idesp'].".ver"),$params['ver']); } //Версия прошивки
if ($params['ip']!="") { sg(($params['idesp'].".ip"),$params['ip']); } //Версия прошивки
sg(($params['idesp'].".idesp"),$params['idesp']); //
Re: ESP8266
Добавлено: Ср апр 01, 2015 12:50 pm
SergeyM
оба скрипта рабочие, разница только в том, что в одном параметры прописаны жестко, а в другом появляются по мере их передачи из модуля (подключения соответствующих датчиков)
проблема, скорее всего в БД, зайдите через PHPMyadmin и посмотрите, наверняка такие объекты существуют, но Вы их не видите в Админке. Саму же ESP скрипт вешать не должен.
Re: ESP8266
Добавлено: Ср апр 01, 2015 11:27 pm
visitor2100
Спасибо. Буду пробовать.
Re: ESP8266
Добавлено: Чт апр 02, 2015 10:22 am
ignat99
Re: ESP8266
Добавлено: Чт апр 02, 2015 10:57 am
sergejey
Интересная новость! Надо при случае попробовать.
Re: ESP8266
Добавлено: Чт апр 02, 2015 10:58 am
Jon2015
Ядро поддержки ESP8266, ESP8266WiFi, Ticker, ESP8266WebServer библиотеки были написаны Иваном Grokhotkov, поэтому
обращайтесь к первоисточникам.
англоязычный форум:
http://www.esp8266.com/arduino
русскоязычный форум:
http://esp8266.ru/arduino-ide-esp8266/#fast-start