[Модуль] MQTT (mqtt)

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

Модератор: immortal

Sawwa
Сообщения: 58
Зарегистрирован: Вс мар 29, 2020 10:39 am
Благодарил (а): 13 раз
Поблагодарили: 7 раз

Re: [Модуль] MQTT (mqtt)

Сообщение Sawwa » Пн дек 06, 2021 3:04 pm

andrey040670 писал(а):
Сб дек 04, 2021 12:32 pm
Если цикл упал и не востанавливается, то внроятней всего упал москит.
Вероятней всего поможет:

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

sudo service mosquitto restart
Да и логи маскита глянуть не мешало бы, /var/log/mosquitto/
P/s
Если вы давно давно не обслуживали сервер, то я бы рекомендовал бы вам обновить систему, скорей всего обновится и маскит.

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

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get autoremove
sudo apt-get clean
sudo apt-get autoclean
Здравствуйте. Пакеты системы обновил,это не помогло. Москит вроде тоже не причем. Первично отпадение интернета из-за глюков драйвера WiFi модема. Придется бороться с Убунтой, чтобы победить отвалы WiFi
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: [Модуль] MQTT (mqtt)

Сообщение xor » Вт дек 07, 2021 1:01 am

Sawwa писал(а):
Пн дек 06, 2021 3:01 pm
...
System.checkState я нашел в методах, там вот чего:

$details=array();
$red_state=0;
$yellow_state=0;

$cycles=array('states'=>'states','main'=>'main','execs'=>'exec','scheduler'=>'scheduler');
foreach($cycles as $k=>$v) {
$tm=getGlobal('ThisComputer.cycle_'.$k.'Run');
if (time()-$tm>5*60) {
$red_state=1;
$details[]=$v." ".LANG_GENERAL_CYCLE." ".LANG_GENERAL_STOPPED.".";
}
}
...

Ну дальше логика включения светофора по степени активности системы

Время рестарта циклов по-моему итак маленькое, 5 и 10 мин. Может быть время рестарта наоборот увеличить?

Где поискать количество циклов рестарта, подскажите пожалуйста :roll:

У меня еще идея возникла- как бы сделать индикацию какую-то, сообщение чтоли что интернет упал.
Чтоб на смарт чтоли присылал Мажор.

Откуда можно вытащить такое сообщение?

