Advertisement
Zavhoz2015

Untitled

Dec 3rd, 2022
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.11 KB | None | 0 0
  1. Все состояния, созданные в пространстве имен Object, будут управляться как псевдонимы.alias.0
  2.  
  3. Значение состояния псевдонима будет считываться из связанного состояния (целевого объекта), но значения объектов (например, common, native) будут считываться из псевдоним заявляет о себе.
  4.  
  5. Фактически объект anobject будет отражать значение состояния целевого объекта. Если это разрешено, оба состояния могут быть изменены и автоматически синхронизируются основной системой ioBroker. Также оба состояния могут использоваться для подписки в скриптах и должны вести себя точно так же.alias
  6.  
  7. Вот пример такого объекта:
  8.  
  9. {
  10. "_id": "alias.0.Light.Device_1.WORKING",
  11. "type": "state",
  12. "common": {
  13. "alias": {
  14. "id": "admin.0.connected"
  15. },
  16. "name": "WORKING",
  17. "role": "indicator.working",
  18. "type": "boolean"
  19. },
  20. "native": {}
  21. }
  22. nativeвсегда пуст, потому что ни одно устройство не находится за самим псевдонимом, и все настройки будут сохранены.common
  23.  
  24. Но в нем хранится идентификатор, где значение состояния должно быть прочитано или записано.common.alias.id
  25.  
  26. Псевдоним делает автоматическое преобразование значения, если определены минимальные/максимальные настройки для обоих (псевдонимов и целевых) объектов.
  27.  
  28. Например, если псевдоним hasand target hasso при чтении, значение 10 из целевого состояния будет преобразованный в 3.9215686274509802 и записанный в псевдоним 10, будет преобразован в 25.5.min=0,max=100min=0,max=255
  29.  
  30. Типы также будут преобразованы автоматически. От строки к числу, от числа к логическому значению и так далее. Зависит от типов псевдоним и цель.
  31.  
  32. Кроме того, функции записи и чтения могут быть определены в:common.alias
  33.  
  34. {
  35. "_id": "alias.0.Temperature.SET",
  36. "type": "state",
  37. "common": {
  38. "alias": {
  39. "id": "knx.0.6786878.value",
  40. "write": "(val * 9/5) + 32",
  41. "read": "(val − 32) * 5/9"
  42. },
  43. "unit": "°C",
  44. "name": "Temperature",
  45. "role": "value.temperature",
  46. "type": "number"
  47. },
  48. "native": {}
  49. }
  50. и
  51.  
  52. {
  53. "_id": "knx.0.6786878.value",
  54. "type": "state",
  55. "common": {
  56. "unit": "°F",
  57. "name": "Temperature",
  58. "role": "value.temperature",
  59. "type": "number"
  60. },
  61. "native": {}
  62. }
  63. Если функции преобразования определены, автоматическое преобразование будет отключено. Для функции записи только для чтения может быть опущено, соответственно для функций записи только - функция read.
  64.  
  65. Например.
  66.  
  67. {
  68. "_id": "alias.0.button",
  69. "type": "state",
  70. "common": {
  71. "alias": {
  72. "id": "knx.0.6786879.value",
  73. "write": "val ? 1 : 0"
  74. },
  75. "name": "Button",
  76. "role": "button",
  77. "type": "boolean"
  78. },
  79. "native": {}
  80. }
  81. и
  82.  
  83. {
  84. "_id": "knx.0.6786879.value",
  85. "type": "state",
  86. "common": {
  87. "name": "KNX Switch",
  88. "role": "value",
  89. "type": "number",
  90. "min": 0,
  91. "max": 1
  92. },
  93. "native": {}
  94. }
  95. Внутренняя функция преобразования имеет следующие параметры и выглядит следующим образом:
  96.  
  97. function read(val, type, min, max, sType, sMin, sMax) {
  98. // val - source value
  99. // type - the type of alias
  100. // min - minimum limit (if exists) of alias
  101. // max - maximum limit (if exists) of alias
  102. // sType - the type of "s"ource value
  103. // sMin - minimum limit (if exists) of source value
  104. // sMax - maximum limit (if exists) of source value
  105. return val > max ? max : (val < min ? min : val);
  106. }
  107. Вы как пользователь должны написать только строку с return:.common.alias.read="val > max ? max : (val < min ? min : val)"
  108.  
  109. Функция записи выглядит следующим образом:
  110.  
  111. function write(val, type, min, max, sType, sMin, sMax) {
  112. // val - source value
  113. // type - the type of alias
  114. // min - minimum limit (if exists) of alias
  115. // max - maximum limit (if exists) of alias
  116. // tType - the type of target value
  117. // tMin - minimum limit (if exists) of target value
  118. // tMax - maximum limit (if exists) of target value
  119. return val > tMax ? tMax : (val < tMin ? tMin : val);
  120. }
  121. Вы как пользователь должны написать только строку с return:.common.alias.write="val > tMax ? tMax : (val < tMin ? tMin : val)"
  122.  
  123. Max,min итипбудут предоставлены только изjs-контроллера >= 3.2.x
  124.  
  125. Управление подписками будет осуществляться автоматически. Если псевдоним будет подписан, то и целевой идентификатор также будет подписан.
  126.  
  127. Идентификатор оконечного устройства может быть изменен динамически (через администратора), и подписка будет обновлена для нового целевого идентификатора.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement