Engineering-Research-and-Development / iotagent-opcua

IoT Agent for OPC UA protocol
https://iotagent-opcua.rtfd.io/
GNU Affero General Public License v3.0
41 stars 21 forks source link

Multiple inputs command and output result #96

Closed alberto072710 closed 1 year ago

alberto072710 commented 1 year ago

Hi, I am trying to send a command that sending two numbers gives me the sum of both as a result.

I attach an image of the Prosys

Captura de pantalla 2023-01-27 120558

The first question that arises is how can I send a command with multiple input arguments.

Captura de pantalla 2023-01-27 120654

How are the output parameters received? What is the meaning of commandResult and commandStatus?

Captura de pantalla 2023-01-27 120728

config.js

const config = {};

config.iota = {
    logLevel: 'DEBUG',
    timestamp: true,
    contextBroker: {
        host: 'localhost',
        port: '1026',
        ngsiVersion: 'v2',
        jsonLdContext: 'https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld',
        service: 'opcua_car',
        subservice: '/demo'
    },
    server: {
        port: 4041
    },
    deviceRegistry: {
        type: 'mongodb'
    },
    mongodb: {
        host: 'localhost',
        port: '27017',
        db: 'iotagent_opcua'
    },
    types: {
        Habitacion: {
            active: [
                {
                    name: 'temperature',
                    type: 'Float'
                },
                {
                    name: 'pressure',
                    type: 'Integer'
                }
            ],
            lazy: [],
            commands: [
                {
                    name: 'temperatureCommand',
                    type: 'command'
                },
                {
                    name: 'suma',
                    type: 'command'
                },
                {
                    name: 'ajusteTemperatura',
                    type 'command'
                }
            ]
        }
    },
    contexts: [
        {
            id: 'Habitacion:001',
            type: 'Habitacion',
            mappings: [
                {
                    ocb_id: 'pressure',
                    opcua_id: 'ns=4;i=4',
                    object_id: 'ns=4;i=4',
                    inputArguments: []
                },
                {
                    ocb_id: 'temperature',
                    opcua_id: 'ns=4;i=3',
                    object_id: 'ns=4;i=3',
                    inputArguments: []
                }
            ]
        }
    ],
    contextSubscriptions: [
        {
            id: 'Habitacion:001',
            type: 'Habitacion',
            mappings: [
                {
                    ocb_id: 'temperatureCommand',
                    opcua_id: 'ns=4;i=8',
                    object_id: 'ns=4;i=1',
                    inputArguments: []
                },
                {
                    ocb_id: 'suma',
                    opcua_id: 'ns=4;i=9',
                    object_id: 'ns=4;i=1',
                    inputArguments: [
                        {
                            dataType: 4,
                            type: 'DATO1'
                        },
                        {
                            dataType: 4,
                            type: 'DATO2'
                        }
                    ]   
                },
                {
                    ocb_id: 'ajusteTemperatura',
                    opcua_id: 'ns=4;i=12',
                    object_id: 'ns=4;i=1',
                    inputArguments: [
                        {
                            dataType: 4,
                            type: 'TEMPERATURA'
                        }
                    ]   
                }
            ]
        }
    ],
    events:[],
    service: 'opcua_car',
    subservice: '/demo',
    providerUrl: 'http://localhost:4041',
    deviceRegistrationDuration: 'P20Y',
    defaultType: 'Device',
    defaultResource: '/iot/opcua',
    explicitAttrs: false
};

config.opcua = {
    subscription: {
        maxNotificationsPerPublish: 1000,
        publishingEnabled: true,
        requestedLifetimeCount: 100,
        requestedMaxKeepAliveCount: 10,
        requestedPublishingInterval: 1000,
        priority: 128
    },
    endpoint: 'opc.tcp://192.168.2.1:4840',
    securityMode: 'None',
    securityPolicy: 'None',
    username: null,
    uniqueSubscription: false
};

config.mappingTool = {
    polling: false,
    /**
     * agentId prefix to be assigned to the newly generated entity from MappingTool execution
     */
    agentId: 'age01_',
    /**
     * Namespaces to ignore when crawling nodes from OPC UA Server
     */
    namespaceIgnore: '0,7',
    /**
     * entityId to be assigned to the newly generated entity from MappingTool execution
     */
    entityId: 'age01_Car',
    /**
     * entityType to be assigned to the newly generated entity from MappingTool execution
     */
    entityType: 'Device'
};
config.jexlTransformations = {};
config.configRetrieval = false;
config.defaultKey = 'iot';
config.defaultTransport = 'OPCUA';
//config.multiCore = false;
config.autoprovision = true;
module.exports = config;

Thank you very much for your help

manfredipist commented 1 year ago

hi @alberto072710! Answering your questions:

  1. to execute a command with multiple inputs you just need to provide them in the "value" array like in the following test (test/unit/lib/OPCUABinding.js r:208)
    it('Should execute a command with multiple arguments', (done) => {
                const apiKey = mockConfig.defaultKey;
                const device = mockDevice;
                const attribute = {
                    name: 'Accelerate',
                    value: '[10,10]'
                };
                opcuaBinding.executeCommand(apiKey, device, attribute);
                done();
            });

    in your case, value: [DATO1, DATO2]

  2. CommandResult will contain the result from the command execution while CommandStatus will contain the updated status code from command execution
alberto072710 commented 1 year ago

Hi, Thank you very much for your quick response. I have tried what you told me but I have not been successful. I run the command: command

But I can't get the sum in the info attribute and the status attribute stays pending

suma_status

If I run this command from prosys if I get the correct output.

prosys_suma

The logs are as follows:

