Automatic motorized roller blinds project.
Моторизированный привод для рулонных штор. Управление по Wi-Fi. Питание внешнее. Возможна интеграция в системы умного дома.
Описание проекта: https://mysku.club/blog/diy/62110.html
Файлы для печати: https://www.thingiverse.com/thing:2857899
Видео работы: https://www.youtube.com/watch?v=lvBh_m7pOAI
Domoticz
Hubitat Elevation (Автор yix)
Home Assistant (встроенная поддержка через MQTT Discovery с версии 0.09)
Homebridge (Автор Vitva)
Управление с пульта ИК / RF433 (Автор SamoS)
Карточка управления шторами для HA (Автор SamoS)
Android приложение для управления шторами (Автор SamoS)
Firmware - готовые прошивки
Source - исходный код
Source\data - файлы для SPIFFS. Иконка, css-стили, java scripts
Board - файлы схемы и платы для DipTrace
Board\Gerbers - gerber files для заказа плат на фабрике
3D_parts - OpenSCAD и stl для печати
05.04.2018 v0.01 beta
- Более-менее рабочая версия с настройками. Не всё доделано, многого не хватает.
07.04.2018 v0.02 beta
- Автосоздание файлов CSS и favicon в SPIFFS при их отсутствии/обновлении.
28.04.2018 v0.03 beta
- Исправлен баг с закрытием шторы после перезагрузки.
- Добавлена работа по расписанию.
22.02.2019 v0.05 beta
- Управление двигателями идёт в прерывании, увеличилась плавность работы двигателя и отзывчивость интерфейса.
- Номера пинов 4 и 5 исправлены, теперь типичное подключение ABCD. Настройки менять не надо.
- Концевик можно инвертировать (нормальнозамкнутый - нормальноразомкнутый). Актуально для датчика Холла вместо концевика.
- Добавлен http-запрос /set?pos=X (X = 0 - 100, в процентах).
- Состояние можно получить в виде XML по адресу /xml.
- Прошивка откомпилирована с поддержкой модулей с флеш памятью PUYA.
- Отображается размер SPIFFS, ссылка на форматирование появляется при ошибке файловой системы.
16.03.2019 v0.06
- Добавлен протокол MQTT. Описание настроек http://imlazy.ru/rolls/mqtt.html
10.04.2019 v0.07
- Добавлена встроенная в esp8266 подтяжка пина концевика. На платах NodeMCU и тому подобных, отпадает необходимость во внешнем резисторе, R8 по схеме.
- Добавлена настройка безопасного порога, количество шагов, при которых штора игнорирует концевик, пока не выползет из зоны его действия. Для герконов и датчиков Холла можно установить значение больше стандартных 100.
02.06.2020 v0.08
- Сделан плавный пуск двигателя. Это чуть повысило мощность мотора и максимальную скорость, но незначительно. Пока в черновой реализации и без какой-либо настройки.
- Прошивка проверена и скомпилирована с Arduino core for ESP8266 v2.7.1. Исправило отваливание wi-fi сети в некоторых случаях.
- Исправлен баг в JavaScript, из-за которого иногда лагал веб интерфейс, при загрузке страниц и сразу после.
- Во время движения по MQTT в формате JSON сообщается не только текущее положение, но и точка назначения (destination, в процентах).
- Синий светодиод теперь используется. Он кратко моргает при подаче питания. После каждой неудачной попытки подключиться к основной сети зажигается на 1 секунду. Если к сети подключиться с трёх попыток не вышло, светодиод горит непрерывно, значит создана собственная WiFi сеть. (Оранжевый светодиод программно не управляется, подключен напрямую к питанию. Его можно только отпаять/откусить/заклеить.) В нормальной работе функцию диода можно указать в настройках, а также менять по http/mqtt. Более подробно imlazy.ru/rolls/led.html.
- Отображается напряжение питания для новых плат. На старых, при желании, можно допаять два резистора. Цепочка Vin - 150K - esp_adc - 10K - GND.
- Исправлен баг с максимальным количеством шагов игнорирования концевика при опускании шторы. Теперь работают значения более 255. До 65000. Актуально для герконов и датчиков Холла. Спасибо acu73.
- Исправлен баг с невозможностью указать порт MQTT сервера более 9999. Спасибо George Tkachenko.
29.01.2021 v0.09
- Исправлен баг со сбивающимся временем.
- Пресеты для точного позиционирования шторы. Актуально для штор день/ночь. Положения задаются в настройках. Могут использоваться в расписании.
- Добавлены команды для MQTT. "=NNNNN" (без кавычек) - позиционирование шторы в шагах. "@N" - переход к пресету N.
- Добавлен http-запрос /set?steps=NNNNN (NNNNN = 0 - 65000, в шагах мотора).
- Добавлен http-запрос /set?preset=N (N = 1 - 5). Переход в заданное положение.
- Добавлено автоматическое перенаправление на страницу настроек при подключении к шторе в режиме точки доступа (первоначальная настройка).
- Добавлены MQTT-комманды open и close. Равнозначны on и off. Для удобства интеграции с HA.
- Добавлен MQTT Discovery для Home Assistant. Включается в настройках, автоматически добавляет штору в HA.
- Библиотека для работы с MQTT изменена с AdaFruit на PubSubClient (by Nicholas O'Leary).
- Концевик может быть установлен на полностью закрытое положение, вместо открытого. Например, для жалюзи.
- Проценты в MQTT командах и статусах можно поменять на обратные, т.е. 0% значит закрыто, 100% - открыто. Так по умолчанию считает Cover в Home Assistant.
30.03.2021 v0.10
- Исправлен баг с количеством шагов игнорирования концевика. Фактическое было в 8 раз меньше указанного в настройках.
- Повышена точность измерения напряжения, на платах с резисторами на ADC.
- Добавлена поддержка драйверов Step/Dir моторов (например, NEMA17). Можно подключать двигатели и драйвера от 3D принтеров. Распиновка пока фиксированная, En 4, Step 13, Dir 12.
- Минимальное время шага уменьшено до 50 мкс (было 100). Этого должно хватить, чтобы крутить обычный NEMA17 на практически максимальной скорости при 1/16 шага.
- В MQTT добавлен топик присутствия (alive/живой). В него отправляется "online" при подключении к MQTT и "offline" при отключении, в т.ч. аварийном, по "завещанию" (LWT). В Home Assistant используется как availability topic, для определения состояния привода.
- В настройках можно изменить количество шагов, которое привод прокручивает вверх в поисках концевика после предполагаемого нуля. Если поставить 0, запаса не будет. Если поставить большое число, будет дольше крутить вверх, пока не сработает концевик. Но в случае проблем с концевиком, может привести к перегреву мотора или поломке шторы. Менять не рекомендуется.
- Добавлена возможность подключения кнопки для управления. Подключается на Gnd и один из пинов GPIO 0(DTR)/2/3(RX), который выбирается в настройках. При движении нажатие кнопки останавливает штору, двойное нажатие - останавливает и перезапускает в противоположном направлении. Долгое нажатие (1 секунда) - отправляет в первый пресет или во второй, если штора уже в первом.
- Синий диод можно настроить на мигание при нажатии на кнопку.
- Легкий редизайн внешнего вида, в первую очередь мобильной версии. JS-код вынесен в отдельный файл в spiffs.
- Статичные файлы сжаты gzip'ом.
- Обновлена страница /update, добавлены подсказки по перепрошивке.
05.08.2021 v0.11
- Экспериментальная фича: режим мастер/ведомый по проводу. Подробнее imlazy.ru/rolls/master.html.
- Помимо кнопки, можно задействовать ещё один дополнительный вход. Например, для геркона, определяющего открытие окна. Статус передаётся по MQTT в выбранный топик.
- Новый топик MQTT, сообщает в формате JSON состояние (ip, rssi, uptime, voltage, aux_input). При включенном HA MQTT Discovery, автоматически добавляет эти сенсоры в Home Assistant.
- (v0.11.2) Исправлен баг с получением времени по NTP при старте.
09.11.2021 v0.11.3
- Исправлен баг с отображением hostname в сети. В XML статус добавлен hostname. Разрешена отдача XML сторонним страницам (CORS). Спасибо Samos.
27.01.2022 v0.12
- В MQTT Discovery добавлены фичи Home Assistant 2021.11: ссылка на страницу конфигурации (visit device), доп. статусы попадают в раздел "Diagnostic".
- Добавлены команды click, longclick для MQTT и /set?click, /set?longclick для HTTP. Делают то же самое, что и кнопка управления (открыть/закрыть/стоп; пресет1/2). Для работы этих команд, включать аппаратную кнопку не требуется.
- Можно изменить название шторы в настройках, для удобства. Отображается в заголовке окна и в поле name в XML.
- Настройка статического IP.
- При прошивке на чистый модуль поле SSID остаётся пустым и привод сразу стартует в режиме точки доступа, а не пытается приконнектиться к несуществующей сети lazyrolls.
- Исправлена (надеюсь) верстка страницы расписания.
- Проект модифицирован для компиляции в PlatformIO, но можно откомпилировать и в ArduinoIDE. Часть кода переписана для экономии памяти. Arduino core for ESP8266 обновлено до v3.0.2.
- Добавлен лог событий. Открывается в веб-интерфейсе по ссылке из блока информации. Лог на английском, но думаю там и так понятно. Отображаются основные события, причина перезагрузки, отвалы от сети и mqtt-сервера, срабатывание концевика в движении, синхронизация времени. Для отладки возможных проблем.
10.12.2022 v0.13
- Поддержка приемника 433МГц.
- Восход и закат в расписании.
- Поддержка двух физических кнопок с возможностью выбирать действие по нажатию и, в режиме мастера, кем управлять. Можно сделать раздельные кнопки Открыть и Закрыть, а можно разделить кнопки для управления только этой шторой и всей группой.
- На главную страницу добавлены кнопки пресетов. В режиме мастера добавлен выбор, кем управлять, всеми, этой шторой или ведомыми.
- В режиме мастера можно в расписании раздельно управлять ведущим и ведомыми.
- Можно задать пароль для режима точки доступа, создаваемой после включения привода при отсутствии Wi-Fi.
26.01.2023 v0.13.1
- Добавлена единица измерения для напряжения в Home Assistant.
20.04.2023 v0.14
- Добавлена поддержка моторов постоянного тока, в том числе с энкодером. Подробнее imlazy.ru/rolls/motor.html.
- Добавлен второй концевик, на противоположной стороне.
- Добавлены команды MQTT. По команде "report" сообщает по MQTT свой статус. Командой "endstop" можно эмулировать нажатие концевика, например, zigbee датчиком открытия двери.
- По MQTT отправляются статусы open / opening / close / closing / stopped для Home Assistant.
- Добавлен gratuitous ARP. Привод постоянно сообщает свой IP в сети. Включается автоматически, если не используется MQTT. Может предотвратить некоторые случаи недоступности привода в сети.
- Сенсор Uptime в Home Assistant заменен на сенсор Last Restart Time. В mqtt топик info отправляются и аптайм, как раньше, и время рестарта.
16.01.2024 v0.15
- Плавный старт шагового мотора стал более плавным.
- Arduino core for ESP8266 обновлено до v3.1.2.
- Откомпилированные прошивки теперь универсальны, подходят для любого размера флэш-памяти.
- Изменения в MQTT: Обновлена интеграция с Home Assistant для совместимости с последней версией. Для наименования устройства используется не сетевое имя (hostname), а название (name), если оно заполнено в настройках. Недопустимые символы заменяются на подчеркивание, hostname теперь может содержать точку, без ошибки в логах HA.
- Retained команды удаляются и игнорируются при подключении к MQTT.
- В xml статус добавлены вход aux (если настроен), поле 'master' (значение 'yes' для мастера, 'no' - все остальные) и список пресетов и их значений.
- В настройках можно выбрать две скорости мотора. Их можно использовать, к примеру, для ручного (быстро) и автоматического (тихо) управления или для разных скоростей вверх и вниз. Вторую скорость можно использовать при управлении по расписанию, http, mqtt, rf и кнопками.
- Все настройки можно скачать/загрузить в виде файла на странице обновления прошивки.
- Команды для сброса положения и поиска нуля заново: 'zero' по mqtt, /set?zero по http. Команда 'reboot' по mqtt для перезагрузки.
- Сторожевой пингер. Включается в настройках. Раз в минуту пингует заданный IP (например, wifi-роутер). После неудачи, пинги повторяются каждые 10 секунд. 4 пропущенных подряд пинга записываются в Log. После 7 пропущенных пингов выполняется указанное в настройках действие (логирование / переподключение / перезагрузка). Интервал пинга и количество пропущенных пингов можно изменить константами PINGER_INTERVAL_S / PINGER_REPEAT_INTERVAL_S / PINGER_WARN / PINGER_ACTION в прошивке, при необходимости.
- Режим мастер/ведомый по WiFi. Теперь в дополнение к ведомым по проводу можно добавить ведомых по IP. На них распространяются все возможности управления, как и у проводных. Поддерживается до 10 ведомых в 5 группах (те же, что у проводных. В одной группе могут быть как проводные, так и беспроводные ведомые). Подробнее imlazy.ru/rolls/master.html.
- В настройках добавлены кнопки включения WiFi у проводных ведомых, с отображением их IP после подключения к сети, для удобства настройки ведомых.
- В расписании можно установить самое раннее время срабатывания по солнцу, например "на рассвете, но не ранее 07:00".
- Положение шторы можно сохранять во flash-памяти, оно не теряется при перезагрузке. Включается в настройках. Не рекомендуется использовать без необходимости, ресурс памяти на запись ограничен, это может сократить срок службы. Если перезагрузка произойдет во время движения, положение не восстановится и потребуется поиск нуля.
17.01.2024 v0.15.2
- Исправлен баг, не появлялись кнопка Scan и пункт добавления IP в настройках wifi ведомых.
- Исправлен баг в wifi мастер/слейв режиме.
18.01.2024 v0.15.3
- Исправлен баг работы wifi мастер/слейв от аппаратных кнопок.
- При смене направления движения штора останавливает и плавно начинает двигаться в обратную сторону.
- Включена поддержка mDNS.
- ACE - e-mail