Страница 47 из 97

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

Добавлено: Вт апр 02, 2019 3:07 pm
hc2hunter
Да вот в том-то и дело, что с недавнего времени заметил, что MQTT работает прекрасно, а параметры ThisComputer.cycle_mqttRun и ThisComputer.cycle_mqttControl просто пустые!
Кажется после какого-то обновления модуля MQTT... но могу ошибаться.

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

Добавлено: Вт апр 02, 2019 4:14 pm
Serega66
Доброго дня, уважаемые форумчане. помогите пожалуйста разобраться с работой MQTT.
Я прикрутил ардуино с релюшками для управления освещением тех самых свитчей которые
уже предустановлены в МД и используют простые устройства и модуль MQTT. МД установлен на малине.
после экспериментов с ардуиной в брокере осталась строка которую я не могу удалить, после удаления
она появляется снова.
и второй вопрос я сделал пять свитчей и периодически самопроизвольно включаются выключатели
которые еще не прикручены к ардуине но самое поршивое что один из трех которые уже подключены тоже
периодически включается сам. Включение происходит из за того что из брокера в ардуину и в МД
прилетает (1) хотя должен быть (0). подскажите как найти причину произвольного включения.

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

Добавлено: Вт апр 02, 2019 6:07 pm
nick7zmail
Serega66 писал(а): Вт апр 02, 2019 4:14 pm Доброго дня, уважаемые форумчане. помогите пожалуйста разобраться с работой MQTT.
Я прикрутил ардуино с релюшками для управления освещением тех самых свитчей которые
уже предустановлены в МД и используют простые устройства и модуль MQTT. МД установлен на малине.
после экспериментов с ардуиной в брокере осталась строка которую я не могу удалить, после удаления
она появляется снова.
и второй вопрос я сделал пять свитчей и периодически самопроизвольно включаются выключатели
которые еще не прикручены к ардуине но самое поршивое что один из трех которые уже подключены тоже
периодически включается сам. Включение происходит из за того что из брокера в ардуину и в МД
прилетает (1) хотя должен быть (0). подскажите как найти причину произвольного включения.
Сперва надо найти причину - почему 1 прилетает из брокера. Если из брокера прилетело - значит ему кто то отправил. Либо прошивку добавить, смотреть где косяк, либо мд, если сам же МД это засыпает.

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

Добавлено: Вт апр 02, 2019 6:08 pm
nick7zmail
hc2hunter писал(а): Вт апр 02, 2019 3:07 pm Да вот в том-то и дело, что с недавнего времени заметил, что MQTT работает прекрасно, а параметры ThisComputer.cycle_mqttRun и ThisComputer.cycle_mqttControl просто пустые!
Кажется после какого-то обновления модуля MQTT... но могу ошибаться.
Ну хз...в цикле по идее прописано setglobal вроде. Должно записываться.

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

Добавлено: Вт апр 02, 2019 7:58 pm
Serega66
nick7zmail писал(а): Вт апр 02, 2019 6:07 pm
Serega66 писал(а): Вт апр 02, 2019 4:14 pm Доброго дня, уважаемые форумчане. помогите пожалуйста разобраться с работой MQTT.
Я прикрутил ардуино с релюшками для управления освещением тех самых свитчей которые
уже предустановлены в МД и используют простые устройства и модуль MQTT. МД установлен на малине.
после экспериментов с ардуиной в брокере осталась строка которую я не могу удалить, после удаления
она появляется снова.
и второй вопрос я сделал пять свитчей и периодически самопроизвольно включаются выключатели
которые еще не прикручены к ардуине но самое поршивое что один из трех которые уже подключены тоже
периодически включается сам. Включение происходит из за того что из брокера в ардуину и в МД
прилетает (1) хотя должен быть (0). подскажите как найти причину произвольного включения.
Сперва надо найти причину - почему 1 прилетает из брокера. Если из брокера прилетело - значит ему кто то отправил. Либо прошивку добавить, смотреть где косяк, либо мд, если сам же МД это засыпает.
Спасибо за оперативный ответ. А как можно это проверить. и как из брокера удалить неиспользуемую строку

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

Добавлено: Вт апр 02, 2019 9:31 pm
rzag
rzag писал(а): Вс мар 31, 2019 8:11 pm
Aven писал(а): Вс мар 31, 2019 8:05 pm для Publish используется отдельное подключение, а не существующее которое прослушивает подписки
Спасибо, но все равно не пойму, зачем создавать два подключения, отдельно для публикации и отдельно для подписки.
Они не создают конфликт для брокера ?
Как раньше писал - рвется соеденение, сразу после публикации - это особенности библиотеки phpmqtt ?
Вообщем не выдержал, решил протестировать библиотеку phpMQTT с примерами из GITа.

Напоминаю, что проблема в том, что mjd разрывает соеденение, которое слушает мои топики с других устройств при этом в момент переподключения теряется инфо для mjd:

