IoT Manager - сообщаем о багах

Mоnk

Member
Проблема с отображением закладок. Имеются 4 штуки.
Screenshot_2017-04-19-11-52-07.png
Если развернуть телефон вертикально, невозможно добраться до самой правой закладки, не сдвигаются закладки. Информация с выбранной "невидимой" закладки нормально отображается.
Screenshot_2017-04-19-11-51-41.png
Автоповороты, пулрефреши пробовал включать-выключать, не помогло.
Попутный вопрос про размер id & pageId. Максимально разрешенные значения?
 

Mainscs

Member
А существует ли какой-нибудь разумный способ подключения к брокеру более 10 устройств? К примеру, под именем уже подключенного, но со своими тараканами.
Должно же быть какое-то решение!
Заранее спасибо.
 

oWart

New member
А существует ли какой-нибудь разумный способ подключения к брокеру более 10 устройств?
Может вы просто используете CloudMQTT с бесплатным тарифом Cute Cat (максимум 10 соединений)? Просто найти другой брокер (или заплатить за платный тариф) с бОльшим количеством соединений
 

Mainscs

Member
Спасибо за Ваш "совет".
Может быть кому-нибудь приходилось решать подобную задачу?
 

Mоnk

Member
Расскажите, как изменить размер иконки на кнопке?
Код:
  id        [14] = String(which * 100 - 1);      // ===== Три статуса
  page      [14] = room;
  pageId    [14] = which;
  sTopic    [14] = prefdev + "/lightPlus";
  widget    [14] = "simple-btn";
  class1    [14] = "item no-border col-xs-4"; // Размер колонки
  class2    [14] = "balanced";
  class3    [14] = "button button-calm button-fab button-outline icon ion-ios-time-outline size";  // ion-ios-sunny-outline ion-ios-close-outline
  style3    [14] = "height:80px;width:80px;";
 

Mоnk

Member
Где же Данила-мастер?
Как бета-тестер имею несколько (уже) вопросов.
Проблема с отображением закладок. Имеются 4 штуки.
Посмотреть вложение 3978
Если развернуть телефон вертикально, невозможно добраться до самой правой закладки, не сдвигаются закладки. Информация с выбранной "невидимой" закладки нормально отображается.
Посмотреть вложение 3979
Автоповороты, пулрефреши пробовал включать-выключать, не помогло.
Расскажите, как изменить размер иконки на кнопке?
Код:
  id        [14] = String(which * 100 - 1);      // ===== Три статуса
  page      [14] = room;
  pageId    [14] = which;
  sTopic    [14] = prefdev + "/lightPlus";
  widget    [14] = "simple-btn";
  class1    [14] = "item no-border col-xs-4"; // Размер колонки
  class2    [14] = "balanced";
  class3    [14] = "button button-calm button-fab button-outline icon ion-ios-time-outline size";  // ion-ios-sunny-outline ion-ios-close-outline
  style3    [14] = "height:80px;width:80px;";
Ну и третий вопрос.
Подозреваю, что статусы anydata и display-value на экран выводятся предпоследние полученные.
display-value
Установка температуры в проекте осуществляется ротательным энкодером или виджетами simple-btn. Скрипт "счетчика" один и тот же. Вывод на ЛСД и отсылка данных в брокер раз в секунду. ЛСД отображает установленное значение корректно. А вот ИОТманагер предпоследнее. Если я допустим после 10 установил 11, затем 12, ИОТманагер показывает 11. Щелкаю на единицу в минус, устанавливая 11, или в плюс, устанавливая 13. ИОТманагер показывает 12.
Переподключаюсь к брокеру (щелкаю облако). display-value не показывает ничего, кроме своего inactive_color.
Дальше веселее. Понимаю, что ИОТманагер врет, щелкаю соседнюю вкладку, затем возвращаюсь к "неправильной". А там все вдруг красиво и правильно.

anydata
После смены класса и стиля по событию виджет показывает некие совсем древние данные, которые затем меняются на правильные после получения "совсем свежих" данных (у меня установлена отправка раз в 10 секунд).
Может у меня с телефоном проблема?
 
