telefonicaid / lightweightm2m-iotagent

IoT Agent accepting COAP requests. Designed to be a bridge between the OMA Lightweight M2M protocol and the NGSI interface.
https://fiware-iotagent-lwm2m.rtfd.io/
GNU Affero General Public License v3.0
24 stars 31 forks source link

error when trying to use mongodb as deviceregistry #116

Open chicco785 opened 6 years ago

chicco785 commented 6 years ago

The service complain about a missing property:

time=2018-03-02T02:57:47.002Z | lvl=INFO | corr=n/a | trans=n/a | op=LWM2MLib.Server | msg=Starting Lightweight M2M Server
time=2018-03-02T02:57:47.025Z | lvl=INFO | corr=n/a | trans=n/a | op=LWM2MLib.Server | msg=Memory Device registry selected for Lightweight M2M Library
time=2018-03-02T02:57:47.063Z | lvl=INFO | corr=n/a | trans=n/a | op=LWM2MLib.Server | msg=Validating configuration types
time=2018-03-02T02:57:47.069Z | lvl=INFO | corr=n/a | trans=n/a | op=LWM2MLib.COAPRouter | msg=Starting COAP Server on port [5684]
time=2018-03-02T02:57:47.083Z | lvl=INFO | corr=n/a | trans=n/a | op=LWM2MLib.COAPRouter | msg=COAP Server started successfully
time=2018-03-02T02:57:47.083Z | lvl=INFO | corr=n/a | trans=n/a | op=LWM2MLib.Server | msg=Loading routes
time=2018-03-02T02:57:47.083Z | lvl=INFO | corr=n/a | trans=n/a | op=LWM2MLib.Server | msg=Loading default handlers
time=2018-03-02T02:57:47.215Z | lvl=INFO | corr=n/a | trans=n/a | op=IoTAgentNGSI.Global | msg=Activating IOT Agent NGSI Library.
time=2018-03-02T02:57:47.215Z | lvl=INFO | corr=n/a | trans=n/a | op=IoTAgentNGSI.Global | msg=MongoDB Device registry selected for NGSI Library
time=2018-03-02T02:57:47.680Z | lvl=FATAL | corr=n/a | trans=n/a | op=n/a | msg=An unexpected exception has been raised. Ignoring: TypeError: Cannot read property 'socketOptions' of undefined`

configuration is based on the default one:

    var config = {};

    config.lwm2m = {
        logLevel: 'DEBUG',
        port: 5684,
        defaultType: 'Device',
        ipProtocol: 'udp4',
        serverProtocol: 'udp4',
        /**
         * When a LWM2M client has active attributes, the IOTA sends an observe instruction for each one, just after the
         * client registers. This may cause cause an error when the client takes too long to start listening, as the
         * observe requests may not reach its destiny. This timeout (ms) is used to give the client the opportunity to
         * create the listener before the server sends the requests.
         */
        delayedObservationTimeout: 50,
        formats: [
            {
                name: 'application-vnd-oma-lwm2m/text',
                value: 1541
            },
            {
                name: 'application-vnd-oma-lwm2m/tlv',
                value: 1542
            },
            {
                name: 'application-vnd-oma-lwm2m/json',
                value: 1543
            },
            {
                name: 'application-vnd-oma-lwm2m/opaque',
                value: 1544
            }
        ],
        writeFormat: 'application-vnd-oma-lwm2m/text',
        types: [ ]
    };

    config.ngsi = {
        logLevel: 'DEBUG',
        contextBroker: {
            host: 'orion-orion.prod',
            port: '1026'
        },
        server: {
            port: 4041
        },
        deviceRegistry: {
            //type: 'memory'
            type: 'mongodb'
        },
        mongodb: {
            host: 'mongo-rs-mongodb-replicaset-0.mongo-rs-mongodb-replicaset.prod,mongo-rs-mongodb-replicaset-1.mongo-rs-mongodb-replicaset.prod,mongo-rs-mongodb-replicaset-2.mongo-rs-mongodb-replicaset.prod',
            port: '27017',
            db: 'iotagentlm2m'
            //replicaSet: ''
        },
        types: { },
        service: 'smartGondor',
        subservice: '/gardens',
        providerUrl: 'http://localhost:4041',
        deviceRegistrationDuration: 'P1Y',
        defaultType: 'Thing'
    };

    module.exports = config;
AlvaroVega commented 6 years ago

Probably related (and fixed by): https://github.com/telefonicaid/lwm2m-node-lib/pull/129