ESP, IoT WiFi лампа-будильник. Прошивка FireLamp_JeeUI (GPL)

WiFi лампа-будильник. Прошивка FireLamp_JeeUI (GPL)
Инструкция по установке прошивки (ее можно скачать отсюда , это последняя стабильная версия), но самая актуальная версия, которая разрабатывается в данный момент, находится тут: develop-ветка

Существует
Консольный билдер для прошивки (Win8.1 - 10) , если нет желания ставить VS Code+PIO, можете использовать данный вариант.



Еще варианты подключений можно поглядеть тут. По использованию пинов ESP8266/ESP32 можно поглядеть в этом сообщении и сообщениях рядом.

-----------------------------------------------------------------------

Также можно прошить заранее подготовленную прошивку и ФС отсюда, здесь самая новая версия от 25.02.2021
Проект: скачать отсюда, фреймворк JeeUI2 переработан и взят отсюда , но за время разработки фреймворк был существенно переработан, поменял название и фактически лампа уже работает на фреймворке EmbUI, который позволяет строить WebUI интерфейсы для любых проектов, считайте его готовым движком создания интерфейсов под ESP8266/ESP32, может использоваться кем угодно под свои задачи, полностью открыт и разработка продолжается. На уровне фреймворка есть:
1. Асинхронный вебсервер, с поддержкой до 5 одновременных клиентов и синхронизацией между ними.
2. Поддержка http-get запросов
3. Поддержка mqtt
4. SSDP, mDNS, полностью автоматический WiFi c восстановлением после сбоев
5. Предустановленный и преднастроенный базовый интерфейс
6. Фреймворк достаточно экономно расходует память и можно отключить некоторые потребляющие память части, типа SSDP
7. Поддержка локализации
8. Инструкция и примеры использования
В общем будут вопросы по фреймворку и его использованию - задавайте в теме. Лампа не единственный проект который может использовать фреймворк, на данный момент на нем же у меня в тестовом варианте собрана веб-камера для esp32, но пока еще не довел до ума и не выделил в отдельный проект.

Далее более подробно по установке:

Учтите, что PIO и VS Code развиваются и инструкция может быть немного не актуальна и не соответствовать текущим версиям ПО. При возникновении вопросов/проблем - задавайте их в теме.

1. Устанавливаем Visual Studio Code в зависимости от вашей операционной системы 32 или 64 битную версию.
2. Устанавливаем Git он тоже понадобится, так как Visual Studio Code на пару с PlatformIO будут ругаться что его им очень не хватает.
3. Перезагружаем компьютер.
4. Установить PlatformIO для этого запустить Visual Studio Code и в меню View выбрать пункт Extensions - либо воспользоваться сочетанием клавиш (Ctrl+Shift+X)
5. Выбрать PlatformIO IDE и нажать Install
6. Перезапустить Visual Studio Code у вас сразу откроется вкладка PIO Home, работаем в ней.
7. В вкладке Открыть проект - Open Project - заходим в папку с проектом и нажимаем Open "FireLamp_JeeUI-master"



8. Слева открываем Platformio.ini и делаем необходимые настройки, раскомментировать нужный board, это плата на которой вы собираете лампу, и закомментируйте ненужную.
9. Тут же нужно добавить настройки Com порта на котором у вас ваша плата, это делается командой upload_port = COM8 (где COM8 номер вашего порта COM2, COM3 и т.д.)
10. Останется настроить саму прошивку под себя это делается в include - config.h там все подробно откомментировано.
11. Первоначально вам необходимо будет записать файлы в ФС контроллера, иначе веб-интерфейс не будет доступен! Делается это так меню Terminal - Run Task.. (Ctrl+Alt+T) - PlatformIO - PlatformIO: Upload File System Image, если вы не забыли указать нужный Com порт и подключили плату все должно быть успешно.
Так вот там по умолчанию нет этого пункта.
Нужно нажать Кнопку PlatformIO, потом выбрать конфигурацию, которую собираешь и только потом Upload Filesystem Image. И только после такого она появляется в Run Task. Правильный скриншот прилагаю.

