WiFi лампа-будильник. Обсуждение прошивки от vvip-68

WiFi лампа-будильник. Обсуждение прошивки от vvip-68
Всем добрый день. Собрал светодиодную матрицу на wemos d1r1 и на прошивке от vvip-68(за прошивку огромное ему спасибо). Матрица получилась размером 102 на 16 пикселей. Захотелось управлять гирляндой с телефона, чтобы wemos был подключён к домашнему роутеру. Плата подключается к WiFi но не получает данных о погоде и данных с сервера времени. Гирлянда зависает, и плата так и не может получить данные из интернета. Монитор порта выглядит вот так:1645769623394.png
Буду благодарен любой помощи в решении проблемы.
Заранее спасибо!
 
Изменено:

Комментарии

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@VadZher, если посмотрите что включают эти дефайны - они просто в Serial выводят информацию об использованной памяти. То есть добавление вывода в сериал меняет поведение. Когда я выше писал про добавление пустых строк - изначально я для отладки в код эффекта добавлял вывод в лог, чтобы посмотреть что происходит.Эффект заработал сам по себе бeз изменения чего либo, кроме вывода в Serial. Потом сам вывод я убрал, но остались несколько пустых строк. И эффект продолжал работать. Вот я и говорю - какой-то глюк компилятора, который лечится добавлением нескольких пустых строк в код эффекта.Всё это случайно и непредсказуемо.
 
Изменено:
  • Лойс +1
Реакции: VadZher

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
120
30
Омск
@vvip,
Ещё раз спасибо за разработку и поддержку проекта!
Будем считать, что It's not a bug, it's a feature.
В прошивке версии "WiFiPanel v.1.14.2023.1114" эффект "Погода" работает должным образом, независимо от настроек вывода системных сообщений в порт.
 
Изменено:

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
какой-то глюк компилятора, который лечится добавлением нескольких пустых строк в код эффекта.Всё это случайно и непредсказуемо.
это не глюк компилятора, это значит что у вас в коде где-то небезопасная работа с памятью - висячие указатели, use after free или ошибка на стеке, причин может быть много. Просто есп нестрогие в этом отношении, особенно 8266. Тут можно залезать в чужой блок памяти свободно и пока совсем что-то не напортачишь, оно может работать, а может и глючить случайно. Может стрелять когда линковщик немного по-другому соберет бинарник и структуры чуть по-другому лягут на стек.
 

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
120
30
Омск
@vvip,
Скажите пожалуйста, резервная копия настроек на SD должна включать в себя содержимое текстовых строк для отображения в бегущей строке? Или, единственный способ их сохранить - исправить примеры в скетче?
Вроде, раньше текстовые строки у меня восстанавливались при чтении настроек из SD, а сейчас этого нет.
 
Изменено:

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@VadZher, когда текстовые строки хранились в EEPROM - они восстанавливались. Потом хранение строк было перенесено в файловую систему и про их сохранение / восстановление как-то забылось. Вот как раз сегодня выложил версию в которой это исправлено. С сегодняшней версии (правда датирована завтрашним днем - 1.14.2023.1114) строки сохраняются в бэкап и восстанавливаются обратно.
 
  • Лойс +1
Реакции: VadZher

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
Надеюсь Вы не против что выложу настройки управления лампы Алисой ( включение, выключение, управление яркостью и переключение выбранного канала) для версии прошивки 1.13 для брокера wqtt.ru Снимок экрана 2023-11-23 181010.pngСнимок экрана 2023-11-23 181028.pngСнимок экрана 2023-11-25 214314.pngСнимок экрана 2023-11-25 214347.png
 
Изменено:

VadZher

★✩✩✩✩✩✩
4 Ноя 2021
120
30
Омск
@vvip,
Добрый день! Для макросов {R}, {P} и {S} бегущей строки очень удобно использовать специальные символы ** и *+. Есть возможность реализовать подобное и для макроса {D}? В частности, интересует возможность вывода строки: "С наступающим Новым {D:yyy+} годом!"
 
  • Лойс +1
Реакции: vvip

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
@vvip, два вопроса: возможно ли в прошивке 1.13 прикрепить звуковой файл к конкретному эффекту, и как в этой прошивке включить проговаривание времени каждый час (есть ли возможность включения только днем)?
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Alex7272, на оба вопроса ответ - никак. Это в прошивке не реализовано.
 

