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:

VariableDescription




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