1600444586890.png
12. Можно собирать и заливать прошивку в лампу. Делается это нажатием на PlatformIO Upload.



P.S. Если вы забудете выполнить 11 пункт то не сможете подключится к лампе, при подключении к ней она будет перезагружаться.

Способы обновления прошивки:

OTA
- обновляется сама прошивка и есть возможность обновить File System Image как это описано выше, можно работать с лампой так как и по физическому подключению к COM порту без разбора и подключения проводом.

Для обновления прошивки по OTA нужно сделать изменения в файле PlatformIO.ini
1. Закомментировать по аналогии с другими строками и соблюдением пробелов, ваш COM порт.

2. Раскомментировать следующие строки, обратите внимание пробелы очень важны, если не соблюсти их будет выдаваться ошибка при запуске прошивки и она так и не начнется.

В строке с IP адресом, указать ваш адрес лампы.

C++:
upload_protocol = espota
upload_port = 192.168.1.36
upload_flags =
    --auth=12345
    -p 3232


Перед началом обновления, не забудьте перевести лампу в режим обновления PIO-ОТА, для http обновления (читать ниже) это делать не обязательно. Также убедитесь, что обновление прошивки через PIO разрешено дефайном в user_config.h

* внимание, для питона важны отступы (пробелы), так что внимательно выравнивайте на одном уровне

HTTP - обновление через web интерфейс, можно обновить как прошивку, так и ФС:
IP адрес лампы\update указываем файл firmware.bin или то же самое через WebUI
Нужно будет выбрать файл и нажать Upload, на кнопке Обновление появятся проценты прогресса.

1606756811806.png
Здесь на картинке под 1 показан вариант ОТА через PIO, под 2 - вариант через http для WebUI.

Для формирования файла firmware.bin нужно в PlatformIO запустить сборку прошивки без заливки. Для формирования ФС - соответственно соберите ФС и загрузите файл ФС пользуясь теми же кнопками, как при заливке прошивки.
1588144337363.png



После непродолжительной сборки прошивки, терминал выдаст ответ:
= [SUCCESS] =
файл будет находится в папке со скачанной прошивкой .pio\build\esp8266dev\
Я прошиваю после стирания:
Быстрый старт.

Что потребуется:
Visual Studio Code - скачиваем и устанавливаем, желательно перелогиниться или перезагрузиться, чтобы точно применились настройки путей.
Под VS Code устанавливается PlatformIO, дальше вся работа там. Если кому приятнее работать в ArduinoIDE - адаптируйте самостоятельно, у меня терпения не хватает ждать пока там все соберется, так что мне проще в PlatformIO все делать.

Проект: скачать отсюда, фреймворк JeeUI2 переработан и взят отсюда , но он уже включен в проект, так что дополнительно качать не нужно.

В общем у вас после открытия проекта должно выглядеть как-то так:
1583172758919.png

Контроллер ESP8266/ESP32 выбирается в файле platformio.ini.
ВНИМАНИЕ: Первоначально вам необходимо будет записать файлы в ФС контроллера, иначе веб-интерфейс не будет доступен!
Делается это так: PlatformIO->Run Task...->Upload File System Image
1583173209762.png
После этого можно собирать проект и записывать его в контроллер. Сами файлы для загрузки в ФС находятся в \FireLamp_JeeUI\data там же у меня находятся и файлы конфигурации config.json и eff_config.json . Вы также можете поместить свои предварительно созданные конфигурации, если это необходимо. Также к файловой системе можно получить доступ, если при компиляции проекта была раскомментирована настройка:
//#define USE_FTP // доступ к SPIFFS по FTP, логин/пароль: esp8266
После чего вы можете подключиться фтп-клиентом и скачать/записать то, что вам нужно.

---------------------
Я бы ещё в инструкции дописал, как собирать проект и записывать его в контроллер, сам искал долго эти кнопки.
Кнопки по сборке проекта, включению вывода сообщений отладчика, очистке проекта от объектных файлов, остановке задач и т.д. находятся внизу, слева:
1583602065364.png

