• Система автоматизации с открытым исходным кодом на базе 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 его исключает как неизвестный. Похоже недоработка у ребят.. Надо отрепортить будет.
 
Сверху Снизу