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, проблема с загрузкой скетча
Читайте (ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
 
Изменено:

galgalg

★✩✩✩✩✩✩
11 Янв 2020
58
18
... Попробуй 16 бету установить, там есть поддержка пульта. В чем-то - это замена приложения, отчасти даже удобнее.
Имею пультик с кодом кнопки FFA25D. Куда конкретно это прописать, например для вкл/выкл?
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@galgalg,
Constants.h
C++:
#define ir_START_STEPS 8U       // колчестро первых отсчетов нажатой кнопки при которых будет прибавляться по 1 к значению регулятора (иначе ir_REPEATE_STEP)
#define ir_REPEATE_STEP 4U      // шаг регуляторов яркости/скорости/масштаба (1...127)
#define ir_REPEATE_TIMEOUT 500U // минимальное время между посылками пульта за которое будет опредяляться состояние постоянно нажатой кнопки

// --- HP Pavilion PC6 ---
#define ir_CODEMASK 0xFFFFFFFFFFFF0FFF // маскировка отличающихся битов в кодовой посылке нажатия одной и той же клавиши
#define ir_ON 0xC8011040C              // код пульта для Включения/Выключения
#define ir_NEXT 0xC80110412            // код пульта для Следующего Эффекта
#define ir_PREVIOUS 0xC80110413        // код пульта для Предыдущего Эффекта
#define ir_NEXT_MODE 0xC8011041A       // код пульта для Следующего Режима
#define ir_PREVIOUS_MODE 0xC8011041B   // код пульта для Предыдущего Режима
#define ir_BRIGHT_DOWN 0xC80110411     // код пульта для понижения Яркости
#define ir_BRIGHT_UP 0xC80110410       // код пульта для повышения Яркости
#define ir_SPEED_DOWN 0xC8011041F      // код пульта для понижения Скорости
#define ir_SPEED_UP 0xC8011041E        // код пульта для повышения Скорости
#define ir_SCALE_DOWN 0xC80110420      // код пульта для понижения Масштаба
#define ir_SCALE_UP 0xC80110421        // код пульта для повышения Масштаба
#define ir_BRIGHT_DEF 0xC8011040E      // код пульта для сброса значения Яркости по умолчанию
#define ir_PARAMS_DEF 0xC80110422      // код пульта для сброса значений Скорости и Масштаба по умолчанию
#define ir_LAMP 0xC8011040D            // код пульта для включения режима Лампы
#define ir_DEMO 0xC8011044A            // код пульта для включения режима Демо
#define ir_INFO 0xC8011040F            // код пульта для вывода Инфо
#define ir_CLOCK 0xC8011044F           // код пульта для вывода Времени
при желании можно перенести этот блок настроек в custom/LedLamp1.h ...
 

Сотнег

★★★★★★★
15 Янв 2020
4,345
1,492
@nik2602, в константах для вас есть строчка
#define COLOR_ORDER (GRB)

На единичке Масштаба цвет огня должен быть красный (нормальный для огня).
Вы, случайно, не пытались раньше "исправить" зелёный цвет у огня?
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@galgalg, 0x обязателен, это префикс шестнадцатиричного значения, 0 - префикс восьмиричного
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@galgalg,
обязательно 0xFFA25D ... когда включишь модуль пульта, то все получаемые коды будут отображаться в мониторе
1588768257962.png
Достаточно будет скопировать нужный в конфигурацию
 

Сотнег

★★★★★★★
15 Янв 2020
4,345
1,492
Очередной издец с этим языком программирования...
Оказалось, что функция abs() возвращает целочисленный тип, даже если ему в параметрах отправить дробный.
И я пытался адаптировать эффект от автора, который про этот косяк тоже не знал, но решил, что и так сойдёт.
 

Сотнег

★★★★★★★
15 Янв 2020
4,345
1,492
@Palpalych, я тут пытался портировать твою адаптацию SimplexNoise,
но не наблюдаю никакой заметной реакции на ползунок Масштаб.
Не увидишь, что не так?
C-like:
// ============= SIMPLEX NOISE / ПРОСТОЙ ШУМ / ШУМ НА СВОЙ ВКУС ===============
// Aurora : https://github.com/pixelmatix/aurora/blob/master/PatternSimplexNoise.h
// Copyright(c) 2014 Jason Coon
// v1.0 - Updating for GuverLamp v1.7 by Palpalych 14.04.2020

void ShowNoiseLayer(byte layer, byte colorrepeat, uint8_t colorshift)
{
  for (uint8_t i = 0; i < WIDTH; i++)
  {
    for (uint8_t j = 0; j < HEIGHT; j++)
    {
      uint8_t pixel = noise3d[layer][j][i];
      leds[XY(i, j)] =  ColorFromPalette(*curPalette, colorrepeat * (pixel + colorshift), pixel);
    }
  }
}

void simplexNoiseRoutine()
{
  if (loadingFlag) {
    loadingFlag = false;
    setCurrentPalette();
    eNs_setup();

    deltaHue = (((modes[currentMode].Scale - 1U) % 11U * 25,4) >> 2U) + 1U; // мой ползунок Масштаба от 1 до 100.
    if (modes[currentMode].Speed > 127U)
      hue2 = ~modes[currentMode].Speed;
    else
    {
      hue2 = modes[currentMode].Speed;
      hue = 0U;
    }
    hue2 <<= 1U;
  }

  FillNoise(0);

  if (modes[currentMode].Speed > 127U)
    hue++;
  ShowNoiseLayer(0, 1, hue);

  noise32_x[0] += scale16by8((uint16_t)beatsin8(3, 0, 255U) * (deltaHue + 1U), hue2);
  noise32_y[0] -= scale16by8((uint16_t)beatsin8(2, 0, 192U) * 2U * deltaHue, hue2);
  noise32_z[0] += (uint16_t)map8(hue2, 1U, 255U) * 8U;
  scale32_x[0] = (1024U + beatsin8(5U, 0U, 255U)) * deltaHue;
  scale32_y[0] = (1024U + beatsin8(7U, 0U, 255U)) * deltaHue;
  blurScreen(3);
}
 

nik2602

✩✩✩✩✩✩✩
19 Ноя 2019
4
1
@nik2602, в константах для вас есть строчка
#define COLOR_ORDER (GRB)

На единичке Масштаба цвет огня должен быть красный (нормальный для огня).
Вы, случайно, не пытались раньше "исправить" зелёный цвет у огня?
Неправильно вам ответил - фотографии приложил с эффектом «Белый цвет». При единичке масштаба цвет огня правильный, красный. Может что поменять в настройках самого эффекта?
 

Сотнег

★★★★★★★
15 Янв 2020
4,345
1,492
@nik2602, если ваша матрица некорректно отображает цвета,
тогда только опытным путём можно оттенок подбирать.

Но если вы купили матрицу, как у всех,
тогда проблема может оказаться нетривиальной.
Вплоть до индивидуальных особенностей зрения.

Попробуйте тон (число 45) менять в строчке
45U, // определяем тон
 
Изменено:

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Очередной издец с этим языком программирования...
Оказалось, что функция abs() возвращает целочисленный тип, даже если ему в параметрах отправить дробный.
И я пытался адаптировать эффект от автора, который про этот косяк тоже не знал, но решил, что и так сойдёт.
А в PIO вы бы это увидели сразу в варнингах, подчеркивании и просто при в подсказках к параметрам. Вот поэтому я и использую PIO - позволяет на порядок повысить качество кода и продуктивность работы. :)
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@galgalg,
у тебя система команд NEC ,
RC6 - это пульты Philips

