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

Очередной MQTT-клиент для android в виде приборной панели списком

dao89

New member
И ещё... будет здорово, если в следующей версии будет реализовано что-то из прошлых "хотелок":
Из пожелалок (повторюсь):
1. Хотелось бы иметь возможность переключаться между вкладками пролистыванием.
2. Для виджета Value сделать возможность указать какой значок будет добавлен к отображаемому значению (например, % для влажности и т.п.)
3. В виджете Meter хранить выбор варианта отображения значения (не выводится, показывается процент или отображается абсолютное значение), так же как сейчас, только чтобы запоминалось.

И ещё... у меня для управления люстрами используются похожие команды (1, 2, 3, выкл и т.д. \ пример на скриншоте)... и они в итоге занимают очень много места на странице. Может у вас есть мысли как более лаконично это можно разместить? Может, можно разместить несколько маленьких кнопок в одной строчке?
:)
 

ravend

Member
@dao89 Хочу предложить такой вариант, Вам нужен второй топик read-only, Вас устроит такой вариант, что полное наименование read-only топика будет невозможно задать, но он будет существовать, и иметь адрес сформированный по определенным правилам?
Пример, есть основной топик topic1, он задан в клиенте, программа будет также читать данные и из топика topic1$ (символ $ будет добавляться автоматом для "второго" топика). Вашему железу нужно будет отправлять данные на любой из них.

По пожелания:
Скоро, ждите, кроме "несколько кнопок в одной строке", пока я не знаю, как это победить малой кровью (а много у меня пока нет).
 

dao89

New member
@dao89 Хочу предложить такой вариант, Вам нужен второй топик read-only, Вас устроит такой вариант, что полное наименование read-only топика будет невозможно задать, но он будет существовать, и иметь адрес сформированный по определенным правилам?
Пример, есть основной топик topic1, он задан в клиенте, программа будет также читать данные и из топика topic1$ (символ $ будет добавляться автоматом для "второго" топика). Вашему железу нужно будет отправлять данные на любой из них.
Да, конечно, такой вариант вполне устроит.

По пожелания:
Скоро, ждите, кроме "несколько кнопок в одной строке", пока я не знаю, как это победить малой кровью (а много у меня пока нет).
Приятно слышать! :)
 
Последнее редактирование:

ravend

Member
@dao89 В плеймаркете обновление, теперь у каждого виджета есть второй, "скрытый" адрес топика, правила формирования простые, - в конце адреса добавляется символ $ (пример, указан топик topic1/topic2, будет сформирован доп.топик topic1/topic2$). Виджет будет принимать данные на любой из них, но отправлять (если предусмотрено типом виджета) только на "основной". Я по прежнему советую не пользоваться данной возможность, где можно обойтись без неё.
 

ravend

Member
Также в данном обновлении присутствуют изменения:
- для виджета Value можно указать цвет значения
- виджет Slider периодически (1 раз в секудну) отправляет значение, которое в данный момент устанавливается интерактивно (пока вы продолжаете регулироватать, не отпуская элемент)
- визуализация процесса перетаскивания виджетов в пределах панели изменена
- у виджета Meter можно указать начальное значение режима отображения (ничего(simple), значение, проценты)
- у некоторых виджетов (Value, Slider, Meter) присутствует новая настройка OnShow(). Это кусок кода на языке JavaScript, которым можно доработать отображаемые данные, исходное значение доступно в переменной value, в неё же нужно положить "доработанное" значение.
Примеры, как этим пользоваться:
1. Нужно чтобы виджет Value отображал не только значение но и символ, допустить градусы.
В поле OnShow() пишем: value=value+'°';
2. Нужно перевести милливольты в вольты.
В поле OnShow() пишем: value=value/1000;

О всех обнаруженных ошибках, прошу сообщать в личку.
 
Последнее редактирование:

dao89

New member
@ravend спасибо за обновление! Уже тестирую. Рад, что опцию OnShow вы добавили и в виджет Meter, у себя заменил им все Value (для освещенности, температур, влажности) - выглядит лучше. Выбор режима отображения у Meter работает, спасибо. Кажется, в механизме подключения к брокеру тоже что-то изменилось, буду наблюдать. Проверял сегодня (на старой версии) Push-уведомления - работают, хорошая штука. По остальному отпишусь как проверю.

P.S. Сделал чтобы мой домашний MQTT-брокер был доступен как из локальной сети, так и из интернета - теперь красота: в любом месте, где есть сеть - запускаю вашу программу и без проблем смотрю что дома происходит, отлично!
 

ravend

Member
@dao89 Как у Вас работает новое перетаскивание виджетов? На самом деле это были самые объемные переработки, за всё время существования программы, наверняка, что-то сломалось, чего я не смог увидеть.
 

dao89

New member
@ravend сейчас попробовал - перетаскивание работает прекрасно, с прошлой реализацией не сравнить :) Пока вроде ничего неработающего не увидел, но если что-то всплывет - сообщу.
Единственное из старых нереализованных хотелок - перемещение между вкладками перелистыванием. Надеюсь у вас найдется и на это время в одном из следующих обновлений.
P.S. Обновление действительно серьезное, еще раз спасибо!
 