2023-01-31 13:35:25 time=2023-01-31T12:35:25.736Z | lvl=DEBUG | corr=bca84fd4-a163-11ed-bd94-0242ac140003; cbfwd=1 | trans=32ac83b6-1f8c-45d2-ba55-319dee4f7e16 | op=IoTAgentNGSI.GenericMiddlewares | from=n/a | srv=opcua_car | subsrv=/demo | msg=Request for path [//op/update] from [iotagent-opcua:4041] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.736Z | lvl=DEBUG | corr=bca84fd4-a163-11ed-bd94-0242ac140003; cbfwd=1 | trans=32ac83b6-1f8c-45d2-ba55-319dee4f7e16 | op=IoTAgentNGSI.GenericMiddlewares | from=n/a | srv=opcua_car | subsrv=/demo | msg=Body:
2023-01-31 13:35:25 
2023-01-31 13:35:25 {
2023-01-31 13:35:25     "entities": [
2023-01-31 13:35:25         {
2023-01-31 13:35:25             "id": "Habitacion:001",
2023-01-31 13:35:25             "type": "Habitacion",
2023-01-31 13:35:25             "suma": {
2023-01-31 13:35:25                 "type": "command",
2023-01-31 13:35:25                 "value": [
2023-01-31 13:35:25                     3,
2023-01-31 13:35:25                     4
2023-01-31 13:35:25                 ],
2023-01-31 13:35:25                 "metadata": {}
2023-01-31 13:35:25             }
2023-01-31 13:35:25         }
2023-01-31 13:35:25     ],
2023-01-31 13:35:25     "actionType": "update"
2023-01-31 13:35:25 }
2023-01-31 13:35:25 
2023-01-31 13:35:25  | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.736Z | lvl=DEBUG | corr=bca84fd4-a163-11ed-bd94-0242ac140003; cbfwd=1 | trans=32ac83b6-1f8c-45d2-ba55-319dee4f7e16 | op=IoTAgentNGSI.ContextServer-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Handling v2 update from [iotagent-opcua:4041] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.737Z | lvl=DEBUG | corr=bca84fd4-a163-11ed-bd94-0242ac140003; cbfwd=1 | trans=32ac83b6-1f8c-45d2-ba55-319dee4f7e16 | op=IoTAgentNGSI.ContextServer-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg={
2023-01-31 13:35:25     "entities": [
2023-01-31 13:35:25         {
2023-01-31 13:35:25             "id": "Habitacion:001",
2023-01-31 13:35:25             "type": "Habitacion",
2023-01-31 13:35:25             "suma": {
2023-01-31 13:35:25                 "type": "command",
2023-01-31 13:35:25                 "value": [
2023-01-31 13:35:25                     3,
2023-01-31 13:35:25                     4
2023-01-31 13:35:25                 ],
2023-01-31 13:35:25                 "metadata": {}
2023-01-31 13:35:25             }
2023-01-31 13:35:25         }
2023-01-31 13:35:25     ],
2023-01-31 13:35:25     "actionType": "update"
2023-01-31 13:35:25 } | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.737Z | lvl=DEBUG | corr=bca84fd4-a163-11ed-bd94-0242ac140003; cbfwd=1 | trans=32ac83b6-1f8c-45d2-ba55-319dee4f7e16 | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with [{"name":"Habitacion:001","service":"opcua_car","subservice":"/demo","type":"Habitacion"}]. | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.738Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["service","subservice","type","apikey"] with queryObj {"service":"opcua_car","subservice":"/demo","type":"Habitacion","apikey":"iot"} | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.740Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["service","subservice","type","apikey"]] not found: [{"service":"opcua_car","subservice":"/demo","type":"Habitacion","apikey":"iot"}] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.740Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["service","subservice","apikey"] with queryObj {"service":"opcua_car","subservice":"/demo","apikey":"iot"} | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.741Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Device group data found: {"_id":"63d905c02068596abb6aeed0","resource":"/iot/opcua","apikey":"iot","type":"Device","service":"opcua_car","subservice":"/demo"} | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.741Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.DeviceService | from=n/a | srv=n/a | subsrv=n/a | msg=deviceData before merge with conf: {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false} defaults: [null,null,[],[],[],[],[]] fields: ["lazy","internalAttributes","active","staticAttributes","commands","subscriptions"] configuration {"_id":"63d905c02068596abb6aeed0","resource":"/iot/opcua","apikey":"iot","type":"Device","service":"opcua_car","subservice":"/demo"} | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.742Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.DeviceService | from=n/a | srv=n/a | subsrv=n/a | msg=deviceData after merge with conf: {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.742Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.UpdateHandler | from=n/a | srv=n/a | subsrv=n/a | msg=Handling update [{"type":"command","value":[3,4],"metadata":{},"name":"suma"}] for device [Habitacion:001] in service [opcua_car - /demo] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.742Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with [{"name":"Habitacion:001","service":"opcua_car","subservice":"/demo","type":"Habitacion"}]. | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.742Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.CommandHandler | from=n/a | srv=n/a | subsrv=n/a | msg=Handling command [{"type":"command","value":[3,4],"metadata":{},"name":"suma"}] for device [Habitacion:001] in service [opcua_car - /demo] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.742Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with [{"name":"Habitacion:001","service":"opcua_car","subservice":"/demo","type":"Habitacion"}]. | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.743Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=executeWithDeviceInfo entityName Habitacion:001 type Habitacion apikey iot attributes [{"name":"suma_status","type":"commandStatus","value":"PENDING"}] deviceInformation {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.743Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["type"] with queryObj {"type":"Habitacion"} | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.746Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Getting effective API Key | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.746Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Using device apikey: iot | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.746Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.UpdateHandler | from=n/a | srv=opcua_car | subsrv=/demo | msg=Sending update execution to device [Habitacion:001] with apikey [iot] and attribute [{ type: 'command', value: [Array], metadata: {}, name: 'suma' }] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.746Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Creating execution for function [executeUpdate] and protocol [OPCUA] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.746Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Binding found for function [executeUpdate] and protocol [OPCUA] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.747Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Getting effective API Key | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.747Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Using device apikey: iot | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.747Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.CommandHandler | from=n/a | srv=opcua_car | subsrv=/demo | msg=Sending command execution to device [Habitacion:001] with apikey [iot] and payload [{"suma":[3,4]}]  | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.747Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Creating execution for function [executeCommand] and protocol [OPCUA] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.747Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Binding found for function [executeCommand] and protocol [OPCUA] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.747Z | lvl=WARN | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=Unable to determine the type of the command input, considering it as a single value | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.747Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=Method to call =[{"objectId":"ns=4;i=1","methodId":"ns=4;i=9","inputArguments":[{"dataType":4,"type":"DATO1","value":[3,4]},{"dataType":4,"type":"DATO2"}]}] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.748Z | lvl=ERROR | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.CommandHandler | from=n/a | srv=opcua_car | subsrv=/demo | msg=COMMAND-003: Command execution could not be handled, [Error: expecting a number NaN
2023-01-31 13:35:25     at coerceVariantType (/opt/iotagent-opcua/node_modules/node-opcua-variant/dist/variant.js:629:23)
2023-01-31 13:35:25     at constructHook (/opt/iotagent-opcua/node_modules/node-opcua-variant/dist/variant.js:374:25)
2023-01-31 13:35:25     at new Variant (/opt/iotagent-opcua/node_modules/node-opcua-variant/dist/variant.js:59:26)
2023-01-31 13:35:25     at BasicTypeSchema._coerceVariant [as coerce] (/opt/iotagent-opcua/node_modules/node-opcua-variant/dist/variant.js:46:66)
2023-01-31 13:35:25     at initialize_field (/opt/iotagent-opcua/node_modules/node-opcua-factory/dist/schema_helpers.js:65:20)
2023-01-31 13:35:25     at initialize_field_array (/opt/iotagent-opcua/node_modules/node-opcua-factory/dist/schema_helpers.js:94:17)
2023-01-31 13:35:25     at new CallMethodRequest (/opt/iotagent-opcua/node_modules/node-opcua-types/dist/_generated_opcua_types.js:4171:79)
2023-01-31 13:35:25     at /opt/iotagent-opcua/node_modules/node-opcua-types/dist/_generated_opcua_types.js:4319:67
2023-01-31 13:35:25     at Array.map (<anonymous>)
2023-01-31 13:35:25     at new CallRequest (/opt/iotagent-opcua/node_modules/node-opcua-types/dist/_generated_opcua_types.js:4319:56)
2023-01-31 13:35:25     at ClientSessionImpl.call (/opt/iotagent-opcua/node_modules/node-opcua-client/dist/private/client_session_impl.js:920:25)
2023-01-31 13:35:25     at /opt/iotagent-opcua/node_modules/thenify/index.js:72:10
2023-01-31 13:35:25     at new Promise (<anonymous>)
2023-01-31 13:35:25     at ClientSessionImpl.call (/opt/iotagent-opcua/node_modules/thenify/index.js:70:12)
2023-01-31 13:35:25     at AsyncFunction.executeCommand (/opt/iotagent-opcua/lib/bindings/OPCUABinding.js:377:47)
2023-01-31 13:35:25     at /opt/iotagent-opcua/node_modules/async/dist/async.js:196:27] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.752Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["type"]] not found: [{"type":"Habitacion"}] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.752Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=error {"name":"DEVICE_GROUP_NOT_FOUND","message":"Couldn\t find device group for fields: [\"type\"] and values: {\"type\":\"Habitacion\"}","code":404} in get group device | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.752Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.NGSIUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=typeInformation {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.752Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.expressionPlugin | from=n/a | srv=opcua_car | subsrv=/demo | msg=expressionPlugin entity {"suma_status":{"type":"commandStatus","value":"PENDING"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.752Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MultiEntityPlugin | from=n/a | srv=opcua_car | subsrv=/demo | msg=multiEntityPlugin entity {"suma_status":{"type":"commandStatus","value":"PENDING"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.753Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=typeInformation: {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.753Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Updating device value in the Context Broker at [http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion] | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.753Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Using the following NGSI v2 request:
2023-01-31 13:35:25 
2023-01-31 13:35:25 {
2023-01-31 13:35:25     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-01-31 13:35:25     "method": "PATCH",
2023-01-31 13:35:25     "headers": {
2023-01-31 13:35:25         "fiware-service": "opcua_car",
2023-01-31 13:35:25         "fiware-servicepath": "/demo"
2023-01-31 13:35:25     },
2023-01-31 13:35:25     "json": {
2023-01-31 13:35:25         "suma_status": {
2023-01-31 13:35:25             "type": "commandStatus",
2023-01-31 13:35:25             "value": "PENDING",
2023-01-31 13:35:25             "metadata": {
2023-01-31 13:35:25                 "TimeInstant": {
2023-01-31 13:35:25                     "type": "DateTime",
2023-01-31 13:35:25                     "value": "2023-01-31T12:35:25.753Z"
2023-01-31 13:35:25                 }
2023-01-31 13:35:25             }
2023-01-31 13:35:25         },
2023-01-31 13:35:25         "TimeInstant": {
2023-01-31 13:35:25             "type": "DateTime",
2023-01-31 13:35:25             "value": "2023-01-31T12:35:25.753Z"
2023-01-31 13:35:25         }
2023-01-31 13:35:25     }
2023-01-31 13:35:25 }
2023-01-31 13:35:25 
2023-01-31 13:35:25  | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.753Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Request | from=n/a | srv=opcua_car | subsrv=/demo | msg=Options: {
2023-01-31 13:35:25     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-01-31 13:35:25     "method": "PATCH",
2023-01-31 13:35:25     "headers": {
2023-01-31 13:35:25         "fiware-service": "opcua_car",
2023-01-31 13:35:25         "fiware-servicepath": "/demo"
2023-01-31 13:35:25     },
2023-01-31 13:35:25     "json": {
2023-01-31 13:35:25         "suma_status": {
2023-01-31 13:35:25             "type": "commandStatus",
2023-01-31 13:35:25             "value": "PENDING",
2023-01-31 13:35:25             "metadata": {
2023-01-31 13:35:25                 "TimeInstant": {
2023-01-31 13:35:25                     "type": "DateTime",
2023-01-31 13:35:25                     "value": "2023-01-31T12:35:25.753Z"
2023-01-31 13:35:25                 }
2023-01-31 13:35:25             }
2023-01-31 13:35:25         },
2023-01-31 13:35:25         "TimeInstant": {
2023-01-31 13:35:25             "type": "DateTime",
2023-01-31 13:35:25             "value": "2023-01-31T12:35:25.753Z"
2023-01-31 13:35:25         }
2023-01-31 13:35:25     }
2023-01-31 13:35:25 } | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.757Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Request | from=n/a | srv=opcua_car | subsrv=/demo | msg=Response "" | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.757Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Received the following response from the CB: Value updated successfully
2023-01-31 13:35:25  | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.757Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.ContextServer-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Update action from [iotagent-opcua:4041] handled successfully. | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.758Z | lvl=DEBUG | corr=bca84fd4-a163-11ed-bd94-0242ac140003; cbfwd=1 | trans=32ac83b6-1f8c-45d2-ba55-319dee4f7e16 | op=IoTAgentNGSI.DomainControl | from=n/a | srv=opcua_car | subsrv=/demo | msg=response-time: 21 | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.783Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=ns=4;i=9 read variable type -> { /* DataValue */
2023-01-31 13:35:25    value: Variant(Scalar<Null>, value: <null>)
2023-01-31 13:35:25    statusCode:      BadAttributeIdInvalid (0x80350000)
2023-01-31 13:35:25    serverTimestamp: null
2023-01-31 13:35:25    sourceTimestamp: null
2023-01-31 13:35:25 } | comp=IoTAgent
2023-01-31 13:35:25 time=2023-01-31T12:35:25.784Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=Update to execute =[{"nodeId":"ns=4;i=9","attributeId":13,"indexRange":null,"value":{"value":{"dataType":0,"value":[3,4]}}}] | comp=IoTAgent
2023-01-31 13:35:26 time=2023-01-31T12:35:26.859Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=subscription keepalive | comp=IoTAgent
2023-01-31 13:35:36 time=2023-01-31T12:35:36.886Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=subscription keepalive | comp=IoTAgent

I have also tried running a command with only one input attribute and one output attribute. The execution is correct but I do not get the output attribute.

comand_ajus

ajuste_temp_entit

prosys_ajuste

Logs:


2023-01-31 13:43:08 time=2023-01-31T12:43:08.687Z | lvl=DEBUG | corr=d09913ce-a164-11ed-bd94-0242ac140003; cbfwd=1 | trans=5fe91846-59f0-42e5-8710-73721fa7a7cb | op=IoTAgentNGSI.GenericMiddlewares | from=n/a | srv=opcua_car | subsrv=/demo | msg=Request for path [//op/update] from [iotagent-opcua:4041] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.688Z | lvl=DEBUG | corr=d09913ce-a164-11ed-bd94-0242ac140003; cbfwd=1 | trans=5fe91846-59f0-42e5-8710-73721fa7a7cb | op=IoTAgentNGSI.GenericMiddlewares | from=n/a | srv=opcua_car | subsrv=/demo | msg=Body:
2023-01-31 13:43:08 
2023-01-31 13:43:08 {
2023-01-31 13:43:08     "entities": [
2023-01-31 13:43:08         {
2023-01-31 13:43:08             "id": "Habitacion:001",
2023-01-31 13:43:08             "type": "Habitacion",
2023-01-31 13:43:08             "ajusteTemperatura": {
2023-01-31 13:43:08                 "type": "command",
2023-01-31 13:43:08                 "value": [
2023-01-31 13:43:08                     25
2023-01-31 13:43:08                 ],
2023-01-31 13:43:08                 "metadata": {}
2023-01-31 13:43:08             }
2023-01-31 13:43:08         }
2023-01-31 13:43:08     ],
2023-01-31 13:43:08     "actionType": "update"
2023-01-31 13:43:08 }
2023-01-31 13:43:08 
2023-01-31 13:43:08  | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.688Z | lvl=DEBUG | corr=d09913ce-a164-11ed-bd94-0242ac140003; cbfwd=1 | trans=5fe91846-59f0-42e5-8710-73721fa7a7cb | op=IoTAgentNGSI.ContextServer-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Handling v2 update from [iotagent-opcua:4041] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.688Z | lvl=DEBUG | corr=d09913ce-a164-11ed-bd94-0242ac140003; cbfwd=1 | trans=5fe91846-59f0-42e5-8710-73721fa7a7cb | op=IoTAgentNGSI.ContextServer-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg={
2023-01-31 13:43:08     "entities": [
2023-01-31 13:43:08         {
2023-01-31 13:43:08             "id": "Habitacion:001",
2023-01-31 13:43:08             "type": "Habitacion",
2023-01-31 13:43:08             "ajusteTemperatura": {
2023-01-31 13:43:08                 "type": "command",
2023-01-31 13:43:08                 "value": [
2023-01-31 13:43:08                     25
2023-01-31 13:43:08                 ],
2023-01-31 13:43:08                 "metadata": {}
2023-01-31 13:43:08             }
2023-01-31 13:43:08         }
2023-01-31 13:43:08     ],
2023-01-31 13:43:08     "actionType": "update"
2023-01-31 13:43:08 } | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.688Z | lvl=DEBUG | corr=d09913ce-a164-11ed-bd94-0242ac140003; cbfwd=1 | trans=5fe91846-59f0-42e5-8710-73721fa7a7cb | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with [{"name":"Habitacion:001","service":"opcua_car","subservice":"/demo","type":"Habitacion"}]. | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.690Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["service","subservice","type","apikey"] with queryObj {"service":"opcua_car","subservice":"/demo","type":"Habitacion","apikey":"iot"} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.692Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["service","subservice","type","apikey"]] not found: [{"service":"opcua_car","subservice":"/demo","type":"Habitacion","apikey":"iot"}] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.692Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["service","subservice","apikey"] with queryObj {"service":"opcua_car","subservice":"/demo","apikey":"iot"} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.693Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Device group data found: {"_id":"63d905c02068596abb6aeed0","resource":"/iot/opcua","apikey":"iot","type":"Device","service":"opcua_car","subservice":"/demo"} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.693Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.DeviceService | from=n/a | srv=n/a | subsrv=n/a | msg=deviceData before merge with conf: {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false} defaults: [null,null,[],[],[],[],[]] fields: ["lazy","internalAttributes","active","staticAttributes","commands","subscriptions"] configuration {"_id":"63d905c02068596abb6aeed0","resource":"/iot/opcua","apikey":"iot","type":"Device","service":"opcua_car","subservice":"/demo"} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.694Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.DeviceService | from=n/a | srv=n/a | subsrv=n/a | msg=deviceData after merge with conf: {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.694Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.UpdateHandler | from=n/a | srv=n/a | subsrv=n/a | msg=Handling update [{"type":"command","value":[25],"metadata":{},"name":"ajusteTemperatura"}] for device [Habitacion:001] in service [opcua_car - /demo] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.694Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with [{"name":"Habitacion:001","service":"opcua_car","subservice":"/demo","type":"Habitacion"}]. | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.694Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.CommandHandler | from=n/a | srv=n/a | subsrv=n/a | msg=Handling command [{"type":"command","value":[25],"metadata":{},"name":"ajusteTemperatura"}] for device [Habitacion:001] in service [opcua_car - /demo] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.694Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with [{"name":"Habitacion:001","service":"opcua_car","subservice":"/demo","type":"Habitacion"}]. | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.694Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=executeWithDeviceInfo entityName Habitacion:001 type Habitacion apikey iot attributes [{"name":"ajusteTemperatura_status","type":"commandStatus","value":"PENDING"}] deviceInformation {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.694Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["type"] with queryObj {"type":"Habitacion"} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.697Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Getting effective API Key | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.697Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Using device apikey: iot | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.697Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.UpdateHandler | from=n/a | srv=opcua_car | subsrv=/demo | msg=Sending update execution to device [Habitacion:001] with apikey [iot] and attribute [{
2023-01-31 13:43:08   type: 'command',
2023-01-31 13:43:08   value: [Array],
2023-01-31 13:43:08   metadata: {},
2023-01-31 13:43:08   name: 'ajusteTemperatura'
2023-01-31 13:43:08 }] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.697Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Creating execution for function [executeUpdate] and protocol [OPCUA] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.697Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Binding found for function [executeUpdate] and protocol [OPCUA] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.698Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Getting effective API Key | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.698Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Using device apikey: iot | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.698Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.CommandHandler | from=n/a | srv=opcua_car | subsrv=/demo | msg=Sending command execution to device [Habitacion:001] with apikey [iot] and payload [{"ajusteTemperatura":[25]}]  | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.698Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Creating execution for function [executeCommand] and protocol [OPCUA] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.698Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Binding found for function [executeCommand] and protocol [OPCUA] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.699Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=Command input not an array. Considering it as a single value | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.699Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=Method to call =[{"objectId":"ns=4;i=1","methodId":"ns=4;i=12","inputArguments":[{"dataType":4,"type":"TEMPERATURA","value":[25],"arrayType":0}]}] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.699Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["type"]] not found: [{"type":"Habitacion"}] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.699Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=error {"name":"DEVICE_GROUP_NOT_FOUND","message":"Couldn\t find device group for fields: [\"type\"] and values: {\"type\":\"Habitacion\"}","code":404} in get group device | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.699Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.NGSIUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=typeInformation {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.699Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.expressionPlugin | from=n/a | srv=opcua_car | subsrv=/demo | msg=expressionPlugin entity {"ajusteTemperatura_status":{"type":"commandStatus","value":"PENDING"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.699Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MultiEntityPlugin | from=n/a | srv=opcua_car | subsrv=/demo | msg=multiEntityPlugin entity {"ajusteTemperatura_status":{"type":"commandStatus","value":"PENDING"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.700Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=typeInformation: {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.700Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Updating device value in the Context Broker at [http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.700Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Using the following NGSI v2 request:
2023-01-31 13:43:08 
2023-01-31 13:43:08 {
2023-01-31 13:43:08     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-01-31 13:43:08     "method": "PATCH",
2023-01-31 13:43:08     "headers": {
2023-01-31 13:43:08         "fiware-service": "opcua_car",
2023-01-31 13:43:08         "fiware-servicepath": "/demo"
2023-01-31 13:43:08     },
2023-01-31 13:43:08     "json": {
2023-01-31 13:43:08         "ajusteTemperatura_status": {
2023-01-31 13:43:08             "type": "commandStatus",
2023-01-31 13:43:08             "value": "PENDING",
2023-01-31 13:43:08             "metadata": {
2023-01-31 13:43:08                 "TimeInstant": {
2023-01-31 13:43:08                     "type": "DateTime",
2023-01-31 13:43:08                     "value": "2023-01-31T12:43:08.700Z"
2023-01-31 13:43:08                 }
2023-01-31 13:43:08             }
2023-01-31 13:43:08         },
2023-01-31 13:43:08         "TimeInstant": {
2023-01-31 13:43:08             "type": "DateTime",
2023-01-31 13:43:08             "value": "2023-01-31T12:43:08.700Z"
2023-01-31 13:43:08         }
2023-01-31 13:43:08     }
2023-01-31 13:43:08 }
2023-01-31 13:43:08 
2023-01-31 13:43:08  | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.700Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Request | from=n/a | srv=opcua_car | subsrv=/demo | msg=Options: {
2023-01-31 13:43:08     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-01-31 13:43:08     "method": "PATCH",
2023-01-31 13:43:08     "headers": {
2023-01-31 13:43:08         "fiware-service": "opcua_car",
2023-01-31 13:43:08         "fiware-servicepath": "/demo"
2023-01-31 13:43:08     },
2023-01-31 13:43:08     "json": {
2023-01-31 13:43:08         "ajusteTemperatura_status": {
2023-01-31 13:43:08             "type": "commandStatus",
2023-01-31 13:43:08             "value": "PENDING",
2023-01-31 13:43:08             "metadata": {
2023-01-31 13:43:08                 "TimeInstant": {
2023-01-31 13:43:08                     "type": "DateTime",
2023-01-31 13:43:08                     "value": "2023-01-31T12:43:08.700Z"
2023-01-31 13:43:08                 }
2023-01-31 13:43:08             }
2023-01-31 13:43:08         },
2023-01-31 13:43:08         "TimeInstant": {
2023-01-31 13:43:08             "type": "DateTime",
2023-01-31 13:43:08             "value": "2023-01-31T12:43:08.700Z"
2023-01-31 13:43:08         }
2023-01-31 13:43:08     }
2023-01-31 13:43:08 } | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.704Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Request | from=n/a | srv=opcua_car | subsrv=/demo | msg=Response "" | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.704Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Received the following response from the CB: Value updated successfully
2023-01-31 13:43:08  | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.704Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.ContextServer-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Update action from [iotagent-opcua:4041] handled successfully. | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.705Z | lvl=DEBUG | corr=d09913ce-a164-11ed-bd94-0242ac140003; cbfwd=1 | trans=5fe91846-59f0-42e5-8710-73721fa7a7cb | op=IoTAgentNGSI.DomainControl | from=n/a | srv=opcua_car | subsrv=/demo | msg=response-time: 18 | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.742Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=subscription keepalive | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.770Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=ns=4;i=12 read variable type -> { /* DataValue */
2023-01-31 13:43:08    value: Variant(Scalar<Null>, value: <null>)
2023-01-31 13:43:08    statusCode:      BadAttributeIdInvalid (0x80350000)
2023-01-31 13:43:08    serverTimestamp: null
2023-01-31 13:43:08    sourceTimestamp: null
2023-01-31 13:43:08 } | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.770Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=Update to execute =[{"nodeId":"ns=4;i=12","attributeId":13,"indexRange":null,"value":{"value":{"dataType":0,"value":[25]}}}] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.891Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["resource","apikey"] with queryObj {"resource":"Habitacion","apikey":"iot"} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.893Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["resource","apikey"]] not found: [{"resource":"Habitacion","apikey":"iot"}] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.893Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=executeWithDeviceInfo entityName Habitacion:001 type Habitacion apikey iot attributes [{"name":"ajusteTemperatura_status","type":"commandStatus","value":"OK"},{"name":"ajusteTemperatura_info","type":"commandResult"}] deviceInformation {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.894Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["type"] with queryObj {"type":"Habitacion"} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.895Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["type"]] not found: [{"type":"Habitacion"}] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.895Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=error {"name":"DEVICE_GROUP_NOT_FOUND","message":"Couldn\t find device group for fields: [\"type\"] and values: {\"type\":\"Habitacion\"}","code":404} in get group device | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.895Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.NGSIUtils | from=n/a | srv=n/a | subsrv=n/a | msg=typeInformation {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.896Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.expressionPlugin | from=n/a | srv=n/a | subsrv=n/a | msg=expressionPlugin entity {"ajusteTemperatura_status":{"type":"commandStatus","value":"OK"},"ajusteTemperatura_info":{"type":"commandResult"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.896Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MultiEntityPlugin | from=n/a | srv=n/a | subsrv=n/a | msg=multiEntityPlugin entity {"ajusteTemperatura_status":{"type":"commandStatus","value":"OK"},"ajusteTemperatura_info":{"type":"commandResult"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.896Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=n/a | subsrv=n/a | msg=typeInformation: {"_id":"63d905c020685961af6aeed9","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false} | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.896Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=n/a | subsrv=n/a | msg=Updating device value in the Context Broker at [http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion] | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.896Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=n/a | subsrv=n/a | msg=Using the following NGSI v2 request:
2023-01-31 13:43:08 
2023-01-31 13:43:08 {
2023-01-31 13:43:08     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-01-31 13:43:08     "method": "PATCH",
2023-01-31 13:43:08     "headers": {
2023-01-31 13:43:08         "fiware-service": "opcua_car",
2023-01-31 13:43:08         "fiware-servicepath": "/demo"
2023-01-31 13:43:08     },
2023-01-31 13:43:08     "json": {
2023-01-31 13:43:08         "ajusteTemperatura_status": {
2023-01-31 13:43:08             "type": "commandStatus",
2023-01-31 13:43:08             "value": "OK",
2023-01-31 13:43:08             "metadata": {
2023-01-31 13:43:08                 "TimeInstant": {
2023-01-31 13:43:08                     "type": "DateTime",
2023-01-31 13:43:08                     "value": "2023-01-31T12:43:08.896Z"
2023-01-31 13:43:08                 }
2023-01-31 13:43:08             }
2023-01-31 13:43:08         },
2023-01-31 13:43:08         "ajusteTemperatura_info": {
2023-01-31 13:43:08             "type": "commandResult",
2023-01-31 13:43:08             "metadata": {
2023-01-31 13:43:08                 "TimeInstant": {
2023-01-31 13:43:08                     "type": "DateTime",
2023-01-31 13:43:08                     "value": "2023-01-31T12:43:08.896Z"
2023-01-31 13:43:08                 }
2023-01-31 13:43:08             }
2023-01-31 13:43:08         },
2023-01-31 13:43:08         "TimeInstant": {
2023-01-31 13:43:08             "type": "DateTime",
2023-01-31 13:43:08             "value": "2023-01-31T12:43:08.896Z"
2023-01-31 13:43:08         }
2023-01-31 13:43:08     }
2023-01-31 13:43:08 }
2023-01-31 13:43:08 
2023-01-31 13:43:08  | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.896Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Request | from=n/a | srv=n/a | subsrv=n/a | msg=Options: {
2023-01-31 13:43:08     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-01-31 13:43:08     "method": "PATCH",
2023-01-31 13:43:08     "headers": {
2023-01-31 13:43:08         "fiware-service": "opcua_car",
2023-01-31 13:43:08         "fiware-servicepath": "/demo"
2023-01-31 13:43:08     },
2023-01-31 13:43:08     "json": {
2023-01-31 13:43:08         "ajusteTemperatura_status": {
2023-01-31 13:43:08             "type": "commandStatus",
2023-01-31 13:43:08             "value": "OK",
2023-01-31 13:43:08             "metadata": {
2023-01-31 13:43:08                 "TimeInstant": {
2023-01-31 13:43:08                     "type": "DateTime",
2023-01-31 13:43:08                     "value": "2023-01-31T12:43:08.896Z"
2023-01-31 13:43:08                 }
2023-01-31 13:43:08             }
2023-01-31 13:43:08         },
2023-01-31 13:43:08         "ajusteTemperatura_info": {
2023-01-31 13:43:08             "type": "commandResult",
2023-01-31 13:43:08             "metadata": {
2023-01-31 13:43:08                 "TimeInstant": {
2023-01-31 13:43:08                     "type": "DateTime",
2023-01-31 13:43:08                     "value": "2023-01-31T12:43:08.896Z"
2023-01-31 13:43:08                 }
2023-01-31 13:43:08             }
2023-01-31 13:43:08         },
2023-01-31 13:43:08         "TimeInstant": {
2023-01-31 13:43:08             "type": "DateTime",
2023-01-31 13:43:08             "value": "2023-01-31T12:43:08.896Z"
2023-01-31 13:43:08         }
2023-01-31 13:43:08     }
2023-01-31 13:43:08 } | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.900Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Request | from=n/a | srv=n/a | subsrv=n/a | msg=Response "" | comp=IoTAgent
2023-01-31 13:43:08 time=2023-01-31T12:43:08.900Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=n/a | subsrv=n/a | msg=Received the following response from the CB: Value updated successfully
2023-01-31 13:43:08  | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.760Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=n/a | subsrv=n/a | msg=ns=4;i=3 value changed -> 25 | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.760Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.CommonBindings | from=n/a | srv=n/a | subsrv=n/a | msg=stringMessage: [25] parsedMessage: [25] | comp=IoTAgent | service=opcua_car | subservice=/demo
2023-01-31 13:43:09 time=2023-01-31T12:43:09.761Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.CommonBindings | from=n/a | srv=n/a | subsrv=n/a | msg=parserMessage array: [ 25 ] | comp=IoTAgent | service=opcua_car | subservice=/demo
2023-01-31 13:43:09 time=2023-01-31T12:43:09.761Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with filter [{"id":"Habitacion:001"}]. | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.768Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.CommonBindings | from=n/a | srv=n/a | subsrv=n/a | msg=Processing single measure for device [Habitacion:001] with apiKey [iot] | comp=IoTAgent | service=opcua_car | subservice=/demo
2023-01-31 13:43:09 time=2023-01-31T12:43:09.768Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.CommonBindings | from=n/a | srv=n/a | subsrv=n/a | msg=values updates [[{"name":"temperature","type":"Float","value":25}]] | comp=IoTAgent | service=opcua_car | subservice=/demo
2023-01-31 13:43:09 time=2023-01-31T12:43:09.769Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=executeWithDeviceInfo entityName Habitacion:001 type Habitacion apikey  attributes [{"name":"temperature","type":"Float","value":25}] deviceInformation {"lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"_id":"63d905c020685961af6aeed9","creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false} | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.769Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["type"] with queryObj {"type":"Habitacion"} | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.772Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["type"]] not found: [{"type":"Habitacion"}] | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.772Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=error {"name":"DEVICE_GROUP_NOT_FOUND","message":"Couldn\t find device group for fields: [\"type\"] and values: {\"type\":\"Habitacion\"}","code":404} in get group device | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.772Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.NGSIUtils | from=n/a | srv=n/a | subsrv=n/a | msg=typeInformation {"lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"_id":"63d905c020685961af6aeed9","creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false} | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.773Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.expressionPlugin | from=n/a | srv=n/a | subsrv=n/a | msg=expressionPlugin entity {"temperature":{"type":"Float","value":25,"object_id":"temperature"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.773Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.MultiEntityPlugin | from=n/a | srv=n/a | subsrv=n/a | msg=multiEntityPlugin entity {"temperature":{"type":"Float","value":25,"object_id":"temperature"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.774Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=n/a | subsrv=n/a | msg=typeInformation: {"lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"_id":"63d905c020685961af6aeed9","creationDate":"2023-01-31T12:12:48.249Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63d905c0037c611c70402b7b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false} | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.774Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=n/a | subsrv=n/a | msg=Updating device value in the Context Broker at [http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion] | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.774Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=n/a | subsrv=n/a | msg=Using the following NGSI v2 request:
2023-01-31 13:43:09 
2023-01-31 13:43:09 {
2023-01-31 13:43:09     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-01-31 13:43:09     "method": "PATCH",
2023-01-31 13:43:09     "headers": {
2023-01-31 13:43:09         "fiware-service": "opcua_car",
2023-01-31 13:43:09         "fiware-servicepath": "/demo"
2023-01-31 13:43:09     },
2023-01-31 13:43:09     "json": {
2023-01-31 13:43:09         "temperature": {
2023-01-31 13:43:09             "type": "Float",
2023-01-31 13:43:09             "value": 25,
2023-01-31 13:43:09             "metadata": {
2023-01-31 13:43:09                 "TimeInstant": {
2023-01-31 13:43:09                     "type": "DateTime",
2023-01-31 13:43:09                     "value": "2023-01-31T12:43:09.774Z"
2023-01-31 13:43:09                 }
2023-01-31 13:43:09             }
2023-01-31 13:43:09         },
2023-01-31 13:43:09         "TimeInstant": {
2023-01-31 13:43:09             "type": "DateTime",
2023-01-31 13:43:09             "value": "2023-01-31T12:43:09.774Z"
2023-01-31 13:43:09         }
2023-01-31 13:43:09     }
2023-01-31 13:43:09 }
2023-01-31 13:43:09 
2023-01-31 13:43:09  | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.774Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Request | from=n/a | srv=n/a | subsrv=n/a | msg=Options: {
2023-01-31 13:43:09     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-01-31 13:43:09     "method": "PATCH",
2023-01-31 13:43:09     "headers": {
2023-01-31 13:43:09         "fiware-service": "opcua_car",
2023-01-31 13:43:09         "fiware-servicepath": "/demo"
2023-01-31 13:43:09     },
2023-01-31 13:43:09     "json": {
2023-01-31 13:43:09         "temperature": {
2023-01-31 13:43:09             "type": "Float",
2023-01-31 13:43:09             "value": 25,
2023-01-31 13:43:09             "metadata": {
2023-01-31 13:43:09                 "TimeInstant": {
2023-01-31 13:43:09                     "type": "DateTime",
2023-01-31 13:43:09                     "value": "2023-01-31T12:43:09.774Z"
2023-01-31 13:43:09                 }
2023-01-31 13:43:09             }
2023-01-31 13:43:09         },
2023-01-31 13:43:09         "TimeInstant": {
2023-01-31 13:43:09             "type": "DateTime",
2023-01-31 13:43:09             "value": "2023-01-31T12:43:09.774Z"
2023-01-31 13:43:09         }
2023-01-31 13:43:09     }
2023-01-31 13:43:09 } | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.778Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Request | from=n/a | srv=n/a | subsrv=n/a | msg=Response "" | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.778Z | lvl=INFO | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=n/a | subsrv=n/a | msg=Received the following response from the CB: Value updated successfully
2023-01-31 13:43:09  | comp=IoTAgent
2023-01-31 13:43:09 time=2023-01-31T12:43:09.778Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentOPCUA.CommonBindings | from=n/a | srv=n/a | subsrv=n/a | msg=Single measure for device [Habitacion:001] with apiKey [iot] successfully updated | comp=IoTAgent | service=opcua_car | subservice=/demo
2023-01-31 13:43:09 time=2023-01-31T12:43:09.779Z | lvl=DEBUG | corr=b53fa143-87a7-495e-8410-1fb319717ab5 | trans=b53fa143-87a7-495e-8410-1fb319717ab5 | op=IoTAgentNGSI.DomainControl | from=n/a | srv=n/a | subsrv=n/a | msg=response-time: 1244139 | comp=IoTAgent
manfredipist commented 1 year ago

Hi @alberto072710 There's a little issue with the body you're sending. You're sending the following

{
  type: 'command',
  value: [3,4]
}           

But you should send:

{
  type: 'command',
  value: '[3,4]'
}           
alberto072710 commented 1 year ago

Thank you. You were right. In the status entity I get Ok but in the info entity I get null, I don't get the output parameter

manfredipist commented 1 year ago

Does any error get printed in the logs? can you check please?

alberto072710 commented 1 year ago

This is the log I get when calling the method. A maybe stupid question, do we have to declare the outputArguments in the config.js file?

2023-02-02 13:46:52 time=2023-02-02T12:46:52.286Z | lvl=DEBUG | corr=aab268ec-a2f7-11ed-a683-0242ac180003; cbfwd=1 | trans=81ef9f20-e4b6-46d0-a645-f3441a13055e | op=IoTAgentNGSI.GenericMiddlewares | from=n/a | srv=opcua_car | subsrv=/demo | msg=Request for path [//op/update] from [iotagent-opcua:4041] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.286Z | lvl=DEBUG | corr=aab268ec-a2f7-11ed-a683-0242ac180003; cbfwd=1 | trans=81ef9f20-e4b6-46d0-a645-f3441a13055e | op=IoTAgentNGSI.GenericMiddlewares | from=n/a | srv=opcua_car | subsrv=/demo | msg=Body:
2023-02-02 13:46:52 
2023-02-02 13:46:52 {
2023-02-02 13:46:52     "entities": [
2023-02-02 13:46:52         {
2023-02-02 13:46:52             "id": "Habitacion:001",
2023-02-02 13:46:52             "type": "Habitacion",
2023-02-02 13:46:52             "suma": {
2023-02-02 13:46:52                 "type": "command",
2023-02-02 13:46:52                 "value": "[3,4]",
2023-02-02 13:46:52                 "metadata": {}
2023-02-02 13:46:52             }
2023-02-02 13:46:52         }
2023-02-02 13:46:52     ],
2023-02-02 13:46:52     "actionType": "update"
2023-02-02 13:46:52 }
2023-02-02 13:46:52 
2023-02-02 13:46:52  | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.287Z | lvl=DEBUG | corr=aab268ec-a2f7-11ed-a683-0242ac180003; cbfwd=1 | trans=81ef9f20-e4b6-46d0-a645-f3441a13055e | op=IoTAgentNGSI.ContextServer-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Handling v2 update from [iotagent-opcua:4041] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.288Z | lvl=DEBUG | corr=aab268ec-a2f7-11ed-a683-0242ac180003; cbfwd=1 | trans=81ef9f20-e4b6-46d0-a645-f3441a13055e | op=IoTAgentNGSI.ContextServer-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg={
2023-02-02 13:46:52     "entities": [
2023-02-02 13:46:52         {
2023-02-02 13:46:52             "id": "Habitacion:001",
2023-02-02 13:46:52             "type": "Habitacion",
2023-02-02 13:46:52             "suma": {
2023-02-02 13:46:52                 "type": "command",
2023-02-02 13:46:52                 "value": "[3,4]",
2023-02-02 13:46:52                 "metadata": {}
2023-02-02 13:46:52             }
2023-02-02 13:46:52         }
2023-02-02 13:46:52     ],
2023-02-02 13:46:52     "actionType": "update"
2023-02-02 13:46:52 } | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.288Z | lvl=DEBUG | corr=aab268ec-a2f7-11ed-a683-0242ac180003; cbfwd=1 | trans=81ef9f20-e4b6-46d0-a645-f3441a13055e | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with [{"name":"Habitacion:001","service":"opcua_car","subservice":"/demo","type":"Habitacion"}]. | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.292Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["service","subservice","type","apikey"] with queryObj {"service":"opcua_car","subservice":"/demo","type":"Habitacion","apikey":"iot"} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.296Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["service","subservice","type","apikey"]] not found: [{"service":"opcua_car","subservice":"/demo","type":"Habitacion","apikey":"iot"}] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.296Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["service","subservice","apikey"] with queryObj {"service":"opcua_car","subservice":"/demo","apikey":"iot"} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.304Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Device group data found: {"_id":"63dbb096d0f25178bbb301d1","resource":"/iot/opcua","apikey":"iot","type":"Device","service":"opcua_car","subservice":"/demo"} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.305Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.DeviceService | from=n/a | srv=n/a | subsrv=n/a | msg=deviceData before merge with conf: {"_id":"63dbb096d0f2517857b301da","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-02T12:46:14.523Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63dbb09683d292467f24fd3b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false} defaults: [null,null,[],[],[],[],[]] fields: ["lazy","internalAttributes","active","staticAttributes","commands","subscriptions"] configuration {"_id":"63dbb096d0f25178bbb301d1","resource":"/iot/opcua","apikey":"iot","type":"Device","service":"opcua_car","subservice":"/demo"} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.305Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.DeviceService | from=n/a | srv=n/a | subsrv=n/a | msg=deviceData after merge with conf: {"_id":"63dbb096d0f2517857b301da","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-02T12:46:14.523Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63dbb09683d292467f24fd3b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.307Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.UpdateHandler | from=n/a | srv=n/a | subsrv=n/a | msg=Handling update [{"type":"command","value":"[3,4]","metadata":{},"name":"suma"}] for device [Habitacion:001] in service [opcua_car - /demo] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.307Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with [{"name":"Habitacion:001","service":"opcua_car","subservice":"/demo","type":"Habitacion"}]. | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.308Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.CommandHandler | from=n/a | srv=n/a | subsrv=n/a | msg=Handling command [{"type":"command","value":"[3,4]","metadata":{},"name":"suma"}] for device [Habitacion:001] in service [opcua_car - /demo] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.308Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with [{"name":"Habitacion:001","service":"opcua_car","subservice":"/demo","type":"Habitacion"}]. | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.309Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=executeWithDeviceInfo entityName Habitacion:001 type Habitacion apikey iot attributes [{"name":"suma_status","type":"commandStatus","value":"PENDING"}] deviceInformation {"_id":"63dbb096d0f2517857b301da","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-02T12:46:14.523Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63dbb09683d292467f24fd3b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.310Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["type"] with queryObj {"type":"Habitacion"} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.321Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Getting effective API Key | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.321Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Using device apikey: iot | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.323Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.CommandHandler | from=n/a | srv=opcua_car | subsrv=/demo | msg=Sending command execution to device [Habitacion:001] with apikey [iot] and payload [{"suma":"[3,4]"}]  | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.323Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Creating execution for function [executeCommand] and protocol [OPCUA] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.324Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Binding found for function [executeCommand] and protocol [OPCUA] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.324Z | lvl=INFO | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=Found an Array as command input | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.324Z | lvl=INFO | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=Method to call =[{"objectId":"ns=4;i=1","methodId":"ns=4;i=9","inputArguments":[{"dataType":4,"type":"DATO1","value":3},{"dataType":4,"type":"DATO2","value":4}]}] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.327Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Getting effective API Key | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.328Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Using device apikey: iot | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.328Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.UpdateHandler | from=n/a | srv=opcua_car | subsrv=/demo | msg=Sending update execution to device [Habitacion:001] with apikey [iot] and attribute [{ type: 'command', value: '[3,4]', metadata: {}, name: 'suma' }] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.328Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Creating execution for function [executeUpdate] and protocol [OPCUA] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.329Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Binding found for function [executeUpdate] and protocol [OPCUA] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.337Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["type"]] not found: [{"type":"Habitacion"}] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.338Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=error {"name":"DEVICE_GROUP_NOT_FOUND","message":"Couldn\t find device group for fields: [\"type\"] and values: {\"type\":\"Habitacion\"}","code":404} in get group device | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.339Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.NGSIUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=typeInformation {"_id":"63dbb096d0f2517857b301da","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-02T12:46:14.523Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63dbb09683d292467f24fd3b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.340Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.expressionPlugin | from=n/a | srv=opcua_car | subsrv=/demo | msg=expressionPlugin entity {"suma_status":{"type":"commandStatus","value":"PENDING"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.340Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MultiEntityPlugin | from=n/a | srv=opcua_car | subsrv=/demo | msg=multiEntityPlugin entity {"suma_status":{"type":"commandStatus","value":"PENDING"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.341Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=typeInformation: {"_id":"63dbb096d0f2517857b301da","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-02T12:46:14.523Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63dbb09683d292467f24fd3b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.342Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Updating device value in the Context Broker at [http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.342Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Using the following NGSI v2 request:
2023-02-02 13:46:52 
2023-02-02 13:46:52 {
2023-02-02 13:46:52     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-02-02 13:46:52     "method": "PATCH",
2023-02-02 13:46:52     "headers": {
2023-02-02 13:46:52         "fiware-service": "opcua_car",
2023-02-02 13:46:52         "fiware-servicepath": "/demo"
2023-02-02 13:46:52     },
2023-02-02 13:46:52     "json": {
2023-02-02 13:46:52         "suma_status": {
2023-02-02 13:46:52             "type": "commandStatus",
2023-02-02 13:46:52             "value": "PENDING",
2023-02-02 13:46:52             "metadata": {
2023-02-02 13:46:52                 "TimeInstant": {
2023-02-02 13:46:52                     "type": "DateTime",
2023-02-02 13:46:52                     "value": "2023-02-02T12:46:52.342Z"
2023-02-02 13:46:52                 }
2023-02-02 13:46:52             }
2023-02-02 13:46:52         },
2023-02-02 13:46:52         "TimeInstant": {
2023-02-02 13:46:52             "type": "DateTime",
2023-02-02 13:46:52             "value": "2023-02-02T12:46:52.342Z"
2023-02-02 13:46:52         }
2023-02-02 13:46:52     }
2023-02-02 13:46:52 }
2023-02-02 13:46:52 
2023-02-02 13:46:52  | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.342Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Request | from=n/a | srv=opcua_car | subsrv=/demo | msg=Options: {
2023-02-02 13:46:52     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-02-02 13:46:52     "method": "PATCH",
2023-02-02 13:46:52     "headers": {
2023-02-02 13:46:52         "fiware-service": "opcua_car",
2023-02-02 13:46:52         "fiware-servicepath": "/demo"
2023-02-02 13:46:52     },
2023-02-02 13:46:52     "json": {
2023-02-02 13:46:52         "suma_status": {
2023-02-02 13:46:52             "type": "commandStatus",
2023-02-02 13:46:52             "value": "PENDING",
2023-02-02 13:46:52             "metadata": {
2023-02-02 13:46:52                 "TimeInstant": {
2023-02-02 13:46:52                     "type": "DateTime",
2023-02-02 13:46:52                     "value": "2023-02-02T12:46:52.342Z"
2023-02-02 13:46:52                 }
2023-02-02 13:46:52             }
2023-02-02 13:46:52         },
2023-02-02 13:46:52         "TimeInstant": {
2023-02-02 13:46:52             "type": "DateTime",
2023-02-02 13:46:52             "value": "2023-02-02T12:46:52.342Z"
2023-02-02 13:46:52         }
2023-02-02 13:46:52     }
2023-02-02 13:46:52 } | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.354Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Request | from=n/a | srv=opcua_car | subsrv=/demo | msg=Response "" | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.355Z | lvl=INFO | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Received the following response from the CB: Value updated successfully
2023-02-02 13:46:52  | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.356Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.ContextServer-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Update action from [iotagent-opcua:4041] handled successfully. | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.359Z | lvl=DEBUG | corr=aab268ec-a2f7-11ed-a683-0242ac180003; cbfwd=1 | trans=81ef9f20-e4b6-46d0-a645-f3441a13055e | op=IoTAgentNGSI.DomainControl | from=n/a | srv=opcua_car | subsrv=/demo | msg=response-time: 74 | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.380Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["resource","apikey"] with queryObj {"resource":"Habitacion","apikey":"iot"} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.385Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["resource","apikey"]] not found: [{"resource":"Habitacion","apikey":"iot"}] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.385Z | lvl=ERROR | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Alarms | from=n/a | srv=n/a | subsrv=n/a | msg=Raising [MONGO-ALARM_07]: {"name":"DEVICE_GROUP_NOT_FOUND","message":"Couldn\t find device group for fields: [\"resource\",\"apikey\"] and values: {\"resource\":\"Habitacion\",\"apikey\":\"iot\"}","code":404} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.388Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=executeWithDeviceInfo entityName Habitacion:001 type Habitacion apikey iot attributes [{"name":"suma_status","type":"commandStatus","value":"OK"},{"name":"suma_info","type":"commandResult"}] deviceInformation {"_id":"63dbb096d0f2517857b301da","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-02T12:46:14.523Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63dbb09683d292467f24fd3b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.388Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["type"] with queryObj {"type":"Habitacion"} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.393Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["type"]] not found: [{"type":"Habitacion"}] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.394Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=error {"name":"DEVICE_GROUP_NOT_FOUND","message":"Couldn\t find device group for fields: [\"type\"] and values: {\"type\":\"Habitacion\"}","code":404} in get group device | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.394Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.NGSIUtils | from=n/a | srv=n/a | subsrv=n/a | msg=typeInformation {"_id":"63dbb096d0f2517857b301da","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-02T12:46:14.523Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63dbb09683d292467f24fd3b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.394Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.expressionPlugin | from=n/a | srv=n/a | subsrv=n/a | msg=expressionPlugin entity {"suma_status":{"type":"commandStatus","value":"OK"},"suma_info":{"type":"commandResult"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.395Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.MultiEntityPlugin | from=n/a | srv=n/a | subsrv=n/a | msg=multiEntityPlugin entity {"suma_status":{"type":"commandStatus","value":"OK"},"suma_info":{"type":"commandResult"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.395Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=n/a | subsrv=n/a | msg=typeInformation: {"_id":"63dbb096d0f2517857b301da","lazy":[],"active":[{"name":"temperature","type":"Float","object_id":"temperature"},{"name":"pressure","type":"Integer","object_id":"pressure"}],"commands":[{"name":"temperatureCommand","type":"command","object_id":"temperatureCommand"},{"name":"suma","type":"command","object_id":"suma"},{"name":"ajusteTemperatura","type":"command","object_id":"ajusteTemperatura"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-02T12:46:14.523Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63dbb09683d292467f24fd3b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://192.168.2.1:4840","explicitAttrs":false} | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.395Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=n/a | subsrv=n/a | msg=Updating device value in the Context Broker at [http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion] | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.395Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=n/a | subsrv=n/a | msg=Using the following NGSI v2 request:
2023-02-02 13:46:52 
2023-02-02 13:46:52 {
2023-02-02 13:46:52     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-02-02 13:46:52     "method": "PATCH",
2023-02-02 13:46:52     "headers": {
2023-02-02 13:46:52         "fiware-service": "opcua_car",
2023-02-02 13:46:52         "fiware-servicepath": "/demo"
2023-02-02 13:46:52     },
2023-02-02 13:46:52     "json": {
2023-02-02 13:46:52         "suma_status": {
2023-02-02 13:46:52             "type": "commandStatus",
2023-02-02 13:46:52             "value": "OK",
2023-02-02 13:46:52             "metadata": {
2023-02-02 13:46:52                 "TimeInstant": {
2023-02-02 13:46:52                     "type": "DateTime",
2023-02-02 13:46:52                     "value": "2023-02-02T12:46:52.395Z"
2023-02-02 13:46:52                 }
2023-02-02 13:46:52             }
2023-02-02 13:46:52         },
2023-02-02 13:46:52         "suma_info": {
2023-02-02 13:46:52             "type": "commandResult",
2023-02-02 13:46:52             "metadata": {
2023-02-02 13:46:52                 "TimeInstant": {
2023-02-02 13:46:52                     "type": "DateTime",
2023-02-02 13:46:52                     "value": "2023-02-02T12:46:52.395Z"
2023-02-02 13:46:52                 }
2023-02-02 13:46:52             }
2023-02-02 13:46:52         },
2023-02-02 13:46:52         "TimeInstant": {
2023-02-02 13:46:52             "type": "DateTime",
2023-02-02 13:46:52             "value": "2023-02-02T12:46:52.395Z"
2023-02-02 13:46:52         }
2023-02-02 13:46:52     }
2023-02-02 13:46:52 }
2023-02-02 13:46:52 
2023-02-02 13:46:52  | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.395Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Request | from=n/a | srv=n/a | subsrv=n/a | msg=Options: {
2023-02-02 13:46:52     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-02-02 13:46:52     "method": "PATCH",
2023-02-02 13:46:52     "headers": {
2023-02-02 13:46:52         "fiware-service": "opcua_car",
2023-02-02 13:46:52         "fiware-servicepath": "/demo"
2023-02-02 13:46:52     },
2023-02-02 13:46:52     "json": {
2023-02-02 13:46:52         "suma_status": {
2023-02-02 13:46:52             "type": "commandStatus",
2023-02-02 13:46:52             "value": "OK",
2023-02-02 13:46:52             "metadata": {
2023-02-02 13:46:52                 "TimeInstant": {
2023-02-02 13:46:52                     "type": "DateTime",
2023-02-02 13:46:52                     "value": "2023-02-02T12:46:52.395Z"
2023-02-02 13:46:52                 }
2023-02-02 13:46:52             }
2023-02-02 13:46:52         },
2023-02-02 13:46:52         "suma_info": {
2023-02-02 13:46:52             "type": "commandResult",
2023-02-02 13:46:52             "metadata": {
2023-02-02 13:46:52                 "TimeInstant": {
2023-02-02 13:46:52                     "type": "DateTime",
2023-02-02 13:46:52                     "value": "2023-02-02T12:46:52.395Z"
2023-02-02 13:46:52                 }
2023-02-02 13:46:52             }
2023-02-02 13:46:52         },
2023-02-02 13:46:52         "TimeInstant": {
2023-02-02 13:46:52             "type": "DateTime",
2023-02-02 13:46:52             "value": "2023-02-02T12:46:52.395Z"
2023-02-02 13:46:52         }
2023-02-02 13:46:52     }
2023-02-02 13:46:52 } | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.411Z | lvl=DEBUG | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Request | from=n/a | srv=n/a | subsrv=n/a | msg=Response "" | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.411Z | lvl=INFO | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=n/a | subsrv=n/a | msg=Received the following response from the CB: Value updated successfully
2023-02-02 13:46:52  | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.428Z | lvl=INFO | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=n/a | subsrv=n/a | msg=ns=4;i=9 read variable type -> { /* DataValue */
2023-02-02 13:46:52    value: Variant(Scalar<Null>, value: <null>)
2023-02-02 13:46:52    statusCode:      BadAttributeIdInvalid (0x80350000)
2023-02-02 13:46:52    serverTimestamp: null
2023-02-02 13:46:52    sourceTimestamp: null
2023-02-02 13:46:52 } | comp=IoTAgent
2023-02-02 13:46:52 time=2023-02-02T12:46:52.428Z | lvl=INFO | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=n/a | subsrv=n/a | msg=Update to execute =[{"nodeId":"ns=4;i=9","attributeId":13,"indexRange":null,"value":{"value":{"dataType":0,"value":"[3,4]"}}}] | comp=IoTAgent
2023-02-02 13:46:56 time=2023-02-02T12:46:56.004Z | lvl=INFO | corr=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | trans=46fb53ba-d8f7-4ad0-b7bf-dca196f58193 | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=n/a | subsrv=n/a | msg=subscription keepalive | comp=IoTAgent
walterwootz commented 1 year ago

Hi @alberto072710, sorry for the delay. Maybe the issue is related to OPCUA server implementation. Can you provide us your test server in order to find the issue?

alberto072710 commented 1 year ago

Hi, The delay in answering does not matter. I was currently using a S7-1200 Siemens PLC, to test that it was not a problem with the PLC server I am trying to test the PROSYS OPC server which provides an example method with 2 input and 1 output parameters. I'm trying to send the example command but I get an error because the first input parameter is of type string (I don't know if this has something to do with it). I am attaching the data so you can test it.

docker_compose.yml

version: "3.1"

volumes:
  mongodb: ~

services:
  iot-agent:
    image: iotagent4fiware/iotagent-opcua:2.1.2
    hostname: iotagent-opcua
    depends_on:
      - mongodb
      - orion
    networks:
      - hostnet
    expose:
      - "4041"
      - "9229"
    ports:
      - "4041:4041"
      - "9229:9229"
    environment:
      - "IOTA_CB_HOST=orion"
      - "IOTA_CB_PORT=1026"
      - "IOTA_NORTH_PORT=4041"
      - "IOTA_REGISTRY_TYPE=mongodb"
      - "IOTA_MONGO_HOST=mongodb"
      - "IOTA_MONGO_PORT=27017"
      - "IOTA_MONGO_DB=iotagent_opcua"
      - "IOTA_PROVIDER_URL=http://iotagent-opcua:4041"
      - "IOTA_OPCUA_ENDPOINT=opc.tcp://DESKTOP-9P47CVL:53530/OPCUA/SimulationServer"
      - "IOTA_OPCUA_SECURITY_MODE=None"
      - "IOTA_OPCUA_SECURITY_POLICY=None"
      #- "IOTA_OPCUA_SECURITY_USERNAME="
      #- "IOTA_OPCUA_SECURITY_PASSWORD="
      - "IOTA_OPCUA_UNIQUE_SUBSCRIPTION=false"
      - "IOTA_OPCUA_SUBSCRIPTION_NOTIFICATIONS_PER_PUBLISH=1000"
      - "IOTA_OPCUA_SUBSCRIPTION_PUBLISHING_ENABLED=true"
      - "IOTA_OPCUA_SUBSCRIPTION_REQ_LIFETIME_COUNT=100"
      - "IOTA_OPCUA_SUBSCRIPTION_REQ_MAX_KEEP_ALIVE_COUNT=10"
      - "IOTA_OPCUA_SUBSCRIPTION_REQ_PUBLISHING_INTERVAL=1000"
      - "IOTA_OPCUA_SUBSCRIPTION_PRIORITY=128"
      - "IOTA_EXTENDED_FORBIDDEN_CHARACTERS=[]"
      - "IOTA_OPCUA_MT_POLLING=false"
      - "IOTA_OPCUA_MT_AGENT_ID=age01_"
      - "IOTA_OPCUA_MT_ENTITY_ID=age01_Car"
      - "IOTA_OPCUA_MT_ENTITY_TYPE=Habitacion"
      - "IOTA_OPCUA_MT_NAMESPACE_IGNORE=0,7"
      - "IOTA_OPCUA_MT_STORE_OUTPUT=true"
    volumes:
      - C:/Users/Alberto/Desktop/OPC_UA_SIN_CERT/prosys/conf/config.js:/opt/iotagent-opcua/conf/config.js

  mongodb:
    image: mongo:4.2
    hostname: mongodb
    networks:
      - hostnet
    ports:
      - "27017:27017"
    command: --bind_ip_all
    volumes:
      - mongodb:/data
  ################ OCB ################

  orion:
    hostname: orion
    image: fiware/orion
    networks:
      - hostnet
    ports:
      - "1026:1026"
    depends_on:
      - mongodb
    expose:
      - "1026"
    command: -dbhost mongodb -logLevel DEBUG
    #entrypoint: /usr/bin/contextBroker -fg -multiservice -ngsiv1Autocast -statCounters -dbhost mongo -logForHumans -logLevel DEBUG -t 255

networks:
  hostnet:

config.js

const config = {};

config.iota = {
    logLevel: 'DEBUG',
    timestamp: true,
    contextBroker: {
        host: 'localhost',
        port: '1026',
        ngsiVersion: 'v2',
        jsonLdContext: 'https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld',
        service: 'opcua_car',
        subservice: '/demo'
    },
    server: {
        port: 4041
    },
    deviceRegistry: {
        type: 'mongodb'
    },
    mongodb: {
        host: 'localhost',
        port: '27017',
        db: 'iotagent_opcua'
    },
    types: {
        Habitacion: {
            active: [
            ],
            lazy: [],
            commands: [
                {
                    name: 'MyMethod',
                    type: 'command'
                }
            ]
        }
    },
    contexts: [
        {
            id: 'Habitacion:001',
            type: 'Habitacion',
            mappings: [
            ]
        }
    ],
    contextSubscriptions: [
        {
            id: 'Habitacion:001',
            type: 'Habitacion',
            mappings: [
                {
                    ocb_id: 'MyMethod',
                    opcua_id: 'ns=6;s=MyMethod',
                    object_id: 'ns=6;s=MyDevice',
                    inputArguments: [
                        {
                            dataType: 12,
                            type: 'Operation'
                        },
                        {
                            dataType: 11,
                            type: 'Parameter'
                        }
                    ]   
                }
            ]
        }
    ],
    events:[],
    service: 'opcua_car',
    subservice: '/demo',
    providerUrl: 'http://localhost:4041',
    deviceRegistrationDuration: 'P20Y',
    defaultType: 'Device',
    defaultResource: '/iot/opcua',
    explicitAttrs: false,
    extendedForbiddenCharacters: []
};

config.opcua = {
    subscription: {
        maxNotificationsPerPublish: 1000,
        publishingEnabled: true,
        requestedLifetimeCount: 100,
        requestedMaxKeepAliveCount: 10,
        requestedPublishingInterval: 1000,
        priority: 128
    },
    endpoint: 'opc.tcp://DESKTOP-9P47CVL:53530/OPCUA/SimulationServer',
    securityMode: 'None',
    securityPolicy: 'None',
    username: null,
    password: null,
    uniqueSubscription: false
};

config.mappingTool = {
    polling: false,
    /**
     * agentId prefix to be assigned to the newly generated entity from MappingTool execution
     */
    agentId: 'age01_',
    /**
     * Namespaces to ignore when crawling nodes from OPC UA Server
     */
    namespaceIgnore: '0,7',
    /**
     * entityId to be assigned to the newly generated entity from MappingTool execution
     */
    entityId: 'age01_Car',
    /**
     * entityType to be assigned to the newly generated entity from MappingTool execution
     */
    entityType: 'Device',
     /**
     * boolean flag to determine whether to store the output of the mapping tool execution or not
     */
    storeOutput: true
};
config.jexlTransformations = {};
config.configRetrieval = false;
config.defaultKey = 'iot';
config.defaultTransport = 'OPCUA';
//config.multiCore = false;
config.autoprovision = true;
module.exports = config;

Command

Captura de pantalla 2023-02-23 110704

log of iotagent

2023-02-23 11:07:18 time=2023-02-23T10:07:18.701Z | lvl=DEBUG | corr=db12afc2-b361-11ed-ad7e-0242ac150003; cbfwd=1 | trans=4a789694-b997-478e-a282-dbeb0d5a5380 | op=IoTAgentNGSI.GenericMiddlewares | from=n/a | srv=opcua_car | subsrv=/demo | msg=Request for path [//op/update] from [iotagent-opcua:4041] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.701Z | lvl=DEBUG | corr=db12afc2-b361-11ed-ad7e-0242ac150003; cbfwd=1 | trans=4a789694-b997-478e-a282-dbeb0d5a5380 | op=IoTAgentNGSI.GenericMiddlewares | from=n/a | srv=opcua_car | subsrv=/demo | msg=Body:
2023-02-23 11:07:18 
2023-02-23 11:07:18 {
2023-02-23 11:07:18     "entities": [
2023-02-23 11:07:18         {
2023-02-23 11:07:18             "id": "Habitacion:001",
2023-02-23 11:07:18             "type": "Habitacion",
2023-02-23 11:07:18             "MyMethod": {
2023-02-23 11:07:18                 "type": "command",
2023-02-23 11:07:18                 "value": "[sin,7]",
2023-02-23 11:07:18                 "metadata": {}
2023-02-23 11:07:18             }
2023-02-23 11:07:18         }
2023-02-23 11:07:18     ],
2023-02-23 11:07:18     "actionType": "update"
2023-02-23 11:07:18 }
2023-02-23 11:07:18 
2023-02-23 11:07:18  | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.701Z | lvl=DEBUG | corr=db12afc2-b361-11ed-ad7e-0242ac150003; cbfwd=1 | trans=4a789694-b997-478e-a282-dbeb0d5a5380 | op=IoTAgentNGSI.ContextServer-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Handling v2 update from [iotagent-opcua:4041] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.701Z | lvl=DEBUG | corr=db12afc2-b361-11ed-ad7e-0242ac150003; cbfwd=1 | trans=4a789694-b997-478e-a282-dbeb0d5a5380 | op=IoTAgentNGSI.ContextServer-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg={
2023-02-23 11:07:18     "entities": [
2023-02-23 11:07:18         {
2023-02-23 11:07:18             "id": "Habitacion:001",
2023-02-23 11:07:18             "type": "Habitacion",
2023-02-23 11:07:18             "MyMethod": {
2023-02-23 11:07:18                 "type": "command",
2023-02-23 11:07:18                 "value": "[sin,7]",
2023-02-23 11:07:18                 "metadata": {}
2023-02-23 11:07:18             }
2023-02-23 11:07:18         }
2023-02-23 11:07:18     ],
2023-02-23 11:07:18     "actionType": "update"
2023-02-23 11:07:18 } | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.701Z | lvl=DEBUG | corr=db12afc2-b361-11ed-ad7e-0242ac150003; cbfwd=1 | trans=4a789694-b997-478e-a282-dbeb0d5a5380 | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with [{"name":"Habitacion:001","service":"opcua_car","subservice":"/demo","type":"Habitacion"}]. | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.703Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["service","subservice","type","apikey"] with queryObj {"service":"opcua_car","subservice":"/demo","type":"Habitacion","apikey":"iot"} | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.705Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["service","subservice","type","apikey"]] not found: [{"service":"opcua_car","subservice":"/demo","type":"Habitacion","apikey":"iot"}] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.705Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["service","subservice","apikey"] with queryObj {"service":"opcua_car","subservice":"/demo","apikey":"iot"} | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.707Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Device group data found: {"_id":"63f7368ca113cb3a84fd410b","resource":"/iot/opcua","apikey":"iot","type":"Device","service":"opcua_car","subservice":"/demo"} | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.707Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.DeviceService | from=n/a | srv=n/a | subsrv=n/a | msg=deviceData before merge with conf: {"_id":"63f7368ca113cb5d9bfd4114","lazy":[],"active":[],"commands":[{"name":"MyMethod","type":"command","object_id":"MyMethod"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-23T09:49:00.984Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63f7368ccb14e00f673f228b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://DESKTOP-9P47CVL:53530/OPCUA/SimulationServer","explicitAttrs":false} defaults: [null,null,[],[],[],[],[]] fields: ["lazy","internalAttributes","active","staticAttributes","commands","subscriptions"] configuration {"_id":"63f7368ca113cb3a84fd410b","resource":"/iot/opcua","apikey":"iot","type":"Device","service":"opcua_car","subservice":"/demo"} | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.707Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.DeviceService | from=n/a | srv=n/a | subsrv=n/a | msg=deviceData after merge with conf: {"_id":"63f7368ca113cb5d9bfd4114","lazy":[],"active":[],"commands":[{"name":"MyMethod","type":"command","object_id":"MyMethod"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-23T09:49:00.984Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63f7368ccb14e00f673f228b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://DESKTOP-9P47CVL:53530/OPCUA/SimulationServer","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.707Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.UpdateHandler | from=n/a | srv=n/a | subsrv=n/a | msg=Handling update [{"type":"command","value":"[sin,7]","metadata":{},"name":"MyMethod"}] for device [Habitacion:001] in service [opcua_car - /demo] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.707Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with [{"name":"Habitacion:001","service":"opcua_car","subservice":"/demo","type":"Habitacion"}]. | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.707Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.CommandHandler | from=n/a | srv=n/a | subsrv=n/a | msg=Handling command [{"type":"command","value":"[sin,7]","metadata":{},"name":"MyMethod"}] for device [Habitacion:001] in service [opcua_car - /demo] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.707Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MongoDBDeviceRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Looking for device with [{"name":"Habitacion:001","service":"opcua_car","subservice":"/demo","type":"Habitacion"}]. | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.707Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=executeWithDeviceInfo entityName Habitacion:001 type Habitacion apikey iot attributes [{"name":"MyMethod_status","type":"commandStatus","value":"PENDING"}] deviceInformation {"_id":"63f7368ca113cb5d9bfd4114","lazy":[],"active":[],"commands":[{"name":"MyMethod","type":"command","object_id":"MyMethod"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-23T09:49:00.984Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63f7368ccb14e00f673f228b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://DESKTOP-9P47CVL:53530/OPCUA/SimulationServer","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.707Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Looking for group params ["type"] with queryObj {"type":"Habitacion"} | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.709Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Getting effective API Key | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.709Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Using device apikey: iot | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.709Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.CommandHandler | from=n/a | srv=opcua_car | subsrv=/demo | msg=Sending command execution to device [Habitacion:001] with apikey [iot] and payload [{"MyMethod":"[sin,7]"}]  | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.709Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Creating execution for function [executeCommand] and protocol [OPCUA] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.709Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Binding found for function [executeCommand] and protocol [OPCUA] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.710Z | lvl=WARN | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=Unable to determine the type of the command input, considering it as a single value | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.710Z | lvl=INFO | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=Method to call =[{"objectId":"ns=6;s=MyDevice","methodId":"ns=6;s=MyMethod","inputArguments":[{"dataType":12,"type":"Operation","value":"[sin,7]","arrayType":0},{"dataType":11,"type":"Parameter","arrayType":0}]}] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.710Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Getting effective API Key | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.710Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.IOTAUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=Using device apikey: iot | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.710Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.UpdateHandler | from=n/a | srv=opcua_car | subsrv=/demo | msg=Sending update execution to device [Habitacion:001] with apikey [iot] and attribute [{ type: 'command', value: '[sin,7]', metadata: {}, name: 'MyMethod' }] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.711Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Creating execution for function [executeUpdate] and protocol [OPCUA] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.711Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=opcua_car | subsrv=/demo | msg=Binding found for function [executeUpdate] and protocol [OPCUA] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.712Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MongoDBGroupRegister | from=n/a | srv=n/a | subsrv=n/a | msg=Device group for fields [["type"]] not found: [{"type":"Habitacion"}] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.712Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.NGSIService | from=n/a | srv=opcua_car | subsrv=/demo | msg=error {"name":"DEVICE_GROUP_NOT_FOUND","message":"Couldn\t find device group for fields: [\"type\"] and values: {\"type\":\"Habitacion\"}","code":404} in get group device | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.712Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.NGSIUtils | from=n/a | srv=opcua_car | subsrv=/demo | msg=typeInformation {"_id":"63f7368ca113cb5d9bfd4114","lazy":[],"active":[],"commands":[{"name":"MyMethod","type":"command","object_id":"MyMethod"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-23T09:49:00.984Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63f7368ccb14e00f673f228b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://DESKTOP-9P47CVL:53530/OPCUA/SimulationServer","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.712Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.expressionPlugin | from=n/a | srv=opcua_car | subsrv=/demo | msg=expressionPlugin entity {"MyMethod_status":{"type":"commandStatus","value":"PENDING"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.712Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.MultiEntityPlugin | from=n/a | srv=opcua_car | subsrv=/demo | msg=multiEntityPlugin entity {"MyMethod_status":{"type":"commandStatus","value":"PENDING"},"id":"Habitacion:001","type":"Habitacion"} | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.712Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=typeInformation: {"_id":"63f7368ca113cb5d9bfd4114","lazy":[],"active":[],"commands":[{"name":"MyMethod","type":"command","object_id":"MyMethod"}],"staticAttributes":[],"subscriptions":[],"creationDate":"2023-02-23T09:49:00.984Z","id":"Habitacion:001","type":"Habitacion","name":"Habitacion:001","service":"opcua_car","subservice":"/demo","registrationId":"63f7368ccb14e00f673f228b","internalId":null,"apikey":"iot","endpoint":"opc.tcp://DESKTOP-9P47CVL:53530/OPCUA/SimulationServer","explicitAttrs":false,"internalAttributes":null} | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.713Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Updating device value in the Context Broker at [http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.713Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Using the following NGSI v2 request:
2023-02-23 11:07:18 
2023-02-23 11:07:18 {
2023-02-23 11:07:18     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-02-23 11:07:18     "method": "PATCH",
2023-02-23 11:07:18     "headers": {
2023-02-23 11:07:18         "fiware-service": "opcua_car",
2023-02-23 11:07:18         "fiware-servicepath": "/demo"
2023-02-23 11:07:18     },
2023-02-23 11:07:18     "json": {
2023-02-23 11:07:18         "MyMethod_status": {
2023-02-23 11:07:18             "type": "commandStatus",
2023-02-23 11:07:18             "value": "PENDING",
2023-02-23 11:07:18             "metadata": {
2023-02-23 11:07:18                 "TimeInstant": {
2023-02-23 11:07:18                     "type": "DateTime",
2023-02-23 11:07:18                     "value": "2023-02-23T10:07:18.713Z"
2023-02-23 11:07:18                 }
2023-02-23 11:07:18             }
2023-02-23 11:07:18         },
2023-02-23 11:07:18         "TimeInstant": {
2023-02-23 11:07:18             "type": "DateTime",
2023-02-23 11:07:18             "value": "2023-02-23T10:07:18.713Z"
2023-02-23 11:07:18         }
2023-02-23 11:07:18     }
2023-02-23 11:07:18 }
2023-02-23 11:07:18 
2023-02-23 11:07:18  | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.713Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.Request | from=n/a | srv=opcua_car | subsrv=/demo | msg=Options: {
2023-02-23 11:07:18     "url": "http://orion:1026/v2/entities/Habitacion:001/attrs?type=Habitacion",
2023-02-23 11:07:18     "method": "PATCH",
2023-02-23 11:07:18     "headers": {
2023-02-23 11:07:18         "fiware-service": "opcua_car",
2023-02-23 11:07:18         "fiware-servicepath": "/demo"
2023-02-23 11:07:18     },
2023-02-23 11:07:18     "json": {
2023-02-23 11:07:18         "MyMethod_status": {
2023-02-23 11:07:18             "type": "commandStatus",
2023-02-23 11:07:18             "value": "PENDING",
2023-02-23 11:07:18             "metadata": {
2023-02-23 11:07:18                 "TimeInstant": {
2023-02-23 11:07:18                     "type": "DateTime",
2023-02-23 11:07:18                     "value": "2023-02-23T10:07:18.713Z"
2023-02-23 11:07:18                 }
2023-02-23 11:07:18             }
2023-02-23 11:07:18         },
2023-02-23 11:07:18         "TimeInstant": {
2023-02-23 11:07:18             "type": "DateTime",
2023-02-23 11:07:18             "value": "2023-02-23T10:07:18.713Z"
2023-02-23 11:07:18         }
2023-02-23 11:07:18     }
2023-02-23 11:07:18 } | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.716Z | lvl=ERROR | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.CommandHandler | from=n/a | srv=opcua_car | subsrv=/demo | msg=COMMAND-003: Command execution could not be handled, [TypeError: Cannot read properties of null (reading '0')
2023-02-23 11:07:18     at AsyncFunction.executeCommand (/opt/iotagent-opcua/lib/bindings/OPCUABinding.js:386:53)
2023-02-23 11:07:18     at runMicrotasks (<anonymous>)
2023-02-23 11:07:18     at processTicksAndRejections (node:internal/process/task_queues:96:5)] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.718Z | lvl=INFO | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=ns=6;s=MyMethod read variable type -> { /* DataValue */
2023-02-23 11:07:18    value: Variant(Scalar<Null>, value: <null>)
2023-02-23 11:07:18    statusCode:      BadAttributeIdInvalid (0x80350000)
2023-02-23 11:07:18    serverTimestamp: null
2023-02-23 11:07:18    sourceTimestamp: null
2023-02-23 11:07:18 } | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.718Z | lvl=INFO | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=Update to execute =[{"nodeId":"ns=6;s=MyMethod","attributeId":13,"indexRange":null,"value":{"value":{"dataType":0,"value":"[sin,7]"}}}] | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.719Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.Request | from=n/a | srv=opcua_car | subsrv=/demo | msg=Response "" | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.719Z | lvl=INFO | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.Entities-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Received the following response from the CB: Value updated successfully
2023-02-23 11:07:18  | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.719Z | lvl=DEBUG | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentNGSI.ContextServer-v2 | from=n/a | srv=opcua_car | subsrv=/demo | msg=Update action from [iotagent-opcua:4041] handled successfully. | comp=IoTAgent
2023-02-23 11:07:18 time=2023-02-23T10:07:18.720Z | lvl=DEBUG | corr=db12afc2-b361-11ed-ad7e-0242ac150003; cbfwd=1 | trans=4a789694-b997-478e-a282-dbeb0d5a5380 | op=IoTAgentNGSI.DomainControl | from=n/a | srv=opcua_car | subsrv=/demo | msg=response-time: 20 | comp=IoTAgent
2023-02-23 11:07:22 time=2023-02-23T10:07:22.027Z | lvl=INFO | corr=a401585d-113a-4bbf-9109-7d5f76f833ab | trans=a401585d-113a-4bbf-9109-7d5f76f833ab | op=IoTAgentOPCUA.OPCUABinding | from=n/a | srv=opcua_car | subsrv=/demo | msg=subscription keepalive | comp=IoTAgent

PROSYS OPC UA SIMULATION SERVER

Captura de pantalla 2023-02-23 085958 Captura de pantalla 2023-02-23 090016

Thanks!

manfredipist commented 1 year ago

Hi @alberto072710 , fixed in v2.1.3. One minor change is that now input arguments MUST be passed as an array, eg:

{
  type: 'command',
  value: [3,4]
}    
alberto072710 commented 1 year ago

Hi, Amazing work. Now it works perfectly. Thanks a lot