Создание конфигурации:
Файл user_config.h.default переименовываете в user_config.h и редактируете.
Обратите внимание, то что для кнопки и плеера существует также возможность менять пины после перепрошивки, сделано это для тех, кто хочет залить бинарник, а затем настроить эти пины под себя:
1607700948873.png
Порядок создания пользовательской конфигурации описан здесь: user_config.h , пример такого файла можно посмотреть тут .
По кнопке:
* Из выключенного состояния
- 1 касание - включить на последнем эффекте
- 2 касания - включить в режиме ДЕМО
- долгое удержание - включить в режиме "белая лампа" на минимальную яркость (ночник)
- касание, удержание - включить в режиме "белая лампа" на максимальную яркость
* Во включенном состоянии
- 1 касание - выключить лампу
- 2 касания - следующий эффект
- 3 касания - предыдущий эффект
- 4 касания + 4 касания - запуск сервиса ОТА
- 5 касаний - вывод IP на лампу
- 6 касаний - вывод текущего времени бегущей строкой

- удержание - регулировка яркости
- 1 касание, удержание - регулировка "скорости" эффекта
- 2 касания, удержание - регулировка "масштаба" эффекта

Это дефолтное состояние для кнопки, но абсолютно любую настройку можно поменять, к примеру вот переход к 253 эффекту по 7 нажатиям во включенном состоянии:
1606757828411.png
В общем если что-то нужно или наоборот не нужно - настраивайте под себя. :)
По HTTP/MQTT (https://community.alexgyver.ru/thre...a-firelamp_jeeui-gpl.2739/page-299#post-73384)
команды можно посылать на лампу через браузер или curl по URL вида http://esp-xxxxxx/cmd?arg=param
- /cmd?on /cmd?off /cmd?on=true /cmd?on=false - вкл/выкл
- /cmd?demo - режим ДЕМО
- /cmd?gbright /cmd?gbright=true - проверка/установка для глобальной яркости
- /cmd?msg=Hello - вывод сообщения на лампу
- /cmd?effect=N - эффект номер N
- /cmd?move_next - следующий эффект
- /cmd?move_prev - предыдущий эффект
- /cmd?move_rnd - случайный эффект
- /cmd?effect - номер текущего эффекта
- /cmd?eff_config - конфигурация текущего эффекта
- /cmd?warning /cmd?warning=[16777215,5000,500,1] - неблокирующий вывод мигалки поверх эффекта (выдача предупреждений), первое число - цвет, второе - полный период, третье - полупериод мигания, четвертое - тип уведомления (0 - цвет, 1-2 - цвет и счетчик, 3 - счетчик)
- /cmd?alarm=true - форсировать включение будильника
- /cmd?control=N ; /cmd?control=[N,val] - получить/установить значение дин. контрола
- /cmd?inccontrol=N ; /cmd?inccontrol=[N,val] - возможность увеличить/уменьшить на val текущее значение контрола, не превышая мин/макс
- /cmd?list - полный список эффектов
- /cmd?demolist - список демо
- /cmd?showlist - список отображаемых
- /cmd?reboot - перезагрузить лампу
- /cmd?OTA - запустить сервер обновления OTA через PIO
- /cmd?draw=[цвет,X,Y]
- /cmd?matrix - отдает размеры [X,Y]
- /cmd?fillmatrix=цвет - заливка цветом

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

Дополнительные служебные комманды:

- /heap - показать свободное место на куче
- /echo - показать эхо-ответ (json для формирования интерфейса)
- /config - показать текущий конфиг (json основных настроек)
- /scan - показать доступные WiFi-сети
- /config.json - скачать активный конфиг лампы
- /events_config.json - скачать активный конфиг событий
- /update - форма http-обновления прошивки
- /edit - вызов редактора конфигов (esp8266/esp8266 - логин/пассворд)

После подключения к лампе в режиме точки доступа она доступна по в браузере по адресу http://192.168.4.1 , если же после этого ее переподключить к роутеру, то узнать ее адрес можно по 5 нажатий на кнопку - вывод IP, если кнопки нет - то при перезапуске лампы она однократно напишет IP. Также ее можно найти в сетевом окружении компьютера:
1609580490648.png
После обнаружения - доступен переход по адресу http://firelamp/ (работает нестабильно). Либо можно c помощью утилиты Service Browser найти сервис http и IP лампы, либо просто поглядеть IP который выдал роутер, если он имеет возможность показать этот адрес.

Основные возможности прошивки:
  • Повторяет все возможности других прошивок по управлению эффектами и предоставляет массу других возможностей
  • Управление по MQTT (см. список команд под спойлером выше), подробную инструкцию по установке и настройке можете почитать тут или посмотреть видео установки брокера
  • Отправка текстовых сообщений на лампу, в том числе специальных %IP, %TM, %EN, %DT
  • Настройка и вывод времени, само время синхронизуется по ntp или может задаваться вручную
  • Периодический вывод времени и/или новогоднего отсчета, лампа может использоваться как гирлянда на окно, корректный вывод текста с отзеркаливанием в случае если лампа "смотрит" во двор.
  • OTA в двух вариантах, при обновлении файловой системы, чтобы не терять настройки можете их сохранить и поместить в папку /data
  • Гибкое и настраиваемое управление кнопкой, индикаторы управления
  • Каждый эффект может иметь дополнительные динамические контролы, кроме трех стандартных. При необходимости любой контрол может быть скрыт
  • Подключение микрофона MAX9814 элементарное: +3.3В с ESP на Vdd микрофона, землю (GND) на землю, сигнальный (Out) микрофона на пин А0. На этом все
  • Возможно менять состояние произвольного пина/пинов (HIGH/LOW/TOGGLE) по событию. Строка настройки вида: [{'pin':1,'act':'H'}], допустимые варианты 'H'==HIGH, 'L'==LOW, 'T'==TOGGLE, также можно записать список, к примеру: [{'pin':1,'act':'H'},{'pin':2,'act':'L'},{'pin':3,'act':'T'}] - 1 установит в HIGH, 2 в LOW, 3 - переключит. Если для кого-то подобное управление слишком сложно, то есть возможность активировать AUX-пин, с прямым управлением им через http/mqtt или UI.
  • Есть возможность ставить множественные будильники и прочие автоматизации
  • Добавлен микрофон (MAX9814) и цветомузыка на основе амплитуды/частоты. Добавлен эффект "Частотный анализатор", множество эффектов имеют зависимость от звука, которую при необходимости можно отключить, как выборочно, так и для всех эффектов сразу
  • Поддержка http-команд , те же команды работают и для mqtt
  • Пользовательский интерфейс всегда актуален и синхронизирован с прошивкой, т.к. является частью прошивки
  • Если будет написано приложение под андроид/иос/... то оно тоже будет синхронизировано, т.к. интерфейс конструируется динамически
  • DF Player Mini - озвучивание эффектов, MP3-плеер, озвучивание времени, при проблемах с плеером обязательно поглядите сюда, подключение плеера - изучите это сообщение. Архив со звуковыми файлами можете взять, к примеру - тут, внимание изменена структура каталога файлов времени - последняя версия тут.
  • При потере связи с роутером прошивка автоматически создаст точку доступа, при восстановлении связи - переподключится, никаких проблем с переключением режимов нет, никаких задержек при недоступности серверов времени - тоже нет, лампа полностью доступна и управляется одинаковым образом как в STA режиме, так и в AP. IP лампы можно поглядеть как по нажатию кнопки, так и в сетевом окружении компьютера, либо через просмотр сервисов (поддерживается Bonjour-сервисы)
  • Прошивка гибко конфигурируется, можно отключать неиспользуемый функционал (кнопку, плеер, цветомузыку и т.д.)
  • Рисовалка (пока через http/mqtt, но будет и через UI)
  • По интеграции в Home Assistant можете поглядеть тут, самая новая и актуальная версия живет здесь.
  • Для тестирования доступно приложение под IOS. Также для управления можно использовать WLED из плеймаркета, подробнее читайте тут.

История:
  • старт с нуля
  • перенесены изменения с прошлого проекта
  • перенесен весь функционал
  • поддежка мосфетов для автоматизаций
  • перенесены эффекты со старых проектов и добавлены новые, общее количество подсчитать сложно, т.к. есть эффекты являющиеся генераторами эффектов, также можно создать копии, ориентировочное количество - 100 штук, впрочем все эти эффекты можно либо скрыть, либо удалить, либо наоборот создать доп. копии, кроме того есть возможность создать конфигурации, с разным поведением и переключать их по необходимости
  • микрофон и цветомузыка
  • возможность локализации (на данный момент есть - русский, украинский, английский, испанский)
  • вывод звука (DF Player Mini) - озвучивание времени, эффектов, MP3-плеер, будильник
  • поддержка энкодера
  • поддержка семисегментного индикатора TM1637
  • внутренняя RTC-память для сохранения даты/времени при перезагрузках контроллера
  • часы реального времени отдельным модулем (реализовано @Lumenjer)
В планах:
  • поддержка других контроллеров ESP (C3/S2), переход на новый SDK3+ когда будет исправлен FastLED

По состоянию на сегодня прошивка находится в стабильной стадии (есть релизная версия в мастер и текущая в девелоп бренчах). Прошивка активно развивается и над ней работают несколько разработчиков.

Вариант печатного корпуса для лампы можете посмотреть тут.

Обзоры реализации лампы от участников:
- WiFi Огненная лампа Harley Davidson (Lumenjer)

----------------------------------------

Можно ли копировать, менять что-то по своему усмотрению? Да, естественно - лицензия GPLv3. Разрешено все, что оговаривается лицензией. Но учтите, что согласно лицензии вы обязуетесь предоставлять исходный код проектов основанных на данном, даже в случае коммерческого использования. Либо сразу (предпочтительно), либо по первому требованию любого из обратившихся. Если вас не устраивают идеи и соглашения свободного кода - выбирайте другой проект и не используйте этот. И еще раз - моя позиция другими словами.

----------------------------------------
Фреймворк можно обсудить или задать вопросы по нему тут: https://community.alexgyver.ru/threads/embui-frejmvork-dlja-esp8266-esp32.5608/
----------------------------------------


Несколько скриншотов интерфейса прошивки (показаны три темы - классическая, светлая, темная):

s1.JPGs2.JPGs3.JPG
 

Вложения

Изменено:

Комментарии

kDn

★★★★★★★
18 Ноя 2019
4,518
2,455
@kDn, а можно сразу предусмотреть, чтобы названия и надписи в вебморде откуда-то из файла в ФС вычитывались? Я лично бы на украинский и испанский языки перевел. Так как самому на родном языке хочется иметь интерфейс, а у сына лучший друг, испанец, очень просит для своей невесты такую лампу в подарок.
К сожалению это не компьютер, так что возможности ограничены... Если есть какой-то механизм ресурсных файлов - погляжу и подключу чуть позже. Но если вычитывать именно из JSON и создавать потом строковые части - то это крайне накладно по памяти, которой очень мало в есп8266.

В общем пока что не знаю... Если найдете примеры ресурсных файлов и их поддержки для есп8266/32 - то скиньте ссылку.
 
  • Лойс +1
Реакции: kostyamat

tolyan23

✩✩✩✩✩✩✩
2 Янв 2020
22
8
После этой прошивки я смогу перепрошится на прошивку от ganer47? если мне что-то не понравится или будут какие-то проблемы? Есть какая-то разница какой контролер использовать wemos, nodemcu, или голую платку esp8266 (с точки зрения первой загрузки кода) Есть ли поддержка обновления по воздуху?
 

kostyamat

★★★★★★★
29 Окт 2019
3,354
1,952
@tolyan23, "прошивка в начале пути,
Ей нужно ещё подрости" (с) Я.
Все будет, надеюсь, терпение.
А пока, в ней нет и половины функционала. Проблем возвратится на Ганнера47 думаю точно не будет.
 

kDn

★★★★★★★
18 Ноя 2019
4,518
2,455
После этой прошивки я смогу перепрошится на прошивку от ganer47? если мне что-то не понравится или будут какие-то проблемы? Есть какая-то разница какой контролер использовать wemos, nodemcu, или голую платку esp8266 (с точки зрения первой загрузки кода) Есть ли поддержка обновления по воздуху?
При перепрошивках вы потеряете только сохранненные настройки, больше проблем быть не должно при любых переходах туда-сюда. Разницы в использовании нет, можно также использовать есп32. Единственное, что сейчас фреймворк использует вывод на светодиод и кнопку "Flash" модуля NodeMCU для отображения состояния подключения и переключения/сброса на начальное состояние. На других модулях - данные светодиод и кнопку можно (но не обязательно) допаять при необходимости.
 

kDn

★★★★★★★
18 Ноя 2019
4,518
2,455
Внимание: при неадекватном поведении цветов (это можно увидеть на той же белой лампе), требуется правка констант в библиотеке FastLed:

\libdeps\myboard\FastLED_ID126\power_mgt.cpp

static const uint8_t gRed_mW = 15 * 5; // 15mA @ 5v = 75mW
static const uint8_t gGreen_mW = 15 * 5; // 15mA @ 5v = 75mW
static const uint8_t gBlue_mW = 15 * 5; // 15mA @ 5v = 75mW
static const uint8_t gDark_mW = 1 * 5; // 1mA @ 5v = 5mW
 

kDn

★★★★★★★
18 Ноя 2019
4,518
2,455
Буду по-немного дорабатывать, ну и логировать изменения:

- добавил белую лампу
- поправил задержки эффектов

- добавил "эффектопад"
- багфикс двойного/тройного нажатия кнопки

На сегодня пока хватит :)
IMAG2394.jpg
 

