Here default provision:
const hourly = Date.now(3600000);
// Refresh basic parameters hourly
declare("InternetGatewayDevice.DeviceInfo.HardwareVersion", {path: hourly, value: hourly});
declare("InternetGatewayDevice.DeviceInfo.SoftwareVersion", {path: hourly, value: hourly});
declare("InternetGatewayDevice.WANDevice.*.WANConnectionDevice.*.WANIPConnection.*.MACAddress", {path: hourly, value: hourly});
declare("InternetGatewayDevice.WANDevice.*.WANConnectionDevice.*.WANIPConnection.*.ExternalIPAddress", {path: hourly, value: hourly});
declare("InternetGatewayDevice.LANDevice.*.WLANConfiguration.*.SSID", {path: hourly, value: hourly});
// Don't refresh password field periodically because CPEs always report blank passowrds for security reasons
declare("InternetGatewayDevice.LANDevice.*.WLANConfiguration.*.KeyPassphrase", {path: hourly, value: 1});
declare("InternetGatewayDevice.LANDevice.*.Hosts.Host.*.HostName", {path: hourly, value: hourly});
declare("InternetGatewayDevice.LANDevice.*.Hosts.Host.*.IPAddress", {path: hourly, value: hourly});
declare("InternetGatewayDevice.LANDevice.*.Hosts.Host.*.MACAddress", {path: hourly, value: hourly});
declare("InternetGatewayDevice.WEB_GUI.Network.NR-LTE.Status.LTE.RSRP", {path: hourly, value: hourly});
declare("InternetGatewayDevice.WEB_GUI.Network.NR-LTE.Status.LTE.SINR", {path: hourly, value: hourly});
declare("InternetGatewayDevice.WEB_GUI.Network.NR-LTE.Status.LTE.RSRQ", {path: hourly, value: hourly});
declare("InternetGatewayDevice.WEB_GUI.Network.NR-LTE.Status.LTE.RSSI", {path: hourly, value: hourly});
declare("InternetGatewayDevice.WEB_GUI.Network.NR-LTE.Status.LTE.CellID", {path: hourly, value: hourly});
//declare("VirtualParameters.VendorSINR", {path: hourly, value: hourly});
//declare("VirtualParameters.VendorRSRP", {path: hourly, value: hourly});
//declare("VirtualParameters.VendorRSRQ", {path: hourly, value: hourly});
//declare("VirtualParameters.VendorRSSI", {path: hourly, value: hourly});
//declare("VirtualParameters.VendorPCI", {path: hourly, value: hourly});
//declare("VirtualParameters.VendorSignalSINR", {path: hourly, value: hourly});
//declare("VirtualParameters.lteRSSI", {path: hourly, value: hourly});
//declare("VirtualParameters.lteRSRQ", {path: hourly, value: hourly});
//declare("VirtualParameters.lteSINR", {path: hourly, value: hourly});
//declare("VirtualParameters.lteRSRP", {path: hourly, value: hourly});
//declare("VirtualParameters.cpeUPTIME", {path: hourly, value: hourly});
//TR181
declare("Device.DeviceInfo.HardwareVersion", {path: hourly, value: hourly});
declare("Device.DeviceInfo.SoftwareVersion", {path: hourly, value: hourly});
declare("Device.DeviceInfo.IMEI", {path: hourly, value: hourly});
declare("Device.DeviceInfo.IMSI", {path: hourly, value: hourly});
declare("Device.WANDevice.*.WANConnectionDevice.*.WANIPConnection.*.MACAddress", {path: hourly, value: hourly});
declare("Device.WANDevice.*.WANConnectionDevice.*.WANIPConnection.*.ExternalIPAddress", {path: hourly, value: hourly});
declare("Device.LANDevice.*.WLANConfiguration.*.SSID", {path: hourly, value: hourly});
declare("Device.WANDevice.*.WANConnectionDevice.*.WANIPConnection.*.PCI", {path: hourly, value: hourly});
declare("Device.WANDevice.*.WANConnectionDevice.*.WANIPConnection.*.RSSI", {path: hourly, value: hourly});
declare("Device.WANDevice.*.WANConnectionDevice.*.WANIPConnection.*.RSRQ", {path: hourly, value: hourly});
declare("Device.WANDevice.*.WANConnectionDevice.*.WANIPConnection.*.RSRP", {path: hourly, value: hourly});
declare("Device.WANDevice.*.WANConnectionDevice.*.WANIPConnection.*.SINR", {path: hourly, value: hourly});
// Don't refresh password field periodically because CPEs always report blank passowrds for security reasons
declare("Device.LANDevice.*.WLANConfiguration.*.KeyPassphrase", {path: hourly, value: 1});
declare("Device.LANDevice.*.Hosts.Host.*.HostName", {path: hourly, value: hourly});
declare("Device.LANDevice.*.Hosts.Host.*.IPAddress", {path: hourly, value: hourly});
declare("Device.LANDevice.*.Hosts.Host.*.MACAddress", {path: hourly, value: hourly});
inform provision:
// Device ID as user name
const username = declare("DeviceID.ID", {value: 1}).value[0]
// Password will be fixed for a given device because Math.random() is seeded with device ID by default.
const password = Math.trunc(Math.random() * Number.MAX_SAFE_INTEGER).toString(36);
const informInterval = 300;
// Refresh values daily
const daily = Date.now(86400000);
// Unique inform offset per device for better load distribution
const informTime = daily % 86400000;
declare("InternetGatewayDevice.ManagementServer.ConnectionRequestUsername", {value: daily}, {value: username});
declare("InternetGatewayDevice.ManagementServer.ConnectionRequestPassword", {value: daily}, {value: password});
declare("InternetGatewayDevice.ManagementServer.PeriodicInformEnable", {value: daily}, {value: true});
declare("InternetGatewayDevice.ManagementServer.PeriodicInformInterval", {value: daily}, {value: informInterval});
declare("InternetGatewayDevice.ManagementServer.PeriodicInformTime", {value: daily}, {value: informTime});
declare("Device.ManagementServer.ConnectionRequestUsername", {value: daily}, {value: username});
declare("Device.ManagementServer.ConnectionRequestPassword", {value: daily}, {value: password});
declare("Device.ManagementServer.PeriodicInformEnable", {value: daily}, {value: true});
declare("Device.ManagementServer.PeriodicInformInterval", {value: daily}, {value: informInterval});
declare("Device.ManagementServer.PeriodicInformTime", {value: daily}, {value: informTime});
//declare("VirtualParameters.VendorSINR", {value: daily});
declare("VirtualParameters.*", {value: Date.now()});
//declare("VirtualParameters.VendorRSRP", {value: daily});
//declare("VirtualParameters.VendorRSRQ", {value: daily});
//declare("VirtualParameters.VendorRSSI", {value: daily});
///declare("VirtualParameters.VendorPCI", {value: daily});
//declare("VirtualParameters.VendorSignalSINR", {value: daily});
//declare("VirtualParameters.lteRSSI", {value: daily});
//declare("VirtualParameters.lteRSRQ", {value: daily});
//declare("VirtualParameters.lteSINR", {value: daily});
//declare("VirtualParameters.lteRSRP", {value: daily});
//declare("VirtualParameters.cpeUPTIME", {value: daily});