[Модуль] MegaD (megad)
Модератор: immortal
-
- Сообщения: 27
- Зарегистрирован: Чт июл 26, 2018 8:23 pm
- Благодарил (а): 8 раз
- Поблагодарили: 1 раз
Re: Модуль "MegaD"
Модуль MegaD devices не корректно принимает данные с bme280 c самой меги. Строка приходит из исполнительного модуля в виде temp:23.90/press:742.59/hum:56.852. Соответственно модуль Megad в мажордоме видит только первые два значения, влажность теряется. Как быть?
-
- Сообщения: 1463
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Модуль "MegaD"
Вообще не смотреть, что пишется в модуле "MegaD". Запрашивать конкретный параметр с датчика отдельными запросами (из инструкции к Меге):
Код: Выделить всё
Отображение атмосферного давления (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&i2c_dev=bmx280&i2c_par=1
Отображение влажности (BME280)
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=2
Код: Выделить всё
$Hum = file_get_contents("http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=2");
sg('Имя_вашего_объекта.Имя_свойства',$Hum);
для метода:
Код: Выделить всё
if ($m%5 == 0) {callMethod('Имя_вашего_объекта.Имя_метода');}
Код: Выделить всё
if ($m%5 == 0) {runScript("Имя_вашего_сценария");}
- Рейтинг: 2.33%
-
- Сообщения: 27
- Зарегистрирован: Чт июл 26, 2018 8:23 pm
- Благодарил (а): 8 раз
- Поблагодарили: 1 раз
Re: Модуль "MegaD"
Супер, я в пхп 0, сейчас сяду пробовать. А опрашивать датчик раз в 5 секунд возможно?
-
- Сообщения: 1463
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Модуль "MegaD"
Возможно, конечно. Только у меня вопрос, а зачем так часто? Для решения какой практической задачи?
А конкретно по вашему вопросу попробуйте почитать вот здесь (https://majordomo.smartliving.ru/forum/ ... f=4&t=1534).
-
- Сообщения: 27
- Зарегистрирован: Чт июл 26, 2018 8:23 pm
- Благодарил (а): 8 раз
- Поблагодарили: 1 раз
Re: Модуль "MegaD"
Привет, Да вот смысл в том что бы держать влажность когда включается паровой душ, дабы сразу включилась вытяжка и приточка в ванную комнату.
Когда идет проветривание зимой и в холодные месяцы, как только температура в контрольных зонах дошла до минимума, проветривание остановилось.
Температура носителя в трубе ГВС - как только падает что бы шла фиксация и оповещение.
А так некоторые датчики хочется опрашивать раз в минуту а какие то раз в секунду. Освоил пока только через Простые устройства, да частично пробую блокли. Php для меня темный лес.
Вот по твоему примеру отредактировал метод valueUpdate, получил влажность, она с 53,123 а хочу что бы были только десятые, из базы данных взял код создал метод, в связке с ПУ и MegaD devices все ок
// Получаем данные от сенсора
$value = $params['value'];
// Фильтруем данные
//if ($value > 60 || $value < -60) return;
// Выполняем округление с точностью до одного знака
$value = round($value, 1);
// Сохраняем обработанное значение в свойство объекта
$this->setProperty('value', $value);
а что делать теперь с пхп кодом который ты дал я и не понимаю.
Так поплакался, пойду дальше головой об лед биться , каждый затык для меня сейчас проблема ))))
Когда идет проветривание зимой и в холодные месяцы, как только температура в контрольных зонах дошла до минимума, проветривание остановилось.
Температура носителя в трубе ГВС - как только падает что бы шла фиксация и оповещение.
А так некоторые датчики хочется опрашивать раз в минуту а какие то раз в секунду. Освоил пока только через Простые устройства, да частично пробую блокли. Php для меня темный лес.
Вот по твоему примеру отредактировал метод valueUpdate, получил влажность, она с 53,123 а хочу что бы были только десятые, из базы данных взял код создал метод, в связке с ПУ и MegaD devices все ок
// Получаем данные от сенсора
$value = $params['value'];
// Фильтруем данные
//if ($value > 60 || $value < -60) return;
// Выполняем округление с точностью до одного знака
$value = round($value, 1);
// Сохраняем обработанное значение в свойство объекта
$this->setProperty('value', $value);
а что делать теперь с пхп кодом который ты дал я и не понимаю.
Так поплакался, пойду дальше головой об лед биться , каждый затык для меня сейчас проблема ))))
-
- Сообщения: 1463
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Модуль "MegaD"
С "Простыми устройствами" не разбирался (говорят, не такие уж они и простые), поэтому тут подсказать не могу.
Что касается вопроса, куда "запихивать" мой php-код... Вам надо немножко "поразбираться" в объектной модели Мажордомо (классы, объекты, методы, свойства и т.д.).
Делать с кодом примерно следующее (это не догма, просто как вариант).
1. Создаете в объектах новый класс. Называете его, к примеру "Sensors".
2. В классе создаете Метод, например, "GetHumidity". И создаете свойство, например, "Нumidity".
3. Создаете в классе Sensors новый объект, например, "HumSensor01". Добавляете в метод GetHumidity ДАННОГО ОБЪЕКТА (а не класса) код:
Для теста, чтобы убедиться, что все в коде написано правильно, запускаете вручную Объект.Метод "HumSensor01.GetHumidity". После исполнения, в свойстве "Нumidity" объекта "HumSensor01" должно появиться текущее значение влажности с датчика.
4. В «onNewMinute» (ниже строки «$m=date('i',time());») пишите:
Если надо опрашивать раз в минуту, тогда просто пишите:
5. Если надо строить графики, у свойства класса "Нumidity" необходимо включить историю.
Что касается вопроса, куда "запихивать" мой php-код... Вам надо немножко "поразбираться" в объектной модели Мажордомо (классы, объекты, методы, свойства и т.д.).
Делать с кодом примерно следующее (это не догма, просто как вариант).
1. Создаете в объектах новый класс. Называете его, к примеру "Sensors".
2. В классе создаете Метод, например, "GetHumidity". И создаете свойство, например, "Нumidity".
3. Создаете в классе Sensors новый объект, например, "HumSensor01". Добавляете в метод GetHumidity ДАННОГО ОБЪЕКТА (а не класса) код:
Код: Выделить всё
$Hum = file_get_contents("http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=2");
$Hum = round($Hum, 1);
$this->setProperty('Нumidity',$Hum);
4. В «onNewMinute» (ниже строки «$m=date('i',time());») пишите:
Код: Выделить всё
if ($m%5 == 0) {callMethod('HumSensor01.GetHumidity');}
Код: Выделить всё
callMethod('HumSensor01.GetHumidity');
- Рейтинг: 2.33%
- Nail
- Сообщения: 375
- Зарегистрирован: Пн мар 05, 2018 7:09 am
- Откуда: Самара
- Благодарил (а): 174 раза
- Поблагодарили: 28 раз
Re: Модуль "MegaD"
Тут собрался попробовать собрать мини Систему (хотя в этом "ноль") контроля отоплением на Мега 2561 (https://www.ab-log.ru/smart-house/ethernet/megad-2561)
КАК и куда можно подключить датчик NTC 10К ? (https://ru.aliexpress.com/item/2x-NTC-1 ... 33edHwHylt)
Подскажите пжл.(так как их удобно по резьбе вкрутить в бак с тенами(для точности показаний) мне так кажется.
КАК и куда можно подключить датчик NTC 10К ? (https://ru.aliexpress.com/item/2x-NTC-1 ... 33edHwHylt)
Подскажите пжл.(так как их удобно по резьбе вкрутить в бак с тенами(для точности показаний) мне так кажется.
Mini AMD A6 1450 Quad-core.Ubuntu Server 18.04 (64-bit). MegaD. Zigbee2mqtt+SLS DIN Mini. Broadlink.
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1753 раза
- Контактная информация:
Re: Модуль "MegaD"
Имхо, на на форуме аб-лог в части железа быстрее получишь ответ.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: [Модуль] MegaD (megad)
Хмм.... Похоже это аналоговый датчик и на сайте продовца есть калибровочные таблицы. Можно в реальном времени мониторить температуру.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
- Nail
- Сообщения: 375
- Зарегистрирован: Пн мар 05, 2018 7:09 am
- Откуда: Самара
- Благодарил (а): 174 раза
- Поблагодарили: 28 раз
Re: [Модуль] MegaD (megad)
Знает кто как реализовать в МД , сразу двух датчиков на одном порту Меги 2561?
- Вложения
-
- Screenshot_2.jpg (5.23 КБ) 4361 просмотр
-
- Screenshot_1.jpg (6.04 КБ) 4361 просмотр
Mini AMD A6 1450 Quad-core.Ubuntu Server 18.04 (64-bit). MegaD. Zigbee2mqtt+SLS DIN Mini. Broadlink.