lightweightm2m-iotagent
lightweightm2m-iotagent copied to clipboard
error when trying to use mongodb as deviceregistry
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;
Probably related (and fixed by): https://github.com/telefonicaid/lwm2m-node-lib/pull/129