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

Lazy MQTT - Android. Огромные возможности GUI

Encrypt

Member
Спасибо за позитив! Да, выложу сегодня-завтра в google play платную. Решил сделать платную, чтобы приложение развивалось - так у меня есть небольшой стимул делать фичи, которые лично мне не применить, но нужны пользователям.
Сразу же просьба, сделать возможность покупки через webmoney с привязкой к гугл почте, НО без привязки к гуглмаркету, как сделали разработчики Poweramp
 

minii

New member
Спасибо за отзыв!
Про таймер себе помечу, но его можно сделать самостоятельно:
1) по приходе данных запомнить время в переменной
2) во встроенном коннекте (имя которого начинается с @) есть темы, которые присылают сообщения раз в 1 и 10 секунд
3) подписать другой Элемент Данных (скажем, с именем mytime) на эту тему, и в нем пересчитывать время, которое прошло
4) в любой плитке использовать ссылку на этот Элемент Данных по имени со знаком $ в начале (например, в Подвале плитки поставить $mytime) - сам элемент к плитке подключать не нужно - подключен может быть другой элемент
 

minii

New member
1) Диапазон выбора значения сделать во всплывающем окне, то что сейчас есть очень не удобно, нет четкости выбора. И нет возможность задать градацию значений, например 10, 20 , 30, то есть от 0 до 100 но по десяткам.
2) Сделать вариант назначение иконок(украшение) проще , как mqtt dash прикрутить большой пак иконок с возможностью менять цвет. А то назначение через раздел украшения для большинства будет мрак как сложно и долго. Смотрю там целая дизайнерская студия)
1) это про слайдер? А надо сделать еще тип элемента с выбором из списка?
2) подумаю. Но там сделано так, чтобы во-первых иметь очень большие возможности по настройке, а во-вторых не перегружать один экран всеми настройками

Я вполне осознаю, что приложение сначала выглядит сложновато с непривычки. Но основная идея была - сделать очень гибкий интерфейс с большими возможностями.
 

minii

New member
...Вы можете получить бесплатный сертификат у letsencrypt на три месяца...
Я так понимаю, что в этом случае проверяется подлинность сервера. А клиента - нет, иначе у него тоже придется каждые 3 месяца сертификат обновлять?
 

minii

New member
Выпустил версию с поддержкой TLS (опционально можно игнорировать проверку серверного сертификата - это дает возможность использовать шифрование без необходимости иметь серверный сертификат, подписанный публичным CA).
 

Encrypt

Member
Про таймер себе помечу, но его можно сделать самостоятельно:
Свобода действий это хорошо, но будет лучше, если подсчет времени сделать нативный, а не через медленные яваскрипты. Кстати, какой там движок используется?
1) это про слайдер? А надо сделать еще тип элемента с выбором из списка?
Да слайдер, и выбор из списка тоже пригодится, пытался сделать что-то, но как я понял там в скобках Список выбора (нет) - означает еще не реализовано?
Опишу задачу для представления общей картины:
Например, у меня есть вытяжка, которую необходимо включать вручную, и при этом нужно задать мощность и время работы.
Представляю себе такой вариант настройки плитки.
Тип: Слайдер
Ниже появляется кнопка - Добавить слайдер, для возможности добавлять много слайдеров. Таким макаром можно будет даже RGB настроить.
Настройки слайдера:
Название(поле ввода): например, Мощность вентилятора
ID(поле ввода): val значение в скрипте,
Диапазон(поля ввода) от-до: например, 0 - 100
Шаг(поле ввода): например, 0.1 или 10
Тип(выбор): линейный / круговой / выбор цвета (для RGB)

