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

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

Модератор: immortal

Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

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

Сообщение hc2hunter » Вт апр 02, 2019 3:07 pm

Да вот в том-то и дело, что с недавнего времени заметил, что MQTT работает прекрасно, а параметры ThisComputer.cycle_mqttRun и ThisComputer.cycle_mqttControl просто пустые!
Кажется после какого-то обновления модуля MQTT... но могу ошибаться.
Вложения
mqtt_control.jpg
mqtt_control.jpg (67.14 КБ) 3872 просмотра
Serega66
Сообщения: 111
Зарегистрирован: Ср фев 22, 2017 12:08 pm
Благодарил (а): 55 раз
Поблагодарили: 13 раз

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

Сообщение Serega66 » Вт апр 02, 2019 4:14 pm

Доброго дня, уважаемые форумчане. помогите пожалуйста разобраться с работой MQTT.
Я прикрутил ардуино с релюшками для управления освещением тех самых свитчей которые
уже предустановлены в МД и используют простые устройства и модуль MQTT. МД установлен на малине.
после экспериментов с ардуиной в брокере осталась строка которую я не могу удалить, после удаления
она появляется снова.
и второй вопрос я сделал пять свитчей и периодически самопроизвольно включаются выключатели
которые еще не прикручены к ардуине но самое поршивое что один из трех которые уже подключены тоже
периодически включается сам. Включение происходит из за того что из брокера в ардуину и в МД
прилетает (1) хотя должен быть (0). подскажите как найти причину произвольного включения.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Вт апр 02, 2019 6:07 pm

Serega66 писал(а):
Вт апр 02, 2019 4:14 pm
Доброго дня, уважаемые форумчане. помогите пожалуйста разобраться с работой MQTT.
Я прикрутил ардуино с релюшками для управления освещением тех самых свитчей которые
уже предустановлены в МД и используют простые устройства и модуль MQTT. МД установлен на малине.
после экспериментов с ардуиной в брокере осталась строка которую я не могу удалить, после удаления
она появляется снова.
и второй вопрос я сделал пять свитчей и периодически самопроизвольно включаются выключатели
которые еще не прикручены к ардуине но самое поршивое что один из трех которые уже подключены тоже
периодически включается сам. Включение происходит из за того что из брокера в ардуину и в МД
прилетает (1) хотя должен быть (0). подскажите как найти причину произвольного включения.
Сперва надо найти причину - почему 1 прилетает из брокера. Если из брокера прилетело - значит ему кто то отправил. Либо прошивку добавить, смотреть где косяк, либо мд, если сам же МД это засыпает.
За это сообщение автора nick7zmail поблагодарил:
Serega66 (Вт апр 02, 2019 8:00 pm)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Вт апр 02, 2019 6:08 pm

hc2hunter писал(а):
Вт апр 02, 2019 3:07 pm
Да вот в том-то и дело, что с недавнего времени заметил, что MQTT работает прекрасно, а параметры ThisComputer.cycle_mqttRun и ThisComputer.cycle_mqttControl просто пустые!
Кажется после какого-то обновления модуля MQTT... но могу ошибаться.
Ну хз...в цикле по идее прописано setglobal вроде. Должно записываться.
За это сообщение автора nick7zmail поблагодарил:
hc2hunter (Вт апр 02, 2019 7:06 pm)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Serega66
Сообщения: 111
Зарегистрирован: Ср фев 22, 2017 12:08 pm
Благодарил (а): 55 раз
Поблагодарили: 13 раз

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

Сообщение Serega66 » Вт апр 02, 2019 7:58 pm

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

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

Сообщение rzag » Вт апр 02, 2019 9:31 pm

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";
}

?>
За это сообщение автора rzag поблагодарил:
vy4eslavik (Чт июн 20, 2019 11:02 pm)
Рейтинг: 1.16%
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

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

Сообщение 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 поблагодарил:
Serega66 (Вт апр 02, 2019 10:12 pm)
Рейтинг: 1.16%
Serega66
Сообщения: 111
Зарегистрирован: Ср фев 22, 2017 12:08 pm
Благодарил (а): 55 раз
Поблагодарили: 13 раз

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

Сообщение Serega66 » Вт апр 02, 2019 10:11 pm

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 флаг можно где нибудь пример кода подсмотреть. в ардуине у меня так и прописано а вот с МД я тормоз
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

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

Сообщение nightwind » Вт апр 02, 2019 10:40 pm

В модуле, там где ты привязыаешь объекты к топикам, есть флаг Retained. его лучше вообще не использовать, кроме специфических ситуаций.
За это сообщение автора nightwind поблагодарил:
Serega66 (Ср апр 03, 2019 8:04 am)
Рейтинг: 1.16%
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

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

Сообщение nightwind » Вт апр 02, 2019 10:45 pm

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