Client m (#5ca260cdbfc9f) has exceeded timeout, disconnecting.
1554154305: Socket error on client m (#5ca260cdbfc9f), disconnecting.

Запускаю скрипт подписки с примера из GITa - и ни одного разрыва - все четко принимается!!!!!

Получается, что зря грешил на библиотеку.

Выходит проблема на стороне mjd

Сам скрипт:

<?php
require("/var/www/lib/mqtt/phpMQTT.php");
$server = "192.168.1.40"; // change if necessary
$port = 1883; // change if necessary
$username = ""; // set your username
$password = ""; // set your password
$client_id = "phpMQTT-subscriber"; // make sure this is unique for connecting t$
$mqtt = new phpMQTT($server, $port, $client_id);
if(!$mqtt->connect(true, NULL, $username, $password)) {
exit(1);
}
$topics['#'] = array("qos" => 0, "function" => "procmsg");
$mqtt->subscribe($topics, 0);
while($mqtt->proc()){

}
$mqtt->close();
function procmsg($topic, $msg){
echo "Msg Recieved: " . date("r") . "\n";
echo "Topic: {$topic}\n\n";
echo "\t$msg\n\n";
}

?>

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

Добавлено: Вт апр 02, 2019 9:44 pm
nightwind
Serega66 писал(а): Вт апр 02, 2019 7:58 pm
nick7zmail писал(а): Вт апр 02, 2019 6:07 pm
Serega66 писал(а): Вт апр 02, 2019 4:14 pm Доброго дня, уважаемые форумчане. помогите пожалуйста разобраться с работой MQTT.
Я прикрутил ардуино с релюшками для управления освещением тех самых свитчей которые
уже предустановлены в МД и используют простые устройства и модуль MQTT. МД установлен на малине.
после экспериментов с ардуиной в брокере осталась строка которую я не могу удалить, после удаления
она появляется снова.
и второй вопрос я сделал пять свитчей и периодически самопроизвольно включаются выключатели
которые еще не прикручены к ардуине но самое поршивое что один из трех которые уже подключены тоже
периодически включается сам. Включение происходит из за того что из брокера в ардуину и в МД
прилетает (1) хотя должен быть (0). подскажите как найти причину произвольного включения.
Сперва надо найти причину - почему 1 прилетает из брокера. Если из брокера прилетело - значит ему кто то отправил. Либо прошивку добавить, смотреть где косяк, либо мд, если сам же МД это засыпает.
Спасибо за оперативный ответ. А как можно это проверить. и как из брокера удалить неиспользуемую строку
для начала - ты наступаешь на те же грабли, что и большинство. у тебя и статус и команда - это одно и то же. по нажатию выключателя должна отправляться команда на включение, и если она успешна - придти статус 1. а вдруг она не выполнится, а у тебя в мажоре уже статус 1 от выключателя выставился.
2. смотри retained флаги. сообщение с таким флагом висит вечно, и после дисконнекта-коннекта прилетает заново.

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

Добавлено: Вт апр 02, 2019 10:11 pm
Serega66
nightwind писал(а): Вт апр 02, 2019 9:44 pm
Serega66 писал(а): Вт апр 02, 2019 7:58 pm
nick7zmail писал(а): Вт апр 02, 2019 6:07 pm
Serega66 писал(а): Вт апр 02, 2019 4:14 pm Доброго дня, уважаемые форумчане. помогите пожалуйста разобраться с работой MQTT.
Я прикрутил ардуино с релюшками для управления освещением тех самых свитчей которые
уже предустановлены в МД и используют простые устройства и модуль MQTT. МД установлен на малине.
после экспериментов с ардуиной в брокере осталась строка которую я не могу удалить, после удаления
она появляется снова.
и второй вопрос я сделал пять свитчей и периодически самопроизвольно включаются выключатели
которые еще не прикручены к ардуине но самое поршивое что один из трех которые уже подключены тоже
периодически включается сам. Включение происходит из за того что из брокера в ардуину и в МД
прилетает (1) хотя должен быть (0). подскажите как найти причину произвольного включения.
Сперва надо найти причину - почему 1 прилетает из брокера. Если из брокера прилетело - значит ему кто то отправил. Либо прошивку добавить, смотреть где косяк, либо мд, если сам же МД это засыпает.
Спасибо за оперативный ответ. А как можно это проверить. и как из брокера удалить неиспользуемую строку
для начала - ты наступаешь на те же грабли, что и большинство. у тебя и статус и команда - это одно и то же. по нажатию выключателя должна отправляться команда на включение, и если она успешна - придти статус 1. а вдруг она не выполнится, а у тебя в мажоре уже статус 1 от выключателя выставился.
2. смотри retained флаги. сообщение с таким флагом висит вечно, и после дисконнекта-коннекта прилетает заново.
Уважаемый nightwind а можно чуть по подробней, вашу мысль я уловил(сначала команда на исполнение потом подтверждение о выполнении ) но я не программист. подскажите как в MQTT отправить retained флаг можно где нибудь пример кода подсмотреть. в ардуине у меня так и прописано а вот с МД я тормоз

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

Добавлено: Вт апр 02, 2019 10:40 pm
nightwind
В модуле, там где ты привязыаешь объекты к топикам, есть флаг Retained. его лучше вообще не использовать, кроме специфических ситуаций.

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

Добавлено: Вт апр 02, 2019 10:45 pm
nightwind
Serega66 писал(а): Вт апр 02, 2019 10:11 pm (сначала команда на исполнение потом подтверждение о выполнении )
тут писал, многа букофф