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

Re: Предложения по доработке модуля MQTT

Добавлено: Ср янв 03, 2018 11:54 pm
ivannag
Рад был помочь тому, кто всем тут помогает!))

Re: Предложения по доработке модуля MQTT

Добавлено: Вс янв 07, 2018 12:44 am
avp8853
nick7zmail писал(а):Ну ахренеть блин!!! Заработало...как так то...
Достаточно было кстати

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

payload[0]=payload[0]-'0';//вычесть из полученного значения в байтах (49 при 1, 48 при 0), байтовый 0 (48)...ну и типа в остатке 1 или 0...но это такая бредятина блин...   
Бессмысленное умножение нуля на 10 тут явно лишнее)) В любом случае спасибо! В очередной раз убеждаюсь в "капризности" Arduino IDE.
Ничего тут капризного нет.

Re: Предложения по доработке модуля MQTT

Добавлено: Вс янв 07, 2018 1:13 am
avp8853
Можно так
void callback(char* topic, byte* payload, unsigned int length)
{
for (int i = 0; i < COLTOPIC; i++) {MQTT_to_Holding="";} //limpia cadenas recibidas // Cleans received strings
//преобразуем тему(topic) и значение (payload) в строку
payload[length] = '\0';
String strTopic = String(topic);
String strPayload = String((char*)payload);
unsigned int tmp = strPayload.toInt();
//Исследуем что "прилетело" от сервера по подписке:
if(strTopic == PUBLISHTOPIC1){ // значения 90/165 включение/отключения термостата
if(tmp == 90 || tmp == 165){
MQTT_to_Holding[0] += String((char*)payload); // адрес 40001
}
}
Serial.print("topic [");
Serial.print(topic);
Serial.print("-");
Serial.print(tmp);
Serial.println("] ");
}

Re: Предложения по доработке модуля MQTT

Добавлено: Вс янв 07, 2018 1:15 am
avp8853
if(tmp == 90 || tmp == 165){ это мои значения все прилетает в натуральном виде как отправляешь.

Re: Предложения по доработке модуля MQTT

Добавлено: Вс янв 07, 2018 8:50 pm
prmres
in4m писал(а):Хелп, уважаемые форумчане, модуль дико долбит в лог и пожирает свободное место за 1 минуту набегает по 80 мб.

Такое чувство, что в модуле что-то с таймаутом на подключение, иначе зачем он закрывает уже установленное соединение?
вкратце: решил сегодня настроить сопряжение с MQTT, установил брокер mosquttto на ubuntu 16.04 , настроил модуль mqtt.
Вроде бы все здорово, но в логах mosquitto с космической скоростью долбят сообщения.
Вывод с mosquitto, запущенного в консоле на 3 секунды:
1512857150: New client connected from 172.16.0.20 as MajorDoMo (c0, k10).
1512857150: New connection from 172.16.0.20 on port 1883.
1512857150: New connection from 172.16.0.20 on port 1883.
1512857150: Client MajorDoMo already connected, closing old connection.
1512857150: Client MajorDoMo disconnected.
1512857150: New client connected from 172.16.0.20 as MajorDoMo (c0, k10).
1512857150: Client MajorDoMo already connected, closing old connection.
1512857150: Client MajorDoMo disconnected.
1512857150: New client connected from 172.16.0.20 as MajorDoMo (c0, k10).
1512857150: New connection from 172.16.0.20 on port 1883.
1512857150: Client MajorDoMo already connected, closing old connection.
1512857150: Client MajorDoMo disconnected.
1512857150: New client connected from 172.16.0.20 as MajorDoMo (c0, k10).
C1512857150: Client MajorDoMo already connected, closing old connection.
1512857150: Client MajorDoMo disconnected.
1512857150: New client connected from 172.16.0.20 as MajorDoMo (c0, k10).
1512857150: mosquitto version 1.4.14 terminating

тут похоже описывают туже самую проблему: https://majordomo.smartliving.ru/forum/ ... =30#p65277
да, та же самая проблема
пока что просто отключил логирование этих записей, но очевидно глюк в клиенте и требует внимания разработчика

подозреваю мало кто это замечает, ибо ставится брокер без конфигов настроек и пользователей, поэтому и не видно логов

Re: Предложения по доработке модуля MQTT

Добавлено: Вт янв 09, 2018 12:02 pm
DX168B
prmres писал(а):да, та же самая проблема
пока что просто отключил логирование этих записей, но очевидно глюк в клиенте и требует внимания разработчика

подозреваю мало кто это замечает, ибо ставится брокер без конфигов настроек и пользователей, поэтому и не видно логов
На днях проверю у себя и попробую исправить. Если что, создам запрос на добавление изменений. Кстати, мои доработки, о которых я писал выше, уже добавлены в официальный репозиторий.

UPD: Сейчас подключился домой и проверил логи moquitto в \var\log\mosquitto\mosquitto.log

Такого я там не обнаружил. Однако, если остановить mosquitto при работающем majordomo, а потом его запустить,
то тогда появляется эта проблема. После перезапуска сервиса majordomo проблема исчезает.
Я в свое время решил эту проблему, прописав зависимость сервиса majordomo от MySQL и Mosquitto, чтобы сервис MD
стартовал только после запуска вышеуказанных служб.
В файле /etc/init.d/majordomo у меня следующий заголовок:

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

#!/bin/sh
### BEGIN INIT INFO
# Provides: SmartLiving
# Required-Start:    $remote_fs $syslog $mysql $mosquitto
# Required-Stop:     $remote_fs $syslog $mysql $mosquitto
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO
Будет время, поковыряюсь в модуле и поищу причину бага.

Re: Предложения по доработке модуля MQTT

Добавлено: Вт янв 09, 2018 1:20 pm
nick7zmail
То что отваливается МД - это не нормально. Он должен слать что то типа heartbit раз в 20 секунд что ли...

Re: Предложения по доработке модуля MQTT

Добавлено: Вт янв 09, 2018 2:43 pm
prmres
DX168B писал(а): В файле /etc/init.d/majordomo у меня следующий заголовок:
полез в свою Ubuntu и не обнаружил этого файла, оказываетцо используется менеджер systemd
и соответственно описание сервиса тут: /etc/systemd/system/majordomo.service
добавил строку:

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

Requires=mosquitto.service
в моските включил log_type notice, перезапустил Ubuntu
результата ноль, в логе:

Client majordomo has exceeded timeout, disconnecting.


есть зависимость, нет зависимости - всё едино
клиент MD отваливается, лог потихонечку наполняется

Re: Предложения по доработке модуля MQTT

Добавлено: Вт янв 09, 2018 3:35 pm
nick7zmail
Цикл mqtt в самой системе какой используете?

Re: Предложения по доработке модуля MQTT

Добавлено: Вт янв 09, 2018 5:40 pm
prmres
nick7zmail писал(а):Цикл mqtt в самой системе какой используете?
поставил дополнение из маркета, появилост MQTT в устройствах
указал в настройках имя клиента, адрес сервера, топики все (т.е. #), имя-пароль
сразу пошла информация
это какой цикл я использую?
:)