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

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

Mоnk

Member
Не совсем понял ваш вопрос.
Да, постановка вопроса не корректная.
Можно ли кусок кода
Код:
void pubStatus(String t, String payload)
{
    if (client.publish(t + "/status", payload))
    {
       Serial.println("Publish new status for " + t + ", value: " + payload);
    }
    else
    {
       Serial.println("Publish new status for " + t + " FAIL!");
    }
  delay(PUB_DELAY);
}
переписать так:
Код:
void pubStatus(String t, String payload)
{
    client.publish(t + "/status", payload)
  delay(PUB_DELAY);
}
А вот этот
Код:
void pubConfig()
{
  needPubConfig = false;
  bool success;
 
  for (int i = 0; i < nWidgets; i = i + 1)
  {
    success = client.publish(MQTT::Publish(prefix + "/" + deviceId + "/config", thing_config[i]).set_qos(1));
    if (success)
    {
      Serial.println("Publish config: Success (" + thing_config[i] + ")");
    }
    else
    {
      Serial.println("Publish config FAIL! ("    + thing_config[i] + ")");
    }

    delay(PUB_DELAY);
    pubStatus(sTopic[i], stat[i]);

  }
  yield();
}
вот так:
Код:
void pubConfig()
{
  needPubConfig = false;
 
  for (int i = 0; i < nWidgets; i = i + 1)
  {
    client.publish(MQTT::Publish(prefix + "/" + deviceId + "/config", thing_config[i]).set_qos(1));
   
    delay(PUB_DELAY);
    pubStatus(sTopic[i], stat[i]);

  }
  yield();
}
 

Mоnk

Member
Очередное недопонимание в перемешку с кривизной рук.
Попробовал во втором примере убрать иконку в соответствии с описанием на Виджет toggle · IoT Manager.
Код:
String iconStyle    [nWidgets];

void initVar()
{
  id        [0] = "3";      // ===== строка в менеджере
  page      [0] = room;
  pageId    [0] = 2;        // ===== закладка в менеджере
  descr     [0] = "Свет";
  widget    [0] = "toggle";
  pin       [0] = 12;       // ===== Свет
  defaultVal[0] = OFF;
  inverted  [0] = true;
  sTopic    [0] = prefix + "/" + deviceId + "/light0";
  color     [0] = "\"color\":\"green\"";               // black, blue, green, orange, red, white, yellow (off - grey)
  iconStyle [0] = "\"display\":\"none\"";

thing_config[0] = "{\"id\":\"" + id[0] + "\",\"page\":\"" + page[0] + "\",\"pageId\":\"" + pageId[0] + "\",\"descr\":\"" + descr[0] + "\",\"widget\":\"" + widget[0] + "\",\"topic\":\"" + sTopic[0] + "\"," + color[0] + "," + iconStyle[0] + "}";   // Свет On/Off
Иконка слева не пропадает.
Что я делаю не так?
 
Последнее редактирование:

Victor

Administrator
Команда форума
Что я делаю не так?
нужен валидный JSON и
вместо [inline]iconStyle [0]="\"display\":\"none\"";[/inline]
нужно [inline]iconStyle [0]="\"iconStyle\":\"display:none\"";[/inline]
может и еще что-то есть - очень уж не люблю я кавычки высчитывать :) - именно поэтому предлагаю вам посмотреть пример в platformio - там конфиги виджетов в отдельных файлах - так намного проще (смотрите папку [inline]prebuild[/inline]) или для Arduino IDE - в этом простом примере реализован такой же механизм
 

Mоnk

Member
Ура! Заработало!
Очень уж тяжко переходить на новую "платформу", тем более, когда устройство уже работает.
Сейчас уже "рюшечки" пошли. Кстати, а можно все же сделать при наличии нескольких закладок в менеджере автоматическое центрирование выбранной? Или хотя бы не использовать зону закладок для функции "рефреш". Дрожащий палец так и норовит при боковом сдвиге закладок привести систему в состояние "рефреш".
 

rv9Yw

New member
....или для Arduino IDE - в этом простом примере реализован такой же механизм
Добрый день. Понимаю что заняты и все такое, но уделите немножко времени. Заранее спасибо.

В примере "heater" все компилируется но в Manager IoT ничего не отображается кроме надписи HEATER , причем выше галочек состояния соединения с интернетом и брокером. Датчик температуры не подключен и платка ESP8266-12e.
Почему?

И скрипт gen_h.bat выполняется с ошибкой, не подскажите что не так?

 

rv9Yw

New member
а папка [inline]prebuild/temp[/inline] у вас создалась? там файлы есть?

попробуйте вручную запустить [inline]gen_h.bat[/inline]
проверьте дату/время файлов в [inline]lib/widgets[/inline]
вручную запускал (скриншот выше), файлы в папке lib не обновляются.
 

Victor

Administrator
Команда форума
вручную запускал (скриншот выше), файлы в папке lib не обновляются.
Попробуйте exe утилиты из папки bin скопировать куда-нибудь, куда PATH у вас прописан.
Например [inline]c:\MinGW32[/inline] или вообще в [inline]C:\Windows[/inline]
 

Victor

Administrator
Команда форума
Спасибо..
Я там тему создавал про "range" & "small-badge", будет время обратите внимание.
да, я уже читал. Это одни из первых виджетов. Их надо бы переработать как с toggle я сделал, а тогда уже и документацию сделать, а на старые смысла нет - там много чего измениться может
 

rv9Yw

New member
да, я уже читал. Это одни из первых виджетов. Их надо бы переработать как с toggle я сделал, а тогда уже и документацию сделать, а на старые смысла нет - там много чего измениться может
Понятно, ну тогда ждем. Пока не буду их использовать.
 

rv9Yw

New member
Еще заметил, в файле platformio.ini

[inline]libdeps-dir = "lib"[/inline]

должно относится к секции [platformio] как ниже
Код:
[platformio]
env_default = esp12e
home-dir = %HOMEPATH%\.platformio
src_dir = heater
libdeps-dir = .piolibdeps
lib_dir = lib
envs_dir = .pioenvs
но и там Builder его исключает как неизвестный. Похоже недоработка у ребят.. Надо отрепортить будет.
 
Сверху Снизу