нажимай несколько раз кнопку для считывания одинаковый показаний - оно и будет истинным

правильная маска будет
C++:
#define ir_CODEMASK 0xFFFFFFFFFFFFFFFF // маскировка отличающихся битов в кодовой посылке нажатия одной и той же клавиши
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405

@nik2602, возможно матрица с неоткалиброванными светодиодами.
FastLED позволяет делать коррекцию при инициализации, копать в разделе ColorCorrection
 
  • Лойс +1
Реакции: Старик Похабыч

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Сотнег, у тебя Scale задается только первом кадре (процедура с условием
loadingFlag), дальше он никак не учитывается. Вынеси просчет параметра за это условие - будет работать.
И желательно диапазон устанавливать 0-255, ибо там 8 (9 в ваших прошивках) палитр, и на регулировку масштаба остается мало ступеней.
 

Сотнег

★★★★★★★
15 Янв 2020
4,345
1,492
у тебя Scale задается только первом кадре (процедура с условием
loadingFlag), дальше он никак не учитывается. Вынеси просчет параметра за это условие - будет работать
Не понял...
Зачем его постоянно пересчитывать, если результат изменится только при изменении Scale?
Вот твой код:
uint8_t scale1 = ((mod8([COLOR=rgb(41, 105, 176)]Scale[/COLOR], palletes_steps) * palletes_count) >> 2U) + 1U;