kDn

★★★★★★★
18 Ноя 2019
4,518
2,455
Продолжаю.

+ Эффект "пульс"
* багфикс для сборки проекта под esp32

+ Эффект "Радуга 2D" - объединяет в себе горизонтальную, диагональную и вертикальную

+ Эффект "Цвета" который объединяет в одном наборе как статичный цвет (скорость==1, масштаб=HUE), так и динамичный (скорость >1, масштаб=шаг изменения HUE). Т.е. при скорости 255 и масштабе 1 цвета будут меняться плавно (шаг 1) и быстро. При скорости 127 и масштабе 35 будет меняться со средней скоростью, и с шагом 35 от текущего HUE. В общем кому надо - разберется))).

Итого на данный момент ситуация такая:
1583337565125.png
* На этом на сегодня и закончу :)
** "В списке демо" это аналог избранного, т.е. те эффекты, что включены - попадут в перебор демо. "В списке выбора" это избранное для режима вне конфигурации и для перебора по кнопке. Оба варианта для динамического конфигурирования предпочитаемых эффектов.
 

kostyamat

★★★★★★★
29 Окт 2019
3,354
1,952
@kDn, на счет подключения к лампе. На сколько мне изменяет память, в jeeUI есть возможность сделать так, что для подключения к лампе достаточно ввести в адресную строку браузера что-то типа LedLamp.local, а не вводить IP. Марселич (автор фреймворк) в каком то видосе показывал такое чудо, правда не останавливался специально на этом моменте. Можете попробовать внедрить?

