Description:
This script, assigned to a network, overrides a specific WiFi networks SSID and Preshared Key with the variables
context.vars.SSID
context.vars.WPAKey
The selected WiFi that will be overridden is SSID_TO_CHANGE
.
List of used variables:
Add-in code:
/** * @param {Config} config * @param {Context} context * Do not edit this comment or parameter types. Required for code suggestions */ exports.main = function (config, context) {
// Step 1: obtain _single_ ssid reference var ssid = context.network.ssids["SSID_TO_CHANGE"];
if (!ssid) { config.abort("SSID missing"); }
if (!context.vars.SSID) { config.abort("variable SSID not set"); }
if (!context.vars.WPAKey) { config.abort("variable WPAKey not set"); }
var wlanTable = config.getTableByOid("13.2.20.1"); var wlanPostfix = context.network.configNameLong + "_" + ssid.name;
// Step 2: create iterable list of wifi networks var rows = wlanTable.getRows(); var list = []; for (var i = 0; i < rows.length; i++) { list.push(rows[i]); }
var encrRef = "ENCRREF";
// Step 3: find matching row that ends with context.network.configNameLong + "_" + ssid.name list.filter(function (row) { return row.getByOid("1").endsWith(wlanPostfix); }).forEach(function (wlanRow) { // Step 4: change all matching row (by definition this is only one) wlanRow.setByOid(2, context.vars.SSID); wlanRow.setByOid(100, context.vars.WPAKey); wlanRow.setByOid(102, encrRef); wlanTable.addOrMerge(wlanRow);
var secParamsTable = config.getTableByOid("13.2.20.3"); var secParamsRow = secParamsTable.createNewRow(); secParamsRow.setByOid(1, encrRef); secParamsRow.setByOid(2, "1"); secParamsRow.setByOid(4, "32"); secParamsRow.setByOid(9, "6"); secParamsRow.setByOid(12, "1"); secParamsRow.setByOid(13, "1"); secParamsRow.setByOid(14, "0"); secParamsRow.setByOid(11, "0"); secParamsRow.setByOid(16, "1"); secParamsRow.setByOid(17, "0"); secParamsRow.setByOid(19, "0"); secParamsRow.setByOid(26, "524288"); secParamsRow.setByOid(20, ""); secParamsRow.setByOid(21, ""); secParamsTable.addOrMerge(secParamsRow); }); };
|
---|
Add-in as JSON file:
ssid_preshared_key_lx.json