GetParameterNames not supported by CPE - import data model manually?

Much appreciate your answer!

A GPN is sent because one or more of the parameters you listed haven’t been discovered yet. Internally, any parameter you reference can be in 3 possible states: exists, doesn’t exist, or undiscovered.

I have one question: if the database already contains all elements of the ManagementServer object with values for the specific device, why GenieACS tries to do GPN? My idea was that I load the relevant parts of the data model of the CPE via mongocli, so all the values are already there, so GenieACS do not need to do GPN. I did this, yet GenieACS still tries to do GPN. If I can do something on the DB level to add the missing data, then we dont need to touch the code.

You might be missing a _timestamp property under Device.ManagementServer. What does the object in the DB look like?

This is the complete ManagementServer object in the DB for the device:

  ManagementServer: {
    ConnectionRequestURL: {
      _object: false,
      _timestamp: ISODate('2025-07-04T10:20:36.401Z'),
      _type: 'xsd:string',
      _value: 'http://10.3.0.1:7547/ConnectionRequest/001D4C-TNW232800000'
    },
    ParameterKey: {
      _object: false,
      _timestamp: ISODate('2025-07-04T10:20:36.401Z'),
      _type: 'xsd:string',
      _value: ''
    },
    PeriodicInformEnable: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:bool',
      _value: 'true'
    },
    PeriodicInformInterval: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:int',
      _value: '600'
    },
    ConnectionRequestUsername: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:string',
      _value: 'username'
    },
    ConnectionRequestPassword: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:string',
      _value: 'password'
    },
    InformParameterNumberOfEntries: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:int',
      _value: ''
    },
    Username: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:string',
      _value: 'username'
    },
    Password: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:string',
      _value: 'password'
    },
    URL: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:string',
      _value: 'http://example.com:7013/cwmpWeb/WGCPEMgt'
    },
    _object: true
  },

and yet, after the initial contact GenieACS sends a GPN for the “ManagementServer” object.

FYI, GPV does work with this device, only GPN is not implemented.

As I suspected in my previous comment, you’re missing _timestamp property.

Obviously I am missing something then, as I see the _timestamp property for every element of the object. :upside_down_face: Can you please help from where is it missing (or maybe the format is not correct?) ?

Directly under ManagementServer:

ManagementServer: {
    ConnectionRequestURL: {
      _object: false,
      _timestamp: ISODate('2025-07-04T10:20:36.401Z'),
      _type: 'xsd:string',
      _value: 'http://10.3.0.1:7547/ConnectionRequest/001D4C-TNW232800000'
    },
    ParameterKey: {
      _object: false,
      _timestamp: ISODate('2025-07-04T10:20:36.401Z'),
      _type: 'xsd:string',
      _value: ''
    },
    PeriodicInformEnable: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:bool',
      _value: 'true'
    },
    PeriodicInformInterval: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:int',
      _value: '600'
    },
    ConnectionRequestUsername: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:string',
      _value: 'username'
    },
    ConnectionRequestPassword: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:string',
      _value: 'password'
    },
    InformParameterNumberOfEntries: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:int',
      _value: ''
    },
    Username: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:string',
      _value: 'username'
    },
    Password: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:string',
      _value: 'password'
    },
    URL: {
      _object: false,
      _timestamp: ISODate('2025-06-08T14:51:32.138Z'),
      _type: 'xsd:string',
      _value: 'http://example.com:7013/cwmpWeb/WGCPEMgt'
    },
    _object: true,
    _timestamp: ISODate('2025-07-04T10:20:36.401Z')
  },
1 Like

Ok, so this is how the management server object looks like now:

   "ManagementServer": {
        "ConnectionRequestURL": {
            "_object": false,
            "_timestamp": {
                "$date": "2025-09-05T12:34:54.067Z"
            },
            "_type": "xsd:string",
            "_value": "http://10.3.0.1:7547/ConnectionRequest/001D4C-TNW232700000"
        },
        "ParameterKey": {
            "_object": false,
            "_timestamp": {
                "$date": "2025-09-05T12:34:54.067Z"
            },
            "_type": "xsd:string",
            "_value": ""
        },
        "PeriodicInformEnable": {
            "_object": false,
            "_timestamp": {
                "$date": "2025-06-08T14:51:32.138Z"
            },
            "_type": "xsd:bool",
            "_value": "true"
        },
        "PeriodicInformInterval": {
            "_object": false,
            "_timestamp": {
                "$date": "2025-06-08T14:51:32.138Z"
            },
            "_type": "xsd:int",
            "_value": "600"
        },
        "ConnectionRequestUsername": {
            "_object": false,
            "_timestamp": {
                "$date": "2025-06-08T14:51:32.138Z"
            },
            "_type": "xsd:string",
            "_value": "username"
        },
        "ConnectionRequestPassword": {
            "_object": false,
            "_timestamp": {
                "$date": "2025-06-08T14:51:32.138Z"
            },
            "_type": "xsd:string",
            "_value": "password"
        },
        "InformParameterNumberOfEntries": {
            "_object": false,
            "_timestamp": {
                "$date": "2025-06-08T14:51:32.138Z"
            },
            "_type": "xsd:int",
            "_value": ""
        },
        "Username": {
            "_object": false,
            "_timestamp": {
                "$date": "2025-06-08T14:51:32.138Z"
            },
            "_type": "xsd:string",
            "_value": "username"
        },
        "Password": {
            "_object": false,
            "_timestamp": {
                "$date": "2025-06-08T14:51:32.138Z"
            },
            "_type": "xsd:string",
            "_value": "password"
        },
        "URL": {
            "_object": false,
            "_timestamp": {
                "$date": "2025-06-08T14:51:32.138Z"
            },
            "_type": "xsd:string",
            "_value": "http://example.com:7013/cwmpWeb/WGCPEMgt"
        },
        "_object": true,
        "_timestamp": {
            "$date": "2025-06-08T14:51:32.138Z"
        }
    },

and the ACS still tries to do GPN for the ManagementServer object.

Am I missing something or the syntax is still not correct?