• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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. Здесь его запихнули в какое то нелогичное место.
Спасибо, посмотрю
 
Сверху Снизу