Штаты и точки данных
Точка данных — это место, где хранится значение: температура в комнате, состояние включения лампы, название воспроизводимого в данный момент трека.
Оно состоит из двух частей:
- объект типа
state- описание, которое редко меняется (см. объекты ), - Государство — это сама ценность, которая постоянно меняется.
В повседневной речи термин «точка данных» обычно означает оба показателя вместе.
Только объекты типаstate У них есть состояние. И направление ясно: если объект удален, состояние исчезает вместе с ним — и наоборот, объект остается, если удалено только значение.
Состояние
Государство — это не просто цифра. Оно также отражает свое происхождение и время возникновения:
| Поле | Значение |
|---|---|
val | значение |
ack | Будь то команда или ответ — см. ниже. |
ts | когда значение было записано в последний раз |
lc | когда он в последний раз действительно изменился |
from | какой экземпляр адаптера это написал |
q | Значение качества, отличное от 0, означает: с этим значением что-то не так. |
user | кто это написал, при условии, что они зарегистрировались |
expire | Через сколько секунд значение изменится?null водопады |
В редакторе объектов все это находится на вкладке «Состояние». Флаг «ack» там означает «подтверждено» — на изображении он показан красным цветом, поскольку значение представляет собой команду , и обратной связи пока нет.
Разница междуts иlc Это полезнее, чем кажется: датчик, который сообщает одно и то же значение каждые 30 секунд, обновляет его.ts каждый раз,lc Но только если произошли реальные изменения. Любой, кто хочет узнать, как долго дверь была открыта, должен посмотреть на...lc .
Флаг ack
Это термин, на котором большинство людей зацикливаются, — и это самый важный термин на этой странице.
ack: falseЭто команда. «Включи лампу». Так пишется скрипт в автоматизации, как переключатель в визуализации.ack: trueЭто ответ. «Лампа включена». Так пишет адаптер после подтверждения устройством.
Процесс выглядит следующим образом: скрипт устанавливает значение с помощьюack: false Адаптер видит это, отправляет команду устройству, и когда устройство отвечает, оно снова записывает ту же точку данных — на этот раз сack: true .
Если вы не различаете эти два момента при запуске автоматизации, вы создаёте замкнутый круг обратной связи: скрипт переключается, устройство подтверждает действие, подтверждение снова запускает скрипт. Общее правило: прислушивайтесь к обратной связи, отправляйте команды. Подробнее см. раздел «Логика и автоматизация» .
Это можно увидеть в панели администратора: в списке объектов значение неподтвержденного состояния выделено. Точка данных, которая остается постоянно неподтвержденной, указывает на то, что команда не достигла устройства.
Описание этого
Объект, связанный с точкой данных, определяет способ обработки значения. Поля, имеющие отношение к повседневной жизни, перечислены вcommon :
| Поле | За что |
|---|---|
type | number ,string ,boolean ,array ,object ,json ,mixed , file |
name | отображаемое имя на одном или нескольких языках |
unit | единица, например°C или% |
min ,max ,step | Допустимый диапазон и шаг изменения, например, для контроллера. |
read ,write | Разрешены ли чтение и письмо – оба навыка обязательны. |
role | что представляет собой данная точка данных; затем интерфейсы выбирают соответствующие элементы управления, см. Роли. |
states | список возможных значений в открытом текстовом виде, например {0: "AUS", 1: "EIN"} |
def | целевое значение |
custom | Настройки других адаптеров для этой точки данных — например, запись вводится здесь. |
read иwrite Это не права, а утверждение об устройстве: датчик температуры — этоread: true, write: false Тот, кто всё же введёт это значение, не получит ошибку — оно просто будет отображаться и ничего не будет значить.
?>common.custom Здесь включается запись значения. В панели администратора это делается с помощью значка шестеренки рядом с точкой данных; за ним находится запись примерно такого вида:{"influxdb.0": {"enabled": true}} .
Установите значения вручную
В панели администратора, в разделе «Объекты» , значение записываемой точки данных можно изменить с помощью значка пера. При записи можно выбрать между командной операцией и обратной связью — то же различие, что и выше. В целях тестирования опция командной операции является корректной; ручная установка обратной связи обманывает систему, заставляя её считать, что состояние устройства фактически не существует.
Читать далее
- Объекты — структура, идентификаторы и пространства имен
- Должности — полный список
common.role - Псевдонимы — пользовательские, стабильные имена для внешних точек данных.
- Структура объекта — все поля для разработчиков.