Scopex

✩✩✩✩✩✩✩
3 Фев 2021
31
2
Доброго дня! Подскажите пожалуйста:
1. Если время демонстрации эффекта 20 секунд но текст бегущей строки не укладывается в это время, как заставить нужный эффект на котором демонстрируется строка ждать, пока текст не прокрутится?
2. В строке "До нового года осталось..." можно вписать номер строки, которая будет демонстрироваться после наступления даты и времени события, как должна выглядеть эта строка? Начинаться с минуса?
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Scopex,
1. нужно в строке макросом {E} указать какой эффект должен быть фоном для бегущей строки, тогда он будет включаться с началом показа строки и удерживаться до ее окончания

2. Можно вписать. Все о строках и макросе {R} - тут: https://github.com/vvip-68/LedPanelWiFi/wiki/Настройка-бегущей-строки
Строка заместитель может быть любой. Если минуса в начале строки нет - он автоматически добавится при обработке строки с макросом.

Если в макросе {R} год указан звездочками (****или ***+) - строка заместитель работать не будет - так как сразу после наступления события в текущем году начнется отсчет до следующего года. Если год указан конкретным значением - тогда после наступления события (когда оно в прошлом) можно указать строку заместитель, которая будет отображаться ПОСЛЕ наступления события.

Можно в строке использовать макрос {R} с указанием года звездочками и ограничить время показа макросом {S}, а в другой строке указать то, что должно отображаться ПОСЛЕ наступления события и также ограничить период показа макросом {S}

Примеры строк с макросами есть в a_def_lang.h в строках примерно с 257.
 
  • Лойс +1
Реакции: Scopex

Vovchel

✩✩✩✩✩✩✩
26 Ноя 2023
1
0
Добрый день, помогите разобраться. ESP8266 NodeMCU 1.0, скетч 1.13 работает отлично но неправильные цвета на гирлянде (28*14), не нашел где меняется порядок цветов, по этому поводу пытаюсь загрузить 1.14, но она ни в какую не хочет работать, после загрузки скетча, точка доступа не появляется, после очередной попытки загрузки точка появилась и по адресу 192.168.4.1 появилась анимация вроде сервер не доступен, после отключения питания и включения снова - вайфая уже не было. Помогите или цвета настроить на 1.13 или получить рабочую 1.14, пожалуйста.

UPD: точка появилась опять
photo_2023-11-26_12-22-02.jpg
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Vovchel,
в версии 1.13 цвета задаются тут:
1700990574524.png

В версии 1.14 - читайте FAQ в разделе wiki - там все написано
 
  • Лойс +1
Реакции: Vovchel

antidote

✩✩✩✩✩✩✩
16 Фев 2022
11
0
Подскажите, у меня текущая версия ledpanelwifi не собирается. Библиотеки ставил из репозитория проекта, вроде все норм должно быть (уже собирал прошивку до этого, было норм все). Лог прилагаю ниже
 

Вложения

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@antidote, у вас Arduino IDE Под линукс. Видимо где-то в настройках стоит какая-то опция - "treat warnings as errors"
Либо ищите где она отключается, либо исправляйте код на который ругается компилятор.

Вот тут целый блок, например -
C++:
/home/user123/Sources/LedPanelWiFi/firmware/LedPanelWiFi_v1.14/LedPanelWiFi_v1.14.ino: In function 'void setup()':
LedPanelWiFi_v1.14:288:8: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
     if (sCONNECTION_ANGLE == 2) DEBUGLN(F("правый верхний")); else
        ^
LedPanelWiFi_v1.14:287:8: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
     if (sCONNECTION_ANGLE == 1) DEBUGLN(F("левый верхний")); else
        ^
LedPanelWiFi_v1.14:286:8: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
     if (sCONNECTION_ANGLE == 0) DEBUGLN(F("левый нижний")); else
        ^
LedPanelWiFi_v1.14:293:8: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
     if (sSTRIP_DIRECTION == 2) DEBUGLN(F("влево")); else
        ^
LedPanelWiFi_v1.14:292:8: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
     if (sSTRIP_DIRECTION == 1) DEBUGLN(F("вверх")); else
        ^
LedPanelWiFi_v1.14:291:8: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
     if (sSTRIP_DIRECTION == 0) DEBUGLN(F("вправо")); else
        ^