Из скрытых возможностей, там вроде ещё есть проход сквозь NAT рутера наружу. Он когда-то приложуху делал (не доделал), которая его поделки из-вне цепляла. (Но это как бы и нафиг не надо).
 
Изменено:
  • Лойс +1
Реакции: Sakol2006

kDn

★★★★★★★
18 Ноя 2019
4,518
2,455
@kostyamat, для днс нужно сервер добавлять, при этом он будет работать лишь в AP режиме, в режиме клиента за это отвечает роутер. Для выхода за NAT нужен внешний сервер (он использовал внешний MQTT), проброс портов или VPN - тоже не дело для железки. Собственно если вам это все нужно - используйте, не нужно - не используйте :)
---------
Кстати, по ресурсным файлам есть у меня идея, попробую сделать чуть позже.
 
Изменено:

kostyamat

★★★★★★★
29 Окт 2019
3,354
1,952
для днс нужно сервер добавлять, при этом он будет работать лишь в AP режиме, в режиме клиента за это отвечает роутер.
Нууу... Не совсем так, точнее совсем не так, есть же mDNS
http://www.martyncurrey.com/esp8266...n-esp8266-with-unknown-ip-address-using-mdns/

Есть несколько нюансов, mDNS не активирован по умолчанию в Андроид. Но это решаемо, - на той же странице в комментариях
http://www.martyncurrey.com/esp8266...-unknown-ip-address-using-mdns/#comment-21730

