Бинго! %) Как сам не додумался, ведь видел же в логах фразы про аваст... %)Может роутер или файрвол блокируют трафик...
[Модуль] MegaD (megad)
Модератор: immortal
-
- Сообщения: 18
- Зарегистрирован: Сб июн 03, 2017 4:57 am
- Откуда: Красноярск
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Модуль "MegaD"
-
- Сообщения: 18
- Зарегистрирован: Сб июн 03, 2017 4:57 am
- Откуда: Красноярск
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Модуль "MegaD"
Работает только при полностью отключенном авасте (интернет секьюрити у меня), пробовал отдельно веб-экран отключать, играть с настройками файрволла - бесполезно. Какая такая деятельность происходит между мегой и мажором, что аваст ее блокирует? Вроде 80 порт в одной подсети...
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: Модуль "MegaD"
Помнится, что-то там по броадкасту еще отправляется/принимается. Может аваст широковещательные пакеты рубит?ferenir писал(а):Работает только при полностью отключенном авасте (интернет секьюрити у меня), пробовал отдельно веб-экран отключать, играть с настройками файрволла - бесполезно. Какая такая деятельность происходит между мегой и мажором, что аваст ее блокирует? Вроде 80 порт в одной подсети...
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 18
- Зарегистрирован: Пт июн 30, 2017 9:43 pm
- Откуда: Златоуст
- Благодарил (а): 4 раза
- Поблагодарили: 0
Re: Модуль "MegaD"
Всем добра!
Буду рад помощи или совету где покататься с кодом, с налета не разобрался где раскладываются запросы с меги.
Требуется подключить в систему датчики DS18B20, сидящие на шине 1-wire, которая подключена к контролеру MegaD-2561-RTC.
В данном контроллере реализована возможность подключения на один порт нескольких датчиков с выбором режима 1WBUS.
С сайта ab-log.ru:
При нажатии на ссылку Device List или через запрос вида
http://192.168.0.14/sec/?pt=32&cmd=list
Можно получить в ответ примерно следующий результат: 8aad6a070000:32.43;85a56a070000:32.43;
Результат отображается по следующему принципу: [адрес датчика]:[температура];[адрес датчика]:[температура];
В данное время датчики на самом контролере отображаются корректно, но системе MajorDoMo порт отображается «31 DSen» c абстрактным значением температуры:
Буду рад помощи или совету где покататься с кодом, с налета не разобрался где раскладываются запросы с меги.
Требуется подключить в систему датчики DS18B20, сидящие на шине 1-wire, которая подключена к контролеру MegaD-2561-RTC.
В данном контроллере реализована возможность подключения на один порт нескольких датчиков с выбором режима 1WBUS.
С сайта ab-log.ru:
При нажатии на ссылку Device List или через запрос вида
http://192.168.0.14/sec/?pt=32&cmd=list
Можно получить в ответ примерно следующий результат: 8aad6a070000:32.43;85a56a070000:32.43;
Результат отображается по следующему принципу: [адрес датчика]:[температура];[адрес датчика]:[температура];
В данное время датчики на самом контролере отображаются корректно, но системе MajorDoMo порт отображается «31 DSen» c абстрактным значением температуры:
-
- Сообщения: 18
- Зарегистрирован: Сб июн 03, 2017 4:57 am
- Откуда: Красноярск
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Модуль "MegaD"
В общем веб-экран и модуль оценки сайтов аваста блокируют общение меги и мажора, настроек в них нет, не помогает даже внесение в список исключений. Техподдержка аваста молчит.skysilver писал(а):Помнится, что-то там по броадкасту еще отправляется/принимается. Может аваст широковещательные пакеты рубит?ferenir писал(а):Работает только при полностью отключенном авасте (интернет секьюрити у меня), пробовал отдельно веб-экран отключать, играть с настройками файрволла - бесполезно. Какая такая деятельность происходит между мегой и мажором, что аваст ее блокирует? Вроде 80 порт в одной подсети...
-
- Сообщения: 18
- Зарегистрирован: Сб июн 03, 2017 4:57 am
- Откуда: Красноярск
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Модуль "MegaD"
viewtopic.php?f=5&t=2263&start=670#p54342koshnv писал(а):Всем добра!
Буду рад помощи или совету где покататься с кодом, с налета не разобрался где раскладываются запросы с меги.
-
- Сообщения: 18
- Зарегистрирован: Пт июн 30, 2017 9:43 pm
- Откуда: Златоуст
- Благодарил (а): 4 раза
- Поблагодарили: 0
Re: Модуль "MegaD"
Код обновления показания датчиков я написал, буду рад если поправите.
Теперь задача:
1) Отслеживать изменения по конкретному датчику с построением временной диаграммы.
2) Реагировать на определенные пороги показаний.
2-е как я понял решается через сценарии, а вот график у меня рисуется один, через свойство родительского объекта "temp".
Я зря создал датчики в самом объекте, надо было их создать в свойствах родительского класса и обновлять показания и реакцию настраивать через скрипт в них?
Теперь задача:
1) Отслеживать изменения по конкретному датчику с построением временной диаграммы.
2) Реагировать на определенные пороги показаний.
2-е как я понял решается через сценарии, а вот график у меня рисуется один, через свойство родительского объекта "temp".
Я зря создал датчики в самом объекте, надо было их создать в свойствах родительского класса и обновлять показания и реакцию настраивать через скрипт в них?
Код: Выделить всё
//Задаем массив датчиков: [матка => [номер свойства, доступность, показание]]
$tempSensors = [
"fff7b0b31603" => [1, false, -1],
"ff2790c11604" => [2, false, -1],
"ff2790c00000" => [3, false, -1],
];
//не зарегистрированный датчики на шине
$notRegSensors = "";
//Получаем строку с меги и делим ее по датчикам в массив
//$listTemps = "ff2790c11604:24.18;fff7b0b31603:23.81";
$listTemps = file_get_contents("http://192.168.1.10/sec/?pt=31&cmd=list");
$temps = explode( ';', $listTemps);
//print_r ($temps);
//Сравнивая метки пишем показания, меняя доступность
foreach($temps as $temp){
$temp = explode( ':', $temp);
if(array_key_exists($temp[0], $tempSensors)){
$tempSensors[$temp[0]][1] = true;
$tempSensors[$temp[0]][2] = $temp[1];
}else{//пишем не найденные датчики в свойство
$notRegSensors = $notRegSensors."$temp[0]; ";
}
}
//обновляем свойства
foreach($tempSensors as $key => $sensor){
$this->setProperty($sensor[0], $sensor[2]);
}
$this->setProperty("notRegSensors", $notRegSensors);
-
- Сообщения: 18
- Зарегистрирован: Сб июн 03, 2017 4:57 am
- Откуда: Красноярск
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Модуль "MegaD"
Все решается средствами мажора, не нужно никакого лишнего кода. Есть встроенный класс Rooms, в котором уже есть свойства температуры и влажности с настроенной историей хранения. Настраиваете как вам нужно забирать показатели с датчиков (кнопка, таймер, вручную и т.д.), устанавливаете значения свойств и по ним же строите график (pChart или модуль Chart).
Как-то так.
http://majordomo.smartliving.ru/Main/Basics
Для реакции на пороги также можно сделать скрипты (сценарии) и запускать их при достижении условия.
Как-то так.
http://majordomo.smartliving.ru/Main/Basics
Для реакции на пороги также можно сделать скрипты (сценарии) и запускать их при достижении условия.
- Рейтинг: 1.16%
Re: Модуль "MegaD"
А кто подскажет. Подключил к MegaD я датчики BME280 и HTU21D оба i2c и висят соответственно на одном интерфейсе, а теперь вопрос как majordomo заставить это все выводить? У BME280 вообще 3 параметра, а в настройках модуля MegaD только 2 соответственно можно привязать.
-
- Сообщения: 1465
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 262 раза
- Поблагодарили: 455 раз
Re: Модуль "MegaD"
Насколько я понимаю, модуль MegaD создавался для отслеживания срабатывания входов Меги и инициации сервером выполнения тех или иных действий.
Что касается датчиков, то изменение их значений не воспринимаются модулем как срабатывание входа. Соответственно, модуль для ваших задач, видимо, вам не нужен.
Для запроса значения датчиков можно, например, в сценарии (периодически запускающемся) опрашивать ваши датчики командами как предлагает Андрей в своей статье (код примерно такой):
Этот скрипт, который я назвал "opros", должен опрашивать датчики раз в 5 минут. Ну свои Объект.свойства для записи значений с датчиков сами допишите. Типа
Что касается датчиков, то изменение их значений не воспринимаются модулем как срабатывание входа. Соответственно, модуль для ваших задач, видимо, вам не нужен.
Для запроса значения датчиков можно, например, в сценарии (периодически запускающемся) опрашивать ваши датчики командами как предлагает Андрей в своей статье (код примерно такой):
Код: Выделить всё
//Отображение влажности (HTU21D/Si7021)
file_get_contents("http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=htu21d");
//Отображение температуры (HTU21D)
file_get_contents("http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=htu21d&i2c_par=1");
//Отображение атмосферного давления (BMP280/BME280)
file_get_contents("http://192.168.0.14/sec/?pt=30&scl=31&i2c_dev=bmx280");
//Отображение температуры (BMP280/BME280)
file_get_contents("http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=1");
//Отображение влажности (BME280)
file_get_contents("http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=2");
setTimeOut('myTimer_opros','runScript("opros");',60*5);
Код: Выделить всё
$hum = file_get_contents("http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=htu21d");
sg('HTU21D.Hum',$hum);
Последний раз редактировалось Chainik Вт июл 04, 2017 9:08 pm, всего редактировалось 1 раз.