ESP8266

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Контактная информация:

Re: ESP8266

Сообщение Vovix »

MaksMS82 писал(а):
Vovix писал(а): MaksMS82,
что-то я не смог зарегистрироваться, похоже, здесь - http://esp8266.homes-smart.ru/?
Или сначала деньги, "а потом стулья"? :D
Только что проверил - все нормально, регистрация проходит..
Да, спасибо, у меня тоже всё в порядке стало!!!! Комп мой наверно тупил дома!?
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Skull
Сообщения: 38
Зарегистрирован: Вт фев 17, 2015 1:52 pm

Re: ESP8266

Сообщение Skull »

Всем доброго времени суток !
Подскажите как подключить ESP к MD, пожалуйста. Тему покурил до последнего сообщения, в ESP указал адрес сервера (у меня он 192.168.1.101), создал сценарий espdata, создал объект ESP8266009f3dad (id), импортировал приложенный в теме файлик, однако поля остаются пустыми.
лог выполнения сценария-
Warning: Illegal string offset 'light' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 1
Warning: Illegal string offset 'ds' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 2
Warning: Illegal string offset 'bmpt' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 3
Warning: Illegal string offset 'bmpp' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 4
Warning: Illegal string offset 'dhtt1' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 5
Warning: Illegal string offset 'dhth1' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 6
Warning: Illegal string offset 'dhtt2' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 7
Warning: Illegal string offset 'dhth2' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 8
Warning: Illegal string offset 'idesp' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 9
Warning: Illegal string offset 'ver' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 10
Warning: Illegal string offset 'vdd' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 11
Warning: Illegal string offset 'freemem' in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(139) : eval()'d code on line 12
Изображение
SergeyF
Сообщения: 9
Зарегистрирован: Чт фев 27, 2014 4:21 pm

Re: ESP8266

Сообщение SergeyF »

У меня вот такой скрипт espdata:

Код: Выделить всё

$idesp=$params['idesp'];
if (!$idesp) return;
$esp=getObjectsByClass("ESP8266");
foreach($esp as $obj) 
{
    if (gg($obj['TITLE'].".idesp") ==$idesp)
    {
        if (is_array($params)) {
           foreach($params as $k=>$v) {    
            if ($k!="script") {
            sg($obj['TITLE'].".".$k,$v);
               }
           }
         }
    }
}
 
в этом случае имя объекта может быть осмысленным, а идентификатор хранится в свойстве класса idesp.
при любых изменениях передаваемых параметров от ESP все они тут же будут добавлены объекту
Skull
Сообщения: 38
Зарегистрирован: Вт фев 17, 2015 1:52 pm

Re: ESP8266

Сообщение Skull »

ругается на первую строку
Отсюда http://wiki.barxatperm.ru/index.php?title=ESP8266
тоже не помогает- не видно данные.
Jon2015
Сообщения: 28
Зарегистрирован: Чт фев 05, 2015 8:07 pm

Re: ESP8266

Сообщение Jon2015 »

SergeyF писал(а):У меня вот такой скрипт espdata:

Код: Выделить всё

$idesp=$params['idesp'];
if (!$idesp) return;
$esp=getObjectsByClass("ESP8266");
foreach($esp as $obj) 
{
    if (gg($obj['TITLE'].".idesp") ==$idesp)
    {
        if (is_array($params)) {
           foreach($params as $k=>$v) {    
            if ($k!="script") {
            sg($obj['TITLE'].".".$k,$v);
               }
           }
         }
    }
}
 
в этом случае имя объекта может быть осмысленным, а идентификатор хранится в свойстве класса idesp.
при любых изменениях передаваемых параметров от ESP все они тут же будут добавлены объекту
Спасибо. Гениальное все просто.
Все переменные прописались в свойствах. И не надо больше просить разработчиков, что они там намутили с переменными.
У меня уже напрашивался вопрос: какие буковки зарезервировали под gpio, А тут на тебе, и все появилось само собой.
Skull
Сообщения: 38
Зарегистрирован: Вт фев 17, 2015 1:52 pm

Re: ESP8266

Сообщение Skull »

Ребят, может кто расскажет пошагово ?
kostya066
Сообщения: 53
Зарегистрирован: Чт ноя 27, 2014 10:43 am

Re: ESP8266

Сообщение kostya066 »

Skull писал(а):Ребят, может кто расскажет пошагово ?
Покажи что у тебя в скрипте лежит.
Попробуй положить в скрипт вот это:

Код: Выделить всё

$idesp=$params['idesp'];
say($idesp);
 
в через 5 минут должно в логах появится ID устройства
Skull
Сообщения: 38
Зарегистрирован: Вт фев 17, 2015 1:52 pm

Re: ESP8266

Сообщение Skull »

Да, появилось. Что делать дальше ?
в скрипте лежит что из Вики :
$light=$params['light']; //Данные с датчика BH1750
$ds=$params['ds']; //Данные с датчика DS18B20
$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']; //Объем свободной памяти модуля
Аватара пользователя
Amarok
Сообщения: 1434
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Контактная информация:

Re: ESP8266

Сообщение Amarok »

SergeyF писал(а):У меня вот такой скрипт espdata:
...
в этом случае имя объекта может быть осмысленным, а идентификатор хранится в свойстве класса idesp.
при любых изменениях передаваемых параметров от ESP все они тут же будут добавлены объекту
Можно скрин глянуть?
Моя Алиска живёт на Proxmox в Debian 12
kostya066
Сообщения: 53
Зарегистрирован: Чт ноя 27, 2014 10:43 am

Re: ESP8266

Сообщение kostya066 »

Skull писал(а):Да, появилось. Что делать дальше ?
в скрипте лежит что из Вики :
$light=$params['light']; //Данные с датчика BH1750
$ds=$params['ds']; //Данные с датчика DS18B20
$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']; //Объем свободной памяти модуля
Этот код правильный, но у вас в классе объект называется ID устройство.
отсюда и затык, к выше указанному коду нужно дописать setGlobal(($idesp.".хххх"),$xxxx);
Это будет выглядеть вот так:

Код: Выделить всё

$light=$params['light'];  //Данные с датчика BH1750
$ds=$params['ds'];        //Данные с датчика DS18B20
$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.".bmpt"),$bmpt);
setGlobal(($idesp.".bmpp"),$bmpp);
setGlobal(($idesp.".dhtt1"),$dhtt1);
setGlobal(($idesp.".dhtt2"),$dhtt2);
setGlobal(($idesp.".dhth1"),$dhth1);
setGlobal(($idesp.".dhth2"),$dhth2);
setGlobal(($idesp.".idesp"),$idesp);
setGlobal(($idesp.".ver"),$ver);
setGlobal(($idesp.".vdd"),$vdd);
setGlobal(($idesp.".freemem"),$freemem);

а попробуйте положить этот код, заодно и проверим как он работает:)

Код: Выделить всё

$idesp=$params['idesp'];
if (!$idesp) return;
$esp=getObjectsByClass("ESP8266");
foreach($esp as $obj) 
{
    if (gg($obj['TITLE'].".idesp") ==$idesp)
    {
        if (is_array($params)) {
           foreach($params as $k=>$v) {    
            if ($k!="script") {
            sg($obj['TITLE'].".".$k,$v);
               }
           }
         }
    }
}
 
Ответить