Skip to content

Commit

Permalink
Работа с разделом настройки
Browse files Browse the repository at this point in the history
  • Loading branch information
sergejey committed Dec 30, 2023
1 parent bc5f8b5 commit f5ad15b
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 2 deletions.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
42 changes: 41 additions & 1 deletion content/ru/docs/Configuration/config-modes.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,55 @@ weight: 42

Ниже представлен список "встроенных" режимов и краткий сценарий их использования.

### NobodyHomeMode (никого нет дома)

Режим активируется в случае долгого отсутствия активности в доме. Конкретный период "неактивности" задаётся в минутах в разделе
**Поведение** ([Общих настройках]({{<ref "/docs/Configuration/config-general#поведение">}})). Если в качестве значение
указан **0**, то данный режим не будет активироваться автоматически.

Под активностью понимается срабатывание датчиков движения, а так же изменение статуса любых управляемых устройств, если
в их настройках включена опция *"Изменение означает активность в помещении"*.

По-умолчанию, активация/де-активация данного режима приводит к соответствующему изменению состояния следующего режима (экономия),
однако, в случае необходимости эту связь можно отключить.

### EconomMode (экономия)

### NobodyHomeMode (никого нет дома)
При активации данного режима будут выключены те устройства, в настройках которых выбрана опция *"Выключать в режиме экономии"*;
при де-активации включены устройства с опцией *"Включать при выходе из режима экономии"* (см. изображение ниже).

Настройки устройства, определяющих его поведение в зависимости от текущего режима:

![](../config-modes-devices.png)

### DarknessMode (тёмное время суток)

Данный режим определяет состояние системы на предмет функционирование в светлое либо тёмное время суток.
Режим автоматически активируется при наступлении времени заката (свойство ThisComputer.SunSetTime) и
де-активируется при наступлении времени восхода (свойство ThisComputer.SunRiseTime).

При активации данного режима будут включены те устройства, в настройках которых выбрана опция *"Включать с закатом"*;
при де-активации выключены устройства с опцией *"Выключать с рассветом"* (см. изображение выше).

Если для устройств так же выбрана опция *"Выключать в режиме экономии"*, то *включение с закатом* будет срабатывать только
в том случае, если система **не** находится в режиме "никого нет дома".

### NightMode (ночное время)

Режим с "ручной" активацией -- предполагается, что пользователь активирует данный режим непосредственно перед сном.
При активации данного режима будут выключены те устройства, в настройках которых выбрана опция *"Выключать при входе в ночной режим"*
(см. изображение выше).
Де-активируется режим автоматически (по-умолчанию в 08:00 утра) без каких-либо дополнительных действий.

### GuestsMode (у нас гости)

Режим, означающий, что дома находятся гости. Данный режим может быть использован для изменения поведения дома в том случае,
если от наличия гостей зависит исполнение отдельных сценариев или доступность элементов интерфейса.

Реализация методов активации/де-активации режима оставлена на усмотрение пользователя.

### SecurityArmedMode (на охране)

Режим, означающий, что дом находится в режиме Охрана.

Реализация методов активации/де-активации режима оставлена на усмотрение пользователя.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
61 changes: 60 additions & 1 deletion content/ru/docs/Configuration/config-timers.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,71 @@ weight: 41

### Расписание работы Простых Устройств (ПУ)

Функционал, который позволяет установить режим работы отдельных устройств по заданному расписанию.
Подробнее в разделе [Простые Устройства]({{<ref "/docs/Configuration/config-simple-devices#расписание">}}).

![](../config-devices-schedule.png)

### Запуск сценариев по расписанию

В настройках сценария есть возможность указать время и дни недели, когда заданный сценарий должен быть
запущен автоматически.
Подробнее в разделе [Сценарии]({{<ref "/docs/Configuration/config-scripts#запуск-по-времени">}}).

![](../config-scripts-timer.png)

### Запуск сценариев с привязкой ко свойству времени

В случае, если сценарий привязан к свойству текущего времени, он будет исполнен автоматически при обновлении данного
свойства, т.е. выполняться каждую минуту.
Подробнее в разделе [Сценарии]({{<ref "/docs/Configuration/config-scripts#запуск-при-изменении-свойства">}}).

![](../config-scripts-autolink2.png)

### Использование объектов класса Timer

В разделе Объекты имеется специальный класс Timer, для каждого из объектов которого автоматически исполняются методы onNewMinute (каждую минуту)
и onNewHour (каждый час).

![](../config-timers-clockchime.png)

Внутри соответствующего метода можно добавить собственный код, который будет исполнен наряду с другим кодом метода.

Например, при вставке приведённого ниже кода, в 8 утра по будням будет сказана фраза "Доброе утро!" и запущен
сценарий myScript:

```php
if (isWeekDay() && timeIs('08:00')) {
say('Доброе утро!');
runScript('myScript');
}
```

Кроме добавления кода в методы уже имеющегося объекта ClockChime, можно создавать собственные дополнительные объекты класса
Timer -- методы onNewMinute/onNewHour этих объектов будут также выполняться автоматически.

### Установка таймеров в коде

### Ограничение доступа к элементам по времени
Внутренние таймеры предназначены для запланированного запуска каких-либо действий,
не прерывая исполнение текущего кода. Для создания отложенного запуска команды применяется функция:
```php
setTimeout('имя_таймера', 'действия', задержка_сек);
// пример (создать timer1, который запустит сценарий myScript через 5 минут):
setTimeout('timer1', 'runScript("myScript");', 5*60);
```

При повторном создании таймера с именем уже созданного ранее, исполнение первого созданного таймера будет отменено.
Кроме того, отменить действие таймера можно с помощью функции:
```php
clearTimeout('имя_таймера');
// пример (отмена таймера timer1):
clearTimeout('timer1');
```

### Ограничение доступа к элементам по времени

Время так же может использовать как элемент ограничения для доступа к различным частям интерфейса системы.
Подробнее в разделе [Контроль доступа]({{<ref "/docs/Configuration/config-access">}}).

![](../config-timers-access.png)

0 comments on commit f5ad15b

Please sign in to comment.