Пример работы плитки:
Когда тапнуть плитку, появляется всплывающее окно со слайдером(и). Первой строкой - Название, второй строкой выбранное_значение, третей строкой Линейный слайдер. Для кругового слайдера, выбранное_значение лучше разместить в центре слайдера. В низу окна кнопка - Выбрать/Установить/Отправить
После, эти выбранные значения передаются скрипту(или сразу отправка json строки), а в плитке по логике надо вывести эти данные красиво. Было бы идеально, если бы в оформлении плиток можно было использовать html/css :)

А почему Google Play не канает?
По историческим причинам, гуглплей не использую. Мне кажется, чем больше вариантов оплаты тем лучше. Да и куда проще после смены смарта, вбить ящик и код лицензии в проге, Поверамп так уже несколько лет работает без проблем.
 

minii

New member
Движок Rhino. Не быстро, конечно, но раз в секунду обновить данные - для телефона незаметные расходы.
Сделаю что-нибудь, типа, переменной, в которой время после обновления в секундах. А форматировать и выводить - как угодно в JS.

Слайдеры разного вида с шагом, список выбора - что-то такое планировал. Сделаю.
Выбор цвета есть, слайдерами как-то не визуально будет по-сравнению с ним.

Делать поддержку проверки лицензионного ключа, его распространения и принятия оплаты - это отдельный не маленький проект. Я согласен, что больше вариантов - лучше, но не готов на это.
После смены смартфона программа, купленная в Google Play, все равно будет числиться купленной, и вбивать ничего не надо.
 

minii

New member
Оформление плитки html - имхо, сложные навороты, которыми сложно пользоваться. Тогда проще сделать WebView на весь экран, текст которого генерировать скриптом, а на линки - отправку MQTT. такое сделать можно. Но надо ли?
 

minii

New member
По-поводу свободного оформления плиток, рисования в них графиков и всего, чего угодно - сейчас можно использовать MQTT-сообщение с картинкой, которую генерировать на сервере. Позже сделаю еще периодический опрос URL (для картинок).
 

Алексей.

Active member
Выпустил версию с поддержкой TLS (опционально можно игнорировать проверку серверного сертификата - это дает возможность использовать шифрование без необходимости иметь серверный сертификат, подписанный публичным CA).
Развернул брокер на одном домене, получил сертификат для этого домена, проверил соединение и аутентификацию клиента, работает, в логах брокера вижу активность клиента. Неплохое начало. На другом домене (на другом инстансе у другого хостера) пробросил tcp порт на брокера. В приложении (Lazy MQTT) в настройках соединения меняю домен и по прежнему успешно устанавливается соединение и выполняется аутентификация клиента, и трафик проходит совсем через другой домен.
minii, Вам похоже совсем безразлично кому выдан x.509 сертификат, что в сабджекте CN совсем не тот что домен с которым устанавливается соединение, искаженное понятие о подлинности однако, про dns атаки Вы наверно не слышали, жаль.
 

minii

New member
Алексей, мне жаль, что попытавшись сделать поддержку TLS, что вы просили и в чем, как я писал ранее, я плохо разбираюсь, я получаю от вас резкий ответ. Как-будто я вас где-то обманул.
Пока могу сказать, что я не занимаюсь проверкой сертификата, а отдаю его проверку на откуп стандартной имплементации. Кроме случая, когда вы ставите галочку "не проверять сертификат" в настройках Соединения в моем приложении.
 
Последнее редактирование:

Алексей.

Active member
Алексей, мне жаль, что попытавшись сделать поддержку TLS, что вы просили и в чем, как я писал ранее, я плохо разбираюсь, я получаю от вас резкий ответ.
Да причем тут конкретная реализация tls или иных методов. Механизм хендшейка никто не отменял.
Клиент получает от хоста сертификат с публичным ключом и первое что он должен сделать, проверить что сертификат выдан именно этому хосту, а далее приступить к проверке подлинности.
Предположим брокер - это человек (просто фамилия такая "Брокер") которому вас просили передать деньги, вы его никогда не видели, но вы доверяете документам которые выдает УЦ (паспортный стол в этом примере). Вы встречаете человека, но он не Брокер а Вайнер и вы этого не знаете, он показывает реальный паспорт выданный Вайнеру и подлинность документов не вызывает сомнения и про Брокера вы уже забываете.
 

