Всем добрый день.
у меня система ARMBIAN Debian GNU/Linux 8 (jessie) 3.4.112-sun7i стоит на cubietruck, так же стоит mosquitto, и модуль Mqtt в самом majordomo.
настройки MQTT
Hostname: (*) localhost
Port: (*) 1883
Subscription path: (*) #
Данные приходят с ESP8266 приходят постоянно (проверено что модуль передает), направление ESP8266->Majordomo. в модуле соответственно вижу /Spalnya_1/shth
/Spalnya_1/shth 05/13/2016 17:39:31 58.7 (Spalnya_1_Hum.humidity)
всё работает, но только через какое то время данные перестают обновляться в модуле MQTT.
Захожу с консоли и проверяю что брокер получает данные от модуля, там всё в норме.Делаю полную перезагрузку системы и всё снова работает какое то время (примерно 10 минут по логам).
Вывод Debug
18:00:04 DEBUG [root]: Executing (exclusive): mplayer /var/www/cached/voice/68d47a24ecd226100bb1f6f3a11cc27f_yandex.mp3 (at /var/www/lib/general.class.php:547)
18:00:00 DEBUG [root]: Executing (exclusive): mplayer /var/www/sounds/dingdong.mp3 (at /var/www/lib/general.class.php:547)
18:00:00 DEBUG [root]: yandex_tts.processSubscription (at /var/www/lib/general.class.php:547)
17:56:44 DEBUG [root]: Closing thread: php -q ./scripts/cycle_mqtt.php --params "a:0:{}">>/var/www/debmes/log_2016-05-13-cycle_mqtt.php.txt (at /var/www/lib/general.class.php:547)
17:54:27 DEBUG [root]: Executing (exclusive): mplayer /var/www/cached/voice/e1f8e6e2a5279f08160517771cedb394_yandex.mp3 (at /var/www/lib/general.class.php:547)
17:54:24 DEBUG [root]: Executing (exclusive): mplayer /var/www/sounds/dingdong.mp3 (at /var/www/lib/general.class.php:547)
17:54:24 DEBUG [root]: yandex_tts.processSubscription (at /var/www/lib/general.class.php:547)
17:52:56 DEBUG [root]: Closing thread: php -q ./scripts/cycle_rss.php --params "a:0:{}">>/var/www/debmes/log_2016-05-13-cycle_rss.php.txt (at /var/www/lib/general.class.php:547)
17:52:56 DEBUG [root]: Closing thread: php -q ./scripts/cycle_connect.php --params "a:0:{}">>/var/www/debmes/log_2016-05-13-cycle_connect.php.txt (at /var/www/lib/general.class.php:547)
17:52:56 DEBUG [root]: Closing thread: php -q ./scripts/cycle_skype.php --params "a:0:{}">>/var/www/debmes/log_2016-05-13-cycle_skype.php.txt (at /var/www/lib/general.class.php:547)
17:52:56 DEBUG [root]: Closing thread: php -q ./scripts/cycle_zoneminder.php --params "a:0:{}">>/var/www/debmes/log_2016-05-13-cycle_zoneminder.php.txt (at /var/www/lib/general.class.php:547)
17:52:55 DEBUG [root]: Closing thread: DISPLAY=:101 php ./scripts/cycle_X101_skype.php --params "a:0:{}" (at /var/www/lib/general.class.php:547)
17:52:53 DEBUG [root]: Starting ./scripts/cycle_websockets.php ... (at /var/www/lib/general.class.php:547)
17:52:53 DEBUG [root]: Starting ./scripts/cycle_rss.php ... (at /var/www/lib/general.class.php:547)
17:52:53 DEBUG [root]: Starting ./scripts/cycle_connect.php ... (at /var/www/lib/general.class.php:547)
17:52:53 DEBUG [root]: Starting ./scripts/cycle_webvars.php ... (at /var/www/lib/general.class.php:547)
17:52:53 DEBUG [root]: Starting ./scripts/cycle_ping.php ... (at /var/www/lib/general.class.php:547)
17:52:53 DEBUG [root]: Starting ./scripts/cycle_main.php ... (at /var/www/lib/general.class.php:547)
17:52:52 DEBUG [root]: Starting ./scripts/cycle_scheduler.php ... (at /var/www/lib/general.class.php:547)
17:52:52 DEBUG [root]: Starting ./scripts/cycle_skype.php ... (at /var/www/lib/general.class.php:547)
17:52:52 DEBUG [root]: Starting ./scripts/cycle_states.php ... (at /var/www/lib/general.class.php:547)
17:52:52 DEBUG [root]: Starting ./scripts/cycle_mqtt.php ... (at /var/www/lib/general.class.php:547)
17:52:52 DEBUG [root]: Starting ./scripts/cycle_zoneminder.php ... (at /var/www/lib/general.class.php:547)
17:52:52 DEBUG [root]: Starting ./scripts/cycle_X101_skype.php ... (at /var/www/lib/general.class.php:547)
17:52:52 DEBUG [root]: Starting ./scripts/cycle_execs.php ... (at /var/www/lib/general.class.php:547)
17:52:45 DEBUG [root]: Running maintenance script (at /var/www/lib/general.class.php:547)
17:51:38 DEBUG [root]: RESTARTING: ./scripts/cycle_main.php (at /var/www/lib/general.class.php:547)
Вывод конца лога /Debmes
2016-05-13 17:56:42 Topic:/Kuhnya/light 27
2016-05-13 17:56:43 Topic:/Kuhnya/rssi -69
2016-05-13 17:56:43 Topic:/Kuhnya/freemem 31448
2016-05-13 17:56:43 Topic:/Kuhnya/uptime 6600
2016-05-13 17:56:43 Topic:/Koridor/rssi -49
2016-05-13 17:56:44 Topic:/Koridor/input13 0
Прошу помощи. по форуму похожего не нашёл.
MQTT Модуль падает через время
Модератор: immortal
-
- Сообщения: 123
- Зарегистрирован: Пт апр 15, 2016 10:18 am
- Откуда: 21RU
- Благодарил (а): 5 раз
- Поблагодарили: 20 раз
- Контактная информация:
Re: MQTT Модуль падает через время
Где то на робофоруме читал, что модуль ESP8266 переходит в режим сна без сигнала на выводе таймера сна.
Слабость - велика, а сила - ничтожна.
ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.18-sunxi
System load: 2.03 1.85 1.78 Up time: 23 days
Memory usage: 65 % of 2014MB CPU temp: 37°C
Orange Pi Plus 2 H3 Quad Core 1.6GHZ 2GB
ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.18-sunxi
System load: 2.03 1.85 1.78 Up time: 23 days
Memory usage: 65 % of 2014MB CPU temp: 37°C
Orange Pi Plus 2 H3 Quad Core 1.6GHZ 2GB
-
- Сообщения: 9
- Зарегистрирован: Пт май 13, 2016 5:35 pm
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Re: MQTT Модуль падает через время
с Есп данные на cubietruck где стоит mosquitto приходят. проверено. но эти данные не появляются в модуле MQTT majordomo
Re: MQTT Модуль падает через время
У меня такая же проблема в Raspberry Pi 3. Данные в брокер заходят, а МЖД их отказывается обновлять. Переустанавливал образ на малинку, настраивал на разные датчики с разными путями. Пока не могу победить, живет своей жизнью.
-
- Сообщения: 100
- Зарегистрирован: Вт ноя 11, 2014 5:16 pm
- Откуда: Шатура
- Благодарил (а): 4 раза
- Поблагодарили: 8 раз
Re: MQTT Модуль падает через время
Коллеги! (хотя, наверное больше вопрос к Сергею)
настроил модуль MQTT, в него приходят сигналы с датчиков движения, пока датчик был один, всё было нормально, после появления второго, цикл MQTT стал падать. Полез в Debmes, обнаружил следующее в логах цикла mqtt ... а что он пытается писать в лог Telegram ?
затем обнаружил ошибку, собственно после этого и происходит падение цикла mqtt. насколько я понял - проблема в повторном декларировании функции "cmp", которая описана в методе "updateActivityStatus" , т.е. это может происходить при срабатывании 2-х датчиков движения одновременно, либо функция, после выполнения в методе на удаляется из памяти.
настроил модуль MQTT, в него приходят сигналы с датчиков движения, пока датчик был один, всё было нормально, после появления второго, цикл MQTT стал падать. Полез в Debmes, обнаружил следующее в логах цикла mqtt
СпойлерПоказать
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
Warning: fopen(C:\_majordomo\htdocs/debmes/log_2016-09-29-cycle_telegram.php.txt): failed to open stream: Permission denied in C:\_majordomo\htdocs\modules\telegram\telegram.class.php on line 122
затем обнаружил ошибку
СпойлерПоказать
Fatal error: Cannot redeclare cmp() (previously declared in C:\_majordomo\htdocs\modules\objects\objects.class.php(514) : eval()'d code:13) in C:\_majordomo\htdocs\modules\objects\objects.class.php(514) : eval()'d code on line 19
СпойлерПоказать
$rooms=getObjectsByClass("Rooms");
$total=count($rooms);
for($i=0;$i<$total;$i++) {
$rooms[$i]['room']=getGlobal($rooms[$i]['TITLE'].'.Title');
if (!$rooms[$i]['room']) {
$rooms[$i]['room']=$rooms[$i]['TITLE'];
}
$rooms[$i]['active']=getGlobal($rooms[$i]['TITLE'].'.SomebodyHere');
$rooms[$i]['time']=getGlobal($rooms[$i]['TITLE'].'.LatestActivity');
$rooms[$i]['diff']=time()-$rooms[$i]['time'];
}
function cmp($a, $b)
{
if ($a['diff'] == $b['diff']) {
return 0;
}
return ($a['diff'] < $b['diff']) ? -1 : 1;
}
usort($rooms,"cmp");
if (!$rooms[0]['active']) {
$somebodyHomeText="Никого нет дома. Были в ".date('H:i',$rooms[0]['time'])." (".$rooms[0]['room'].")";
} else {
$res_rooms=array();
for($i=0;$i<$total;$i++) {
if ($rooms[$i]['active']) {
$res_rooms[]=$rooms[$i]['room'];
}
}
$somebodyHomeText="Кто-то дома: ".implode(", ",$res_rooms);
}
setGlobal('somebodyHomeText',$somebodyHomeText);
//echo "Updated";
$total=count($rooms);
for($i=0;$i<$total;$i++) {
$rooms[$i]['room']=getGlobal($rooms[$i]['TITLE'].'.Title');
if (!$rooms[$i]['room']) {
$rooms[$i]['room']=$rooms[$i]['TITLE'];
}
$rooms[$i]['active']=getGlobal($rooms[$i]['TITLE'].'.SomebodyHere');
$rooms[$i]['time']=getGlobal($rooms[$i]['TITLE'].'.LatestActivity');
$rooms[$i]['diff']=time()-$rooms[$i]['time'];
}
function cmp($a, $b)
{
if ($a['diff'] == $b['diff']) {
return 0;
}
return ($a['diff'] < $b['diff']) ? -1 : 1;
}
usort($rooms,"cmp");
if (!$rooms[0]['active']) {
$somebodyHomeText="Никого нет дома. Были в ".date('H:i',$rooms[0]['time'])." (".$rooms[0]['room'].")";
} else {
$res_rooms=array();
for($i=0;$i<$total;$i++) {
if ($rooms[$i]['active']) {
$res_rooms[]=$rooms[$i]['room'];
}
}
$somebodyHomeText="Кто-то дома: ".implode(", ",$res_rooms);
}
setGlobal('somebodyHomeText',$somebodyHomeText);
//echo "Updated";
Windows, Debian 8, 1-Wire
Connect
Connect
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: MQTT Модуль падает через время
подобную проблему уже описывали -- если в методе объявляется функция, то нужно её оборачивать в конструкцию if (function_exists('имя_фукнции')) { function имя_функции()... }
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги