• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Предложение MQTT Dash для Android

ByTE

Member
Привет друзья.

Прошу вас оценить это приложение для Android:

Приложения на Google Play – MQTT Dash

Полностью бесплатно без рекламы и без подвохов, поэтому не сочтите рекламой (никакого дохода я не получаю). Положительная оценка - лучшая плата для меня!
Русский язык обещаю в ближайшее время.
Делалось в свободное время для себя, но когда начало приобретать очертания - решил отпустить в мир.

Спасибо,
Вадим.
 

max506

New member
Вадим, добрый день.
Осваиваю возможности приложения.
Появились вопросы:
1. Как реализовать функциональность простой кнопки, при нажатии на которую в топик будет публиковаться постоянное значение?
2. Для чего служат поля префикс и постфикс?
3. Возможно ли размещать элементы на отдельных вкладках, чтобы группировать их?
 

ByTE

Member
1. Используйте Switch (Переключатель). Установите для On/Off (Вкл/Выкл) одно и тоже значение (которое нужно публиковать), и одну и ту-же иконку. Вот вам и простая кнопка.
2. Например, если вы получаете значение температуры как цифру 25, c помощью постфикса можно добавить "С", чтобы отображалось 25С. А префикс добавляется перед значением.
3. Нет. Но можете создать отдельные соединения для каждой группы.
 

max506

New member
Спасибо за ответы. Всё работает.
А планируется ли делать еще какие-либо доработки в программе?

И еще такой вопрос:
мне необходимо отображать данные с LCD дисплея (2 строки, 16 символов в строке). Соответственно я завел два элемента с типом "Text", и на каждый вывожу по одной строке.
Но даже при среднем размере главного текста первый символ выводится не полностью (хотя и виден). Это можно как-нибудь исправить? И сколько символов можно вывести при каждом из размеров текста?

И еще про возможность указания двух топиков publish и subscriber для одного виджета. Я в принципе понимаю, как это можно использовать, но хотелось бы услышать мнение автора ))
 
Последнее редактирование:

dao89

New member
Например, если вы получаете значение температуры как цифру 25, c помощью постфикса можно добавить "С", чтобы отображалось 25С
Когда я просил автора Linear MQTT dashboard ввести такой же функционал, он поступил очень дальновидно, и вместо этого сделал возможность перед выводом полученного значения преобразовывать его при помощи JS-скрипта. В простейшем случае - это как раз таки добавление постфикса. Как ещё это можно применить, можно глянуть в моем недавнем посте.
Посмотрел скриншоты вашей программы, хочется попробовать её в деле, но лично для меня это не имеет смысла, без описанной возможности (очень уж полезная функция)... Будет здорово, если откликнитесь на просьбу! :)

P.S. Вам уже предлагали сделать возможность donate, я поддерживаю. Если приложение хорошее, помогает в чём-то, то почему бы по-возможности не отблагодарить автора?
 

ByTE

Member
А планируется ли делать еще какие-либо доработки в программе?
О да! Сегодняшний релиз хорош :) Прошу опробовать!

Но даже при среднем размере главного текста первый символ выводится не полностью (хотя и виден). Это можно как-нибудь исправить?
Возможно. Я попробую.

Посмотрел скриншоты вашей программы, хочется попробовать её в деле, но лично для меня это не имеет смысла, без описанной возможности (очень уж полезная функция)... Будет здорово, если откликнитесь на просьбу! :)
Просьб оооочень много и в почтовом ящике и в комментариях. Просто невозможно угодить всем. Не хочется превращать программу в швейцарский нож, который очень сложно использовать.
Я конечно подумаю. Спасибо.
 

ByTE

Member
И еще про возможность указания двух топиков publish и subscriber для одного виджета. Я в принципе понимаю, как это можно использовать, но хотелось бы услышать мнение автора ))
Применений много. Например, чтобы не получать только-что опубликованное сообщение виджетом, который его опубликовал.
Например, вы посылаете команду гаражным воротам на открытие, виджет входит в режим ожидания (показывает крутящийся кружок), пока не будет получена обратная команда от ворот, что они открыты. Если в этом сценарии использовать не различные топики, то вы получите свое же сообщение обратно мгновенно и виджет выйдет из режима ожидания.
 

max506

New member
Применений много. Например, чтобы не получать только-что опубликованное сообщение виджетом, который его опубликовал.
Я предполагал именно такое использование. Хотя для моих задач более значима возможность не получать только что опубликованные сообщения контроллером (esp), который их опубликовал. Что собственно также возможно при описании двух разных топиков.
 

dao89

New member
Просьб оооочень много и в почтовом ящике и в комментариях. Просто невозможно угодить всем. Не хочется превращать программу в швейцарский нож, который очень сложно использовать.
Я конечно подумаю. Спасибо.
Что просьб много я понимаю... но не все просьбы одинаково полезны ;) Судя по тому как быстро автор другой программы внедрил такую фичу - это не должно отнять слишком много времени.
Смотрите, JS-скрипт, который добавит постфикс "%" к полученному значению будет выглядеть как
x=x+'%';
Несложно, не правда ли? Зато у пользователя появляется бесконечное число возможностей по обработке полученного значения.
К примеру, устройство сообщает о времени последнего движения в помещении, отправляя mqtt-сообщения вида "1478177242" (unix-time). При помощи несложного JS-скрипта это преобразуется в понятное "Сегодня || 19:47:22". Есть множество других применений. Главное, что пользователь сам сможет написать нужный ему скрипт, а не заваливать вас просьбами. Кому это нужно - воспользуются, кому не нужно - не будут, всё просто.
Нужно ведь перенимать хорошие и проверенные решения из похожих продуктов, не правда ли?
Эх, даже не знаю как ещё прорекламировать эту возможность, чтобы вы всё-таки решились её ввести...
 

