7809
правок
Fizikdaos (обсуждение | вклад) |
Fizikdaos (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
<translate> | <translate> | ||
{{DISPLAYTITLE: Как писать правила}} | {{DISPLAYTITLE: Как писать правила}} | ||
== Типы правил defineRule == | == Типы правил defineRule == | ||
=== whenChanged === | === whenChanged === | ||
Строка 180: | Строка 33: | ||
} | } | ||
}); | }); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 371: | Строка 223: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:67--> | <!--T:67--> | ||
== Виртуальное устройство defineVirtualDevice == | |||
Правила делятся на два типа: непосредственно правила (defineRule) и виртуальные устройства (defineVirtualDevice). | |||
Виртуальные устройства - это появляющиеся в веб-интерфейсе новые элементы управления - например, кнопка-выключатель, которая на самом деле выключает два устройства одновременно. Она не привязана напрямую ни к какому физическому устройству, а действия при её нажатии определяются написанным вами скриптом. | |||
При написании скрипта вы можете создать виртуальное устройство для включения/выключения тех или иных управляющих алгоритмов и установки их параметров. | |||
<!--T:20--> | |||
<syntaxhighlight lang="ecmascript"> | |||
defineVirtualDevice("wb-1", { | |||
title: "Отопление", | |||
cells: { | |||
"Температура": { | |||
type: "range", | |||
max: 24, | |||
value: 20, | |||
}, | |||
"Вкл.": { | |||
type: "switch", | |||
value: false, | |||
} | |||
} | |||
}); | |||
</syntaxhighlight> | |||
=== Типы устройств (type): === | |||
'''switch''' — переключатель. Может принимать значения true или false. По-умолчанию доступен для изменения пользователем. | |||
<!--T:21--> | |||
'''wo-switch''' — переключатель, аналог switch. Может принимать значения true или false. По-умолчанию не доступен для изменения пользователем. | |||
<!--T:22--> | |||
'''pushbutton''' — кнопка. Может принимать значения true. По-умолчанию доступна для нажатия. | |||
<!--T:23--> | |||
'''range''' — ползунок. Может принимать значения от 0 до max. По-умолчанию доступен для изменения пользователем. | |||
<!--T:24--> | |||
'''rgb''' — специальный тип для задания цвета. Кодируется 3 числами от 0 до 255, разделенными точкой с запятой. Например „255;0;0“ задает красный цвет. По-умолчанию доступен для изменения пользователем. | |||
<!--T:25--> | |||
'''alarm''' — индикатор. Может принимать значения true или false. | |||
<!--T:26--> | |||
'''text''' — текстовое поле. По-умолчанию не доступно для редактирования пользователем. | |||
<!--T:27--> | |||
'''value''' — значение с плавающей точкой. По-умолчанию не доступно для редактирования пользователем. | |||
<!--T:28--> | |||
Так же существуют еще 14 специальных типов. Все они аналогичны value, но имеют соответствующие подписи в интерфейсе. | |||
<!--T:29--> | |||
{| class="wikitable" | |||
! Type | |||
! meta/type | |||
! units | |||
!value format | |||
|- | |||
| Temperature | |||
| temperature | |||
| °C | |||
| float | |||
|- | |||
| Relative humidity | |||
| rel_humidity | |||
| %, RH | |||
| float, 0 - 100 | |||
|- | |||
| Atmospheric pressure | |||
| atmospheric_pressure | |||
| millibar (100 Pa) | |||
| float | |||
|- | |||
| Precipitation rate (rainfall rate) | |||
| rainfall | |||
| mm per hour | |||
| float | |||
|- | |||
| Wind speed | |||
| wind_speed | |||
| m/s | |||
| float | |||
|- | |||
| Power | |||
| power | |||
| watt | |||
| float | |||
|- | |||
| Power consumption | |||
| power_consumption | |||
| kWh | |||
| float | |||
|- | |||
| Voltage | |||
| voltage | |||
| volts | |||
| float | |||
|- | |||
| Water flow | |||
| water_flow | |||
| m^3 / hour | |||
| float | |||
|- | |||
| Water total consumption | |||
| water_consumption | |||
| m^3 | |||
| float | |||
|- | |||
| Resistance | |||
| resistance | |||
| resistance | |||
| float | |||
|- | |||
| Gas concentration | |||
| concentration | |||
| ppm | |||
| float (unsigned) | |||
|- | |||
| Heat power | |||
| heat_power | |||
| Gcal / hour | |||
| float | |||
|- | |||
| Heat energy | |||
| heat_energy | |||
| Gcal | |||
| float | |||
|} | |||
<!--T:29--> | |||
=== value: === | |||
Обязательное поле. При создании устройства в первый раз его значение будет установлено в значение по-умолчанию. В дальнейшем значения сохраняются в специальное хранилище в постоянной памяти и восстанавливаются при загрузке сценария. | |||
<!--T:31--> | |||
=== forceDefault: === | |||
Если необходимо каждый раз при перезагрузке скрипта восстанавливать строго определённое значение (т.е. не восстанавливать предыдущее сохранённое), нужно добавить в описание контрола поле '''forceDefault: true''' | |||
<!--T:33--> | |||
=== max: === | |||
Для параметра типа '''range''' может задавать его максимально допустимое значение. | |||
<!--T:35--> | |||
=== readonly: === | |||
Когда задано истинное значение — устройство становится не доступным для редактирования пользователем. Если надо предоставить пользователю возможность редактировать значение, следует добавить в описание '''readonly: false''' | |||
== Сообщения в лог == | == Сообщения в лог == |