ESP, IoT WiFi лампа-будильник. Обсуждение прошивки от GUNNER47

ЗДЕСЬ ОБСУЖДАЕМ ТОЛЬКО ДАННУЮ ПРОШИВКУ
ВСЕ ЧТО НЕ ПО СИЯ ТЕМЕ И ПРОШИВКЕ, ВСЕ СНОСИТСЯ НА@@@!

Очень просим не делать репост "ЦИТИРОВАНИЕ" сообщений! Делать только в КРАЙНЕЙ необходимости, удаляя лишний текст (у нас не ЧАТ)!
Иначе опять будет 160 страниц и 0 пользы ....

Для ответа КОНКРЕТНОМУ пользователю, достаточно нажать " ОТВЕТ"

При описании проблемы обязательно, как можно подробнее, описывайте ход своих действий до ее возникновения. Телепатов (как я думаю) среди участников нет. Потом 20 постов будет только для того, чтобы Вас понять.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой "Сообщение в шапку"


ПО ВОПРОСАМ РАБОТЫ ПРИЛОЖЕНИЯ ОТ KOTEYKA ИДЕМ В ЭТУ ТЕМУ

Голосовое управление лампой Гайвера, через Яндекс Алису (прошивка Gunner47).

Яндекс диск Файл ПДФ. Актуально на 27.01.2020г
наш сервер НЕ ОБНОВЛЯЕТСЯ, от 27.01.2020г
Прошивка gunner47 v.2 "86 эффектов в 1" или уже больше - разработку ведет @Сотнег
Прошивка gunner47 v.2.X_web : веб-интерфейс (без необходимости перепрошивки) - разработку ведет @alvikskor
Прошивка от Shaitan с поддержкой mp3 и пульта (тут не обсуждается. Обсуждается в теме прошивки)
Прошивка FireLamp with Remote Control - разработку ведет @SlingMaster

Для тех у кого умный дом Home Assistant есть отличный компонент

