В чем разница между postUpdate и sendCommand в openHAB

В файле правил в openHAB я могу выполнить postUpdate и sendCommand. В чем разница?

Я заметил, что когда я использую postUpdate(zwaveLamp1, ON), меняется только его значение, никаких действий не выполняется - свет остается темным. sendCommand(zwaveLamp1, ON) выполнит связанное действие и включит свет, и элемент будет обновлен.

Каков вариант использования postUpdate? Для чего это?


person sja    schedule 11.03.2015    source источник


Ответы (5)


Да, правильно с моей точки зрения. postUpdate работает «внутренне» с элементом, sendCommand действует как «команда» по отношению к периферийному устройству/интерфейсу. Марко

person marco_m    schedule 12.03.2015

Команды дискретны, тогда как состояния кажутся более мимолетными. То есть, если вы запускаете правило, запускаемое «элемент X получил команду», вы можете использовать переменную «receivedCommand» в правиле для выполнения чего-либо, и правило срабатывает для каждой команды. Тем не менее, вы должны прочитать текущее состояние из элемента или использовать для предыдущего состояния предыдущее состояние.

Я обнаружил, что для элемента, который часто обновляет свое состояние, срабатывает одно изменение, но к тому времени, когда вы читаете состояние элемента, он может измениться снова; всегда возвращается текущее значение. Именно так и должно быть. Однако если вы используете состояние как псевдовходящую очередь из MQTT или какого-либо внешнего источника, вы потеряете сообщения. Если они приходят как команды, вы не будете.

person Alex    schedule 30.05.2015

Если вы хотите обновить текущее состояние любого элемента интерфейса или устройства (например, температуры), вы можете использовать postUpdate(), а если вы хотите выполнить какое-либо действие (например, включение/выключение света), вы можете использовать sendCommand ().

person Prashant Goswami    schedule 23.08.2018

Вы можете сделать элемент-переключатель ни к чему не привязанным; допустим, вы хотите сделать элемент переключения EmailToggle. Если вы поместите переключатель на карту своего сайта, вы сможете включать и выключать электронную почту; затем, при запуске, вы можете опубликовать обновление и установить для него значение OFF или ON. Затем этот переключатель можно использовать, чтобы определить, хотите ли вы, чтобы электронные письма происходили на основе правила.

Я видел эту работу, и я видел, что она не работает. Кажется глючит.

person rich    schedule 16.05.2015

Ознакомьтесь с обновленной документацией openHab здесь. теперь более понятно: таблица показывает, каков эффект от манипулирования элементами:

Command \ Rule Trigger    received update     received command    changed
--------------------------------------------------------------------------
postUpdate                  ⚡ rule fires        ❌               (depends)
sendCommand                   ❌              ⚡ rule fires       (depends)
Change through Binding      ⚡ rule fires      ⚡ rule fires       (depends)
person Paschi    schedule 16.04.2018