LedPanelWiFi_v1.14:296:8: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
     if (sMATRIX_TYPE == 0) DEBUGLN(F("зигзаг")); else
        ^
LedPanelWiFi_v1.14:307:10: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
       if (mANGLE == 2) DEBUGLN(F("правый верхний")); else
          ^
LedPanelWiFi_v1.14:306:10: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
       if (mANGLE == 1) DEBUGLN(F("левый верхний")); else
          ^
LedPanelWiFi_v1.14:305:10: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
       if (mANGLE == 0) DEBUGLN(F("левый нижний")); else
          ^
LedPanelWiFi_v1.14:312:10: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
       if (mDIRECTION == 2) DEBUGLN(F("влево")); else
          ^
LedPanelWiFi_v1.14:311:10: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
       if (mDIRECTION == 1) DEBUGLN(F("вверх")); else
          ^
LedPanelWiFi_v1.14:310:10: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
       if (mDIRECTION == 0) DEBUGLN(F("вправо")); else
          ^
LedPanelWiFi_v1.14:315:10: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
       if (mTYPE == 0) DEBUGLN(F("зигзаг")); else
          ^
/home/user123/Sources/LedPanelWiFi/firmware/LedPanelWiFi_v1.14/LedPanelWiFi_v1.14.ino: In lambda function:
LedPanelWiFi_v1.14:600:13: error: suggest explicit braces to avoid ambiguous 'else' [-Werror=parentheses]
     else if (error == OTA_RECEIVE_ERROR) DEBUGLN(F("Не удалось получить данные"));
В последней версии дефайны DEBUGLN были переписаны на конструкцию if (...) Serial.println()
Под виндой компилятор не ругается, но действительно, при раскладывании фигня какая-то получается - непонятно к чему else относится...

Прописываете скобки тогда. Запишу в список ошибок, исправлю когда дойдет очередь.
 
Изменено:

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@antidote,
Самый простой способ - в a_def_hard.h в строках 515-518 заменить

C++:
#define DEBUGLN(x)    if (vDEBUG_SERIAL) Serial.println(x)
#define DEBUG(x)      if (vDEBUG_SERIAL) Serial.print(x)
#define DEBUGR(x, r)  if (vDEBUG_SERIAL) Serial.print(x, r)
#define DEBUGWR(b, l) if (vDEBUG_SERIAL) Serial.write(b, l)
на
C++:
#define DEBUGLN(x)    Serial.println(x)
#define DEBUG(x)      Serial.print(x)
#define DEBUGR(x, r)  Serial.print(x, r)
#define DEBUGWR(b, l) Serial.write(b, l)
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@antidote, правильный способ (расставление скобок):

1701007236136.png

1701007251344.png
 
Изменено:

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
@vvip, Нет желания вернуть MQTT в последнюю прошивку: необходимый минимум для Алисы. Очень не хватает.:sneaky:
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Alex7272, нет специалистов, которые бы могли сформулировать что и в каком формате им нужно. Некому составить грамотное ТЗ, а потом, буде случится реализация - еще и оттестировать всё это со всех сторон.
 

Alex7272

✩✩✩✩✩✩✩
23 Сен 2023
30
0
@vvip, У Вас же были наработки в 14 прошивке, примеры топиков для Алисы в соседних ветках есть, могу скрины скинуть в личку. Там их всего надо: on/off, яркость и каналы.
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Alex7272, там была корявая реализация с этими топиками и форматом команд. Очень многие жаловались что с этим невозможно работать, приходится извращаться с написанием кучи функций и скриптов преобразования форматов. В общем - идеологически неправильно было реализовано. И имело какой-то смысл, пока было приложение для телефона для управления гирляндой. Сейчас управление перенесено в веб-интерфейс, приложения нет и весь этот MQTT в его кривой реализации потерял всякий смысл.
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Константин 271,вот мне вообще это ни о чем не говорит. Я вообще не в теме всех этих умных домов и виртуальных ассистентов. Я не знаю как это работает и что нужно для правильной реализации. А сформулировать ТЗ некому.
 

Aleks_1975

✩✩✩✩✩✩✩
24 Май 2023
16
1
Добрый день, хотелось бы реализовать следующее, При переходе из демо режима в ночные часы и обратно, какой нибудь пин менял свое состояние, чтобы повесить на него реле и управлять питанием другого устройства по расписанию, например ёлкой, на ночь отключать, а на окнах останутся часы.