Последнее редактирование:

Victor

Administrator
Команда форума
1. Проблема с отображением закладок.
Закладки можно скроллить, но область тача в этом релизе получилась маленькая и в нее трудно попасть - это глюк текущей версии. Будет исправлено.
Максимальные значения id достаточно большие и ограничены только JS (вроде uint32, но не проверял)
2. Размер иконок в виджете simple-btn
за размер иконки на кнопке отвечает [inline]style3[/inline], т.е. просто меняете размер шрифта (будет изменен и размер текста на кнопке)
Подозреваю, что статусы anydata и display-value на экран выводятся предпоследние полученные.
Чтобы снизить нагрузку, когда данных очень много, в этой версии было введено ограничение на обновление данных, когда dashboard не отображается (находимся в другом пункте меню). Если данные отправлять достаточно часто, то визуально все нормально. Если передавать данные редко, то действительно, наблюдается некоторое отставания отображения новых данных. Если ушли с dashboard в другие пункты меню и в этот момент прилетели новые данные, то они могут не обновится. Если в момент приема данных находится в dashboard, то все ок. Данная проблема актуальна, если отлаживаете обмен (смотрите логи и т.п.). При обычной эксплуатации нет необходимости переключаться из dashboard и данной проблемы не наблюдается.
 

Mоnk

Member
за размер иконки на кнопке отвечает style3, т.е. просто меняете размер шрифта (будет изменен и размер текста на кнопке)
Пробовал играть со стилями... В toggle работает, в simple-btn не хочет. Цвет могу поменять, размер нет.
Код:
  id        [2] = String(which * 100 + 4);       // ===== Нагреватель
  page      [2] = room;
  pageId    [2] = which;
  sTopic    [2] = prefdev + "/heatToggle";
  widget    [2] = "simple-btn";
  class1    [2] = "item no-border col-xs-4"; // Размер колонки
  class2    [2] = "balanced";
    if (heattoggle == OFF)
    {
  class3    [2] = "button button-calm button-fab button-outline icon ion-ios-flame-outline";  // ion-ios-sunny-outline ion-ios-close-outline
  style3    [2] = "height:80px;width:80px;font-size:50px;color:#ffffff;";
  more      [2] = ",\"widgetConfig\":{\"alertTitle\":\"Вопрос:\",\"alertText\":\"Сохранить настройки и включить непрерывный нагрев?\"}";
    }
    else if (heattoggle == ON)
    {
  class3    [2] = "button button-calm button-fab button-outline icon ion-ios-flame";  // ion-ios-sunny-outline ion-ios-close-outline
  style3    [2] = "height:80px;width:80px;font-size:50px;color:#ff0000;";
  more      [2] = ",\"widgetConfig\":{\"alertTitle\":\"Вопрос:\",\"alertText\":\"Сохранить настройки и включить регулируемый нагрев?\"}";
  digitalWrite(heat_pin, ON);
    }
    else if (heattoggle == AUTO)
    {
  class3    [2] = "button button-calm button-fab button-outline icon ion-speedometer";  // ion-ios-sunny-outline ion-ios-close-outline
  style3    [2] = "height:80px;width:80px;font-size:50px;color:#00ff00;";
  more      [2] = ",\"widgetConfig\":{\"alertTitle\":\"Вопрос:\",\"alertText\":\"Сохранить настройки и выключить нагрев?\"}";
    }
Screenshot_2017-05-28-11-06-54.pngСобственно демонстрация "отставания" display-value. Факел на кнопке и фон на температуре уже красные, а надписью "OFF", которая должна была появиться в предыдущем положении, можно любоваться бесконечно, если не трогать ИОТманагер.
 

Mоnk

Member
Для чистоты эксперимента поменял display-value на anydata. Результат положительный. В том смысле, что anydata работает корректно из любого положения.
 

Mоnk