ravend

Member
@dao89 Перетаскивание между вкладками будет, но я хочу совместить реализацию этой возможности с ещё одной серьёзной доработкой (так как это решит две проблемы), пока детали раскрывать не буду, хочу только сказать, что эта возможность очень понравится владельцам планшетов.
 

ravend

Member
Так же должен констатировать, что количество рекламы в бесплатной версии программы сильно увеличилось, её назначение, я думаю, мы все прекрасно понимает...
Эта неприятная новость не касается тех, кто уже купил апгрейд до adfree. Спасибо за понимание!
 

dao89

New member
@ravend я имел ввиду не перетаскивание виджетов между вкладками, а возможность переключаться между вкладками перелистыванием. Т.е. сейчас чтобы перейти к другой вкладке нужно нажать на неё внизу экрана, если можно будет это делать так же, как обычно перелистываются экраны на рабочем столе телефонов\планшетов - будет неплохо, мне кажется.
 

ravend

Member
@dao89 Раскрыл таки часть своего плана, и переключаться между вкладками и перетаскивать виджеты между ними будет удобней...
 

dao89

New member
@ravend ну и отлично. Текущая реализация перемещения виджетов между вкладками мне сразу показалась временным решением на скорую руку :)
 

Gasaveo

New member
Есть статический IP привязанный к домену с окончанием xyz, не могу подключится, т.к. выходит ошибка "Server address is incorrect".
Ввел IP - заработало, но это менее удобно.
Прошу домены вида XYZ исключить из неверных.
 

solopov

New member
Сегодня в поисках альтернативы blynk натолкнулся на ваш проект. В общем все нравится.
Хотел бы предложить несколько, как кажется простых дополнений.
1. В meter добавить как в value отправку значения по длинному тапу.
2. Сделать виджет combobox (select), который например в базовом примере заменил бы кучу кнопок установки цвета.

Очень хотелось бы сделать данную программу основной для контроллеров, но мне часто требуется смотреть данные "в динамике" (аналог history graf плагина у blynk), пока для этого использую thingspeak сервер. Может у вас есть какое-то видение по данному поводу ?
 

ravend

Member
Сегодня в поисках альтернативы
Добрый день!
Про пожелания, понятно, согласен, и 1 и 2 было бы полезно иметь.
Про историю данных: у blynk это работает за счет того, что происходит связь с более сложным сервером, чем брокер mqtt. К сожалению mqtt в чистом виде не может сохранить историю, а затем по запросу её отдать клиенту. Я примерно представляю как это реализовать (похожий подход наверняка используется в blynk), сейчас этого нет. Для этого нужно было бы держать постоянно включенным ещё одно устройство (не клиент на телефоне, который может иногда оставаться без связи, или без питания) на котором бы и отрабатывалась подготовка истории и помещалась бы в mqtt уже в агрегированном, актуальном виде. Я думал над необходимость и возможность это реализовать, возможно даже в качестве расширения текущей программы, т.е. был бы некий режим сервера (на этом же устройстве можно было бы организовать и сам сервер mqtt). Тема интересная, но на всё это нужно время. Возможно я этим займусь, но наверное не очень скоро. Делать полу-решения на базе существующей программы не хотелось бы.
 

ravend

Member
В каком виде должен быть масив?
Речь про новый виджет Graph?
Это должен быть массив чисел в формате JSON. Т.е. payload должен начинаться символом '[' и заканчиваться символом ']', между ними следуют значения, числа, разделенные запятыми.
Примеры payload:
[1,2,3,10]
или допустим,
[36.6, 70, 90]

Важно понимать, что видже Graph не является виджетом, который cможет отобразить историю значений какого либо топика. Внешний вид виджета (значения графика) полностью зависит от текущего значения payload топика, с которым связан, т.е. вы должны самостоятельно, и полностью подготовить значение (внешний вид графика), которое будет отображено. Не рекомендуется использовать большое количество значений в массиве, т.к. это непосредственно связано с количеством данных, передаваемых от брокера к клиенту, рекомендуемое количество элементов массива - не больше 16 (предполагаемая длинна payload сообщения MQTT при этом составит не более 100 байт, данная рекомендация недействительна, если Вы не предполагаете экономить трафик). При публикации значения графика, _однозначно_ рекомендуется использовать признак "retained", впрочем как и для всех "значений-состояний" ваших устройств.

Демонстрация работы нового виджета есть в составе предустановленной (демонстрационной) панели при установке приложения из плеймаркета.

Если будут вопросы, пожалуйста, задавайте здесь либо на мой email (ravendmaster@gmail.com), как будет удобней.
 
Последнее редактирование:

ravend

Member
Прошу высказаться, нужен ли отдельный сайт, в котором бы были рекомендации, инструкции, "вопросы-ответ", как правильно организовать связь вашего оборудования с клиентом MQTT, ?
 
Сверху Снизу