I added the following lines to the inform provision script -
// Initial Inform
let now = Date.now();
declare(“InternetGatewayDevice.X_ZHONE_Dot1xPaeSystemObject.RadiusAccClient.RadiusAccClientIdentifier”, {value: now});
declare(“InternetGatewayDevice.DeviceInfo.ModelName”, {value: now});
declare(“InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress”, {value: now});
declare(“InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.MACAddress”, {value: now});
However I never get -
declare(“InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress”, {value: now});
declare(“InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.MACAddress”, {value: now});
to populate until I go into the device itself and summon the device.
Can someone please help me understand my issue?
Its working exactly as designed. The act of putting something in the provision script doesn’t make GenieACS reach out and communicate with all the CPEs. Everything in GenieACS is event driven. With the events being initiated by the CPE. Summoning a CPE asks the CPE to do a periodic inform (“2 PERIODIC” is the event code for that). This is why nothing updates until you summon it. You could also wait and when the inform interval has passed the CPE will automatically inform.
I would change your provision script to put an age on data. Especially because the modem name and mac address will not change.
let now = Date.now();
declare(“InternetGatewayDevice.X_ZHONE_Dot1xPaeSystemObject.RadiusAccClient.RadiusAccClientIdentifier”, {value: now});
declare(“InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress”, {value: now});
// These two parameters will never change, so don't keep asking the CPE to report the value.
declare(“InternetGatewayDevice.DeviceInfo.ModelName”, {value: 1});
declare(“InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.MACAddress”, {value: 1});