ByTE

Member
Эх, даже не знаю как ещё прорекламировать эту возможность, чтобы вы всё-таки решились её ввести...
Наверное я даже с вами согласен :) Надо взять таймаут, пока в голове не сформируется полная картина имплементации и какие возможности должны быть у скриптов. Например менять цвета, и т. д.
Не хочется на скорую руку городить т.н. "спагетти код".
 

dao89

New member
Наверное я даже с вами согласен :) Надо взять таймаут, пока в голове не сформируется полная картина имплементации и какие возможности должны быть у скриптов. Например менять цвета, и т. д.
Не хочется на скорую руку городить т.н. "спагетти код".
Рад слышать :) Буду ждать.
 

ByTE

Member
Вадим, после установки обновления в виджете "Text" перестали корректно отображаться русские буквы.
Никаких действий с этим виджетом не производилось. У меня на 3-х устройствах отображается нормально. Попробуйте создать новый с липовыми топиками и указать префикс или постфикс на русскм языке. Если отображается нормально - проблема в содержимом сообщений.
 

ByTE

Member
Странно, я тоже ничего в скетче не менял. Просто обновился. И - кракозябры. Постфикс на русском отображается нормально.
Хмм, смог бы определить проблему, если смог бы воспроизвести ее. Нужен доступ к к этим данным. Можете дать доступ через какой-нибудь открытый брокер, чтобы я мог проанализировать?
Что за данные? Помните, что приложение интерпретирует любые данные, как строку. Т.е. даже цифры должны посылаться строкой.
 

ByTE

Member
Хмм, смог бы определить проблему, если смог бы воспроизвести ее. Нужен доступ к к этим данным. Можете дать доступ через какой-нибудь открытый брокер, чтобы я мог проанализировать?
Что за данные? Помните, что приложение интерпретирует любые данные, как строку. Т.е. даже цифры должны посылаться строкой.
Любо дайте мне простой скетч и настройки метрики приложения, которые воспроизводят проблему.
 

ByTE

Member
Я просто публикую строку "НЕ ЗАПУЩЕН". И до обновления отображалось нормально.
Даю брокер m10.cloudmqtt.com, порт 13218, test/test
топик /esp/inf/stage
Настройки опубликованы в теме metrics/exchange
Попробовал. Вижу те-же кракозябры и в интерфейсе и в дебаг логе. В таком виде данные приходят.
Создал тестовый топик. Попробовал опубликовать русский текст в него. Текс публикуется, принимается и отображается без проблем.
Даже не могу сказать, почему это происходит. А как данные публикуются в скетче?
 

ByTE

Member
И еще такой вопрос:
мне необходимо отображать данные с LCD дисплея (2 строки, 16 символов в строке). Соответственно я завел два элемента с типом "Text", и на каждый вывожу по одной строке.
Но даже при среднем размере главного текста первый символ выводится не полностью (хотя и виден). Это можно как-нибудь исправить?
ОК, эта проблема на вашей стороне. Вы шлете данные, дополненные пробелами в конце, поэтому перенос на новую строку в виджете так отрабатывает и вы не видите начала строки:
Код:
topic: /esp/inf/lcd1, payload: 00:06:32 Rect   , length: 16
topic: /esp/inf/lcd2, payload: 00:06:32 Rect   , length: 16
По поводу русского текста: а что за редактор вы используете? Здесь дело в кодировке редактора, я думаю.
 

ByTE

Member
По поводу русского текста: а что за редактор вы используете? Здесь дело в кодировке редактора, я думаю.
Да, дело определенно в кодировке отправляемых данных. Для текста "НЕ ЗАПУЩЕН" длина принимаемых бинарных данных должна быть 20 (UTF), но я вижу только 10, т.е. по одному байту на символ (ASCII).
Могу посоветовать пересохранить ваш скетч в кодировке UTF8 и попробовать залить его снова.
А чтобы проверить работоспособность приложения, просто попробуйте опубликовать русский текст прямо из приложения в любой топик. Опубликованные данные отобразятся корректно.
 

max506

New member
А чтобы проверить работоспособность приложения, просто попробуйте опубликовать русский текст прямо из приложения в любой топик. Опубликованные данные отобразятся корректно.
1. Да, из топика в топик публикуется корректно.
2. Перезагрузил Arduino IDE, перекомпилил скетч, залил в esp. Всё заработало.
Видимо какой-то глюк среды разработки Ардуино.

Спасибо за помощь. Предыдущие сообщения думаю можно удалить, чтобы не засорять тему.
 
Последнее редактирование:
  • Like
Реакции: ByTE

max506

New member
эта проблема на вашей стороне. Вы шлете данные, дополненные пробелами в конце, поэтому перенос на новую строку в виджете так отрабатывает и вы не видите начала строки:
Ну да, это же строки LCD дисплея, в строке 16 символов. Там могут быть завершающие пробелы, а могут быть и реальные значения, в зависимости от контекста отображения информации.
А почему пробелы в конце мешают? 16 символов не помещается в виджет?
 
Сверху Снизу