Ну или просто сканер, с открытым кодом и без рекламы
https://play.google.com/store/apps/details?id=info.donotsavemy.networkservicediscovery
 
Изменено:

kostyamat

★★★★★★★
29 Окт 2019
3,354
1,952
Знаю, но вопрос сейчас не об этом. Мультикаст ДНС (mDNS) работает несколько по другому. И работает как в режиме АР, так и клиента. И рутер тут не причем, и hosts тем более.
 

kDn

★★★★★★★
18 Ноя 2019
4,518
2,455
Знаю, но вопрос сейчас не об этом. Мультикаст ДНС (mDNS) работает несколько по другому. И работает как в режиме АР, так и клиента.
А правка таблиц роутера работает без необходимости всего этого, при этом и место единое. Я не понимаю целесообразности и выигрыша. Вот у вас 3 лампы и каждая вещает мультикастом, а еще роутер, а еще корневые сервера, а еще забитые гвоздями сопоставления в hosts и начинается веселуха в попытках понять что и чем резолвится :)
 

kostyamat

★★★★★★★
29 Окт 2019
3,354
1,952
Во первых это красиво :)
У дальше сами знаете: 99% повторивших - новички, из них процентов 40 те, кого в тупик ставит сам факт "войдите по IP лампы, который ей присвоел рутер", ещё 40% считающих сябя "всі розуми поївшими" і начинают свистопляски, потом с жалобами в форум - не работает, хелп! И наверное только лишь 10% которые вообще поймут то, о чем вы написали выше - сопоставления в hosts, корневые сервера и вот это вот все. И наверное только лишь несколько процентов пользуются этим всем в домашних условиях, как и делают вторую/третью лампы.