А при изменении Scale как раз и активируется if (loadingFlag).
 

Palpalych

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

@galgalg, Поменяй маску, там должно быть 16 "F"
В конфигурации я описал пример для чего она нужна. Тебе эта маска не нужна для твоего пульта.
 
  • Лойс +1
Реакции: galgalg

Shaitan

★★★✩✩✩✩
17 Фев 2020
182
165
@Shaitan, тоже столкнулся с такой же проблемой. Заметил, что на точность определения команды влияет засветка датчика матрицей. Возможно, что не лишним будет экран, какой устанавливается на некоторых вариантах датчиков.
Это я заметил, но шумовые коды я игнорирую.
сделал "защелку" от повторного исполнения при дальнейшем удерживании клавиши.
у меня на пультах при нажатии посылает один код, а при дальнейшем удерживании присылает "-1" или 0xFFFF......
 

rav99

✩✩✩✩✩✩✩
5 Май 2020
2
0
Всем добрый день кто нибудь знает как изменить часовой пояс в прошивке или где то еще, а то показывает московский время!
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Shaitan, Пока не встречался с такими пультами, но подозреваю модуль устанавливает флаг Repeat 1 в этот момент. Поэтому функцию инкрементирования можно разработать основываясь на этих данных.
C++:
const uint64_t ir_lastcode;
uint64_t ir_code = results.value & ir_CODEMASK;
if (results.repeat)
    ir_code = ir_lastcode;
// --- обработка кода ---
ir_lastcode = ir_code;
 

Shaitan

★★★✩✩✩✩
17 Фев 2020
182
165
@Shaitan, Пока не встречался с такими пультами, но подозреваю модуль устанавливает флаг Repeat 1 в этот момент. Поэтому функцию инкрементирования можно разработать основываясь на этих данных.
C++:
const uint64_t ir_lastcode;
uint64_t ir_code = results.value & ir_CODEMASK;
if (results.repeat)
    ir_code = ir_lastcode;
// --- обработка кода ---
ir_lastcode = ir_code;
но в этом случае надо думать как отлавливать одиночное нажатие.
У меня после кода, следующие идут FF-ки. отпустил кнопку, нажал, опять код и FF-ки.
тогда можно вначале проверить все кликабельные кнопки, потом, если FF-ка ir_code = ir_lastcode;
и обрабатывать удерживаемые.

По пультам. Samsung выдает один код подрят, без FF-ки, а остальные китайские пульты, как я описал выше, и с ними работать проще.
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Shaitan, у меня отлавливание повторно нажатой кнопки реализовано паузой в полсекунды, если не пришла за это время команда повторения, то значит кнопка отжата. Пока работает без нареканий. Но, возможно, что придется задействовать продвинутые алгоритмы определения как в RC6
 

Shaitan

★★★✩✩✩✩
17 Фев 2020
182
165
Всем добрый день кто нибудь знает как изменить часовой пояс в прошивке или где то еще, а то показывает московский время!
Constants.h
#define LOCAL_OFFSET (3 * 60) // смещение локального времени относительно универсального координированного времени UTC в минутах