simple mqtt ping
Flow solves the simple problem of measuring the number of milliseconds that elapsed between posting and subscribing.
[{"id":"5c54011f72487103","type":"function","z":"c991dbcde03824f2","name":"f.ping","func":"const time = new Date()\nconst delta = {}\nconst ping = {}\nconst delay = 1000\n\nsetTimeout(()=>{\n delta.payload = time - new Date(Number(msg.payload)) + ' ms'\n ping.payload = time.getTime() + delay;\n node.warn(delta.payload)\n node.send(ping);\n}, delay);\n\nreturn ping","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":260,"y":120,"wires":[["fdf400b3cfc4f12d"]]},{"id":"25da9b7ce34ce435","type":"mqtt in","z":"c991dbcde03824f2","name":"","topic":"/agt/ping","qos":"2","datatype":"auto","broker":"4590489e0a84fb90","nl":false,"rap":true,"rh":0,"inputs":0,"x":126,"y":120,"wires":[["5c54011f72487103"]]},{"id":"fdf400b3cfc4f12d","type":"mqtt out","z":"c991dbcde03824f2","name":"","topic":"/agt/ping","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"4590489e0a84fb90","x":396,"y":120,"wires":[]},{"id":"5ce48627479fe47b","type":"inject","z":"c991dbcde03824f2","name":"start ping","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":246,"y":162,"wires":[["fdf400b3cfc4f12d"]]},{"id":"4590489e0a84fb90","type":"mqtt-broker","name":"mqtt","broker":"mqtt","port":"8883","tls":"a3bef4be0a567","clientid":"node","autoConnect":true,"usetls":true,"protocolVersion":"5","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":"300"},{"id":"a3bef4be0a58aba1","type":"tls-config","name":"","cert":"","key":"","ca":"","certname":"","keyname":"","caname":"","servername":"","verifyservercert":true,"alpnprotocol":""}]