SmartLiving.ru

Обсуждение проекта
 
Текущее время: Пт дек 15, 2017 3:07 pm

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




Начать новую тему Ответить на тему  [ Сообщений: 848 ]  На страницу Пред.  1 ... 79, 80, 81, 82, 83, 84, 85  След.
Автор Сообщение
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Чт сен 21, 2017 3:06 pm 
Не в сети

Зарегистрирован: Пн дек 12, 2016 7:51 am
Сообщения: 24
Благодарил (а): 9 раз.
Поблагодарили: 0 раз.
Jilber писал(а):
Уже пробовали убрать подобные вещи в этой теме.

Раньше у меня такой вариант работал
Код:
$tmp[0]=str_replace("hum:", "", $tmp[1]);

После обновления модуля, это уже не помогает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Чт сен 21, 2017 3:16 pm 
Не в сети

Зарегистрирован: Пн дек 12, 2016 7:51 am
Сообщения: 24
Благодарил (а): 9 раз.
Поблагодарили: 0 раз.
kas58 писал(а):
Jilber писал(а):
Уже пробовали убрать подобные вещи в этой теме.

Раньше у меня такой вариант работал
Код:
$tmp[0]=str_replace("hum:", "", $tmp[1]); 

После обновления модуля, это уже не помогает.

Вот такой вариант уже работает
Код:
$tmp=explode('/'$states[$i]);
       
$tmp[0]=str_replace("temp:"""$tmp[0]);
       
$tmp[0]=str_replace("hum:"""$tmp[0]);
       
