diff --git a/public/index.html b/public/index.html index 55e79fa6e8a4a62a03250316c018b6c578acb184..dca7bd09ae93f2276f595f474c3142f73cff6b46 100755 --- a/public/index.html +++ b/public/index.html @@ -252,7 +252,15 @@ <div class="submit_section"> <input class="submit_button" type="submit" value="Submit"> </div> - <div class="warning"> + + <div class="section" align="center"> + This IoT Gateway includes Node-RED, a web-based tool for building Node.js applications. + <br> + The Node-RED web application is accessible at: + <a href="http://params_hostname:params_node_red_http_port">http://params_hostname:params_node_red_http_port</a> + </div> + + <div class="warning"> <body> This application does not require or manage Passwords and you are responsible for securing your Gateway. <br> diff --git a/server.js b/server.js index 0f9a16929358dce393d24fbc4407c0055844cb19..3f0ec5377693ed3d316637786b72c862d63f4e2e 100755 --- a/server.js +++ b/server.js @@ -28,6 +28,7 @@ var supportedExtensions = { "png" : "image/png" }; var PORT = 8000; +var NODE_RED_PORT = 80; var STATE_DIR = '/var/lib/gateway_config_tools'; var BIN_DIR = './bin'; var NETWORKS_FILE = STATE_DIR + '/networks.txt'; @@ -234,6 +235,7 @@ function submitForm(params, res, req) { } } + // no errors occurred. Do success response. exec (BIN_DIR+'/configure_gateway --showNames', function (error, stdout, stderr) { var nameobj = {hostname: "unknown", ssid: "unknown", default_ssid: "unknown"}; @@ -327,7 +329,7 @@ function requestHandler(req, res) { if ((result.code != 0) || ((typeof result.output !== 'undefined') && (result.output.trim() != "Master"))) { var res_str = fs.readFileSync(site + '/status.html', {encoding: 'utf8'}); - var myhostname, myipaddr; + var myipaddr; exec(BIN_DIR+'/configure_gateway --showWiFiIP', function (error, stdout, stderr) { if (error) { console.log("Error occurred:"); @@ -338,7 +340,21 @@ function requestHandler(req, res) { } }); } else { - res.end(getStateBasedIndexPage()); + exec ('/usr/bin/unit_serial_number', function (error, stdout, stderr) { + var sn = stdout.trim(); + if(error || !sn ) { + console.log("error getting serial number!", error); + sn = "unknown" + } + + var res_str = getStateBasedIndexPage(); + var host_url = sn + ".local"; + var host_port = NODE_RED_PORT.toString().trim(); + + res_str = res_str.replace(/params_hostname/g, host_url); + res_str = res_str.replace(/params_node_red_http_port/g, host_port); + res.end(res_str); + }); } } else if (urlobj.pathname === '/wifiNetworks') { if (fs.existsSync(NETWORKS_FILE)) {