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

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

Комментарии

Darkman

✩✩✩✩✩✩✩
17 Май 2022
8
1
@vvip, доброго времени суток! подскажите залил сегодня версию GyverPanelWiFi_v1.13 при создании бегущей строки с погодой, строка выдает такую инфу "погода в городе N пасмурно {C#773300} +23 ", что это может быть?
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Darkman, какой-то плавающий глюк, который проявляется у некоторых пользователей и который мне ни разу не удалось у себя поймать и тем более починить...
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Darkman, перезаливка не поможет. А что, вот такое проявляется КАЖДЫЙ РАЗ при показе этой строки? Вот прям стабильно? Или один раз всплыло и больше не появлялось? Один из пользователей пытался вычислить, говорил что такое происходит когда в погоде есть слово "снег" - но у меня не проявлялось никак...
 

Darkman

✩✩✩✩✩✩✩
17 Май 2022
8
1
@vvip, перезалил ESP8266 Sketch Data Upload вместо ESP8266 LittleFS Data Upload и все заработало
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Darkman, думаю это случайность. Бегущая строка никак не зависит от файловой системы (чем заливать). Вот этот макрос цвета перед значением температуры в строку добавляется программно непосредственно перед показом строки в зависимости от текущей температуры - плюсовая оранжевым/красным, минусовая - синим..
 
Изменено:

vvip

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

PS: Нашел баг - почему-то при достаточно больших размерах матрицы (при том что памяти свободной остается много) - падает основная задача в которой крутится цикл loop() и он вообще перестает вызываться. Соответственно останавливается всё. Только продолжают работать асинхронные задачи приема сообщений от Web-приложения, которые пытаются положить их в очередь принятых команд. Но поскольку loop() упал - очередь разгребать некому...

Кто-нибудь знает почему может упасть loop()?
 
Изменено:

mexZillaa

✩✩✩✩✩✩✩
16 Май 2023
3
0
А для бегущей строки брать светодиоды 2813 или 2812 пойдут?
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@mexZillaa, при поддерживаемых в настоящее время размерах матрицы (что косвенно влияет на длину строки) - без разницы. Хотя, говорят 2813 надежнее. Но и дороже. Скорость обновления заявлена в 2.5 раза выше чем у 2812 - на практике разницы не ощущал...
 
Изменено:
  • Лойс +1
Реакции: mexZillaa

xsjado_mw

✩✩✩✩✩✩✩
28 Янв 2023
11
0
@vvip,

LedPanelWiFi-main(1.14 0515)
esp32 (cam) ядро 1.0.6 ( с исправленным по твоему коменту CONFIG_ARDUINO_LOOP_STACK_SIZE) FastLed 3.5.0
Либы из паки проекта, матрица размером 120х10, работает в режиме строки.
После первого показа строки , зависает, не подключается веб-сервер.В порт пишет:
Переполнение очереди входящих команд - 16
WebSocket клиент #4 отключен
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@xsjado_mw, понятно. С этим пока не разобрался. Выясняется, что после некоторого кол-ва светодиодов (не выяснено, правда, какого - у одного пользователя 2560 - еще работало, а вот пробовал на 4096 - вот то же самое), по-видимому падает главная задача, без каких либо признаков в мониторе порта - цикл loop() просто перестает вызываться. При этом асинхронные задачи получения пакетов из сети по сокету - работают, принимают команды, но в очередь положить не могут - она заполнена. А поскольку loop() больше не работает - и извлекать команды из очереди некому... Разбираюсь... Но пока не понимаю в какую сторону смотреть вообще...

Кто-нибудь знает / догадывается почему может падать (не вызываться) loop()?
 

Сотнег

