我有一个项目,用于打开和关闭连接到ESP32的中继板(使用Mongoose OS Javascript进行编程)。现在,使用flespi MQTT,我想通过订阅主题来打开和关闭继电器。我已经完成了flespi MQTT代理的设置和配置,该代理可以通过在flespi MQTT上键入任何消息来打开和关闭中继板。
由于我是MQTT的新手,当我从flespi MQTT接收(订阅)时,如何仅使能够打开和关闭中继的特定消息成为可能。例如, 'ON Relay'=将打开继电器,'OFF Relay'=将关闭继电器。仅此消息将触发板。
这是我的代码:
load('api_config.js');
load('api_gpio.js');
load('api_mqtt.js');
load('api_net.js');
load('api_sys.js');
load('api_timer.js');
load('api_adc.js');
let currentState = 0,
relaypin = 4;
GPIO.set_mode(relaypin, GPIO.MODE_OUTPUT);
MQTT.sub('topic/#', function(conn, topic, msg) {
print('Topic', topic, 'message', msg);
print('ok');
currentState = 1 - currentState;
GPIO.write(relaypin, currentState);
print('Relay is = ' + (currentState ? 'OFF' : 'ON'));
}, null);
答案 0 :(得分:0)
我已经解决了问题:
=iif(sum(Fields!Total_Goods_Value.Value) = 0, "", (sum(Fields!Margin_GP.Value) / sum(Fields!Total_Goods_Value.Value)))