Страница 82 из 140

Re: Модуль "MegaD"

Добавлено: Ср сен 20, 2017 11:32 pm
kas58
Сергей! Можно в модуле убрать как то приставку hum:?
У меня метод округляет температуру нормально а влажность в 0.

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

$temp = $this->getProperty('value');
$this->setProperty('value', (int)($temp));

Re: Модуль "MegaD"

Добавлено: Чт сен 21, 2017 8:29 am
Jager
kas58 писал(а):Можно в модуле убрать как то приставку hum:?
Это не проблема модуля, это в какой то из версий прошивки MegaD.
Изображение

Re: Модуль "MegaD"

Добавлено: Чт сен 21, 2017 8:38 am
Jilber
Уже пробовали убрать подобные вещи в этой теме.

Re: Модуль "MegaD"

Добавлено: Чт сен 21, 2017 3:06 pm
kas58
Jilber писал(а):Уже пробовали убрать подобные вещи в этой теме.
Раньше у меня такой вариант работал

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

$tmp[0]=str_replace("hum:", "", $tmp[1]);
После обновления модуля, это уже не помогает.

Re: Модуль "MegaD"

Добавлено: Чт сен 21, 2017 3:16 pm
kas58
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
andrey1509
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_ ... &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_ ... &i2c_par=1"); sg('BME280.temp',$temp);
//Отображение влажности (BME280)
$hum = file_get_contents("http://10.0.6.65/sec/?pt=31&scl=30&i2c_ ... &i2c_par=2"); sg('BME280.hum',$hum);
Теперь осталось в информерах на сцене, в меню, при построении графиков и т.д.
В меню сделал теперь надо чтоб данный сценарий периодически выполнялся смотрю в сторону cron
Доброго времени. Если есть возможность напишите пошагово как подключали датчики в МД.
Для особо одаренных ......

Re: Модуль "MegaD"

Добавлено: Ср окт 11, 2017 8:32 pm
Chainik
А какие датчики интересуют?

В общем плане порядок действий такой (предполагаем, что датчик подключен корректно и его показания мы наблюдаем в вэб-интерфейсе Меги):
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%5 == 0) {runScript("GetТemperature");} 
Такой код будет запускать сценарий (названный "GetТemperature") с кодом опроса датчика раз в 5 минут.

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

Re: Модуль "MegaD"

Добавлено: Чт окт 12, 2017 6:44 pm
andrey1509
Chainik писал(а):А какие датчики интересуют?
Датчик BME280. Попробовал не получается.

Re: Модуль "MegaD"

Добавлено: Чт окт 12, 2017 8:05 pm
Chainik
У меня такого датчика нет, но это, думаю не помеха.

Читаю из описания как получать значения с этого датчика:
СпойлерПоказать
Отображение атмосферного давления (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
andrey1509
Chainik писал(а):У меня такого датчика нет, но это, думаю не помеха.

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

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