Diferència entre revisions de la pàgina «MQTTS y NodeRED»
Línia 90: | Línia 90: | ||
[https://binefa.cat/training/upcSchool/20200523/45mqtts.nodered.txt Flujo de NodeRED para la gestión subscripciones y publicaciones dinámicas] | [https://binefa.cat/training/upcSchool/20200523/45mqtts.nodered.txt Flujo de NodeRED para la gestión subscripciones y publicaciones dinámicas] | ||
− | Función '''TOPIC_LATCHING_RELAY -->''' | + | Función '''TOPIC_LATCHING_RELAY -->''': |
+ | |||
msg.topic = flow.get("TOPIC_LATCHING_RELAY") | msg.topic = flow.get("TOPIC_LATCHING_RELAY") | ||
Línia 96: | Línia 97: | ||
− | Función '''TOPIC_REQUEST_LDR -->''' | + | Función '''TOPIC_REQUEST_LDR -->''': |
msg.payload = "reqLDR" | msg.payload = "reqLDR" | ||
Línia 103: | Línia 104: | ||
− | Función '''TOPIC_LDR -->''' | + | Función '''TOPIC_LDR -->''': |
var topic = String(msg.topic) | var topic = String(msg.topic) | ||
Línia 111: | Línia 112: | ||
return msg | return msg | ||
} | } | ||
+ | |||
+ | Función '''TOPIC_BIG_TEXT -->''': | ||
+ | msg.topic = flow.get("TOPIC_BIG_TEXT") | ||
+ | return msg; |
Revisió del 17:26, 21 maig 2020
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
Función TOPIC_LATCHING_RELAY -->:
msg.topic = flow.get("TOPIC_LATCHING_RELAY") return msg;
Función TOPIC_REQUEST_LDR -->:
msg.payload = "reqLDR" msg.topic = flow.get("TOPIC_REQUEST_LDR") return msg;
Función TOPIC_LDR -->:
var topic = String(msg.topic) var topic_LDR = flow.get("TOPIC_LDR") if (topic === topic_LDR){ msg.payload = "LDR: " + msg.payload return msg }
Función TOPIC_BIG_TEXT -->:
msg.topic = flow.get("TOPIC_BIG_TEXT") return msg;