在我当前的项目中,我们尝试使用Node-RED实现当前的应用程序功能.功能如下所示.这里,Fire状态接收两个输入:(1)TemperatureSensor (2)SmokeDetector.两个传感器都使用MQTT发布者发布数据.和Firestate组件可以通过MQTT子网接收数据.
火灾状态可以基于这两个参数产生输出if temperaturevalue > 70 and Smokevalue == true.鉴于此,我的问题是 - Node-RED是否支持两种输入功能?如果是,那么我们如何实现这一功能呢?如果没有,那么..我可以说使用Node-RED无法实现两个输入功能吗?我们已经看到Node-RED提供多个输出,但不提供输入.
har*_*llb 14
您将需要使用函数节点并使用该context变量来保持消息之间的状态,并使用消息主题来确定消息来自哪个输入.
像这样的东西:
context.temp = context.temp || 0.0;
context.smoke = context.smoke || false;
if (msg.topic === 'smokeDetector') {
context.smoke = msg.payload;
} else if (msg.topic === 'tempSensor') {
context.temp = msg.payload;
}
if (context.temp >= 70.0 && context.smoke) {
return {topic: 'fireState', payload: 'FIRE!'}
} else {
return null
}
Run Code Online (Sandbox Code Playgroud)