Modbus/Database/Items: различия между версиями

Материал из HOMEd Wiki
мНет описания правки
 
(не показано 13 промежуточных версий этого же участника)
Строка 3: Строка 3:


== Общие сведения ==
== Общие сведения ==
Биндинги позволяют связывать сторонние MQTT-топики и их данные с устройством HOMEd Custom. Биндинги описываются как JSON-обект, ключами которого являются имена описываемых свойств. Структура описания биндингов выглядит так:
Карта регистров позволяет описывать схему данных для любых устройств, не выходящих за рамки стандарта Modbus. Карта регистров описывается как массив JSON-объектов, каждый элемент которого добавляет соответствующую [[Common/Exposes|способность]]. Структура описания карты регистров выглядит так:
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{
   ...
   ...
   "real": true,
   "type": "customController",
  "exposes": ["switch", "temperature"],
   "items":
   "bindings":
   [
   {
    "status":
     {
     {
      "inTopic": "switch/status/topic",
      "address": 110,
      "inPattern": "{{ on if json.switch == true else off }}",
      "registerType": "holding",
      "outTopic": "switch/command/topic",
      "dataType": "u16",
      "outPattern": "{\"switch\":{{ true if value == on else false }}}"
      "byteOrder": "be",
      "divider": 0.01,
      "expose": "myMumber",
      "type": "value",
      "read": true
     },
     },
    "temperature":
     {
     {
      "inTopic": "temperature/status/topic",
      "address": 2,
      "inPattern": "{{ json.temperature }}"
      "registerType": "status",
      "expose": "myBinarySensor",
      "type": "enum",
      "read": true
     }
     }
   }
   ]
   ...
   ...
}
}
</syntaxhighlight>
</syntaxhighlight>
{{Warning|Биндинги работают только в случае, когда в настройках устройства включен параметр <code>real</code>.}}
{{Warning|Карта регистров работает только для устройств типа <code>"customController"</code>. Карта регистров поддерживает только [[Common/Exposes#Типовые способности|типовые]] способности устройств. Специальные способности не поддерживаются.}}


== Параметры регистров ==
== Параметры регистров ==


=== <code>inTopic</code> ===
=== <code> address </code> ===
MQTT-топик, в который устройство публикует состояние описываемого свойства. Является обязательным в случае, если отсутствует параметр <code>outTopic</code>.
Адрес регистра в десятичном формате.


=== <code>inPattern</code> ===
=== <code>registerType</code> ===
Шаблон для получения состояния описываемого свойства из топика <code>inTopic</code>. В случае отсутствия этого параметра, данные будут использованы без изменений. Подробнее в разделе [[Custom/Database/Bindings#Шаблоны|шаблоны]].
Тип регистра. Возможные значения:
* <code class="value">coil</code> (функции 1 и 5)
* <code class="value">discrete</code> (функция 2)
* <code class="value">holding</code> (функции 3, 6 и 16)
* <code class="value">input</code> (функция 4)


=== <code>outTopic</code> ===
=== <code>dataType</code> ===
MQTT-топик, который необходимо опубликовать для изменения состояния описываемого свойства. Является обязательным в случае, если отсутствует параметр <code>inTopic</code>.
Тип данных. Актуально только для регистров типа <code class="value">"holding"</code> или <code class="value">"input"</code>. Возможные значения:
* <code class="value">i16</code>
* <code class="value">u16</code>
* <code class="value">i32</code>
* <code class="value">u32</code>
* <code class="value">i64</code>
* <code class="value">u64</code>
* <code class="value">f32</code>
* <code class="value">f64</code>


=== <code>outPattern</code> ===
=== <code>byteOrder</code> ===
Шаблон для передечи состояния описываемого свойства в топик <code>outTopic</code>. В случае отсутствия этого параметра данные будут опубликованы без изменений. Подробнее в разделе [[Custom/Database/Bindings#Шаблоны|шаблоны]].
Порядок следования байтов. Актуально только для регистров типа <code class="value">"holding"</code> или <code class="value">"input"</code>. Возможные значения:
* <code class="value">be</code>
* <code class="value">le</code>
* <code class="value">mixed</code>
 
=== <code>divider</code> ===
Делитель итогового значения. Актуально только для регистров типа <code class="value">"holding"</code> или <code class="value">"input"</code>.
 
=== <code>expose</code> ===
Название соответствующей [[Common/Exposes|способности]] устройства.
 
=== <code>type</code> ===
Способ предоставления данных. Возможные значения:
* <code class="value">bool</code>
* <code class="value">value</code>
* <code class="value">emum</code>
 
=== <code>read</code> ===
Разрешение чтения регистра.


[[Category:Modbus]]
[[Category:Modbus]]

Текущая версия от 05:36, 9 апреля 2025

HOMEd > Modbus > База данных > Карта регистров

Общие сведения

Карта регистров позволяет описывать схему данных для любых устройств, не выходящих за рамки стандарта Modbus. Карта регистров описывается как массив JSON-объектов, каждый элемент которого добавляет соответствующую способность. Структура описания карты регистров выглядит так:

{
  ...
  "type": "customController",
  "items":
  [
    {
      "address": 110,
      "registerType": "holding",
      "dataType": "u16",
      "byteOrder": "be",
      "divider": 0.01,
      "expose": "myMumber",
      "type": "value",
      "read": true
    },
    {
      "address": 2,
      "registerType": "status",
      "expose": "myBinarySensor",
      "type": "enum",
      "read": true
    }
  ]
  ...
}

Карта регистров работает только для устройств типа "customController". Карта регистров поддерживает только типовые способности устройств. Специальные способности не поддерживаются.

Параметры регистров

address

Адрес регистра в десятичном формате.

registerType

Тип регистра. Возможные значения:

  • coil (функции 1 и 5)
  • discrete (функция 2)
  • holding (функции 3, 6 и 16)
  • input (функция 4)

dataType

Тип данных. Актуально только для регистров типа "holding" или "input". Возможные значения:

  • i16
  • u16
  • i32
  • u32
  • i64
  • u64
  • f32
  • f64

byteOrder

Порядок следования байтов. Актуально только для регистров типа "holding" или "input". Возможные значения:

  • be
  • le
  • mixed

divider

Делитель итогового значения. Актуально только для регистров типа "holding" или "input".

expose

Название соответствующей способности устройства.

type

Способ предоставления данных. Возможные значения:

  • bool
  • value
  • emum

read

Разрешение чтения регистра.