I use API for example to POST some parameters: curl -i 'http://localhost:7557/devices/F48CEB-Router-QXNN1J1004416/tasks?connection_request' -X POST --data '{"name":"setParameterValues", "parameterValues":[["InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID", "GenieACS", "xsd:string"],["InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.PreSharedKey.1.PreSharedKey", "hello world", "xsd:string"]]}'
but what should I send with curl to “re summon” device with actual settings?
I trying to integrate our web panel for customers with GenieACS but problem is how to “re summon” device after sending POST data and GET actual data not cached by GenieACS.
GenieACS will not send the value to the CPE again if it thinks the desired value is the current value. There is no way to “force” GenieACS to send the SetParameterValue again. To work around this, there are two methods. You can use a provision script and set the second value (the timestamp value) of the declare to Date.now(), like this:
declare(‘InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID’, {value: Date.now()}, {value: “GenieACS”});
Or you can do a GetParameterValue before the SetParameterValue in your API calls. This is the method I choose.
curl -i 'http://localhost:7557/devices/F48CEB-Router-QXNN1J1004416/tasks' -X POST --data '{"name":"getParameterValues", "parameterValues":["InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID", "InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.PreSharedKey.1.PreSharedKey"]}'
Followed by: curl -i 'http://localhost:7557/devices/F48CEB-Router-QXNN1J1004416/tasks?connection_request' -X POST --data '{"name":"setParameterValues", "parameterValues":[["InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID", "GenieACS", "xsd:string"],["InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.PreSharedKey.1.PreSharedKey", "hello world", "xsd:string"]]}'
Notice in the GPV API request I took out the connection_request url option. This is so GenieACS will batch the calls to the CPE.