MQTTS y NodeRED
La revisió el 16:55, 21 maig 2020 per Jordi Binefa (discussió | contribucions) (→Subscripción a temas (topics) dinámicos)
Contingut
Temas (topics)
Tal y como vimos en el dia anterior en Conexión entre la placa IoT-02 y Snap! mediante MQTT (recordar hacer la cancelación de subscripción después de recibir la MAC), podemos usar estos temas con el último firmware ( IoT-02_mqtts_09 en GitHub ):
#define TOPIC_REQUEST_MAC "/macReq" #define TOPIC_MAC "/mac" #define TOPIC_LED_W "/ledW" #define TOPIC_LED_R "/ledR" #define TOPIC_LED_Y "/ledY" #define TOPIC_LED_G "/ledG" #define TOPIC_LATCHING_RELAY "/latchingRelay" #define TOPIC_BT_IO0 "/btIO0" #define TOPIC_BT_I34 "/btI34" #define TOPIC_BT_I35 "/btI35" #define TOPIC_LATCHING_RELAY_STATE "/latchingRelayState" #define TOPIC_REQUEST_LATCHING_RELAY_STATE "/latchingRelayStateReq" #define TOPIC_REQUEST_LDR "/ldrReq" #define TOPIC_LDR "/ldr" #define TOPIC_REQUEST_T "/tempReq" #define TOPIC_T "/temp" #define TOPIC_SMALL_TEXT "/10pxTxt" #define TOPIC_MEDIUM_TEXT "/16pxTxt" #define TOPIC_BIG_TEXT "/24pxTxt"
Adquisición de la MAC
Snap!
Código en Snap! para la placa IoT-02
Flujo de NodeRED para la gestión de la MAC como variable de flujo
Función --> MAC:
flow.set("MAC",msg.payload) return msg;
Función MAC -->
var MAC = flow.get("MAC"); msg.payload = MAC; return msg;
JavaScript encastado en HTML
Enlace con la herramienta de gestión de MAC via web. Código de la herramienta de gestión de MAC via web
Flujo de NodeRED
Subscripción a temas (topics) dinámicos
Flujo de NodeRED para la gestión subscripciones dinámicas
Función --> MAC + Topics:
flow.set("MAC",msg.payload) flow.set("TOPIC_LATCHING_RELAY","/"+msg.payload + "/latchingRelay") flow.set("TOPIC_BT_I35","/"+msg.payload + "/btI35") flow.set("TOPIC_BT_I34","/"+msg.payload + "/btI34") flow.set("TOPIC_BT_IO0","/"+msg.payload + "/btIO0") msg.payload = flow.get("TOPIC_BT_IO0") return msg;
Función if it is my MAC -->:
var MAC = flow.get("MAC"); var topic = String(msg.topic); if (topic.indexOf(MAC) !== -1) return msg;
Función TOPIC_BT_I35 -->:
var MAC = flow.get("MAC"); var topic = String(msg.topic); var topic_BT_I35 = flow.get("TOPIC_BT_I35"); if (topic === topic_BT_I35) return msg;
Función topic,payload:
return [{payload: msg.topic},msg];
Subscripción y publicación de temas (topics) dinámicos
Flujo de NodeRED para la gestión subscripciones y publicaciones dinámicas
F