Буду также ковырять Ubuntu20, на тему отвалов wi-fi Народ в инете пишет, что есть такая проблема с 20й Убунтой, переустанавливать систему край как неохота, но отвалы эти уже достали :(

Благодарю за помощь!
странно, судя по приведенному коду у вас тут для таких циклов

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

$cycles=array('states'=>'states','main'=>'main','execs'=>'exec','scheduler'=>'scheduler');
идет только индикация останова, без экстренного перезапуска(
там должно быть что-то такое после строки

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

$details[]=$v." ".LANG_GENERAL_CYCLE." ".LANG_GENERAL_STOPPED.".";
  sg('ThisComputer.cycle_'.$k.'Run','');
  sg('ThisComputer.cycle_'.$k.'Control','restart');
допишите в $cycles свои циклы только

падение интернета обычно проверяют так (у меня в методе Communication.checkState)

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

if (!isOnline('Internet')) {
 $yellow_state=1;
 $details[]=LANG_GENERAL_NO_INTERNET_ACCESS;
}
в устройствах online должна быть запись с названием Internet и адресом, обычно доступным. У меня ya.ru
метод ping
Sawwa
Сообщения: 58
Зарегистрирован: Вс мар 29, 2020 10:39 am
Благодарил (а): 13 раз
Поблагодарили: 7 раз

Re: [Модуль] MQTT (mqtt)

Сообщение Sawwa » Ср дек 08, 2021 10:48 am

Приветствую всех!

Продолжаю бороться с отвалом циклов в МД

Провел целый день в экспериментах, пробовал переустановить драйвера на WiFi,вроде получилось.
Отключал- выдергивал модуль WiFi, цикл MQTT перезапускается, через 20 мин после падения проверочный цикл выдает сообщение об остановке модуля,после подключения интернетеа сразу запускается и MQTT

С оповещением о падении MQTT- нашел на вкладке Статусы системы возможность присваивать каким-то состояниям модулей признаки важности, и их передавать в оповещения. Можно передавать оповещения в приложение Notify.Events, правда в случае падения интернета,это не поможет,ибо сервер ничего передать не сможет :(

Теперь следующая проблема. С утра затупил сам Мажордом, при этом основной модуль остается жив, а вот все абсолютно циклы ушли в стопор, и попытки их перезапустить не увенчались успехом. Странное состояние, анабиоз какой-то. Все циклы в ауте, а состояние системы видно через WEB ( я контролирую МД через приложение на смарте), проброс доступа черезоблачный сервис роутера Кинетик.

Так вот, возникал и раньше такой вопрос,а теперь и стал ребром- как перезагрузить систему МД дистанционно? Консоль в приложении работает. Поискал в Хелпе МД-ничего похожего не нашел. Наверноекоманда Restart,н с каими-нибудь ключами нужна?

Как крайний вариант рассматриваю дистанционную перезагрузку самого сервера на Убунте, как быреализоватьэто со смартфона? Через комп в том же сегменте домашней сети,как я понял- через SSH,а с мобилы как бы это проделать?

Подскажите уважаемые знатоки ваши соображения по этому поводу...

Благодарю!
Аватара пользователя
andrey040670
Сообщения: 458
Зарегистрирован: Пн июл 31, 2017 10:00 pm
Благодарил (а): 161 раз
Поблагодарили: 85 раз

Re: [Модуль] MQTT (mqtt)

Сообщение andrey040670 » Ср дек 08, 2021 10:55 am

Sawwa писал(а):
Ср дек 08, 2021 10:48 am
Так вот, возникал и раньше такой вопрос,а теперь и стал ребром- как перезагрузить систему МД дистанционно? Консоль в приложении работает.

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

sudo service majordomo start 
sudo service majordomo stop 
sudo service majordomo restart 
или

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

sudo systemctl restart majordomo
MJD alfa: Khadas VIM1 Ubuntu 18.04.2 LTS bionic Linux 4.9.40 #2 SMP PREEMPT Tue Oct 30 15:47:54 CST 2018 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
Sawwa
Сообщения: 58
Зарегистрирован: Вс мар 29, 2020 10:39 am
Благодарил (а): 13 раз
Поблагодарили: 7 раз

Re: [Модуль] MQTT (mqtt)

Сообщение Sawwa » Ср дек 08, 2021 12:22 pm

andrey040670 писал(а):
Ср дек 08, 2021 10:55 am
Sawwa писал(а):
Ср дек 08, 2021 10:48 am
Так вот, возникал и раньше такой вопрос,а теперь и стал ребром- как перезагрузить систему МД дистанционно? Консоль в приложении работает.

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

sudo service majordomo start 
sudo service majordomo stop 
sudo service majordomo restart 
или

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

sudo systemctl restart majordomo
Пробовал запустить цикл через встроенный в МД терминал, но не получается

Может быть синтаксис неверный?
Вложения
22.JPG
22.JPG (36.41 КБ) 1326 просмотров
Аватара пользователя
andrey040670
Сообщения: 458
Зарегистрирован: Пн июл 31, 2017 10:00 pm
Благодарил (а): 161 раз
Поблагодарили: 85 раз

Re: [Модуль] MQTT (mqtt)

Сообщение andrey040670 » Ср дек 08, 2021 12:45 pm

Извиняюсь, я думал речь идёт о ssh терминале.
Через МД терминал надо:

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

safe_exec('sudo service majordomo restart');
Или, но дольше.

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

@SaveFile(DOC_ROOT . DIRECTORY_SEPARATOR . 'reboot', 'updated');
Но это вам врядли поможет, если легли все циклы, в том числе и cycle_execs, то есть терминал не сработает.
В этом случае перезапустить МД можно только через ssh терминал, командами описанными выше.
За это сообщение автора andrey040670 поблагодарил:
Sawwa (Ср дек 08, 2021 2:02 pm)
Рейтинг: 1.16%
MJD alfa: Khadas VIM1 Ubuntu 18.04.2 LTS bionic Linux 4.9.40 #2 SMP PREEMPT Tue Oct 30 15:47:54 CST 2018 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
Sawwa
Сообщения: 58
Зарегистрирован: Вс мар 29, 2020 10:39 am
Благодарил (а): 13 раз
Поблагодарили: 7 раз

Re: [Модуль] MQTT (mqtt)

Сообщение Sawwa » Ср дек 08, 2021 1:48 pm

andrey040670 писал(а):
Ср дек 08, 2021 12:45 pm
Извиняюсь, я думал речь идёт о ssh терминале.
Через МД терминал надо:

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

safe_exec('sudo service majordomo restart');
Или, но дольше.

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

@SaveFile(DOC_ROOT . DIRECTORY_SEPARATOR . 'reboot', 'updated');
Но это вам врядли поможет, если легли все циклы, в том числе и cycle_execs, то есть терминал не сработает.
В этом случае перезапустить МД можно только через ssh терминал, командами описанными выше.
Вот эта команда сработала

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

@SaveFile(DOC_ROOT . DIRECTORY_SEPARATOR . 'reboot', 'updated');
А предыдущая - ноль реакции

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

safe_exec('sudo service majordomo restart');
SSH что-то не желает работать, с доступом к машине какие-то проблемы :roll:
Аватара пользователя
andrey040670
Сообщения: 458
Зарегистрирован: Пн июл 31, 2017 10:00 pm
Благодарил (а): 161 раз
Поблагодарили: 85 раз

Re: [Модуль] MQTT (mqtt)

Сообщение andrey040670 » Ср дек 08, 2021 2:01 pm

Sawwa писал(а):
Ср дек 08, 2021 1:48 pm
SSH что-то не желает работать, с доступом к машине какие-то проблемы :roll:
Я бы для начала наладил бы ssh доступ, без него вы просто не сможете настроить систему.
Удалённый доступ ssh можно реализовать, например через прокси SOKCS5, если ваш метод тунелирования через роутер поддерживает SOKCS5.
MJD alfa: Khadas VIM1 Ubuntu 18.04.2 LTS bionic Linux 4.9.40 #2 SMP PREEMPT Tue Oct 30 15:47:54 CST 2018 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
Sawwa
Сообщения: 58
Зарегистрирован: Вс мар 29, 2020 10:39 am
Благодарил (а): 13 раз
Поблагодарили: 7 раз

Re: [Модуль] MQTT (mqtt)

Сообщение Sawwa » Ср дек 08, 2021 2:02 pm

Было бы прекрасно, если в МД просто вставят кнопки на Панель Управления- Перезагрузить машину и Перезагрузить МД
Для чайников, как я...
Аватара пользователя
andrey040670
Сообщения: 458
Зарегистрирован: Пн июл 31, 2017 10:00 pm
Благодарил (а): 161 раз
Поблагодарили: 85 раз

Re: [Модуль] MQTT (mqtt)

Сообщение andrey040670 » Ср дек 08, 2021 2:08 pm

Sawwa писал(а):
Ср дек 08, 2021 2:02 pm
Было бы прекрасно, если в МД просто вставят кнопки на Панель Управления- Перезагрузить машину и Перезагрузить МД
Для чайников, как я...
Создайте сценарий "majordomo_cycle_restart":

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

say("Подготовка к перезагрузке циклов MajorDoMo",2);
@SaveFile(DOC_ROOT . DIRECTORY_SEPARATOR . 'reboot', 'updated');
И запускайте его из панели управления, там есть возможность вставить кнопку привязанную к сценарию.

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

http://IP/objects/?script=majordomo_cycle_restart
Например так:
Создайте сценарий с именем: "dash_my_block"

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

$array = array(
	'status' => 1,
//	'name' => 'Мои кнопочки',
	'type' => 'default',
	'reload' => false,
	'reload_time' => 5,
	'data' => array(
		'data' => '
		            <a href="https://mjdm.ru/forum/viewtopic.php?f=6&t=7303" target="_blank"><i class="glyphicon glyphicon-question-sign" style="margin-left: 0px; margin-right: 10px;"></i></a>
		            <a href="/objects/?script=majordomo_cycle_restart" target="hiframe" class="btn btn-default"><i class="glyphicon glyphicon-edit"></i> MD restart</a>
		            <iframe src=about:blank name=hiframe style="display:none"></iframe> ',
	),
);
echo json_encode($array);
Кнопка появится сама в ПУ.
Подробности https://mjdm.ru/forum/viewtopic.php?f=6&t=7303
P/s
Чуть подправил.
Последний раз редактировалось andrey040670 Чт апр 07, 2022 6:41 pm, всего редактировалось 3 раза.
За это сообщение автора andrey040670 поблагодарил:
Sawwa (Ср дек 08, 2021 3:43 pm)
Рейтинг: 1.16%
MJD alfa: Khadas VIM1 Ubuntu 18.04.2 LTS bionic Linux 4.9.40 #2 SMP PREEMPT Tue Oct 30 15:47:54 CST 2018 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
Ответить