Member
Конфликт интересов...
Я не смог заставить работать одновременно push уведомления и PubSubClient.
Код:
void push(String push_msg)
{
  WiFiClientSecure push_client;
  if (!push_client.connect("onesignal.com", 443)) return;

  String push_data = "{\"app_id\": \"8871958c-5f52-11e5-8f7a-c36f5770ade9\",\"include_player_ids\":[\"" + ids + "\"],\"android_group\":\"IoT Manager\",\"contents\": {\"en\": \"" + push_msg + "\"}}";

  push_client.println("POST /api/v1/notifications HTTP/1.1");
  push_client.print("Host:");
  push_client.println("onesignal.com");
  push_client.println("User-Agent: esp8266.Arduino.IoTmanager");
  push_client.print("Content-Length: ");
  push_client.println(push_data.length());
  push_client.println("Content-Type: application/json");
  push_client.println("Connection: close");
  push_client.println();
  push_client.println(push_data);
}

push("test message из Курятника");
Отдельно друг от друга работают изЮмительно. Но как только собираешь в одном эскизе - получаю мёртвый висяк системы при отработке строчки if (!push_client.connect("onesignal.com", 443)) return;.
Где-то их дорожки пересекаются...
 

Victor

Administrator
Команда форума
Но как только собираешь в одном эскизе - получаю мёртвый висяк системы
это, видимо, проблема Arduino Framework - невозможна одновременная работа [inline]WiFiClientSecure[/inline] и [inline]WiFiClient[/inline] (mqtt и https в данном случае). Попробуйте отключать [inline]WiFiClient[/inline] на время работы [inline]WiFiClientSecure[/inline].
 

Mоnk

Member
Догадался, и даже пытался клиент.стоп() делать перед ВиФиклиентскьюре.
Но знаний не хватает, соответственно и синтаксис правильный не знаю. Опять же после "стоп" надо и "старт" делать... (такой тонкий намек, продиктуйте, а я попробую!)
 

Victor

Administrator
Команда форума
Но знаний не хватает, соответственно и синтаксис правильный не знаю.
попробуйте всегда смотреть раздел [inline]public[/inline] в заголовочном файле библиотеки - здорово помогает pubsubclient/PubSubClient.h at master · Imroy/pubsubclient · GitHub и
Arduino/WiFiClient.h at master · esp8266/Arduino · GitHub
 

Mоnk

Member
Дело было не в бабине... А в волшебных пузырьках.
Путем неимоверных усилий! Сапоги свистели над головой!
В общем я был не прав.
Смею (теперь) предположить в слух, что виноват малый объем памяти HEAP. Ибо:
Взял Богом забытый первый пример с ГитХаба, в котором мирно уживался Паблиш и Пуш.
Напихал в него по очереди нужных библиотек и своего кода до состояний "не хочу работать". И начал отрезать "лишнее".
Так вот... Если в секции const int nWidgets = х; уменьшать "х" или комментировать строки, ПУШ работает.
Похоже память жрут Стринги. Если не комментировать строки, а Стринг менять на ИНТ или ЧАР*, то ПУШ работает.
Дык вот. Помогите уставшему путнику.
Я конечно сегодня попробую везде, где возможно, переделать Стринги в Чары и Инты, но сами понимаете, Мастера мне не переплюнуть!
 

sharikov

Active member
iotmanager 1.5.5 build 105050

Неверно отображается timestamp в логе: текущее время 16:20, в логе 04:xx
Samsung galaxy S5 mini / Андроид 6.1
В системе русский язык, в приложении включен английский. Видимо при английском языке хотели отображать hh:mm am/pm но что-то пошло не так.

Номер сборки у всех программ располагают в Help->About. Здесь его запихнули в какое то нелогичное место.
 

Victor

Administrator
Команда форума
iotmanager 1.5.5 build 105050

Неверно отображается timestamp в логе: текущее время 16:20, в логе 04:xx
Samsung galaxy S5 mini / Андроид 6.1
В системе русский язык, в приложении включен английский. Видимо при английском языке хотели отображать hh:mm am/pm но что-то пошло не так.

Номер сборки у всех программ располагают в Help->About. Здесь его запихнули в какое то нелогичное место.
Спасибо, посмотрю
 
Сверху Снизу