minii

New member
Алексей, вы меня не правильно поняли. Мне не нужны недовольство, или покровительственный тон. Я повторюсь, но я вам лично ничем не обязан. Нравится приложение - я очень рад. Не нравится что-то - я готов сделать его лучше, если вы спокойно и вежливо можете объяснить суть проблемы.
В стиле "у вас все не так, я сейчас объясню как правильно" разговаривать со мной не надо. Это просьба.

По-поводу TLS - я уже написал свое мнение. Повторюсь: что есть проблема - я услышал. Что я буду смотреть - я уже дал понять. Почему оно так работает - во-первых, мне надо как-то это протестировать. Во-вторых, я пока не понимаю причину, потому что специально я ничего не отключал, и предполагаю, что по-умолчанию соответствие имени хоста в сертификате и соединении должно проверяться в имплементации протокола в Android. В общем, буду смотреть. Если вы хотите и можете помочь - просьба обеспечить тестовыми соединениями: одно с правильным сертификатом, другое - с неправильным. Буду вам благодарен.
 

Алексей.

Active member
Алексей, вы меня не правильно поняли. Мне не нужны недовольство, или покровительственный тон.
Ничего личного, простите что сказал что то обидное.
Если есть откровенная дыра, я и сказал про это. Незнание закона не освобождает от (c)
по-умолчанию соответствие имени хоста в сертификате и соединении должно проверяться в имплементации протокола в Android
Это ваше личное мнение? или есть спека в которой это указано?
мне надо как-то это протестировать
У меня на минимальный тест (в ротором я не использовал самоподписанный левый сертификат и кривые цепочки) ушло не более 10-ти минут, если разработчик сам не представляет то что он делает, теряется смысл вообще что либо тестировать.
 

minii

New member
Здравствуйте, господа.

Небольшой анонс: готовится версия:
- с возможностью запускать JS-скрипт по таймеру;
- имеющая встроенное отслеживание времени последнего получения данных.

Это позволяет, например, показывать, как давно данные обновились или предупреждать, если они слишком давно не обновлялись.
Такое можно было сделать и раньше, с помощью встроенного эмулятора MQTT-сервера, который регулярно "посылает" сообщения (т.е. работает как таймер), но менее удобно.

Вопрос к вам, как пользователям: напишите, у кого что получилось (со скриншотами, а можно конфигурацию приложить) или наоборот, что не получается.
 

minii

New member
Новая версия 1.0.3 доступна в Приложения в Google Play – Lazy MQTT Free

Исправлено:
- теперь можно использовать разные цвета у плиток с одной иконкой;
- теперь при TLS проверяется имя хоста в сертификате.
Добавлено:
- периодический запуск скрипта по таймеру (см. Данные), время с последнего получения данных ($ago и $agotext - см. в описании переменных скрипта. Можно использовать напрямую в полях плиток. Для обновления нужно включить таймер);
- круговой слайдер (см. тип Плитки);
- на слайдер можно назначить не только минимум и максимум, но и шаг (см. Плитки).
 

minii

New member
Анонс следующей версии
Появится на этой неделе.

1) в слайдере теперь можно задать цветовой градиент. Линейный слайдер теперь дорисовывается до полного размера цветом фона слайдера
2) в "Соединении" теперь можно переопределить Client ID (нужно для поддержки нескольких соединений к одному серверу)
3) сервис теперь работает при выкидывании приложения из памяти. Уведомление в шторке настраивается (всегда/при закрытом приложении)

11.png
 

Adbokat

New member
Доброго времени суток всем.
Вопрос разработчику данного ПО.
Планируется ли клон данного приложения под IOS ?
 
Сверху Снизу