$prop['CURRENT_VALUE_STRING']=$tmp[0];
       if (isset(
$tmp[1])) {
       
$tmp[1]=str_replace("temp:"""$tmp[1]);
       
$tmp[1]=str_replace("hum:"""$tmp[1]);
       
$prop['CURRENT_VALUE_STRING2']=$tmp[1]; 

Но хочется что бы на уровне модуля поправили, после обновлений все слетает, не удобно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Ср окт 11, 2017 6:08 pm 
Не в сети

Зарегистрирован: Ср ноя 09, 2016 10:21 am
Сообщения: 84
Откуда: Липецкая обл.
Благодарил (а): 21 раз.
Поблагодарили: 2 раз.
majkl84 писал(а):
Chainik писал(а):
majkl84 писал(а):
Вроде все получилось сделал сценарий
[Показать] Скрытый текст:
//Отображение влажности (HTU21D/Si7021)
$hum = file_get_contents("http://10.0.6.65/sec/?pt=31&scl=30&i2c_dev=htu21d"); sg('HTU21D.Hum',$hum);
//Отображение температуры (HTU21D)
$temp = file_get_contents("http://10.0.6.65/sec/?pt=31&scl=30&i2c_dev=htu21d&i2c_par=1"); sg('HTU21D.Temp',$temp);

//Отображение атмосферного давления (BMP280/BME280)
$pres = file_get_contents("http://10.0.6.65/sec/?pt=31&scl=30&i2c_dev=bmx280"); sg('BME280.pres',$pres);
//Отображение температуры (BMP280/BME280)
$temp = file_get_contents("http://10.0.6.65/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=1"); sg('BME280.temp',$temp);
//Отображение влажности (BME280)
$hum = file_get_contents("http://10.0.6.65/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=2"); sg('BME280.hum',$hum);

Теперь осталось в информерах на сцене, в меню, при построении графиков и т.д.


В меню сделал теперь надо чтоб данный сценарий периодически выполнялся смотрю в сторону cron

Доброго времени. Если есть возможность напишите пошагово как подключали датчики в МД.
Для особо одаренных ......

_________________
Debian Linux 7,Linux 3.2.0-4-686-pae on i686
Intel(R) Celeron(R) CPU 1.70GHz, 1 cores


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Ср окт 11, 2017 8:32 pm 
Не в сети

Зарегистрирован: Вс янв 10, 2016 11:05 am
Сообщения: 249
Благодарил (а): 24 раз.
Поблагодарили: 56 раз.
А какие датчики интересуют?

В общем плане порядок действий такой (предполагаем, что датчик подключен корректно и его показания мы наблюдаем в вэб-интерфейсе Меги):
1. Записываем значение датчика в какое нибудь Объект.Свойство.
(Например, за запись значения температуры с датчика DS18B20 у меня отвечает такой код
Код:
$T=file_get_contents("http://192.168.0.14/sec/?pt=23&cmd=get");
$T substr($T,5,5);
sg('TempSensor03.temp',$T); 

Датчик, как видно, подключен к порту P23.
Код опроса можно поместить в сценарий или в метод.)

2. Ясно, что единожды запрошенное значение мало интересно. Значит нужно организовать периодический опрос.
Для этого можно записать в «onNewMinute» (Панель управления --> ОБЪЕКТЫ --> Объекты --> [класс] Timer --> ClockChime --> onNewMinute) такой код
Код:
if ($m%== 0) {runScript("GetТemperature");} 

Такой код будет запускать сценарий (названный "GetТemperature") с кодом опроса датчика раз в 5 минут.

3. Использовать полученные данные в интерфейсе. Можно их, например, вставить в информер на сцене или построить график (https://youtu.be/Tz9-tu9R7dM).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Чт окт 12, 2017 6:44 pm 
Не в сети

Зарегистрирован: Ср ноя 09, 2016 10:21 am
Сообщения: 84
Откуда: Липецкая обл.
Благодарил (а): 21 раз.
Поблагодарили: 2 раз.
Chainik писал(а):
А какие датчики интересуют?

Датчик BME280. Попробовал не получается.

_________________
Debian Linux 7,Linux 3.2.0-4-686-pae on i686
Intel(R) Celeron(R) CPU 1.70GHz, 1 cores


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Чт окт 12, 2017 8:05 pm 
Не в сети

Зарегистрирован: Вс янв 10, 2016 11:05 am
Сообщения: 249
Благодарил (а): 24 раз.
Поблагодарили: 56 раз.
У меня такого датчика нет, но это, думаю не помеха.

Читаю из описания как получать значения с этого датчика:
[Показать] Скрытый текст:
Отображение атмосферного давления (BMP280/BME280)
http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=bmx280
Отображение температуры (BMP280/BME280)
http://192.168.0.14/sec/?pt=31&scl=30&i ... &i2c_par=1
Отображение влажности (BME280)
http://192.168.0.14/sec/?pt=31&scl=30&i ... &i2c_par=2


Ну вот же у товарища majkl84 все получилось
Код:
//Отображение атмосферного давления (BMP280/BME280)
$pres file_get_contents("http://10.0.6.65/sec/?pt=31&scl=30&i2c_dev=bmx280"); sg('BME280.pres',$pres);
//Отображение температуры (BMP280/BME280)
$temp file_get_contents("http://10.0.6.65/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=1"); sg('BME280.temp',$temp);
//Отображение влажности (BME280)
$hum file_get_contents("http://10.0.6.65/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=2"); sg('BME280.hum',$hum);
 


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Чт окт 12, 2017 8:11 pm 
Не в сети

Зарегистрирован: Ср ноя 09, 2016 10:21 am
Сообщения: 84
Откуда: Липецкая обл.
Благодарил (а): 21 раз.
Поблагодарили: 2 раз.
Chainik писал(а):
У меня такого датчика нет, но это, думаю не помеха.

Читаю из описания как получать значения с этого датчика:

Ну вот же у товарища majkl84 все получилось

Читал о этом , видимо мозгов не хватает :oops:
Вот к этому товарищу , в основном, и направлено обращение.
Он может занят или еще чего......., поэтому не в личку , а на форуме. Есть же такие как я, у которых не получается.

_________________
Debian Linux 7,Linux 3.2.0-4-686-pae on i686
Intel(R) Celeron(R) CPU 1.70GHz, 1 cores


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Чт окт 12, 2017 8:20 pm 
Не в сети

Зарегистрирован: Вс янв 10, 2016 11:05 am
Сообщения: 249
Благодарил (а): 24 раз.
Поблагодарили: 56 раз.
А что не получается то?

Если, допустим, выполнить из адресной строки браузера (IP-адрес, пароль и порт, конечно же ваши):
Код:
http://10.0.6.65/sec/?pt=31&scl=30&i2c_dev=bmx280  

то значение атмосферного давления с датчика выводится?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Чт окт 12, 2017 8:29 pm 
Не в сети

Зарегистрирован: Ср ноя 09, 2016 10:21 am
Сообщения: 84
Откуда: Липецкая обл.
Благодарил (а): 21 раз.
Поблагодарили: 2 раз.
Chainik писал(а):
А что не получается то?

Если, допустим, выполнить из адресной строки браузера (IP-адрес, пароль и порт, конечно же ваши):
Код:
http://10.0.6.65/sec/?pt=31&scl=30&i2c_dev=bmx280     

то значение атмосферного давления с датчика выводится?

Да


Вложения:
Снимок.PNG
Снимок.PNG [ 9.09 КБ | Просмотров: 407 ]

_________________
Debian Linux 7,Linux 3.2.0-4-686-pae on i686
Intel(R) Celeron(R) CPU 1.70GHz, 1 cores
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль "MegaD"
СообщениеДобавлено: Чт окт 12, 2017 8:46 pm 
Не в сети

Зарегистрирован: Вс янв 10, 2016 11:05 am
Сообщения: 249
Благодарил (а): 24 раз.
Поблагодарили: 56 раз.
Хорошо!
У вас есть в Мажордомо Объект.свойство, куда должно записываться значение атм.давления с этого датчика?
Если нет, создайте это свойство.
Хотя, тренероваться проще всего на температуре. Для температуры тоже нужно создать свойство.
Дальше, например, в методы объекта надо записать метод за запроса значения температуры с датчика:
Код:
$temp = file_get_contents("http://192.168.1.14/sec/?pt=23&scl=24&i2c_dev=bmx280&i2c_par=1");
sg('BME280.temp',$temp);

Вместо "BME280.temp", конечно, должно быть указано ваше Объект.свойство.

Затем попробуйте позапускать этот метод вручную (при этом можно рукой нагревать датчик или как-то еще на него температурно воздействовать, чтобы посмотреть как меняются показания).

Ну и понаблюдать, меняется ли значение свойства после запуска метода (и изменения температуры, например, остывания датчика после его нагревания).


Последний раз редактировалось Chainik Чт окт 12, 2017 8:57 pm, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 848 ]  На страницу Пред.  1 ... 79, 80, 81, 82, 83, 84, 85  След.

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


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

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


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

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