ВНИМАНИЕ! Если у вас не компилируется или не загружается скетч - значит вы сделали что-то неправильно. Специально для вас созданы две темы:
ESP8266, проблема с компиляцией скетча
ESP8266, проблема с загрузкой скетча
Читайте (ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
 
Изменено:

Комментарии

mechanic

★★★★✩✩✩
Команда форума
31 Июл 2018
403
206
ЗДЕСЬ ОБСУЖДАЕМ ТОЛЬКО ДАННУЮ ПРОШИВКУ
ВСЕ ЧТО НЕ ПО СИЯ ТЕМЕ И ПРОШИВКЕ, ВСЕ СНОСИТСЯ НА@@@!

Очень просим не делать репост "ЦИТИРОВАНИЕ" сообщений! Делать только в КРАЙНЕЙ необходимости, удаляя лишний текст (у нас не ЧАТ)!
Иначе опять будет 160 страниц и 0 пользы ....

Для ответа КОНКРЕТНОМУ пользователю, достаточно нажать " ОТВЕТ"

При описании проблемы обязательно, как можно подробнее, описывайте ход своих действий до ее возникновения. Телепатов (как я думаю) среди участников нет. Потом 20 постов будет только для того, чтобы Вас понять.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой "Сообщение в шапку"


ПО ВОПРОСАМ РАБОТЫ ПРИЛОЖЕНИЯ ОТ KOTEYKA ИДЕМ В ЭТУ ТЕМУ

Голосовое управление лампой Гайвера, через Яндекс Алису (прошивка Gunner47).

Яндекс диск Файл ПДФ. Актуально на 27.01.2020г
наш сервер НЕ ОБНОВЛЯЕТСЯ, от 27.01.2020г
Прошивка gunner47 v.2 "86 эффектов в 1" или уже больше - разработку ведет @Сотнег
Прошивка gunner47 v.2.X_web : веб-интерфейс (без необходимости перепрошивки) - разработку ведет @alvikskor
Прошивка от Shaitan с поддержкой mp3 и пульта (тут не обсуждается. Обсуждается в теме прошивки)
Прошивка FireLamp with Remote Control - разработку ведет @SlingMaster

Для тех у кого умный дом Home Assistant есть отличный компонент

ВНИМАНИЕ! Если у вас не компилируется или не загружается скетч - значит вы сделали что-то неправильно. Специально для вас созданы две темы:
ESP8266, проблема с компиляцией скетча
ESP8266, проблема с загрузкой скетча
Читайте (ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
 
Изменено:

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Сотнег, не знаю, теоретически можно, но непомерно большая String сожрет всю RAM быстрее ((

либо создаешь огромный char, и его накапливаешь, либо большой стринг, но, если честно, решение так себе, так как промежуточные стринги могут не высвободится из памяти. kDn не даст соврать

Вам нужно идти по моему пути, когда эффекты описаны в прошивке вместе с их характеристиками, а пользовательский список по их id можно хранить в ЕЕПРОМЕ, или даже несколько списков
 
Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
Уважаемый @Сотнег, в вашей последней прошивке меню избранное не сохраняется ,ставлю галочку запомнить состояние лампа выключается.
@Константин Яковлев, @tsabak,
проблема оказалась незначительной
просто в файле Constants.h увеличьте размер буфера.
#define MAX_UDP_BUFFER_SIZE (255U) // это максимум, который будет работать

На каждый эффект из 57 по 2 байта - уже 114...

В прошивке исправил. Можно скачивать.
(сам не проверял - там все спят)

@Palpalych, @Belokota, можно тырить эффекты:
Но "Нарастающие Дрифты" я забраковал и вставлять в прошивку не стал. Если кто доведёт до ума, скажите.
 
Изменено:
  • Лойс +1
Реакции: Belokota и Palpalych

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Сотнег, Размытие нужно делать в начале эффекта, а не в конце. Смысл такой - замыливаешь прошлый кадр, и сверху рисуешь новую точку
 

mjba

✩✩✩✩✩✩✩
26 Янв 2020
23
1
@Константин Яковлев, @tsabak,
проблема оказалась незначительной
просто в файле Constants.h увеличьте размер буфера.
#define MAX_UDP_BUFFER_SIZE (256U)
// например, такое вместо (129U) - хватит ещё на 60 эффектов
Чё-т не помогло...
:confused:

На каждый эффект из 57 по 2 байта - уже 114...

В прошивке исправил. Можно скачивать.
(сам не проверял - там все спят)


@Palpalych, @Belokota, можно тырить эффекты:
Но "Нарастающие Дрифты" я забраковал и вставлять в прошивку не стал. Если кто доведёт до ума, скажите.
Меню избранное не сохраняется ,ставлю галочку запомнить состояние лампа выключается, Ваши исправления не помогают. Всем прошивка хороша, но главная задумка - включить цикл и 57 эффектов крутятся по кругу, не работает. Соответственно теряется смысл в 57 эффектах, так как 30% эффектов просто повтор с разными настройками.
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
Подтвердите, кто-нибудь, этот эпичный фэйл:
проблема оказалась незначительной
просто в файле Constants.h увеличьте размер буфера.
#define MAX_UDP_BUFFER_SIZE (256U) // например, такое вместо (129U) - хватит ещё на 60 эффектов
Вместо 256U нужно поставить 255U, и всё заработает...
 
Изменено:

mjba

✩✩✩✩✩✩✩
26 Янв 2020
23
1
Подтвердите, кто-нибудь, этот эпичный фэйл:

Вместо 256U нужно поставить 255U, и всё заработает...
Не помогает, лампа уходит в перезагрузку и выключается. После включения эффекты в избранном не сохраняются.
 

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
Вместо 256U нужно поставить 255U, и всё заработает...
Я ставил размер буфера 1024, как то. Проблемы были только с избранным. Почему-то избранному не нравится большой буфер.
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@Koteyka 🐱, там, скорее всего, какая - то переменная, завязанная на размер буфера, имеет размер в 1 байт.
 

Константин Яковлев

✩✩✩✩✩✩✩
15 Мар 2019
8
2
  • Лойс +1
Реакции: Сотнег

mjba

✩✩✩✩✩✩✩
26 Янв 2020
23
1
@mjba, тогда скачайте прошивку обновлённую и прошейтесь с очисткой памяти.
У меня всё работает теперь. Стабильно.
Нужны ещё подтверждения.
https://community.alexgyver.ru/thre...zhdenie-proshivki-ot-gunner47.2418/post-33652
Спасибо, вроде все работает. Но работает только с приложением из архива, с более новыми версиями приложения избранное так же не работает.
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@mjba, чё-т не верится.
Но проверять я это, конечно, не буду.
Пока что.


Скорее всего, у вас не вышло успешно загрузить список эффектов из лампы в то приложение.
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Сотнег, эффект видел, даже дорабатывал ранее и он мне что-тоне зашел. Поставил также стадо - но памяти он жрет конечно!

Касательно ЕЕПРОМ - можно хоть поставить 4096 , самое главное разнести диапазоны.
У себя что-то менял, но смысл оказался такой
1586605957574.png
Потом, все работы с расширением ЕЕПРОМ требуют очистки всей памяти.
 

v_max

★✩✩✩✩✩✩
10 Апр 2020
5
13
Столкнулся с проблемой.
Все версии прошивок (перепробовал все что нашел) работали с одним и тем же глюком - картинка каждые 4-5 секунд подвисала примернона 1 секунду а потом продолжала двигаться .
Приложения при этом тоже отваливались ... некоторые теряли лампу, но потом связь восстанавливалась, а некоторые просто падали ...
Вобщем методом тыков выяснилось что проблема оказалась связана с недоступностью NTP сервера через моего провайдера
После смены адреса NTP сервера на NTP сервер провайдера все заработало как часы ...

ЗЫ ... думаю я не первый и не последний столкнулся с таким поведением .. Добавить бы в ФАК
 

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
Я тут реализовал
Функция восстановления настроек эффектов по умолчанию
и даже оттестировал...

Но прошивку выкладывать не хочу, потому что это восстановление работает с приложением "через чёрный ход".
Короче, хвастаюсь.
И прошу посоветовать, куда лучше всего её вставить в void Setup()
Чтобы при первой загрузке лампы эти настройки применились.
На данный момент вставил в EepromManager.h, но выглядит это противоестественно...

C-like:
// восстановление настроек эффектов на настройки по умолчанию
void restoreSettings()
{
  if (defaultSettingsCOUNT == MODE_AMOUNT)          // если пользователь не накосячил с количеством строк в массиве настроек в Constants.h, используем их
    for (uint8_t i = 0; i < MODE_AMOUNT; i++) {
      modes[i].Brightness = pgm_read_byte(&defaultSettings[i][0]);
      modes[i].Speed      = pgm_read_byte(&defaultSettings[i][1]);
      modes[i].Scale      = pgm_read_byte(&defaultSettings[i][2]);
    }
  else                                              // иначе берём какие-то абстрактные
    for (uint8_t i = 0; i < MODE_AMOUNT; i++) {
      modes[i].Brightness = 50U;
      modes[i].Speed      = 225U;
      modes[i].Scale      = 40U;
    }
}

C-like:
// ============= МАССИВ НАСТРОЕК ЭФФЕКТОВ ПО УМОЛЧАНИЮ ===================
// формат записи:
//{ Яркость, Скорость, Масштаб},
static const uint8_t defaultSettings[][3] PROGMEM = {
  {   9, 207,  26}, // Белый свет
  {   7,  20,  45}, // Цвет
  {  11,  33,  58}, // Безумие
  {   8,   4,  34}, // Облака
  {   8,   9,  24}, // Лава
  {  11,  19,  59}, // Плазма
  {  11,  13,  60}, // Радуга 3D
  {  11,   5,  12}, // Павлин
  {   7,   8,  21}, // Зебра
  {   7,   3,  95}, // Лес
  {   7,   6,  12}, // Океан
  {  24, 255,  60}, // Мячики
  {  12, 255,  60}, // Белые мячики
  {  18,  19,  60}, // Мячики со шлейфом
  {   9,  46,   3}, // Спирали
  {  16,  51,   8}, // Призмата
  {  15, 136,   1}, // Стая
  {  15, 128,   1}, // Стая и хищник
  {   7, 175,  30}, // Синусоид
  {   7,  85,   7}, // Метаболз


  {  19, 206,   1}, // Огонь
  {   7, 180, 100}, // Белый огонь
  {  12, 181,  53}, // Голубой огонь
  {  13, 185,  36}, // Зелёный огонь
  {  27, 186,  23}, // Матрица
  {   7, 188,  63}, // Водопад
  {   5, 176, 100}, // Белый водопад
  {   7, 183,  85}, // Водопад 4 в 1
  {   8, 222,  63}, // Бассейн
  {  12, 185,   6}, // Медленный пульс
  {  11, 185,  81}, // Быстрый пульс
  {  11, 185,  31}, // Радужный пульс
  {   9, 179,  11}, // Белый пульс
  {  16, 220,  28}, // Комета
  {  12, 208, 100}, // Белая комета
  {  14, 212,  69}, // Одноцветная комета
  {  14, 209, 100}, // Пульсирующая комета
  {  27, 186,  72}, // Две кометы
  {  24, 186,   8}, // Три кометы


  {  26, 206, 100}, // Парящий огонь
  {  26, 190, 100}, // Верховой огонь
  {  12, 178, 100}, // Радужный змей
  {  16, 142,  63}, // Конфетти
  {   8, 196,  18}, // Радуга вертикальная
  {   8, 196,  23}, // Радуга горизонтальная
  {   8, 180,  24}, // Радуга диагональная
  {   9, 236, 100}, // Волны
  {   9, 180,  90}, // Снегопад
  {  15, 225,  63}, // Цветной дождь
  {   7, 193,  37}, // Метель
  {  12, 199,  40}, // Звездопад
  {  15, 157,  23}, // Светлячки
  {  21, 198,  93}, // Светлячки со шлейфом
  {  11, 236,   7}, // Пейнтбол
  {   7, 160,  69}, // Блуждающий кубик
  {   6,  50,   5}, // Смена цвета
  {  10,  99,  38} // Бегущая строка
}; //             ^-- проверьте, чтобы у предыдущей строки не было запятой после скобки

#define ARRAY_ROWS(ARRAY) (sizeof(ARRAY) / sizeof(ARRAY[0]))       // здесь создаётся проверка, чтобы из-за неверного количества строк лампа не вырубалась.
const uint8_t defaultSettingsCOUNT = ARRAY_ROWS(defaultSettings);  // если вы ошибётесь, то настройки будут сбрасываться на {  50, 225,  40} для всех эффектов!

// ============= КОНЕЦ МАССИВА =====

C-like:
    else if (!strncmp_P(inputBuffer, PSTR("SETS2"), 5)) // сброс настроек эффектов на значения по умолчанию по запросу от приложения (если поддерживается приложением)
    {
      restoreSettings();
      loadingFlag = true;
      settChanged = true;
      eepromTimeout = millis();

      #if (USE_MQTT)
      if (espMode == 1U)
      {
        MqttManager::needToPublish = true;
      }
      #endif
    }
В следующий раз, наверное, сделаю сброс настроек в момент запроса приложением списка эффектов.
Так будет меньше вопросов к работе.
 
Изменено:
  • Лойс +1
Реакции: Belokota

Сотнег

★★★★★★★
15 Янв 2020
4,340
1,492
@mjba, чё-т не верится.
Но проверять я это, конечно, не буду.
Пока что.
Скорее всего, у вас не вышло успешно загрузить список эффектов из лампы в то приложение.
@mjba, я проверил свежее приложение.
Тоже работает стабильно.
 
  • Лойс +1
Реакции: Burai

v_max

★✩✩✩✩✩✩
10 Апр 2020
5
13
В общем, тут она:
Спасибо ++++ Призмата прикольная....

Только чуток подправил строчку ( пооптимизировал лишние сдвиги и замедлил вдвое )
// uint8_t beat = (GET_MILLIS() * (accum88(x + 1) << 8) * 28 * modes[currentMode].Speed) >> 24; // Было так
uint8_t beat = (GET_MILLIS() * (accum88(x + 1)) * 28 * modes[currentMode].Speed) >> 17; // стало так
 
  • Лойс +1
Реакции: Сотнег

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@kDn, немножко вопрос не в тему, но связан с прошивкой.
Кто нибудь сталкивался с сохранением указателей функций в PROGMEM и использовании их при работе программы?
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
После смены адреса NTP сервера на NTP сервер провайдера все заработало как часы ...

ЗЫ ... думаю я не первый и не последний столкнулся с таким поведением .. Добавить бы в ФАК
Заменить бы во всех мод.прошивках. Я не знаю почему gunner47 использовал корпоративный сервер, если есть мульйон всемирных, всеевропейских, локальных пулов. Я всегда на европейский меняю.
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@kostyamat, достаточно в шапке собрать список рабочих, а уже в прошивке раскоментить 1 пункт этого списка
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@kDn, немножко вопрос не в тему, но связан с прошивкой.
Кто нибудь сталкивался с сохранением указателей функций в PROGMEM и использовании их при работе программы?
Все что меньше/равно 4 байтам хранить в PROGMEM смысла не имеет, т.к. для извлечения потребуется 4 байта + накладные расходы. Но вообще сохраняется также как любая другая константа, при необходимости.
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@kDn,
там более 4 байтов... есть строка предопределенной структуры, где одним из составляющих является указатель на функцию , так вот, если помещаю такую струткуру в обычный архив - все компилируется, а если в ПРОГМЕМ, то все сбоит. Возможно даже не запускается EPS ... ((