• V
 

丢弃未改变值的消息

问题

如果消息的有效载荷值自上次消息以来没有改变,您希望丢弃该消息。例如,您有一个传感器定期发送开关的状态,您只想知道值何时发生变化。

解决方案

使用 RBE 节点(按异常报告)阻止消息,除非其值已更改。

示例

[{"id":"6079638d.df403c","type":"inject","z":"ac14500e.2c57d","name":"","topic":"","payload":"0","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":1500,"wires":[["87129503.c7b358"]]},{"id":"87129503.c7b358","type":"rbe","z":"ac14500e.2c57d","name":"按异常报告","func":"死区","gap":"","start":"","inout":"out","property":"payload","x":300,"y":1520,"wires":[["5e2ffc27.c61dd4"]]},{"id":"5e2ffc27.c61dd4","type":"debug","z":"ac14500e.2c57d","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":510,"y":1520,"wires":[]},{"id":"2dc49f96.3070c","type":"inject","z":"ac14500e.2c57d","name":"","topic":"","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":1540,"wires":[["87129503.c7b358"]]}]

讨论

RBE 可以用来丢弃消息,除非它们的值已经改变。这在检测变化时非常有用。

如果正在检查的属性是一个数字,则该节点还可以配置一个阈值,以指示消息通过所需的值变化量。