Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Все состояния, созданные в пространстве имен Object, будут управляться как псевдонимы.alias.0
- Значение состояния псевдонима будет считываться из связанного состояния (целевого объекта), но значения объектов (например, common, native) будут считываться из псевдоним заявляет о себе.
- Фактически объект anobject будет отражать значение состояния целевого объекта. Если это разрешено, оба состояния могут быть изменены и автоматически синхронизируются основной системой ioBroker. Также оба состояния могут использоваться для подписки в скриптах и должны вести себя точно так же.alias
- Вот пример такого объекта:
- {
- "_id": "alias.0.Light.Device_1.WORKING",
- "type": "state",
- "common": {
- "alias": {
- "id": "admin.0.connected"
- },
- "name": "WORKING",
- "role": "indicator.working",
- "type": "boolean"
- },
- "native": {}
- }
- nativeвсегда пуст, потому что ни одно устройство не находится за самим псевдонимом, и все настройки будут сохранены.common
- Но в нем хранится идентификатор, где значение состояния должно быть прочитано или записано.common.alias.id
- Псевдоним делает автоматическое преобразование значения, если определены минимальные/максимальные настройки для обоих (псевдонимов и целевых) объектов.
- Например, если псевдоним hasand target hasso при чтении, значение 10 из целевого состояния будет преобразованный в 3.9215686274509802 и записанный в псевдоним 10, будет преобразован в 25.5.min=0,max=100min=0,max=255
- Типы также будут преобразованы автоматически. От строки к числу, от числа к логическому значению и так далее. Зависит от типов псевдоним и цель.
- Кроме того, функции записи и чтения могут быть определены в:common.alias
- {
- "_id": "alias.0.Temperature.SET",
- "type": "state",
- "common": {
- "alias": {
- "id": "knx.0.6786878.value",
- "write": "(val * 9/5) + 32",
- "read": "(val − 32) * 5/9"
- },
- "unit": "°C",
- "name": "Temperature",
- "role": "value.temperature",
- "type": "number"
- },
- "native": {}
- }
- и
- {
- "_id": "knx.0.6786878.value",
- "type": "state",
- "common": {
- "unit": "°F",
- "name": "Temperature",
- "role": "value.temperature",
- "type": "number"
- },
- "native": {}
- }
- Если функции преобразования определены, автоматическое преобразование будет отключено. Для функции записи только для чтения может быть опущено, соответственно для функций записи только - функция read.
- Например.
- {
- "_id": "alias.0.button",
- "type": "state",
- "common": {
- "alias": {
- "id": "knx.0.6786879.value",
- "write": "val ? 1 : 0"
- },
- "name": "Button",
- "role": "button",
- "type": "boolean"
- },
- "native": {}
- }
- и
- {
- "_id": "knx.0.6786879.value",
- "type": "state",
- "common": {
- "name": "KNX Switch",
- "role": "value",
- "type": "number",
- "min": 0,
- "max": 1
- },
- "native": {}
- }
- Внутренняя функция преобразования имеет следующие параметры и выглядит следующим образом:
- function read(val, type, min, max, sType, sMin, sMax) {
- // val - source value
- // type - the type of alias
- // min - minimum limit (if exists) of alias
- // max - maximum limit (if exists) of alias
- // sType - the type of "s"ource value
- // sMin - minimum limit (if exists) of source value
- // sMax - maximum limit (if exists) of source value
- return val > max ? max : (val < min ? min : val);
- }
- Вы как пользователь должны написать только строку с return:.common.alias.read="val > max ? max : (val < min ? min : val)"
- Функция записи выглядит следующим образом:
- function write(val, type, min, max, sType, sMin, sMax) {
- // val - source value
- // type - the type of alias
- // min - minimum limit (if exists) of alias
- // max - maximum limit (if exists) of alias
- // tType - the type of target value
- // tMin - minimum limit (if exists) of target value
- // tMax - maximum limit (if exists) of target value
- return val > tMax ? tMax : (val < tMin ? tMin : val);
- }
- Вы как пользователь должны написать только строку с return:.common.alias.write="val > tMax ? tMax : (val < tMin ? tMin : val)"
- Max,min итипбудут предоставлены только изjs-контроллера >= 3.2.x
- Управление подписками будет осуществляться автоматически. Если псевдоним будет подписан, то и целевой идентификатор также будет подписан.
- Идентификатор оконечного устройства может быть изменен динамически (через администратора), и подписка будет обновлена для нового целевого идентификатора.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement