Скрыть объявление
Управляйте вашими ESP8266 и другими устройствами прямо с телефона из любой точки мира, где есть интернет!
Подробности и обсуждение IoT Manager в этой теме. Официальный сайт приложения и документация IoTmanager.ru
Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

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

Тема в разделе "IoT Manager – мобильное приложение", создана пользователем Victor, 13 фев 2016.

Метки:
  1. Mоnk

    Mоnk Новичок

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

    Mainscs Новичок

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

    oWart Новичок

    Сообщения:
    10
    Симпатии:
    4
    Может вы просто используете CloudMQTT с бесплатным тарифом Cute Cat (максимум 10 соединений)? Просто найти другой брокер (или заплатить за платный тариф) с бОльшим количеством соединений
     
  4. Mainscs

    Mainscs Новичок

    Сообщения:
    20
    Симпатии:
    4
    Спасибо за Ваш "совет".
    Может быть кому-нибудь приходилось решать подобную задачу?
     
  5. roiksv

    roiksv Новичок

    Сообщения:
    20
    Симпатии:
    0
  6. Mainscs

    Mainscs Новичок

    Сообщения:
    20
    Симпатии:
    4
    Спасибо! Обязательно посмотрю.
     
  7. Mainscs

    Mainscs Новичок

    Сообщения:
    20
    Симпатии:
    4
    Есть подозрение, что это можно решить более простыми уже используемыми аппаратными средствами путем изменения софта в них.
     
  8. Mоnk

    Mоnk Новичок

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

    Mоnk Новичок

    Сообщения:
    80
    Симпатии:
    3
    Где же Данила-мастер?
    Как бета-тестер имею несколько (уже) вопросов.
    1. Проблема с отображением закладок. (раскрыть)
    2. Размер иконок в виджете simple-btn (раскрыть)

    Ну и третий вопрос.
    Подозреваю, что статусы anydata и display-value на экран выводятся предпоследние полученные.
    На чем основано это мнение... (раскрыть)
    display-value
    Установка температуры в проекте осуществляется ротательным энкодером или виджетами simple-btn. Скрипт "счетчика" один и тот же. Вывод на ЛСД и отсылка данных в брокер раз в секунду. ЛСД отображает установленное значение корректно. А вот ИОТманагер предпоследнее. Если я допустим после 10 установил 11, затем 12, ИОТманагер показывает 11. Щелкаю на единицу в минус, устанавливая 11, или в плюс, устанавливая 13. ИОТманагер показывает 12.
    Переподключаюсь к брокеру (щелкаю облако). display-value не показывает ничего, кроме своего inactive_color.
    Дальше веселее. Понимаю, что ИОТманагер врет, щелкаю соседнюю вкладку, затем возвращаюсь к "неправильной". А там все вдруг красиво и правильно.

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

    Victor Administrator Команда форума

    Сообщения:
    2.182
    Симпатии:
    368
    Закладки можно скроллить, но область тача в этом релизе получилась маленькая и в нее трудно попасть - это глюк текущей версии. Будет исправлено.
    Максимальные значения id достаточно большие и ограничены только JS (вроде uint32, но не проверял)
    за размер иконки на кнопке отвечает style3, т.е. просто меняете размер шрифта (будет изменен и размер текста на кнопке)
    Чтобы снизить нагрузку, когда данных очень много, в этой версии было введено ограничение на обновление данных, когда dashboard не отображается (находимся в другом пункте меню). Если данные отправлять достаточно часто, то визуально все нормально. Если передавать данные редко, то действительно, наблюдается некоторое отставания отображения новых данных. Если ушли с dashboard в другие пункты меню и в этот момент прилетели новые данные, то они могут не обновится. Если в момент приема данных находится в dashboard, то все ок. Данная проблема актуальна, если отлаживаете обмен (смотрите логи и т.п.). При обычной эксплуатации нет необходимости переключаться из dashboard и данной проблемы не наблюдается.
     
  11. Mоnk

    Mоnk Новичок

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

    Mоnk Новичок

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

    Victor Administrator Команда форума

    Сообщения:
    2.182
    Симпатии:
    368
    ок, спасибо. значит это баг display-value, исправлю.
     
  14. Mоnk

    Mоnk Новичок

    Сообщения:
    80
    Симпатии:
    3
    Конфликт интересов...
    Я не смог заставить работать одновременно push уведомления и PubSubClient.
    Код (C):
    1. void push(String push_msg)
    2. {
    3.   WiFiClientSecure push_client;
    4.   if (!push_client.connect("onesignal.com", 443)) return;
    5.  
    6.   String push_data = "{\"app_id\": \"8871958c-5f52-11e5-8f7a-c36f5770ade9\",\"include_player_ids\":[\"" + ids + "\"],\"android_group\":\"IoT Manager\",\"contents\": {\"en\": \"" + push_msg + "\"}}";
    7.  
    8.   push_client.println("POST /api/v1/notifications HTTP/1.1");
    9.   push_client.print("Host:");
    10.   push_client.println("onesignal.com");
    11.   push_client.println("User-Agent: esp8266.Arduino.IoTmanager");
    12.   push_client.print("Content-Length: ");
    13.   push_client.println(push_data.length());
    14.   push_client.println("Content-Type: application/json");
    15.   push_client.println("Connection: close");
    16.   push_client.println();
    17.   push_client.println(push_data);
    18. }
    19.  
    20. push("test message из Курятника");
    Отдельно друг от друга работают изЮмительно. Но как только собираешь в одном эскизе - получаю мёртвый висяк системы при отработке строчки if (!push_client.connect("onesignal.com", 443)) return;.
    Где-то их дорожки пересекаются...
     
  15. Victor

    Victor Administrator Команда форума

    Сообщения:
    2.182
    Симпатии:
    368
    это, видимо, проблема Arduino Framework - невозможна одновременная работа WiFiClientSecure и WiFiClient (mqtt и https в данном случае). Попробуйте отключать WiFiClient на время работы WiFiClientSecure.
     
  16. Mоnk

    Mоnk Новичок

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

    Victor Administrator Команда форума

    Сообщения:
    2.182
    Симпатии:
    368
    попробуйте всегда смотреть раздел public в заголовочном файле библиотеки - здорово помогает pubsubclient/PubSubClient.h at master · Imroy/pubsubclient · GitHub и
    Arduino/WiFiClient.h at master · esp8266/Arduino · GitHub
     
  18. Mоnk

    Mоnk Новичок

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

    sharikov Активный участник сообщества

    Сообщения:
    377
    Симпатии:
    32
    iotmanager 1.5.5 build 105050

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

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

    Victor Administrator Команда форума

    Сообщения:
    2.182
    Симпатии:
    368
    Спасибо, посмотрю
     

Поделиться этой страницей