Итого: ваше право, прислушаться или нет, но думаю стоит сделать отключаемую в вебморде функцию mDNS (и кажется стоит ее активировать по дефолту).
 

kDn

★★★★★★★
18 Ноя 2019
4,518
2,455
@kostyamat, при наличие 2+ ламп будет либо конфликт, либо нужно завязываться на ID, либо городить доп. настройки в прошивке или интерфейсе. Все эти действия ради "красиво" не считаю целесообразным, особенно в виду того, что все это можно решить иными способами.
 

kDn

★★★★★★★
18 Ноя 2019
4,518
2,455
+ Эффект "Матрица"
* Оптимизирован размер сохранения настроек эффектов
* Небольшое изменение для эффекта "Цвета"

-------------
+ Снегопад
+ Метель, Звездопад (половина шкалы - одно, вторая половина - другое)

-------------
+ Светлячки
+ Светлячки со шлейфом
+ Пейнтбол
 
Изменено:
  • Лойс +1
Реакции: kostyamat, Belokota и Imac

Сотнег

★★★★★★★
15 Янв 2020
3,242
1,220
+ Эффект "Радуга 2D" - объединяет в себе горизонтальную, диагональную и вертикальную
Баг нашёлся...
i * myLamp.effects.getScale()%170
работает как:
( i * myLamp.effects.getScale() ) % 170
а задумка была:
i * ( myLamp.effects.getScale() % 170 )
 
  • Лойс +1
Реакции: genav и kDn

kDn

