Как ограничить длину текстовой переменной в VirtualDevice

Добрый вечер.
Есть ли возможность ограничить длину вводимого значения в поле с типом “text”
попробовал

defineVirtualDevice("test", {
   title: "channel-1",
   cells: {
       serialNumber: {
           title: "test1",
           type: "text",
           value: "S",
           format: "string",
           string_data_size: 16,
           readonly: false,
           order: 1,
       },
   },
});

Не помогает.
И возможно ли где-то (хоть здесь) опубликовать примеры всеx возможных комбинаций пар ключ:значение для virtualDevice, а также правильный их синтаксис.
Поясню
Про синтаксис:
Пример с Git

defineVirtualDevice("relayClicker", {
  title: "Relay Clicker", // Название устройства /devices/relayClicker/meta/name
  cells: {
    // параметры
    enabled: { // /devices/relayClicker/controls/enabled
      type: "switch",  // тип (.../meta/type)
      value: false     // значение по умолчанию

как видим значение ключа вводится без кавычек.
Cмотрим в Wiren Board MQTT Conventions там значение ключа в кавычках

// Control's type
    "type": "value",

смотрим в шаблоны устройств там также.
Насчет примеров.
в шаблонах устройств мы видим допустим конструкцию вида

"translations": {
           "en": {"type":"Type" },
           "ru": {"type":"Тип" }

можно ли ее применять для виртуальных устройств? Или что из шаблонов serial устройств мы можем применять с виртуальными устройствами?

Добнрый день. Нет, длину (размер строки) ограничить нельзя. То есть можно до предельного размера значения топика (ограничено брокером, до ~2МБ у mosquitto).

Как верно написано основное описание - тут:

switch, pushbutton, range, value, text.

Значение type - в кавычках.

Нет, нельзя, так как шаблоны обрабатываются драйверами устройств, не движком правил.
Но вообще - да, помечу себе что нужно описать все свойства устрйоств понятней.

1 лайк

Спасибо за развёрнутый ответ. Я почему-то думал что виртуальные устройства копируют (наследуют) часть реальных.
То есть мы ограниченны этим

Поля объекта:

title — имя, публикуемое в MQTT-топике /devices/…/controls/…/meta/title для данного параметра.
type — тип, публикуемый в MQTT-топике /devices/…/controls/…/meta/type для данного параметра. Список доступных типов смотрите в Wiren Board MQTT Conventions.
value — значение параметра по умолчанию (топик /devices/…/controls/…).
forceDefault — когда задано истинное значение, при запуске контроллера параметр всегда устанавливается в значение по умолчанию. Иначе он будет установлен в последнее сохранённое значение.
lazyInit — когда задано истинное значение, при описании контрола в коде фактическое создание его в mqtt происходить не будет до тех пор, пока этому контролу не будет присвоено какое-то значение (например dev[deviceID][controlID] = “string”)
max для параметра типа range может задавать его максимально допустимое значение.
min для параметра типа range может задавать его минимально допустимое значение.
readonly — когда задано истинное значение, параметр объявляется read-only (публикуется 1 в /devices/…/controls/…/meta/readonly).

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.