★★★★★★★
15 Янв 2020
4,403
1,509
@vvip,
только если зациклилась функция, в которой есть строчка сброса вочдога.
В ЕSP2 вочдог тоже ведь есть?
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Сотнег, ватчдог есть. Циклы проверял - нет таких. Не нашел по крайней мере...
Можно ли как-то организовать типа - нажал на кнопку, оно по прерыванию распечатало стек основной задачи,из какого места вызывалось перывание. Как-то отладить бы в каком месте это всё зацикливается...

Upd: Похоже, проблема все же где-то в процедурах бегущей строки.... Поскольку с отключенной строкой матрица размером 128x64=8192 диода работает без падений... Ну что ж... Круг поиска сузился. Продолжаем поиски...
 
Изменено:

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@xsjado_mw, можешь взять из репозиторя текущую версию, поставить ее, отключить эффекты "Мерцание", "Рубик" и все шумовые эффекты - Лава, Облака, Павлин, Зебра и все из этой серии, включить бегущую строку и погонять без них - будет зависать или нет? Похоже проблема где-то в этих эффектах. Их надо изучить / переписать. Например - шумовые эффекты взяты как есть от Гайверовой лампы. Посмотрел - там памяти отжирается - квадратом по максимальному размеру высота / ширина...
Надо их как-то покрутить, переделать что ли, если это вообще возможно...
 
Изменено:

Amarok

✩✩✩✩✩✩✩
2 Окт 2019
29
1
Доброго времени суток! Поправьте уже пожалуйста страницу настройки((((

@vvip, Настройка mqtt похожа на испытание из Форт Боярд и так на любом браузере(((((
 

Вложения

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Amarok,это что ж за телефон то у тебя такой? Но поправить не смогу. Потому что поддержка MQTT (как и страница настроек) была выкинута за ненадобностью, плюс из за кривой неправильной реализации в проекте концепции MQTT как таковой.

Поскольку за все годы существования проекта всего пара человек задавала вопросы про MQTT, я посчитал что это никому не нужно, а в отсутствии в версии 1.14 приложения, которое бы работало через MQTT - наличие этого бессмысленной фичей.

В общем - я ее выкинул. Но если есть кому это действительно нужно, и кто готов потратить время
а) на разработку правильной концепции обмена по каналу MQTT,
б) описания API MQTT и документации в том же wiki
в) интеграцию (и wiki/доку по интеграции) с Алисой / Кузей / HomeAssistant
г) желательно, но не обязательно - написания Android / iOS приложения, которое бы работало по каналу MQTT
то я готов взяться за возвращение канала управления MQTT в проект.

Если не готовы включиться во всё это - вам лучше откатиться до версии 1.13...

Вероятно то, что вы видите на экране - следствие того, что саму прошивку, которая больше не поддерживает MQTT вы обновили, а Web-приложение в файловой системе, в которой уже нет этой странички -- не обновили...
 
Изменено:

Amarok

✩✩✩✩✩✩✩
2 Окт 2019
29
1
В чём была кривизна? Я увидел только одну - Кривая страница настроек. Прошивка была скачана с вашего github месяц назад. Если теперь нет mqtt, Тогда Каким образом Системы автоматизации Могут работать с вашей прошивкой?
Повторюсь, в прошивке скачанной с вашего github в месяц назад mqtt работал изумительно.
p.s.: А в прошивке версии 1.13 есть веб-интерфейс?
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Amarok, в прошивке версии 1.13 веб-интерфейса нет.
Выкинут MQTT был не так давно, потому что все чаще сталкиваешься при добавлении новых фич с тем, что

- для нормальной работы желательно сокращать число запросов/ответов, поэтому Web-интерфейс упаковывает параметры в одну длинную строку, которая передается за раз и парсится контроллером, типа "$23 11 0 0 1 0 12 22 " и так далее каждое число - свой параметр. И это в обе стороны - как к контроллеру, так и от него.

- вот это вот все грубо нарушает концепцию MQTT - один канал / один параметр. То есть по правильному мне вместо 10 упакованных параметров пришлось бы их отправлять по одному - было бы 10 запросов, что нагружает микроконтроллер, который вместо одной отправки вынужден делать 10, и на это время все сильно подтормаживает. К тому же большинство бесплатных серверов имеют ограничения типа не более одного топика в секунду. То есть отправка параметров / запросов в количестве 48 штук по одному будет длится почти минуту. А там этих параметров больше сотни уже.

- далее в MQTT запрос параметра и установка его - все выполняется через 1 топик. типа /lamp/brightness - считали из него - получили текущую яркость. Записали в него - установили яркость. Другой параметр - другой топик. В проекте же изначально все это было искусственно - типа считать параметр мы можем, дав эрзац-команду типа $6 7 |FM|UP|BR, а для установки яркости - вообще должны отправить в топик команд что-то вроде $4 2 230;

Вот это вот все и создает для автоматизации через MQTT как прием от устройства параметров, которые напрямую не применяются и их нужно преобразовывать, так и с отправкой команд, которые нужно не просто отправить значение в нужный топик, а соблюсти правило и сформировать синтаксис команды...

Еще раз - есть желание - давай восстановим канал MQTT с реализацией правильной концепции. У меня опыта в этом деле нет совсем. Все что было сделано раньше на коленке - неправильный подход с придумыванием своих наколеночных протоколов.
 
  • Лойс +1
Реакции: Amarok

Amarok

✩✩✩✩✩✩✩
2 Окт 2019
29
1
Теперь всё понятно. Возможно управление через http-запросы?
А ещё где можно скачать Самую последнюю версию Прошивки в которой присутствуют и mqt и web-интерфейс?
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@Amarok, только web-сокет. Еще раз - я не бум-бум в автоматизации. Я не знаю как надо, как это должно быть. Если есть конкретные пожелания - можем обсуждать. Может со временем что-то вырисуется.
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@xsjado_mw,эффект "Рубик" еще выключи "Мерцание" и "Жизнь" - похоже они проблемные... А вот с шумовыми проблем не возникало. На втором этапе тестирования можно их вернуть. Жизнь удалил - он не интересный (Текущая версия на гитхабе уже без него). Рубик - попробую понять что с ним не так...

Upd: эффект "Кубик Рубика" - починен. Изначально размер массива координат плашек рассчитывался что кол-во плашек не более 255 - байт. На больших размерах - переполнение массива и выход за границы завешивал контроллер. Исправлено, обновлено в хранилище.

Ставлю на прогон на ночь все эффекты кроме игр и Мерцания на размерах 128x96. До этого на таком наборе эффектов время непрерывной беспроблемной работы на матрице 128x48 - более трех часов. Потом эксперимент прервал, чинил Кубик Рубика.

Upd2: Ночной прогон (порядка 12 часов) на всех эффектах на оборудовании - размер "виртуальной матрицы" - то есть выделение памяти - 128x128 точек, реальный вывод фрагмента из 512 диодов на физическую матрицу 32x16. Смена эффектов каждые 5 секунд, показ бегущей строки каждые 10 секунд, Web-интерфейс открыт в браузере, идет постоянный поллинг - откликается ли устройство:
  • Зависаний с "переполнение очереди" - не обнаружено
  • Два раза перегрузилось - фрагментация памяти, не получилось выделить память под эффект блоком нужного размера, но не зависло.

Эффект Мерцание - вызов библиотечной FastLED функции fill_2dnoise16() на количестве диодов в среднем более 8192 штук (128х64) вызывает сбой и перезагрузку. Эффект отключен для размеров более 8192 штук - при выборе эффекта будет проигрываться случайный другой. Все изменения - актуализированы в хранилище. Поставлено на прогон до следующего утра или на сутки, как получится. Наблюдаем.

Upd3: Почти суточное тестирование в конфигурации - "виртуальной матрицы" - то есть выделение памяти - 128x128 точек, реальный вывод фрагмента из 512 диодов на физическую матрицу 32x16. Смена эффектов каждые 5 секунд, показ бегущей строки каждые 10 секунд, Web-интерфейс открыт в браузере, идет постоянный поллинг - откликается ли устройство:

Эффект-игра Тетрис - какие-то проблемы на таком размере - зависает. Не разбирался, наверное и не буду. Тетрис такого размера все равно никто никогда использовать не будет.

Эффект-игра Лабиринт - не зависает, но и доиграть до конца не может - через маленькое "окно" не видно есть ли у сгенерированного лабиринта выход или еще какие проблемы. Игра не зависает, но требуется ручное переключение на следующий эффект, потому что в прошивке переход на другой эффект - после завершения игры, когда точка находит выход из лабиринта. Не находит - нет переключения на следующий эффект.

Остальные эффекты - в списке, смена каждые 5 секунд. Зависаний, особенно типа "Переполнение очереди входящих команд" не выявлено. Было две перезагрузки (видимо фрагментация памяти кучи) в среднем через 8 часов работы в этих условиях.

Сомневаюсь, что кто-то реально будет использовать "экраны" 128х128 - во первых довольно медленное обновление кадров - более 16 тыс диодов, даже если распапраллеливать вывод всего массива диодов на 4 потока. Во вторых - прилично смотрятся в основном шумовые эффекты, остальные на таком размере выглядят "так себе" - типа одиноко блуждающий по огромному полю небольшой кубик. Точнее - квадратик.

Транслирование потока с матрицы в сеть на другие устройства в группе (E131, синхронизация устройств) - завешивает контроллер. Да и сама реализация не рассчитана на количество диодов более 2048. Можно либо расширить - но на отправку данных такого размера в сеть потребуется достаточное количество времени - думаю будет тормозить. Либо, скорее всего, ограничу возможность включение этого режима на матрицах больших 2048 диодов суммарно.
 
Изменено:

xsjado_mw

✩✩✩✩✩✩✩
28 Янв 2023
11
0
@vvip, ESP 32(CAM) core 1.0.6 (v1.14.0522)
либы из папки проекта
матрица 120 х 10
после первого прокручивания строки , падает(
зависает и пишет в порт :
WebSocket клиент #1 отключен
WebSocket клиент #2 с адреса 192.168.1.116
Переполнение очереди входящих команд - 16
Free: 204324 Max: 113792

Может есть возиожность написать прошивку чисто под бегущую строку , без эффектов.
Настройки матрицы, веб сервер, сами строки , таймер вкл|выкл -все. Под ESP32
 

vvip

★★★★✩✩✩
18 Дек 2018
504
227
@xsjado_mw,конечно есть возможность. Но...

1. Вот у меня работает без проблем, еще у нескольких людей с которыми я контактирую - тоже никаких проблем нет. Проблемы есть у вас. Почему вы думаете, что в прошивке "чисто под бегущую строку", тем более - переделанной из этого проекта, у вас будет как-то по другому?

2. Все эти переделки требуют затрат времени. Конечно, ломать не строить - выкинуть лишнее проще чем дописывать что-то новое. Но тем не менее, на это нужно потратить как минимум неделю свободного времени, которого не так чтобы слишком уж много. Вот оно мне зачем? Будет много свободного времени, соответствующее настроение, отсутствие других проектов - ну, может быть...

Может у вас в строках что-то особенное на чем валится? Может строки какие-то особо длинные? Пришлите ваши строки - попробую их забить к себе... Если у вас отключить все эффекты, оставить только, скажем, "Часы" - тоже прокручивает только одну строку и отваливается?
 
Изменено:

xsjado_mw

✩✩✩✩✩✩✩
28 Янв 2023
11
0
@vvip,Ура!LedPanelWiFi-main(1.14-0523) работает уже 1 час без проблем!

@vvip, при попытке прокрутки строки в 237 символов, виснет(