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

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


== Общие сведения ==
== Общие сведения ==
Карта регистров позволяет описывать схему данных для любых устройств, не выходящих за рамки стандарта Modbus. Карта регистров описывается как массив JSON-объектов, каждый элемент которого добавляет соответствующую [[Common/Exposes|способность]]. Структура описания биндингов выглядит так:
Карта регистров позволяет описывать схему данных для любых устройств, не выходящих за рамки стандарта Modbus. Карта регистров описывается как массив JSON-объектов, каждый элемент которого добавляет соответствующую [[Common/Exposes|способность]]. Структура описания карты регистров выглядит так:
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{
Строка 35: Строка 35:
== Параметры регистров ==
== Параметры регистров ==


=== <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

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