Легкая автоматизация на основе ESP8266

Расписание

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

Как правило, расписание находится внизу окна и содержит следующие поля: "Приоритет", "Начало", "Окончание", "Ограничения". Рассмотрим их подробно на примере задачи для какого-то устройства.

Приоритет

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

Например, мы хотим организовать подсветку светильником дома, исходя от освещенности на улице, но при этом точно знаем, что ночью его следует выключать, чтобы экономить электричество. В этом случае мы создадим два задания: первое - с высоким приоритетом будет всегда выключать свет в интервале с 00:00 до 07:00 (ночью) независимо от освещенности. И второе задание, с более низким приоритетом, которое будет работать круглосуточно, но будет иметь низкий приоритет. Это задание будет анализировать освещенность и утром или вечером будет автоматически включать свет, но как мы помним, благодаря низкому приоритету будет игнорироваться в определенный диапазон времени.

Начало и Окончание

Период действия или активность задачи, который определяется временем начала и временем окончания. Можно задавать как в рамках одного дня, например с 07:00 до 15:00. Так и с учетом перехода одного дня в другой, например с 21:30 до 02:15.

Ограничения

Нередко возникает ситуация, когда требуется настроить время выполнения задач более гибко, чем просто в определенное время, например в определенные дни. Либо требуется такая логика работы, что придётся составлять множество задач, например для включения проветривания помещения на 15 минут каждого часа. Чтобы выполнить это просто и красиво можно задействовать ограничения, которые задаются через символ пробела в следующем формате: 

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

[управляющий символ][значение],[управляющий символ][значение],[управляющий символ][значение], ... и т.д.

Управляющими символами могут быть:

Значения - это любые цифры, плюс возможность указать диапазон через дефис.

Рассмотрим несколько примеров настроек ограничений:

Рассмотрим теперь комплексные настройки на следующих примерах: