Автоматическое управление шторами по углу высоты солнца в Node-RED

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

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


Шаг 1: Установка и базовая настройка ноды sun-position

Для реализации этой схемы в Node-RED используется популярная палитра node-red-contrib-sun-position. Данный инструмент рассчитывает параметры солнца и луны на основе географических координат и текущего системного времени.

Чтобы установить библиотеку:

  1. Перейдите в главное меню Node-RED (три полоски в верхнем правом углу).
  2. Выберите пункт Manage palette, перейдите во вкладку Install.
  3. Введите в поиске node-red-contrib-sun-position и нажмите кнопку установки.

После успешной инсталляции на панели инструментов появится семейство новых нод. Перетащите на рабочий стол ноду blind-control или sun-position. При первой настройке вам потребуется создать конфигурацию position-config. В ней необходимо указать точные географические координаты вашего дома (широту и долготу), а также часовой пояс. Данные координаты можно легко скопировать из любых онлайн-карт.


Шаг 2: Понимание угловых параметров высоты и азимута

Математическая модель оперирует двумя важнейшими астрономическими параметрами:

  • Elevation (высота) — угол высоты солнца над линией горизонта в градусах. Угол означает, что солнце находится точно на горизонте (восход или закат). Положительные значения (например, 35°) соответствуют положению солнца на небе, а отрицательные указывают на то, что оно находится ниже линии горизонта (ночь).
  • Azimuth (азимут) — горизонтальный угол положения солнца, измеряемый от направления на север по часовой стрелке. Север равен , восток — 90°, юг — 180°, запад — 270°.

Например, если окна вашей спальни выходят точно на юг, то солнце начинает светить в них при азимуте около 120° (юго-восток) и перестает светить после 240° (юго-запад). Если при этом высота солнца (elevation) находится в пределах от 15° до 50°, прямые лучи будут проникать глубоко в комнату. Эти диапазоны углов задаются в настройках ноды для фильтрации срабатываний.


Шаг 3: Логическая фильтрация и учет погодных условий

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

Для этого в логическую цепочку перед отправкой команды на шторы нужно внедрить проверку уличной температуры и облачности. Данные можно получать из внешних метеорологических сервисов. Подробно процесс настройки получения информации о погоде описан в руководстве по интеграции Weather API в Node-RED. Полученные параметры записываются в контекст. Перед отправкой команды шторам специальная нода switch проверяет: если температура воздуха на улице ниже 22°C или облачность превышает 70%, сценарий закрытия блокируется, позволяя солнцу прогревать помещение через стекло.


Шаг 4: Управление устройствами и обратная связь

Когда все астрономические и метеорологические условия соблюдены, Node-RED должен передать команду на закрытие умных рулонных штор в экосистему Яндекса. Это реализуется через интеграционные ноды, имитирующие виртуальные устройства в приложении Дом с Алисой.

Вы можете настроить передачу команды двумя способами:

  1. Создать в Node-RED виртуальное устройство типа «Шторы» (с помощью ноды yandex-iot-device). При изменении логического состояния в Node-RED статус виртуального устройства меняется, что запускает локальный сценарий в приложении Яндекс.
  2. Напрямую отправлять API-запросы к облаку Яндекса для управления физическим электроприводом штор.

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

IMPORTANT

Точность вычисления углов напрямую зависит от системного времени сервера Node-RED. Убедитесь, что на вашем сервере (например, Raspberry Pi) настроена синхронизация времени по протоколу NTP, иначе расчеты могут сдвинуться на несколько десятков градусов, нарушив всю логику работы.

WARNING

Ресурс моторов рулонных штор ограничен. Чтобы избежать постоянного открывания и закрывания штор из-за переменной облачности, всегда используйте гистерезис. Задержка на изменение состояния должна составлять не менее 10 минут для закрытия и не менее 20 минут для открытия.

TIP

Для точной калибровки углов азимута встаньте у окна в солнечный день в тот момент, когда солнце начинает слепить глаза, и посмотрите текущий азимут в боковой панели ноды sun-position. Запишите это значение как стартовую границу срабатывания автоматики.

NOTE

Логику отслеживания высоты солнца можно использовать и в обратную сторону в зимний период: открывать шторы на максимум при высоком солнце для естественного бесплатного обогрева дома лучами, снижая нагрузку на систему отопления.

Инструкция по настройке

1

Установка ноды и настройка координат

Установите палитру node-red-contrib-sun-position и укажите географическую широту и долготу вашего дома.

2

Определение пороговых углов солнца

Настройте ноду position-config для вычисления угла высоты (elevation) и азимута (azimuth) в реальном времени.

3

Фильтрация условий освещенности

Добавьте логические ноды для проверки температуры на улице и текущей облачности перед отправкой команды.

4

Интеграция с Алисой и шторами

Настройте отправку команды на закрытие через виртуальные устройства Яндекс или API Алисы.

Совет эксперта: Управляйте домом с компьютера

Установите Яндекс Браузер, чтобы управлять умными розетками и светом прямо со стартовой страницы, не отвлекаясь от работы.