★★★★★★★
18 Ноя 2019
4,518
2,455
@Сотнег, спасибо, поправил. Точнее там вообще остаток от деления на 86 должен быть, т.к. используется только треть шкалы.
Ну и заодно поправил ряд багов, к примеру с сохранением настроек эффектов, с фейдером и т.д.
 

Сотнег

★★★★★★★
15 Янв 2020
3,242
1,220
@kDn, 86 не советую.
для 171 вместо единицы останется 85.
Лучше верни 170. Оно правильное.
Ну или 85.
 

Сотнег

★★★★★★★
15 Янв 2020
3,242
1,220
@kDn,
% 170 - хорошо
% 85 - не очень (бегунок на 255 превратится в ноль)
% 86 - совсем плохо (171=85, 172=0, 173=1)
 

kDn

★★★★★★★
18 Ноя 2019
4,518
2,455
@Сотнег, я знаю как работает модуль, а также естественно проверил работу на крайних точках. Можете поглядеть светлячки со шлейфом и увидеть там масштабирование в 1...255 с коррекцией на вещестыенные операции. Ваше вчерашнее замечание о порядке операций верное, хоть и не критичное, но сейчас все работает именно так, как задумывалось :). Здесь для радуги шкала делится на три диапазона.
 

kDn

★★★★★★★
18 Ноя 2019
4,518
2,455
Исправления для работы кнопки. Внимание - правки в библиотеке и фреймворке.

Библиотека кнопки обновлена до 3.4, спасибо Palpalych за сообщение об использовании старой версии и подправлена под требования проекта (сброс нажатий при удерживании). Во фреймворке дефайн кнопки изменен да __BUTTON и добавлена возможность отключать обработку за счет комментирования.

Логика работы кнопки предполагается такая:
1. Таймаут между нажатиями когда они считаются последовательностью - 0.5 секунды (определяется дефайном)
2. Таймаут удержания кнопки зажатой чтобы стало считаться, что она удерживается - 0.5 секунды (определяется дефайном)
3. Период для удержания - 75 мс, чем ниже число тем быстрее будет меняться яркость/скорость/масштаб при удержании (определяется дефайном)
4. По умолчанию сейчас настроено на механическую кнопку, при использовании сенсорной - измените подтяжку
5. Логика удрежаний: даблклик+удержание => масштаб, клик+удержание => скорость, удержание => яркость или же реверс предыдущего регулирования масштаб/скорость/яркость, если с последней регулировки прошло менее 3 секунд (определяется дефайном)
Все удержания кнопки работают с реверсом по отпусканию или приходу к границе диапазона 1 или 255

Из реализованного на данный момент для кнопки:

* Из выключенного состояния:
- Даблклик - запуск режима ДЕМО
- Удержание - включение "Белой лампы" на полную яркость, при удержании - уменьшение яркости до нужного значения
- Клик - включение на последнем сохраненном режиме

* Из включенного состояния:
- Удержание, клик-удержание, даблклик-удержание - регулировки яркости, скорости, масштаба
- Клик - выключение
- Дабл-клик - следующий эффект
- Трипл-клик - предыдущий эффект

Остальные комбинации и возможно "переназначение" будет доступно позже.
 

abogatyrev80

✩✩✩✩✩✩✩
3 Мар 2020
20
1
Уважаемые разработчики, спасибо за то что вы делаете! Может есть смысл подумать о том что бы для Esp32 прикрутить сервер MQTT? Или ресурсов не хватит? И еще идея возможно интересная, что если сделать эту лампу как сервер умного дома с микрофоном и может со звуковым каналом, где запросы и действия могли бы сопровождаться анимацией смайликов (в случае когда лампа собрана в плоской форме) было бы круто.
Я не сильно понял как подключиться к esp32 когда запускаешь 1-й раз, какое называние сети и где можно изменить имя? Этот вопрос возник поскольку в моей сети уже есть устройство на Ganner47, и по этому я сейчас не пойму "что против чего?" )))) и кажется сейчас они конфликтуют... когда я подключаюсь к SSD: JeeUI2-240AC4322DE9 плата перезагружается моргая синим диодом... похоже еще нужно изменить адрес сервера?
 
Изменено: