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

WiFi лампа-будильник. Обсуждение приложения от KOTEYKA
Обсуждение приложения для лампы от KOTEYKA

ЗДЕСЬ ОБСУЖДАЕТСЯ ТОЛЬКО РАБОТА ПРИЛОЖЕНИЯ FireLamp

Альтернатива приложению LedLamp от Gunner47
Делалось под прошивку от Gunner47, но работает и с некоторыми другими

Правила темы:
Прежде, чем задать вопрос, пройдитесь по теме, возможно ответ на него уже есть.
Поищите ответ на свой вопрос в шапке темы.
Если отвечаете кому-то, не цитируйте всё сообщение. Цитируйте только строку или часть строки, на которую будет Ваш ответ.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой "Сообщение в шапку"


ЕСЛИ У КОГО-ТО ЭЛЕМЕНТЫ ПРИЛОЖЕНИЯ НЕ ВМЕЩАЮТСЯ В ЭКРАН, ПРОСЬБА ОТПРАВЛЯТЬ СКРИН ЭТОГО ЭКРАНА
С УКАЗАНИЕМ РАЗРЕШЕНИЯ ВАШЕГО ТЕЛЕФОНА


ПО ВОПРОСАМ РАБОТЫ ПРОШИВОК ИДЕМ В ЭТУ ТЕМУ

ПОСЛЕДНЯЯ ВЕРСИЯ 3.2.4 от 19.09.2021 (последние изменения ниже, последние в списке)
Изменения не всегда пополняются!!!


1. Текст для бегущей строки сохраняется в памяти телефона.
2. Сетка для рисования оптимизирована под разные разрешения.
3. Реализована возможность сохранения различных конфигураций настроек (до пяти) в файлы
4. Добавлена кнопка "СБРОСИТЬ WIFI" в настройках соединения. Для тех, кто хочет перенести лампу в другую сеть, но не имеет физической кнопки или она отключена в константах.
5. Реализована функция авто обновления приложения. При запуске проверяется наличие новой версии. Если есть обновление, то предлагает обновить.
6. Исправлена выгрузка настроек эффектов в лампу и выводится информация об изменениях при авто проверке обновлений.
7. Проверка обновлений теперь только раз в сутки при первом запуске.
8. Добавлены виброотклики при переключении эффектов и при поиске лампы (если лампа найдена)
9. Меню приложения сделано боковым.
10. Эффект "Смена цвета" - сделана более медленная смена цветов
11. Исправлен вылет приложения если количество эффектов в лампе больше, чем в приложении
12. Настройки приложения и Настройки эффектов теперь в разных меню
13. Добавлен переключатель "Использовать вибро"
14. Таймер увеличен до 3-х часов
15. При выходе из режима рисования любым способом (кроме сворачивания) рисование отключается
16. Добавлена возможность изменения толщины, цвета и размера регуляторов (пока только круглых)
17. Меняются цвета прямых регуляторов
18. Добавлен интерфейс НЕОН (свечение элементов)
19. Выводит имя лампы при поиске
20. Добавлен украинский язык

Screenshot_2020-04-03-11-56-48-594_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-56-54-959_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-57-01-294_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-57-37-620_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-57-47-615_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-57-57-603_com.koteyka.superfirelamp.jpg
Screenshot_2020-04-03-11-58-24-170_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-58-41-901_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-59-01-773_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-59-35-546_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-59-48-707_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-59-56-989_com.koteyka.superfirelamp.jpg
НОВЫЙ (МНОГОЯЗЫЧНЫЙ) САЙТ С ПРИЛОЖЕНИЕМ И ПРОШИВКОЙ
На новом сайте в разделе ЗАГРУЗКИ все ссылки.
Старый сайт пока функционирует, но все обновления будут уже на новом

ГЕНЕРАТОР ТЕКСТОВОГО ФАЙЛА НАСТРОЕК ЭФФЕКТОВ для просмотра примера введите [email protected] и нажмите загрузить

Приложение в Google Play
 
Изменено:

Комментарии

Koteyka 🐱

★★★★★★✩
Команда форума
27 Окт 2019
935
556
54
Днепр, Украина
firelamp.pp.ua
Обсуждение приложения для лампы от KOTEYKA

ЗДЕСЬ ОБСУЖДАЕТСЯ ТОЛЬКО РАБОТА ПРИЛОЖЕНИЯ FireLamp

Альтернатива приложению LedLamp от Gunner47
Делалось под прошивку от Gunner47, но работает и с некоторыми другими

Правила темы:
Прежде, чем задать вопрос, пройдитесь по теме, возможно ответ на него уже есть.
Поищите ответ на свой вопрос в шапке темы.
Если отвечаете кому-то, не цитируйте всё сообщение. Цитируйте только строку или часть строки, на которую будет Ваш ответ.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой "Сообщение в шапку"


ЕСЛИ У КОГО-ТО ЭЛЕМЕНТЫ ПРИЛОЖЕНИЯ НЕ ВМЕЩАЮТСЯ В ЭКРАН, ПРОСЬБА ОТПРАВЛЯТЬ СКРИН ЭТОГО ЭКРАНА
С УКАЗАНИЕМ РАЗРЕШЕНИЯ ВАШЕГО ТЕЛЕФОНА


ПО ВОПРОСАМ РАБОТЫ ПРОШИВОК ИДЕМ В ЭТУ ТЕМУ

ПОСЛЕДНЯЯ ВЕРСИЯ 3.2.4 от 19.09.2021 (последние изменения ниже, последние в списке)
Изменения не всегда пополняются!!!


1. Текст для бегущей строки сохраняется в памяти телефона.
2. Сетка для рисования оптимизирована под разные разрешения.
3. Реализована возможность сохранения различных конфигураций настроек (до пяти) в файлы
4. Добавлена кнопка "СБРОСИТЬ WIFI" в настройках соединения. Для тех, кто хочет перенести лампу в другую сеть, но не имеет физической кнопки или она отключена в константах.
5. Реализована функция авто обновления приложения. При запуске проверяется наличие новой версии. Если есть обновление, то предлагает обновить.
6. Исправлена выгрузка настроек эффектов в лампу и выводится информация об изменениях при авто проверке обновлений.
7. Проверка обновлений теперь только раз в сутки при первом запуске.
8. Добавлены виброотклики при переключении эффектов и при поиске лампы (если лампа найдена)
9. Меню приложения сделано боковым.
10. Эффект "Смена цвета" - сделана более медленная смена цветов
11. Исправлен вылет приложения если количество эффектов в лампе больше, чем в приложении
12. Настройки приложения и Настройки эффектов теперь в разных меню
13. Добавлен переключатель "Использовать вибро"
14. Таймер увеличен до 3-х часов
15. При выходе из режима рисования любым способом (кроме сворачивания) рисование отключается
16. Добавлена возможность изменения толщины, цвета и размера регуляторов (пока только круглых)
17. Меняются цвета прямых регуляторов
18. Добавлен интерфейс НЕОН (свечение элементов)
19. Выводит имя лампы при поиске
20. Добавлен украинский язык

Screenshot_2020-04-03-11-56-48-594_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-56-54-959_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-57-01-294_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-57-37-620_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-57-47-615_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-57-57-603_com.koteyka.superfirelamp.jpg
Screenshot_2020-04-03-11-58-24-170_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-58-41-901_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-59-01-773_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-59-35-546_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-59-48-707_com.koteyka.superfirelamp.jpg Screenshot_2020-04-03-11-59-56-989_com.koteyka.superfirelamp.jpg
НОВЫЙ (МНОГОЯЗЫЧНЫЙ) САЙТ С ПРИЛОЖЕНИЕМ И ПРОШИВКОЙ
На новом сайте в разделе ЗАГРУЗКИ все ссылки.
Старый сайт пока функционирует, но все обновления будут уже на новом

ГЕНЕРАТОР ТЕКСТОВОГО ФАЙЛА НАСТРОЕК ЭФФЕКТОВ для просмотра примера введите [email protected] и нажмите загрузить

Приложение в Google Play
 
Изменено:

alvikskor

★★★✩✩✩✩
18 Янв 2021
388
130
Днепр. Украина
Тут правильнее было бы сделать в прошивке в ответе на GET чтобы лампа отдавала статус режима цикл
Не проблема. Сделаю. Куда его поставить? Последним (перед временем) или после времени. Текущая версия приложения будет нормально работать?
 

Сотнег

★★★★★★★
15 Янв 2020
4,168
1,455
@alvikskor,
есть шанс, что оба приложения (iOS ещё) продолжат работать, если этот статус добавить в самый-присамый конец.
 

SlingMaster

★★★✩✩✩✩
22 Апр 2021
220
144
Kharkiv, Ukraine
alvikskor
возьми код из HTTP_init у меня уже формируется json который нужно отправлять на get запрос
там есть все что нужно, выбросишь только пароль я его использую для OТА прошивки
функция getCurState()
{"id":0,"json":{"name":"JSC WiFi Lamp","ip":"192.168.1.111","ver":"2.0 95","power":1,"custom_eff":0,"cycle":0,"list_idx":92,"max_eff":95,"bright":55,"speed":150,"scale":1}}
 

alvikskor

★★★✩✩✩✩
18 Янв 2021
388
130
Днепр. Украина
@SlingMaster,
Это нужно для приложения @Koteyka 🐱 . Ему не json нужен. Там свой формат.
@Сотнег,
То есть после времени. Я то же так думал. Но есть автор приложения. Ему лучше знать. А мне всё равно , куда этот статус лепить.
 
Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,168
1,455
@alvikskor, а, вспомнил!
Там ведь проблема, что время не обязательно передаётся.
Поэтому оба приложения, скорее всего, не смогут работать.
 

SlingMaster

★★★✩✩✩✩
22 Апр 2021
220
144
Kharkiv, Ukraine
alvikskor
не знаю почему котейка не хочет работать с json, выдумал чтото свое
такая же фигня со списком эффектов мне пришлось все дублировать не пойму почему он не использует общепризнанные стандарты
я кстати переделал формат json который очень похож на то что использует котейка
JSON:
{"n":"Nexus","v":[1,255,1,100,0]},
это повлияло на скорость и надежность загрузки списка
 

Сотнег

★★★★★★★
15 Янв 2020
4,168
1,455
@SlingMaster,
потому что стандарт (протокол) был задан автором первой версии прошивки с приложением.

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

alvikskor

★★★✩✩✩✩
18 Янв 2021
388
130
Днепр. Украина
Как и обещал, доделал код прошивки так, чтобы он передавал и принимал нужные команды и был совместим с предыдущими версиями прошивки.
Если в команде GET-время, символ тире заменить любым другим символом , например пробелом, то это не повлияет на работу старых и текущей весий прошивок, и лампа будет отдавать следующие данные (см. функцию void NEWsendCurrent (char *outputBuffer):

  • NEWCURR идентификатор вместо CURR,
  • currentMode, номер текущего эффекта,
  • modes[currentMode].Brightness, яркость,
  • modes[currentMode].Speed, скорость,
  • modes[currentMode].Scale, масштаб,
  • ONflag, лампа вкл/откл ,
  • espMode, Точка доступа / роутер,
  • 1 или 0 NTP Да/НЕТ,
  • TimerManager::TimerRunning, состояние таймера,
  • buttonEnabled, вкл/откл кнопки, !!! до этого момента, как и было!!!,
  • FavoritesManager::FavoritesRunning, цикл вкл/откл,
  • FavoritesManager::rndCycle, эффекты в цикле по порядку / в случайном порядке,
  • random_on, использовать случайные настройки эффектов в цикле вкл/откл,
  • время как и было,
  • Volum громкость, если используется. Как было.
Добавлено три переменных. Так же в коде есть команды для их изменения . Для FavoritesManager::FavoritesRunning осталось, как было. Для FavoritesManager::rndCycle команда RND_C1 / RND_C0 . Для random_on команда RND_ON / RND_OFF . Так же есть команда RND-Z . Она сбрасывает настройки эффектов в исходное состояние (по умолчанию).
Предлагаю:
для передачи команд RND_ON / RND_OFF использовать длительное удержание (более 0,5 секунд) кнопки случайных настроек текущего эффекта. Для индикации текущего состояния менять цвет кнопки.
Для передачи команды RND-Z использовать длительное удержание (более 0,5 секунд) кнопки, отменяющей случайные настройки текущего эффекта. В качестве индикации принятия команды моргнёт лампа.
Для передачи команды RND_C1 / RND_C0 в меню "Режим цикл" добавить тумблер.
Что думаете по этому поводу?
Да . И при запуске приложения, заблокировать тумблер "Цикл" в выключенном положении до получения ответа от лампы на запрос FAV_GET.
Прикрепил изменённый файл с кодом (я пока не включал это в релиз). Где скачать всю прошивку вы знаете.
Эта информация больше для разработчиков прошивок. Если все согласны, включаем в релиз, чтобы разработчики приложений могли этим пользоваться и включать эти функции в свои разработки.
 

Вложения

Изменено:
  • Лойс +1
Реакции: andy040670

alvikskor

★★★✩✩✩✩
18 Янв 2021
388
130
Днепр. Украина
@Сотнег,
В http я могу доделать команду, чтобы возвращать вам файл со списком эффектов. Какое это имеет отношение к данному приложению? Я думаю это можно обсудить в теме прошивки.
 

Сотнег

★★★★★★★
15 Янв 2020
4,168
1,455
@alvikskor, приложение по UDP-протоколу список эффектов уже не вывозит.
Пора переходить на HTTP.

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

Сотнег

★★★★★★★
15 Янв 2020
4,168
1,455
@Koteyka 🐱,
ну у нас же три строки LIST1 LIST2 LIST3 по килобайту примерно.
А список эффектов у коллег уже такой длинный, что с трудом туда влезает. Под 100 штук.

Я и предлагаю давно, чтобы приложение брало список эффектов из файла по ссылке
Он ведь всё равно там лежит уже. А формат файла можно сделать любой под вас.
 
Изменено:

SlingMaster

★★★✩✩✩✩
22 Апр 2021
220
144
Kharkiv, Ukraine
вот компактный формат json
JSON:
{"n":"Цветок Лотоса","v":[50,240,1,100,1]},
{"n":"Новогодняя Елка","v":[1,160,1,100,0]},
{"n":"Побочный Эффект","v":[1,200,1,100,0]},
{"n":"Чacы","v":[1,245,1,100,1]},
{"n":"Бeгyщaя cтpoкa","v":[1,252,1,100,1]}
практически тоже самое что в коде
 

alvikskor

★★★✩✩✩✩
18 Янв 2021
388
130
Днепр. Украина
Только не http://192.168.1.4/effect.json , а http://IP_LAMP/effect.json тогда. Лампа не всегда я влчется точкой доступа.

PS: @Сотнег . Тогда в вашу прошивку придётся веб клиента вставлять. Ну, или приложению по какому-то признаку разруливать, откуда список эффектов брать.
 
Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,168
1,455
@alvikskor,
по наличию файла вполне бы хватило отличать старую версию прошивки от новой.
 

alvikskor

★★★✩✩✩✩
18 Янв 2021
388
130
Днепр. Украина
@Сотнег, не всё так просто. http запрос от приложения при отсутствии клиента (ваша прошивка ) будет ждать ответа прилично времени, определяемое таймаутом соединения. В это время само приложение будет тупить и ни на что не реагировать.
Как по мне, нужно сделать четвёртую строку списка эффектов и проверку доставки строки. Это значительно проще реализовать и в коде приложения, и в коде прошивки ( в последней просто добавить строку). Определение три/четыре строки тоже элементарно делается. Если в конце третьей строки нет эффекта "бегущая строка" , значит нужно получить ещё одну строку списка эффектов. Минимум переделок, и ни кто ни кого не ждёт и не тупит.
Я это прочувствовал, когда пытался реализовать синхронное управление несколькими лампами через http. В результате сделал через UDP.
 

alvikskor

★★★✩✩✩✩
18 Янв 2021
388
130
Днепр. Украина
@kostyamat,
UDP уже реализован и в приложении и в прошивке. И при элементарном контроле запрошенного пакета, ничем не хуже вебсокета, который ещё нужно будет реализовывать. Да и ресурсов UDP жрёт меньше.
 

viktor6

✩✩✩✩✩✩✩
20 Ноя 2021
18
1
@Сотнег,
Что-то не нашёл где он настраивается, может не внимательно смотрел
Мне он нужен для Home assistant
 

viktor6

✩✩✩✩✩✩✩
20 Ноя 2021
18
1
@Сотнег,
Да пользуюсь этой интеграцией, но она не все пробрасывает
Например вот это нет приходится делать автоматизацию
Screenshot_2022-01-03-09-01-48-936_com.android.chrome.jpg