При разработке нужно предусматривать все возможные негативные сценарии, даже маловероятные.
1.Например возможный негативный сценарий - просадка или отключение основного питающего напряжения 220V. А в это время происходило движение штор. При повторном появлении питания, сможет ли контроллер понять, в каком месте штора, и сколько шагов нужно ещё сделать? Были бы конечники - всё было бы просто, в зависимости от освещённости сформировалась бы команда дозакрыть или дооткрыть до нужного конечника.
2.Другой вариант. Предположим, что из за некой случайной помехи, схема связанная с энкодером получила лишний импульс (или пропустила). Начнёт накапливаться ошибка. В одну сторону штора не доедет. В другую привод может раньше времени упрётся в физическое ограничение движения.
Можно попробовать поставить хотя бы один конечник внизу. И пусть при его срабатывании счёт импульсов всегда сбрасывается на стартовую позицию. Но всё равно не айс. Если по сигналу освещённости штора поедет вверх - там нет конечника. Как ему посчитать сколько осталось импульсов до верха?
Правда с одним конечником внизу можно попробовать заставить логику, при каждом первичном появлении питания двигаться только вниз до срабатывания искомого единственного конечника (и сброса всех состояний в стартовую позицию). А потом уже в зависимости от освещённости вновь ехать вверх, или остаться на месте. Думаю что получится излишнее махание крыльями.
На промышленных роллетных воротах внутри механизма есть винтовая резьба. По ней, при вращении роллетного механизма, движется гайка. А её уже ловят подстраиваемые конечники. Механизм такой самому сделать достаточно напряжно.
Я бы всё таки закрепил рядом с окном маленький плоский кабельканал, благо их с любыми габаритов продают. Он достаточно эстетичен. Зато получилась бы надёжная конструкция с двумя конечниками.