[Модуль] MegaD (megad)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

kas58
Сообщения: 25
Зарегистрирован: Пн дек 12, 2016 7:51 am
Благодарил (а): 11 раз
Поблагодарили: 1 раз

Re: Модуль "MegaD"

Сообщение kas58 » Ср сен 20, 2017 11:32 pm

Сергей! Можно в модуле убрать как то приставку hum:?
У меня метод округляет температуру нормально а влажность в 0.

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

$temp = $this->getProperty('value');
$this->setProperty('value', (int)($temp));
Вложения
MegaD-3.PNG
MegaD-3.PNG (13.55 КБ) 8193 просмотра
MegaD.PNG
MegaD.PNG (15 КБ) 8193 просмотра
MegaD-1.PNG
MegaD-1.PNG (10.87 КБ) 8193 просмотра
MegaD-2.PNG
MegaD-2.PNG (8.83 КБ) 8193 просмотра
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Модуль "MegaD"

Сообщение Jager » Чт сен 21, 2017 8:29 am

kas58 писал(а):Можно в модуле убрать как то приставку hum:?
Это не проблема модуля, это в какой то из версий прошивки MegaD.
Изображение
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

Re: Модуль "MegaD"

Сообщение Jilber » Чт сен 21, 2017 8:38 am

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

Re: Модуль "MegaD"

Сообщение kas58 » Чт сен 21, 2017 3:06 pm

Jilber писал(а):Уже пробовали убрать подобные вещи в этой теме.
Раньше у меня такой вариант работал

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

$tmp[0]=str_replace("hum:", "", $tmp[1]);
После обновления модуля, это уже не помогает.
kas58
Сообщения: 25
Зарегистрирован: Пн дек 12, 2016 7:51 am
Благодарил (а): 11 раз
Поблагодарили: 1 раз

Re: Модуль "MegaD"

Сообщение kas58 » Чт сен 21, 2017 3:16 pm

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]; 
Но хочется что бы на уровне модуля поправили, после обновлений все слетает, не удобно.
andrey1509
Сообщения: 87
Зарегистрирован: Ср ноя 09, 2016 10:21 am
Откуда: Липецкая обл.
Благодарил (а): 22 раза
Поблагодарили: 2 раза

Re: Модуль "MegaD"

Сообщение andrey1509 » Ср окт 11, 2017 6:08 pm

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
Доброго времени. Если есть возможность напишите пошагово как подключали датчики в МД.
Для особо одаренных ......
Debian Linux 7,Linux 3.2.0-4-686-pae on i686
Intel(R) Celeron(R) CPU 1.70GHz, 1 cores
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Ср окт 11, 2017 8:32 pm

А какие датчики интересуют?

В общем плане порядок действий такой (предполагаем, что датчик подключен корректно и его показания мы наблюдаем в вэб-интерфейсе Меги):
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).
За это сообщение автора Chainik поблагодарил:
andrey1509 (Ср окт 11, 2017 8:36 pm)
Рейтинг: 1.16%
andrey1509
Сообщения: 87
Зарегистрирован: Ср ноя 09, 2016 10:21 am
Откуда: Липецкая обл.
Благодарил (а): 22 раза
Поблагодарили: 2 раза

Re: Модуль "MegaD"

Сообщение andrey1509 » Чт окт 12, 2017 6:44 pm

Chainik писал(а):А какие датчики интересуют?
Датчик BME280. Попробовал не получается.
Debian Linux 7,Linux 3.2.0-4-686-pae on i686
Intel(R) Celeron(R) CPU 1.70GHz, 1 cores
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Чт окт 12, 2017 8:05 pm

У меня такого датчика нет, но это, думаю не помеха.

Читаю из описания как получать значения с этого датчика:
СпойлерПоказать
Отображение атмосферного давления (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);
 
За это сообщение автора Chainik поблагодарили (всего 2):
andrey1509 (Чт окт 12, 2017 10:00 pm) • Kuzma (Пт апр 20, 2018 8:52 pm)
Рейтинг: 2.33%
andrey1509
Сообщения: 87
Зарегистрирован: Ср ноя 09, 2016 10:21 am
Откуда: Липецкая обл.
Благодарил (а): 22 раза
Поблагодарили: 2 раза

Re: Модуль "MegaD"

Сообщение andrey1509 » Чт окт 12, 2017 8:11 pm

Chainik писал(а):У меня такого датчика нет, но это, думаю не помеха.

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

Ну вот же у товарища majkl84 все получилось
Читал о этом , видимо мозгов не хватает :oops:
Вот к этому товарищу , в основном, и направлено обращение.
Он может занят или еще чего......., поэтому не в личку , а на форуме. Есть же такие как я, у которых не получается.
Debian Linux 7,Linux 3.2.0-4-686-pae on i686
Intel(R) Celeron(R) CPU 1.70GHz, 1 cores
Ответить