Code Monkey home page Code Monkey logo

iotagent-opcua's Introduction

OPC UA Agent: the FIWARE IoT Agent for OPC UA

FIWARE IoT Agents License: AGPL Docker badge Support badge
Documentation badge CI Coverage Status CII Best Practices Status Join the chat at https://gitter.im/iotagent-opcua/community

An Internet of Things Agent accepting data from OPC UA devices. This IoT Agent is designed to be a bridge between the OPC Unified Architecture protocol and the NGSI interface of a context broker.

The intended level of complexity to support these operations should consider a limited human intervention (mainly during the setup of a new OPC UA endpoint), through the mean of a parametrization task (either manual or semi-automatic, using a text-based parametrization or a simple UI to support the configuration) so that no software coding is required to adapt the agent to different OPC UA devices.

It is based on the IoT Agent Node.js Library. Further general information about the FIWARE IoT Agents framework, its architecture and the common interaction model can be found in the library's GitHub repository.

This project is part of FIWARE. For more information check the FIWARE Catalogue entry for the IoT Agents.

📚 Documentation quay.io 🎓 Academy 🎯 Roadmap

Contents

Background

Positioning in the overall F4I Reference Architecture

The F4I OPC UA Agent is based on the reference implementation of the FIWARE Backend Device Management Generic Enabler, IDAS, delivered by Telefonica I+D. IDAS provides a collection of Agents - i.e., independent processes that are typically executed in the proximity of IoT devices and that are responsible for bridging a specific IoT protocol to the NGSI standard (e.g. the IDAS distribution includes off-the-shelf Agents for LwM2M and MQTT). To this end, IDAS links the NGSI southbound API of the FIWARE Orion Context Broker to the northbound API of the IoT application stack, by providing a software library (the IoT Agent Lib depicted in the previous figure) for developing custom Agents that may extend the bridging capabilities of IDAS to other protocols. The F4I IDAS OPC UA Agent makes use of this framework to integrate OPC UA-based devices in a publish-subscribe system based on the FIWARE Orion Context Broker.

Getting Started - Install

Currently two options are available to install the Agent:

Docker - Recommended

We suggest using a Docker-first approach in order to avoid issues related to your environment configuration. Moreover, using this approach you will be provided with all the needed components: OCB, Mongo instances and a sample OPC UA server.

A step-by-step tutorial is available here

npm

Before launching the Agent you must install Orion Context Broker (Be aware to choose the correct version, please use orion if it's needed to test the Agent with NGSI v2 otherwise use orion-ld in case of NGSI-ld test.) and a OPC UA Server. After that you must tell the Agent how to interact with these components by using config.js file. Once configuration is complete you can execute these commands to run the Agent.

$ npm install
$ node bin/iotagent-opcua

Further Information about how to install the OPC UA IoT Agent can be found at the corresponding section of the Installation & Administration Guide.

Usage

Information about how to use the IoT Agent can be found in the User & Programmers Manual.

Administration Services

Administration services are reachable at port specified by api-port property (config.js).

Service Description
GET /version Returns information about version, name and agent description

Poll commands

Poll commands can be enabled switching polling property to true (config.js). Once enabled poll command, you can customize the polling Daemon Frequency and Expiration time still in the (config.js). The polling-commands-timer is referred to the feature developed, that consist in the execution of the older polling command periodically (if exists) ed delete it in case of success.

API

Apiary reference for the Configuration API can be found here More information about IoT Agents and their APIs can be found in the IoT Agent Library documentation.

Testing

For test purpose can create an OPC UA server using the code in the following GitHub repository

Firstly edit the config.js in order to set Northbound (NGSI) and Southbound (OPC UA) settings.

Further information about configuration properties can be found here

For checking current status of the Agent, send a request to /version service (http://{agent-ip-address}:api-port/version)

Secure connection with an OPC UA Server

OPC UA Agent will automatically generate key pairs and certificates (persisted in iotagent-opcua/certificates) to establish a secure connection to the OPC UA Server.

How to get access to the advanced API and Documentation topics

Documentation about the OPC UA Administration API can be found here

Quality Assurance

The IoT Agent for OPC UA project is part of FIWARE and has been rated as follows:

  • Version Tested:
  • Documentation:
  • Responsiveness:
  • FIWARE Testing:

License

The IoT Agent for OPC UA is licensed under Affero General Public License (GPL) version 3.

© 2021 Engineering Ingegneria Informatica S.p.A.

The following third-party libraries are used under license

  1. node-opcua - MIT - © 2014-2021 Etienne Rossignon
  2. iotagent-node-lib - AGPL © 2014-2021 Telefonica Investigación y Desarrollo

The full list of third-party libraries licenses can be found here

Are there any legal issues with AGPL 3.0? Is it safe for me to use?

No problem in using a product licensed under AGPL 3.0. Issues with GPL (or AGPL) licenses are mostly related with the fact that different people assign different interpretations on the meaning of the term “derivate work” used in these licenses. Due to this, some people believe that there is a risk in just using software under GPL or AGPL licenses (even without modifying it).

For the avoidance of doubt, the owners of this software licensed under an AGPL 3.0 license wish to make a clarifying public statement as follows:

"Please note that software derived as a result of modifying the source code of this software in order to fix a bug or incorporate enhancements is considered a derivative work of the product. Software that merely uses or aggregates (i.e. links to) an otherwise unmodified version of existing software is not considered a derivative work, and therefore it does not need to be released as under the same license, or even released as open source."

iotagent-opcua's People

Contributors

dependabot[bot] avatar engineering-research-and-development avatar gabrieledeluca avatar gitter-badger avatar jason-fox avatar manfredipist avatar marguglio avatar mattiamarzano-eng avatar pietrogreco avatar snyk-bot avatar walterwootz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

iotagent-opcua's Issues

Unable to update/write values in OPCUA Simulated Server using Fiware

I am trying to do two communication to read and write values from OPCUA Simulated Server using Fiware. I am successful in reading the values from the server.

Screenshot (48)
.
However, I am still facing issues in updating/writing the values. I am using this to update the value.

`{   
    "actionType": "update",
    "entities": [
        
        {
         "id": "age01_7:Simulation",
         "type": "3:Simulation",
         "3:test2": {
            "type": "Number",
            "value": "44",
            "metadata": {}
            
         }
        }
        ]
}`

It is working with http://localhost:1026/v2/op/update but it only updates the value within the container, not in the Server.
Also, when I try to update using this http://localhost:4001/v2/op/update it gives me this error after several minutes

Screenshot (49)

Cannot send commands to opcua car following the tutorial

Hello,
I am trying to follow your tutorial: https://iotagent-opcua.readthedocs.io/en/latest/opc_ua_agent_tutorial/index.html but the last command not works for me.
When I try to send commands to the opcua car server through the context broker:

curl -X PUT
'http://orion:1026/v2/entities/Car/attrs/Accelerate?type=Car'
-H 'content-type: application/json'
-H 'fiware-service: opcua_car'
-H 'fiware-servicepath: /demo'
-d '{ "value": [2], "type": "command"}

It respond me with the error:
{ "error": "NotFound",
"description": "The requested entity has not been found. Check type and id" }

Also when I get Orion entities:

curl -X GET
http://orion:1026/v2/entities
-H 'fiware-service: opcua_car'
-H 'fiware-servicepath: /demo'

It respond me good for sensor values but for commands value shows "UNKNOWN" :
[
{
"id": "Car",
"type": "Car",
"Accelerate_info": {
"type": "commandResult",
"value": " ",
"metadata": {}
},
"Accelerate_status": {
"type": "commandStatus",
"value": "UNKNOWN",
"metadata": {}
},
"Engine_Oxigen": {
"type": "Number",
"value": 29.7,
"metadata": {}
},
"Engine_Temperature": {
"type": "Number",
"value": 97,
"metadata": {}
},
"Speed": {
"type": "Number",
"value": 0,
"metadata": {}
},
"Stop_info": {
"type": "commandResult",
"value": " ",
"metadata": {}
},
"Stop_status": {
"type": "commandStatus",
"value": "UNKNOWN",
"metadata": {}
}
}
]

And the orion logs shows:

opc_ua_test_orion | time=Friday 04 Oct 08:36:25 2019.918Z | lvl=WARN | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=postQueryContext.cpp[146]:queryForward | msg=Runtime Error (error -9 forwarding 'Query' to providing application)

It's look like orion cannot forward the command to the opc-ua agent

But the connection seems to be ok because if I exec a ping to iotage from orion docker it respond.

¿The IotAgent OPC-UA does the provisioning of the Car commands?

This is the docker-compose.yml that i used:
version: "2.3"
services:

iotage:
hostname: iotage
image: rdlabengpa/opcuaage:latest
networks:
- hostnet
- iotnet
ports:
- "4001:4001"
- "4081:8080"
depends_on:
- iotmongo
volumes:
- ./AGE:/opt/iotagent-opcua/conf

iotmongo:
hostname: iotmongo
image: mongo:3.4
networks:
- iotnet
ports:
- "27017:27017"
volumes:
- iotmongo_data:/data/db
- iotmongo_conf:/data/configdb

iotcarsrv:
hostname: iotcarsrv
image: beincpps/opcuacarsrv:latest
networks:
- iotnet
ports:
- "5001:5001"
volumes:
- ./CAR/car.js:/opt/opc-ua-car-server/car.js

orion:
hostname: orion
container_name: opc_ua_test_orion
image: fiware/orion:2.1.0
networks:
- hostnet
ports:
- "1026:1026"
depends_on:
- mongo
command: -dbhost mongo

mongo:
hostname: mongo
image: mongo:3.4
networks:
- hostnet
ports:
- "27027:27017"
command: --nojournal

volumes:
iotmongo_data:
iotmongo_conf:

And this is the agent config.properties:
#AGENT ID
agent-id=

namespace-ignore=2,7
context-broker-host=orion
context-broker-port=1026
server-base-root=/
server-port=4001
device-registry-type=memory
mongodb-host=iotmongo
mongodb-port=27017
mongodb-db=iotage
mongodb-retries=5
mongodb-retry-time=5
fiware-service=opcua_car
fiware-service-path=/demo
provider-url=http://iotage:4001
device-registration-duration=P1M
endpoint=opc.tcp://iotcarsrv:5001/UA/CarServer
log-level=INFO
#DATATYPE MAPPING OPCUA --> NGSI
OPC-datatype-Number=Number
OPC-datatype-Decimal128=Number
OPC-datatype-Double=Number
OPC-datatype-Float=Number
OPC-datatype-Integer=Integer
OPC-datatype-UInteger=Integer
OPC-datatype-String=Text
OPC-datatype-ByteString=Text
#END DATATYPE MAPPING OPCUA --> NGSI

#SESSION PARAMETERS
requestedPublishingInterval=1000
requestedLifetimeCount=1000
requestedMaxKeepAliveCount=5
maxNotificationsPerPublish=10
publishingEnabled=true
priority=10

#MONITORING PARAMETERS
samplingInterval= 0
queueSize= 10000
discardOldest= false

#SERVER CERT E AUTH
securityMode=NONE
securityPolicy=
userName=
password=

#securityMode=SIGNANDENCRYPT
#securityPolicy=Basic256
#password=password1
#userName=user1

#api-ip=192.168.13.153

#Administration Services
api-port=8080
#End Administration Services

#POLL COMMANDS SETTINGS
polling=false
polling-commands-timer=30000
pollingDaemonFrequency=20000
pollingExpiration=200000
#END POLL COMMANDS SETTINGS

Thanks.
docs.zip

Modify OPC-UA variables from entity property update on Context Broker

Hello,

I would like to write on an OPC-UA server variable directly when the context broker receives an entity property update request. Is this possible with this agent? If so, how could I do this?

I have read your tutorial and I can't find this anywhere. The only way I have found to do this is using an OPC-UA command.

Thanks.

npm ERR! missing script: start

Hi,
I just pulled the iotagent-opcua repo and ran docker-compose up -d
I got both the orion and iotagent exited and it said the cript for startign was missing

image

However I have checked and found the start script was there in package.json file as can be seen from the image below.

image

I also tried to reinstall npm and node several times after that delete the node_modules folder and package-lock.json file. Nothing helps until now.

Here is the logs from iotagent
image

I can not get the detail logs from orion
image

Here is the version of node and npm
image

The command: npm start is in docker-compose.yml:
image

Please help me on this. Thank you!

Can not access Lazy attribute from Orion

Context

Used code base and tutorial: FIWARE IoT Agent for OPC-UA tutorial

Target

  • To access all available attributes both from IoT Agent and Orion Context Broker
  • To modify attributes via commands sent to Orion Context Broker then passed down to IoT Agent

Replicate steps

Clone repo and start containers

git clone "https://github.com/Engineering-Research-and-Development/iotagent-opcua"
cd iotagent-opcua
docker-compose up -d
#

I found this error from the log which related to DEVICE_GROUP_NOT_FOUND

time=2021-06-21T06:52:38.105Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBGroupRegister | srv=n/a | subsrv=n/a | msg=Device group for fields [["type"]] not found: [{"type":"Device"}]
time=2021-06-21T06:52:38.105Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.NGSIService | srv=opcua_car | subsrv=/demo | msg=error {"name":"DEVICE_GROUP_NOT_FOUND","message":"Couldn\t find device group for fields: [\"type\"] and values: {\"type\":\"Device\"}","code":404} in get group device

Provision device

curl http://localhost:4001/iot/devices \
     -H "fiware-service: opcua_car" \
     -H "fiware-servicepath: /demo" \
     -H "Content-Type: application/json" \
     -d @./testCommands/add_device.json

Successfully provision new device

Send accelerate commands to both entities

curl -X PUT \
  'http://localhost:1026/v2/entities/age01_Car/attrs/Accelerate?type=Device' \
  -H 'content-type: application/json' \
  -H 'fiware-service: opcua_car' \
  -H 'fiware-servicepath: /demo' \
  -d '{
  "value": [2],
  "type": "command"
}'

curl -X PUT \
  'http://localhost:1026/v2/entities/age02_Car/attrs/Accelerate?type=Device' \
  -H 'content-type: application/json' \
  -H 'fiware-service: opcua_car' \
  -H 'fiware-servicepath: /demo' \
  -d '{
  "value": [2],
  "type": "command"
}'

Logs from Orion

INFO@07:08:37  logTracing.cpp[130]: Request received: PUT /v2/entities/age01_Car/attrs/Accelerate?type=Device, request payload (39 bytes): {
  "value": [2],
  "type": "command"
}, response code: 204

Logs from Agent

time=2021-06-21T07:12:49.845Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.GenericMiddlewares | msg=Request for path [//op/update] from [iotage:4001]
time=2021-06-21T07:12:49.845Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.GenericMiddlewares | msg=Body:

{
    "entities": [
        {
            "id": "age02_Car",
            "type": "Device",
            "Accelerate": {
                "type": "command",
                "value": [
                    2
                ],
                "metadata": {}
            }
        }
    ],
    "actionType": "update"
}


time=2021-06-21T07:12:49.851Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.ContextServer-v2 | msg=Handling v2 update from [iotage:4001]
time=2021-06-21T07:12:49.851Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.ContextServer-v2 | msg={
    "entities": [
        {
            "id": "age02_Car",
            "type": "Device",
            "Accelerate": {
                "type": "command",
                "value": [
                    2
                ],
                "metadata": {}
            }
        }
    ],
    "actionType": "update"
}
time=2021-06-21T07:12:49.854Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBDeviceRegister | srv=opcua_car | subsrv=/demo | msg=Looking for device with name [age02_Car].
time=2021-06-21T07:12:49.858Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBGroupRegister | srv=n/a | subsrv=n/a | msg=Looking for group params ["service","subservice","type","apikey"] with queryObj {"service":"opcua_car","subservice":"/demo","type":"Device"}
time=2021-06-21T07:12:49.861Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBGroupRegister | srv=opcua_car | subsrv=/demo | msg=Device group data found: {"commands":[{"object_id":"ns=3;s=Stop","name":"Stop","type":"command"},{"object_id":"ns=3;s=Accelerate","name":"Accelerate","type":"command"}],"staticAttributes":[],"lazy":[{"object_id":"ns=3;s=Speed","name":"Speed","type":"Number"}],"attributes":[{"object_id":"ns=3;s=Acceleration","name":"Acceleration","type":"Number"},{"object_id":"ns=3;s=EngineStopped","name":"EngineStopped","type":"Boolean"},{"object_id":"ns=3;s=Temperature","name":"Temperature","type":"Number"},{"object_id":"ns=3;s=Oxigen","name":"Oxigen","type":"Number"}],"internalAttributes":[],"_id":"60d03a34fae871939ee2b880","resource":"/Device","apikey":"801230BJKL23Y9090DSFL123HJK09H324HV8732","type":"Device","service":"opcua_car","subservice":"/demo","cbHost":"orion:1026"}
time=2021-06-21T07:12:49.861Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.DeviceService | msg=deviceData before merge with conf: {"lazy":[{"object_id":"ns=3;s=Speed","name":"Speed","type":"Number"}],"active":[{"object_id":"ns=3;s=Acceleration","name":"Acceleration","type":"Number"},{"object_id":"ns=3;s=EngineStopped","name":"EngineStopped","type":"Boolean"},{"object_id":"ns=3;s=Temperature","name":"Temperature","type":"Number"},{"object_id":"ns=3;s=Oxigen","name":"Oxigen","type":"Number"}],"commands":[{"object_id":"ns=3;s=Stop","name":"Stop","type":"command"},{"object_id":"ns=3;s=Accelerate","name":"Accelerate","type":"command"}],"staticAttributes":[],"subscriptions":[],"_id":"60d03a34fae8716b1fe2b881","creationDate":"2021-06-21T07:05:24.254Z","id":"age02_Car","type":"Device","name":"age02_Car","service":"opcua_car","subservice":"/demo","registrationId":"60d03a3436be993abd6fa505","internalId":null}
time=2021-06-21T07:12:49.862Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.DeviceService | msg=deviceData after merge with conf: {"lazy":[{"object_id":"ns=3;s=Speed","name":"Speed","type":"Number"}],"active":[{"object_id":"ns=3;s=Acceleration","name":"Acceleration","type":"Number"},{"object_id":"ns=3;s=EngineStopped","name":"EngineStopped","type":"Boolean"},{"object_id":"ns=3;s=Temperature","name":"Temperature","type":"Number"},{"object_id":"ns=3;s=Oxigen","name":"Oxigen","type":"Number"}],"commands":[{"object_id":"ns=3;s=Stop","name":"Stop","type":"command"},{"object_id":"ns=3;s=Accelerate","name":"Accelerate","type":"command"}],"staticAttributes":[],"subscriptions":[],"_id":"60d03a34fae8716b1fe2b881","creationDate":"2021-06-21T07:05:24.254Z","id":"age02_Car","type":"Device","name":"age02_Car","service":"opcua_car","subservice":"/demo","registrationId":"60d03a3436be993abd6fa505","internalId":null,"internalAttributes":[],"cbHost":"orion:1026"}

time=2021-06-21T07:12:49.886Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.Entities-v2 | msg=Updating device value in the Context Broker at [http://orion:1026/v2/entities/age02_Car/attrs?type=Device]
time=2021-06-21T07:12:49.886Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.Entities-v2 | msg=Using the following NGSI v2 request:

{
    "url": "http://orion:1026/v2/entities/age02_Car/attrs?type=Device",
    "method": "POST",
    "headers": {
        "fiware-service": "opcua_car",
        "fiware-servicepath": "/demo"
    },
    "json": {
        "Accelerate_status": {
            "value": "PENDING",
            "type": "commandStatus"
        }
    }
}


time=2021-06-21T07:12:49.897Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBDeviceRegister | srv=opcua_car | subsrv=/demo | msg=Device data found: {"lazy":[],"active":[{"name":"Acceleration","type":"Number","object_id":"Acceleration"},{"name":"EngineStopped","type":"Boolean","object_id":"EngineStopped"},{"name":"Engine_Temperature","type":"Number","object_id":"Engine_Temperature"},{"name":"Engine_Oxigen","type":"Number","object_id":"Engine_Oxigen"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusy","type":"String","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusy"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusyStatus","type":"Boolean","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusyStatus"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDone","type":"String","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDone"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDoneStatus","type":"Boolean","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDoneStatus"}],"commands":[{"name":"Error","type":"command","object_id":"Error"},{"name":"Stop","type":"command","object_id":"Stop"},{"name":"Accelerate","type":"command","object_id":"Accelerate"},{"name":"ActivateSensor","type":"command","object_id":"ActivateSensor"},{"name":"DeactivateSensor","type":"command","object_id":"DeactivateSensor"},{"name":"ToggleSensorActivation","type":"command","object_id":"ToggleSensorActivation"}],"staticAttributes":[],"subscriptions":[],"_id":"60d03735fae8717b05e2b87f","creationDate":"2021-06-21T06:52:37.486Z","id":"age01_Car","type":"Device","name":"age01_Car","service":"opcua_car","subservice":"/demo","registrationId":"60d0373536be993abd6fa504","endpoint":"opc.tcp://iotcarsrv:5001/UA/CarServer","polling":false}
time=2021-06-21T07:12:49.898Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.NGSIService | srv=opcua_car | subsrv=/demo | msg=executeWithDeviceInfo entityName age01_Car type undefined apikey undefined attributes [{"name":"Accelerate_status","value":"OK"},{"name":"Accelerate_info","value":"Accelerated from 150"}] deviceInformation {"lazy":[],"active":[{"name":"Acceleration","type":"Number","object_id":"Acceleration"},{"name":"EngineStopped","type":"Boolean","object_id":"EngineStopped"},{"name":"Engine_Temperature","type":"Number","object_id":"Engine_Temperature"},{"name":"Engine_Oxigen","type":"Number","object_id":"Engine_Oxigen"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusy","type":"String","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusy"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusyStatus","type":"Boolean","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusyStatus"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDone","type":"String","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDone"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDoneStatus","type":"Boolean","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDoneStatus"}],"commands":[{"name":"Error","type":"command","object_id":"Error"},{"name":"Stop","type":"command","object_id":"Stop"},{"name":"Accelerate","type":"command","object_id":"Accelerate"},{"name":"ActivateSensor","type":"command","object_id":"ActivateSensor"},{"name":"DeactivateSensor","type":"command","object_id":"DeactivateSensor"},{"name":"ToggleSensorActivation","type":"command","object_id":"ToggleSensorActivation"}],"staticAttributes":[],"subscriptions":[],"_id":"60d03735fae8717b05e2b87f","creationDate":"2021-06-21T06:52:37.486Z","id":"age01_Car","type":"Device","name":"age01_Car","service":"opcua_car","subservice":"/demo","registrationId":"60d0373536be993abd6fa504","endpoint":"opc.tcp://iotcarsrv:5001/UA/CarServer","polling":false}
time=2021-06-21T07:12:49.898Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBGroupRegister | srv=n/a | subsrv=n/a | msg=Looking for group params ["type"] with queryObj {}
time=2021-06-21T07:12:49.904Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=opcua_car | subsrv=/demo | msg=ns=3;s=Acceleration  value has changed to 2
time=2021-06-21T07:12:49.904Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBDeviceRegister | srv=opcua_car | subsrv=/demo | msg=Looking for device with id [age01_Car].
time=2021-06-21T07:12:49.907Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBGroupRegister | srv=opcua_car | subsrv=/demo | msg=Device group data found: {"commands":[{"object_id":"ns=3;s=Stop","name":"Stop","type":"command"},{"object_id":"ns=3;s=Accelerate","name":"Accelerate","type":"command"}],"staticAttributes":[],"lazy":[{"object_id":"ns=3;s=Speed","name":"Speed","type":"Number"}],"attributes":[{"object_id":"ns=3;s=Acceleration","name":"Acceleration","type":"Number"},{"object_id":"ns=3;s=EngineStopped","name":"EngineStopped","type":"Boolean"},{"object_id":"ns=3;s=Temperature","name":"Temperature","type":"Number"},{"object_id":"ns=3;s=Oxigen","name":"Oxigen","type":"Number"}],"internalAttributes":[],"_id":"60d03a34fae871939ee2b880","resource":"/Device","apikey":"801230BJKL23Y9090DSFL123HJK09H324HV8732","type":"Device","service":"opcua_car","subservice":"/demo","cbHost":"orion:1026"}
time=2021-06-21T07:12:49.908Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.NGSIUtils | msg=typeInformation {"lazy":[],"active":[{"name":"Acceleration","type":"Number","object_id":"Acceleration"},{"name":"EngineStopped","type":"Boolean","object_id":"EngineStopped"},{"name":"Engine_Temperature","type":"Number","object_id":"Engine_Temperature"},{"name":"Engine_Oxigen","type":"Number","object_id":"Engine_Oxigen"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusy","type":"String","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusy"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusyStatus","type":"Boolean","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusyStatus"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDone","type":"String","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDone"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDoneStatus","type":"Boolean","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDoneStatus"}],"commands":[{"name":"Error","type":"command","object_id":"Error"},{"name":"Stop","type":"command","object_id":"Stop"},{"name":"Accelerate","type":"command","object_id":"Accelerate"},{"name":"ActivateSensor","type":"command","object_id":"ActivateSensor"},{"name":"DeactivateSensor","type":"command","object_id":"DeactivateSensor"},{"name":"ToggleSensorActivation","type":"command","object_id":"ToggleSensorActivation"}],"staticAttributes":[],"subscriptions":[],"_id":"60d03735fae8717b05e2b87f","creationDate":"2021-06-21T06:52:37.486Z","id":"age01_Car","type":"Device","name":"age01_Car","service":"opcua_car","subservice":"/demo","registrationId":"60d0373536be993abd6fa504","endpoint":"opc.tcp://iotcarsrv:5001/UA/CarServer","polling":false,"cbHost":"orion:1026"}
time=2021-06-21T07:12:49.917Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBDeviceRegister | srv=opcua_car | subsrv=/demo | msg=Device data found: {"lazy":[],"active":[{"name":"Acceleration","type":"Number","object_id":"Acceleration"},{"name":"EngineStopped","type":"Boolean","object_id":"EngineStopped"},{"name":"Engine_Temperature","type":"Number","object_id":"Engine_Temperature"},{"name":"Engine_Oxigen","type":"Number","object_id":"Engine_Oxigen"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusy","type":"String","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusy"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusyStatus","type":"Boolean","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusyStatus"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDone","type":"String","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDone"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDoneStatus","type":"Boolean","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDoneStatus"}],"commands":[{"name":"Error","type":"command","object_id":"Error"},{"name":"Stop","type":"command","object_id":"Stop"},{"name":"Accelerate","type":"command","object_id":"Accelerate"},{"name":"ActivateSensor","type":"command","object_id":"ActivateSensor"},{"name":"DeactivateSensor","type":"command","object_id":"DeactivateSensor"},{"name":"ToggleSensorActivation","type":"command","object_id":"ToggleSensorActivation"}],"staticAttributes":[],"subscriptions":[],"_id":"60d03735fae8717b05e2b87f","creationDate":"2021-06-21T06:52:37.486Z","id":"age01_Car","type":"Device","name":"age01_Car","service":"opcua_car","subservice":"/demo","registrationId":"60d0373536be993abd6fa504","endpoint":"opc.tcp://iotcarsrv:5001/UA/CarServer","polling":false}
time=2021-06-21T07:12:49.918Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.NGSIService | srv=opcua_car | subsrv=/demo | msg=executeWithDeviceInfo entityName age01_Car type Device apikey  attributes [{"name":"Acceleration","type":"Number","value":"2","metadatas":[{"name":"SourceTimestamp","type":"ISO8601","value":"2021-06-21T07:12:49.891Z"},{"name":"ServerTimestamp","type":"ISO8601","value":"2021-06-21T07:12:49.892Z"}]}] deviceInformation {"lazy":[],"active":[{"name":"Acceleration","type":"Number","object_id":"Acceleration"},{"name":"EngineStopped","type":"Boolean","object_id":"EngineStopped"},{"name":"Engine_Temperature","type":"Number","object_id":"Engine_Temperature"},{"name":"Engine_Oxigen","type":"Number","object_id":"Engine_Oxigen"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusy","type":"String","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusy"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusyStatus","type":"Boolean","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xBusyStatus"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDone","type":"String","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDone"},{"name":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDoneStatus","type":"Boolean","object_id":"DataBlocksGlobal_3_dbRfidCntr_3_ID1_3_xDoneStatus"}],"commands":[{"name":"Error","type":"command","object_id":"Error"},{"name":"Stop","type":"command","object_id":"Stop"},{"name":"Accelerate","type":"command","object_id":"Accelerate"},{"name":"ActivateSensor","type":"command","object_id":"ActivateSensor"},{"name":"DeactivateSensor","type":"command","object_id":"DeactivateSensor"},{"name":"ToggleSensorActivation","type":"command","object_id":"ToggleSensorActivation"}],"staticAttributes":[],"subscriptions":[],"_id":"60d03735fae8717b05e2b87f","creationDate":"2021-06-21T06:52:37.486Z","id":"age01_Car","type":"Device","name":"age01_Car","service":"opcua_car","subservice":"/demo","registrationId":"60d0373536be993abd6fa504","endpoint":"opc.tcp://iotcarsrv:5001/UA/CarServer","polling":false}
time=2021-06-21T07:12:49.918Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBGroupRegister | srv=n/a | subsrv=n/a | msg=Looking for group params ["type"] with queryObj {"type":"Device"}
time=2021-06-21T07:12:49.922Z | lvl=INFO | corr=n/a | trans=n/a | op=IoTAgentNGSI.Entities-v2 | msg=Received the following response from the CB: Value updated successfully

Commands seem to be sent.

Get lazy attribute (named Speed)

curl -X GET \
  http://localhost:1026/v2/entities/age01_Car/attrs/Speed \
  -H 'fiware-service: opcua_car' \
  -H 'fiware-servicepath: /demo'

I got this response
{"error":"NotFound","description":"The entity does not have such an attribute"}

Logs from IoT Agent

time=2021-06-21T07:21:10.886Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.GenericMiddlewares | msg=Request for path [//op/query] from [iotage:4001]
time=2021-06-21T07:21:10.888Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.GenericMiddlewares | msg=Body:

{
    "entities": [
        {
            "id": "age01_Car",
            "type": "Device"
        }
    ],
    "attrs": [
        "Speed",
        "Error",
        "Stop",
        "Accelerate",
        "ActivateSensor",
        "DeactivateSensor",
        "ToggleSensorActivation"
    ]
}


time=2021-06-21T07:21:10.891Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.ContextServer-v2 | msg=Handling query from [iotage:4001]
time=2021-06-21T07:21:10.892Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.ContextServer-v2 | msg={
    "entities": [
        {
            "id": "age01_Car",
            "type": "Device"
        }
    ],
    "attrs": [
        "Speed",
        "Error",
        "Stop",
        "Accelerate",
        "ActivateSensor",
        "DeactivateSensor",
        "ToggleSensorActivation"
    ]
}
time=2021-06-21T07:21:10.893Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBDeviceRegister | srv=opcua_car | subsrv=/demo | msg=Looking for device with name [age01_Car].
time=2021-06-21T07:21:10.905Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBGroupRegister | srv=n/a | subsrv=n/a | msg=Looking for group params ["service","subservice","type","apikey"] with queryObj {"service":"opcua_car","subservice":"/demo","type":"Device"}
time=2021-06-21T07:21:10.911Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.MongoDBGroupRegister | srv=opcua_car | subsrv=/demo | msg=Device group data found: {"commands":[{"object_id":"ns=3;s=Stop","name":"Stop","type":"command"},{"object_id":"ns=3;s=Accelerate","name":"Accelerate","type":"command"}],"staticAttributes":[],"lazy":[{"object_id":"ns=3;s=Speed","name":"Speed","type":"Number"}],"attributes":[{"object_id":"ns=3;s=Acceleration","name":"Acceleration","type":"Number"},{"object_id":"ns=3;s=EngineStopped","name":"EngineStopped","type":"Boolean"},{"object_id":"ns=3;s=Temperature","name":"Temperature","type":"Number"},{"object_id":"ns=3;s=Oxigen","name":"Oxigen","type":"Number"}],"internalAttributes":[],"_id":"60d03a34fae871939ee2b880","resource":"/Device","apikey":"801230BJKL23Y9090DSFL123HJK09H324HV8732","type":"Device","service":"opcua_car","subservice":"/demo","cbHost":"orion:1026"}
time=2021-06-21T07:21:10.921Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.ContextServer-v2 | msg=Handling received set of attributes: ["Speed","Error","Stop","Accelerate","ActivateSensor","DeactivateSensor","ToggleSensorActivation"]
time=2021-06-21T07:21:10.934Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.QueryContextHandler | comp=iotAgent-OPCUA | srv=opcua_car | subsrv=/demo | msg=dataValue.value.value=150
time=2021-06-21T07:21:10.934Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.QueryContextHandler | comp=iotAgent-OPCUA | srv=opcua_car | subsrv=/demo | msg= read variable % =  { /* DataValue */
   value: Variant(Scalar<Double>, value: 150)
   statusCode:      Good (0x00000)
   serverTimestamp: null
   sourceTimestamp: null
}
time=2021-06-21T07:21:10.935Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.ContextServer-v2 | msg=Query from [iotage:4001] handled successfully.
time=2021-06-21T07:21:10.939Z | lvl=DEBUG | corr=n/a | trans=n/a | op=IoTAgentNGSI.DomainControl | msg=response-time: 63

Logs from OCB

WARN@07:24:19  AlarmManager.cpp[432]: Releasing alarm BadInput 192.168.208.1
INFO@07:24:19  logTracing.cpp[146]: Starting forwarding for GET /v2/entities/age01_Car/attrs/Speed
INFO@07:24:19  logTracing.cpp[212]: Request forwarded (regId: 60d0373536be993abd6fa504): POST http://iotage:4001/op/query, request payload (156 bytes): {"entities":[{"id":"age01_Car","type":"Device"}],"attrs":["Speed","Error","Stop","Accelerate","ActivateSensor","DeactivateSensor","ToggleSensorActivation"]}, response payload (226 bytes): [{"id":"age01_Car","type":"Device","attributes":[{"name":"Speed","type":"string","value":"150","metadatas":[{"name":"SourceTimestamp","type":"ISO8601","value":null},{"name":"ServerTimestamp","type":"ISO8601","value":null}]}]}], response code: 200
WARN@07:24:19  AlarmManager.cpp[405]: Raising alarm BadInput 192.168.208.1: attribute must be a JSON object, unless keyValues option is used
WARN@07:24:19  postQueryContext.cpp[369]: Internal Error (error parsing reply from context provider: attribute must be a JSON object, unless keyValues option is used)
INFO@07:24:19  logTracing.cpp[79]: Request received: GET /v2/entities/age01_Car/attrs/Speed, response code: 404

docker-compose.yml
The file has been modified from the original

version: "3"

services:
  iotcarsrv:
    hostname: iotcarsrv
    image: iotagent4fiware/opcuacarsrv:latest
    volumes:
      - ./CARCONF/car_config.json:/opt/opc-ua-car-server/Car/Car1/config/car_config.json
    networks:
      - hostnet
    ports:
      - "5001:5001"

  iotage:
    hostname: iotage
    image: iotagent4fiware/iotagent-opcua:latest
    networks:
      - hostnet
      - iotnet
    ports:
      - "4001:4001"
      - "4081:8080"
    depends_on:
      - iotcarsrv
      - iotmongo
      - orion
    volumes:
      - ./AGECONF:/opt/iotagent-opcua/conf
      - ./certificates:/opt/iotagent-opcua/certificates
    command: node index.js
    environment:
      - IOTA_REGISTRY_TYPE=mongodb #Whether to hold IoT device info in memory or in a database
      - IOTA_LOG_LEVEL=DEBUG # The log level of the IoT Agent
      - IOTA_MONGO_HOST=iot_mongo # The host name of MongoDB
      - IOTA_MONGO_DB=iotagent_opcua # The name of the database used in mongoDB
      - IOTA_CB_NGSI_VERSION=v2 # use NGSI-v2 when sending updates for active attributes
      - IOTA_FALLBACK_TENANT=opcua_car
      - IOTA_RELAX_TEMPLATE_VALIDATION=true

  iotmongo:
    hostname: iot_mongo
    image: mongo:4.4
    networks:
      - iotnet
    volumes:
      - iot_mongo_data:/data/db
      - iot_mongo_conf:/data/configdb

  ################ OCB ################

  orion:
    hostname: orion
    image: fiware/orion:latest # Change to orion-ld if IOTA_CB_NGSI_VERSION=ld
    networks:
      - hostnet
      - ocbnet
    ports:
      - "1026:1026"
    depends_on:
      - orion_mongo
    command: -statCounters -dbhost orion_mongo -logForHumans -logLevel DEBUG -t 255

  orion_mongo:
    hostname: orion_mongo
    image: mongo:4.4
    networks:
      - ocbnet
    ports:
      - "27017:27017"
    volumes:
      - orion_mongo_data:/data/db
      - orion_mongo_conf:/data/configdb
    command: --nojournal # add a buffer for changes made in mongodb with the cost of doubling the memory

volumes:
  iot_mongo_data:
  iot_mongo_conf:
  orion_mongo_data:
  orion_mongo_conf:

networks:
  hostnet:
  iotnet:
  ocbnet:

Issue

  • Not allow to retrieve lazy attribute as in the tutorial
  • Unknown Error in IoT Agent's log

I can however access other attributes.

Strings with .cyan, .bold, .red, ...

Hello, I was using the agent and I realized that the logger was printing 'undefined' in some messages. I also got some errors in strings like the following:

logger.info(logContext, ' Check Security Settings '.red.bold, err);

Where ' Check Security Settings '.red is undefined and trying to get the bold property will throw an error because undefined hasn't got bold property.

I'm using Node in its version 12. Thank you!

how to build docker image for raspberry pi

Hello @gabrieledeluca
we are using the docker image iotagent4fiware/iotagent-opcua:v1.3.7 successfully on a PC laptop to connect to OPC UA Omron PLC (btw the latest image does not work). We run orion and mongo on a remote server. Now, we wanted to replace the PC laptop with Raspberry pi and we have the following issue:

iotage_1  | standard_init_linux.go:219: exec user process caused: exec format error

I found the explanation here:
https://qiita.com/reireias/items/03bfdaeb7f3afd7c4339
So the solution is to build the iotagent-opcua image for ARM linux.
Can you please help me with this step? Can I use the dockerbuild file in this repository to do it myself? And how to make the right version that will provide a compatible version like v1.3.7 tag that currently works.

Thank you!
Best regards

Marija

Problem with connecting to OPC server

Hi,

I'm trying to connect the agent to the Bystronic OPC server.
Agent connected well (config was generated), but I have problems with registering a new device into it. How should I do this?

External OPC UA server cert auth

Hello,

I try to connect an external OPC UA server. Unefortunetly the certificate of the server is expired. When I open it a 3rd party software I can accept it, and I can see the data.
I'd like to use the mapping tool for the configuration of the iotagent. When I execute it, the mapping tool return with error. It execute the java -jar mapping_tool.jar -e opc.tcp://130.130.130.1:4840 -f conf/config.properties -u null -p null code

The log:

iotage_1       | ........time=2022-04-21T07:58:49.685Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.MappingTool | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=There is a problem with automatic configuration. Loading old configuration (if exists)...Error: Command failed: java -jar mapping_tool.jar  -e opc.tcp://130.130.130.1:4840 
-f conf/config.properties -u null -p null
iotage_1       | [main] INFO org.opcfoundation.ua.utils.CryptoUtil - SecurityProvider initialized from org.bouncycastle.jce.provider.BouncyCastleProvider
iotage_1       | [main] INFO org.opcfoundation.ua.utils.CryptoUtil - Using SecurityProvider BC
iotage_1       | [main] INFO org.opcfoundation.ua.transport.tcp.io.TcpConnection - /130.130.130.1:4840 Connecting
iotage_1       | [main] INFO org.opcfoundation.ua.transport.tcp.io.TcpConnection - /130.130.130.1:4840 Connected
iotage_1       | [main] INFO org.opcfoundation.ua.transport.tcp.io.SecureChannelTcp - 1735193229 Closed
iotage_1       | [main] INFO org.opcfoundation.ua.transport.tcp.io.TcpConnection - /130.130.130.1:4840 Closed
iotage_1       | [TcpConnection/Read] INFO org.opcfoundation.ua.transport.tcp.io.TcpConnection - /130.130.130.1:4840 Closed (expected)
iotage_1       | [main] INFO org.opcfoundation.ua.transport.tcp.io.TcpConnection - sif401:4840 Connecting
iotage_1       | [main] INFO org.opcfoundation.ua.transport.tcp.io.TcpConnection - sif401:4840 Connect failed
iotage_1       | java.net.UnknownHostException: sif401
iotage_1       |        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
iotage_1       |        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
iotage_1       |        at java.net.Socket.connect(Socket.java:607)
iotage_1       |        at org.opcfoundation.ua.transport.tcp.io.TcpConnection.open(TcpConnection.java:431)
iotage_1       |        at org.opcfoundation.ua.transport.tcp.io.SecureChannelTcp.open(SecureChannelTcp.java:566)
iotage_1       |        at org.opcfoundation.ua.application.Client.createSecureChannel(Client.java:644)
iotage_1       |        at org.opcfoundation.ua.application.Client.createSecureChannel(Client.java:558)
iotage_1       |        at org.opcfoundation.ua.application.Client.createSecureChannel(Client.java:541)
iotage_1       |        at MappingTool.main(MappingTool.java:183)
iotage_1       | [main] WARN org.opcfoundation.ua.transport.tcp.io.SecureChannelTcp - Connection failed: Bad_ConnectionRejected (code=0x80AC0000, description="2158755840, sif401")
iotage_1       | org.opcfoundation.ua.common.ServiceResultException: Bad_ConnectionRejected (code=0x80AC0000, description="2158755840, sif401")
iotage_1       |        at org.opcfoundation.ua.transport.tcp.io.TcpConnection.open(TcpConnection.java:438)
iotage_1       |        at org.opcfoundation.ua.transport.tcp.io.SecureChannelTcp.open(SecureChannelTcp.java:566)
iotage_1       |        at org.opcfoundation.ua.application.Client.createSecureChannel(Client.java:644)
iotage_1       |        at org.opcfoundation.ua.application.Client.createSecureChannel(Client.java:558)
iotage_1       |        at org.opcfoundation.ua.application.Client.createSecureChannel(Client.java:541)
iotage_1       |        at MappingTool.main(MappingTool.java:183)
iotage_1       | Caused by: java.net.UnknownHostException: sif401
iotage_1       |        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
iotage_1       |        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
iotage_1       |        at java.net.Socket.connect(Socket.java:607)
iotage_1       |        at org.opcfoundation.ua.transport.tcp.io.TcpConnection.open(TcpConnection.java:431)
iotage_1       |        ... 5 more
iotage_1       |
iotage_1       | time=2022-04-21T07:58:51.039Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=----------------------------------------------------
iotage_1       | time=2022-04-21T07:58:51.040Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=endpointUrl   
      =  opc.tcp://130.130.130.1:4840
iotage_1       | {"op":"IoTAgentNGSI.DomainControl","time":"2022-04-21T07:58:51.045Z","lvl":"ERROR","msg":"{ TypeError: Cannot read property 'toString' of null\n    at 
Object.run (/opt/iotagent-opcua/iot_agent_modules/run/run.js:92:72)\n    at /opt/iotagent-opcua/index.js:90:21\n    at ChildProcess.exithandler (child_process.js:301:5)\n    at ChildProcess.emit (events.js:198:13)\n    at maybeClose (internal/child_process.js:982:16)\n    at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)\n  domain:\n   Domain {\n     domain: null,\n     _events:\n      [Object: null prototype] {\n        removeListener: [Function: updateExceptionCapture],\n   
     newListener: [Function: updateExceptionCapture],\n        error: [Function: domainErrorHandler] },\n     _eventsCount: 3,\n     _maxListeners: undefined,\n     members: [],\n     start: 1650527930740,\n     trans: '372b0a80-5a27-4cfa-a418-3ba4965c1643',\n     corr: '372b0a80-5a27-4cfa-a418-3ba4965c1643',\n     op: 'IoTAgentNGSI.DeviceService',\n     [Symbol(kWeak)]: WeakReference {} },\n  domainThrown: true }"}
iotagent-opcua_iotage_1 exited with code 

When I execute the mapping tool manually without user and password, I get one exception, but the mapping run succesfully.
java -jar mapping_tool.jar -e opc.tcp://130.130.130.1:4840 -f conf\config.properties -u -p

java -jar mapping_tool.jar -e opc.tcp://130.130.130.1:4840 -f conf\config.properties -u  -p 
[INFO ] 2022-04-21 10:02:43.672 [MappingTool:88] - Welcome to ENGINEERING INGEGNERIA INFORMATICA FIWARE OPC UA AGENT MAPPING TOOL
[INFO ] 2022-04-21 10:02:47.362 [TcpConnection:488] - /130.130.130.1:4840 Connecting
[INFO ] 2022-04-21 10:02:47.425 [TcpConnection:712] - Connected (non-reverse), handshake completed, local=/130.130.130.205:19119, remote=/130.130.130.1:4840
[INFO ] 2022-04-21 10:02:47.523 [SecureChannelTcp:870] - 1735193230 Closed
[INFO ] 2022-04-21 10:02:47.529 [TcpConnection:823] - /130.130.130.1:4840 Closed
[INFO ] 2022-04-21 10:02:47.529 [TcpConnection:1171] - /130.130.130.1:4840 Closed (expected)
[INFO ] 2022-04-21 10:02:47.535 [TcpConnection:488] - /130.130.130.1:4840 Connecting        
[INFO ] 2022-04-21 10:02:47.586 [TcpConnection:712] - Connected (non-reverse), handshake completed, local=/130.130.130.205:19120, remote=/130.130.130.1:4840
java.lang.ArrayIndexOutOfBoundsException: 1
        at AddressSpaceBrowsing.browse(AddressSpaceBrowsing.java:145)
        at MappingTool.main(MappingTool.java:410)
[INFO ] 2022-04-21 10:03:12.211 [AddressSpaceBrowsing:338] - ObjectType: AggregateConfigurationType(ns=0;i=11187) --> i=0
|____[INFO ] 2022-04-21 10:03:12.233 [AddressSpaceBrowsing:338] - Variable: PercentDataBad(ns=0;i=11189) --> i=68
|____|____[INFO ] 2022-04-21 10:03:12.253 [AddressSpaceBrowsing:338] - Object: Mandatory(ns=0;i=78) --> i=77
|____|____|____[INFO ] 2022-04-21 10:03:12.279 [AddressSpaceBrowsing:338] - ObjectType: ModellingRuleType(ns=0;i=77) --> i=0
|____|____|____|____[INFO ] 2022-04-21 10:03:12.302 [AddressSpaceBrowsing:338] - Variable: NamingRule(ns=0;i=111) --> i=68
|____|____|____|____|____[INFO ] 2022-04-21 10:03:12.325 [AddressSpaceBrowsing:338] - Object: Mandatory(ns=0;i=78) --> i=77
|____|____|____[INFO ] 2022-04-21 10:03:12.334 [AddressSpaceBrowsing:338] - Variable: NamingRule(ns=0;i=112) --> i=68
|____[INFO ] 2022-04-21 10:03:12.352 [AddressSpaceBrowsing:338] - Variable: PercentDataGood(ns=0;i=11190) --> i=68

In the config the security mode and policy is None, and I don't fill the user and the password.

## SERVER CERT E AUTH
securityMode=None
securityPolicy=None
userName= 
password= 

I'm nut sure if it is a solution or not, but if the security mode is None, could be the mapping tool parameter an empty caharcer, not null?

Thank you!
Péter

support of (metadata) source timestamps

I have a basic FIWARE architecture set up that has roughly the following dataflow:

OPC-UA simulation server -> IoT Agent OPC-UA -> Orion -> QuantumLeap -> CrateDB

The configuration of the IoT agent was based on the examples that were available, though, the IoT Agent does not seem to take into account the timestamp (Source Timestamp) of the value of the node that is configured to be pushed to Orion. Is it supported by the IoT agent e.g. to include this timestamp as a metadata value? If yes, is it documented somewhere on how to configure it?

You can find the configuration that was used for the IoT agent attached:
config.properties.txt
config.json.txt

Use of commands status PENDING

Hello,

I am trying to use the commands to send information to my OPC server. I have a number of doubts.

Doubt 1: When I send my update (why is it necessary to put it between [])

curl -X PUT
'http://localhost:1026/v2/entities/React/attrs/Imput?type=3:React'
-H 'content-type: application/json'
-H 'fiware-service: sabana'
-H 'fiware-servicepath: /team'
-d '{
"value": [44],
"type": "command"
}’

Doubt 2: When I query my OCB I get the response from that entity and the command attribute to update is PENDING. How do I solve this problem.

"Imput_info": {
            "type": "commandResult",
            "value": " ",
            "metadata": {}
        },
        "Imput_status": {
            "type": "commandStatus",
            "value": "PENDING",
            "metadata": {}
        }

Thank you.

MULTIPLE_DEVICES error "No device with id found".

Hello,

I have an OPC server with different Objects and inside each object variables.

I am using the MULTIPLE_DEVICES file but I get the following error msg={"name": "DEVICE_NOT_FOUND", "message": "No device was found with id:RW1", "code":404} It seems that the contextBroker does not find it, but it is there when making the query.

When I delete either of the two and leave only one device it works correctly.

What is the problem, how can I solve it?

Configuration file


{
  "logLevel" : "DEBUG",
  "contextBroker" : {
    "host" : "orion",
    "port" : 1026
  },
  "server" : {
    "port" : 4001,
    "baseRoot" : "/"
  },
  "deviceRegistry" : {
    "type" : "memory"
  },
  "mongodb" : {
    "host" : "iotmongo",
    "port" : "27017",
    "db" : "iotagent",
    "retries" : 5,
    "retryTime" : 5
  },
  "types" : {
    "device" : {
      "service" : "sabana",
      "subservice" : "/team",
      "active" : [{
        "name" : "temperature_rw",
        "type" : "Number"
      },
      {
        "name" : "ph_rw",
        "type" : "Number"
      },
      {
        "name" : "oxdis_rw",
        "type" : "Number"
      },
      {
        "name" : "co2_rw",
        "type" : "Number"
      }
      ],
      "lazy" : [],
      "commands" : []
    },
    "device2" : {
      "service" : "sabana",
      "subservice" : "/team",
      "active" : [{
        "name" : "temperature_tl",
        "type" : "Number"
      },
      {
        "name" : "ph_tl",
        "type" : "Number"
      },
      {
        "name" : "oxdis_tl",
        "type" : "Number"
      },
      {
        "name" : "co2_tl",
        "type" : "Number"
      }
      ],
      "lazy" : [],
      "commands" : []
    }
  },
  "browseServerOptions" : null,
  "service" : "sabana",
  "subservice" : "/team",
  "providerUrl" : "http://iotage:4001",
  "pollingExpiration" : "200000",
  "pollingDaemonFrequency" : "20000",
  "deviceRegistrationDuration" : "P1M",
  "defaultType" : null,
  "contexts" : [ {
    "id" : "RW1",
    "type" : "device",
    "service" : "sabana",
    "subservice" : "/team",
    "polling" : false,
    "mappings" : [ {
      "ocb_id" : "temperature_rw",
      "opcua_id" : "ns=1;s=temperature_rw",
      "object_id" : null,
      "inputArguments" : []
    },
    {
      "ocb_id" : "ph_rw",
      "opcua_id" : "ns=1;s=ph_rw",
      "object_id" : null,
      "inputArguments" : []
    },
    {
      "ocb_id" : "oxdis_rw",
      "opcua_id" : "ns=1;s=oxdis_rw",
      "object_id" : null,
      "inputArguments" : []
    },
    {
      "ocb_id" : "co2_rw",
      "opcua_id" : "ns=1;s=co2_rw",
      "object_id" : null,
      "inputArguments" : []
    }]
  },
  {
    "id" : "TL1",
    "type" : "device2",
    "service" : "sabana",
    "subservice" : "/team",
    "polling" : false,
    "mappings" : [ {
      "ocb_id" : "temperature_tl",
      "opcua_id" : "ns=1;s=temperature_tl",
      "inputArguments" : []
    },
    {
      "ocb_id" : "ph_tl",
      "opcua_id" : "ns=1;s=ph_tl",
      "object_id" : null,
      "inputArguments" : []
    },
    {
      "ocb_id" : "oxdis_tl",
      "opcua_id" : "ns=1;s=oxdis_tl",
      "object_id" : null,
      "inputArguments" : []
    },
    {
      "ocb_id" : "co2_tl",
      "opcua_id" : "ns=1;s=co2_tl",
      "object_id" : null,
      "inputArguments" : []
    }]
  }
  ],
  "contextSubscriptions" : []
}

LOG ERROR:


***********************************************
WARNING: It is recommended to enable authentication for secure connection
***********************************************
INFO: IoT Agent running standalone
time=2022-02-10T16:31:21.224Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=----------------------------------------------------
time=2022-02-10T16:31:21.240Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=endpointUrl         =  Servidor
time=2022-02-10T16:31:21.241Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=securityMode        =  None
time=2022-02-10T16:31:21.243Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=securityPolicy      =  http://opcfoundation.org/UA/SecurityPolicy#None
time=2022-02-10T16:31:21.246Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=timeout             =  -1
{"op":"IoTAgentNGSI.CommonConfig","time":"2022-02-10T16:31:21.412Z","lvl":"INFO","msg":"Setting IOTA_REGISTRY_TYPE to environment value: memory"}
{"op":"IoTAgentNGSI.CommonConfig","time":"2022-02-10T16:31:21.412Z","lvl":"INFO","msg":"Setting IOTA_LOG_LEVEL to environment value: DEBUG"}
{"op":"IoTAgentNGSI.CommonConfig","time":"2022-02-10T16:31:21.413Z","lvl":"INFO","msg":"Setting IOTA_MONGO_HOST to environment value: iot_mongo"}
{"op":"IoTAgentNGSI.CommonConfig","time":"2022-02-10T16:31:21.413Z","lvl":"INFO","msg":"Setting IOTA_MONGO_DB to environment value: iotagent_opcua"}
{"op":"IoTAgentNGSI.Global","time":"2022-02-10T16:31:21.413Z","lvl":"INFO","msg":"Activating IOT Agent NGSI Library."}
{"op":"IoTAgentNGSI.Global","time":"2022-02-10T16:31:21.413Z","lvl":"INFO","msg":"Falling back to Transient Memory registry for NGSI Library"}
{"op":"IoTAgentNGSI.NorthboundServer","time":"2022-02-10T16:31:21.466Z","lvl":"INFO","msg":"Starting IoT Agent listening on port [4001]"}
{"op":"IoTAgentNGSI.NorthboundServer","time":"2022-02-10T16:31:21.466Z","lvl":"DEBUG","msg":"Using config:\n\n{\n    \"logLevel\": \"DEBUG\",\n    \"contextBroker\": {\n        \"host\": \"orion\",\n        \"port\": 1026,\n        \"url\": \"http://orion:1026\"\n    },\n    \"server\": {\n        \"port\": 4001,\n        \"baseRoot\": \"/\"\n    },\n    \"deviceRegistry\": {\n        \"type\": \"memory\"\n    },\n    \"mongodb\": {\n        \"host\": \"iot_mongo\",\n        \"db\": \"iotagent_opcua\"\n    },\n    \"types\": {\n        \"device\": {\n            \"service\": \"sabana\",\n            \"subservice\": \"/team\",\n            \"active\": [\n                {\n                    \"name\": \"temperature_rw\",\n                    \"type\": \"Number\"\n                },\n                {\n                    \"name\": \"ph_rw\",\n                    \"type\": \"Number\"\n                },\n                {\n                    \"name\": \"oxdis_rw\",\n                    \"type\": \"Number\"\n                },\n                {\n                    \"name\": \"co2_rw\",\n                    \"type\": \"Number\"\n                }\n            ],\n            \"lazy\": [],\n            \"commands\": []\n        },\n        \"device2\": {\n            \"service\": \"sabana\",\n            \"subservice\": \"/team\",\n            \"active\": [\n                {\n                    \"name\": \"temperature_tl\",\n                    \"type\": \"Number\"\n                },\n                {\n                    \"name\": \"ph_tl\",\n                    \"type\": \"Number\"\n                },\n                {\n                    \"name\": \"oxdis_tl\",\n                    \"type\": \"Number\"\n                },\n                {\n                    \"name\": \"co2_tl\",\n                    \"type\": \"Number\"\n                }\n            ],\n            \"lazy\": [],\n            \"commands\": []\n        }\n    },\n    \"browseServerOptions\": null,\n    \"service\": \"sabana\",\n    \"subservice\": \"/team\",\n    \"providerUrl\": \"http://iotage:4001\",\n    \"pollingExpiration\": \"200000\",\n    \"pollingDaemonFrequency\": \"20000\",\n    \"deviceRegistrationDuration\": \"P1M\",\n    \"defaultType\": null,\n    \"contexts\": [\n        {\n            \"id\": \"RW1\",\n            \"type\": \"device\",\n            \"service\": \"sabana\",\n            \"subservice\": \"/team\",\n            \"polling\": false,\n            \"mappings\": [\n                {\n                    \"ocb_id\": \"temperature_rw\",\n                    \"opcua_id\": \"ns=1;s=temperature_rw\",\n                    \"object_id\": null,\n                    \"inputArguments\": []\n                },\n                {\n                    \"ocb_id\": \"ph_rw\",\n                    \"opcua_id\": \"ns=1;s=ph_rw\",\n                    \"object_id\": null,\n                    \"inputArguments\": []\n                },\n                {\n                    \"ocb_id\": \"oxdis_rw\",\n                    \"opcua_id\": \"ns=1;s=oxdis_rw\",\n                    \"object_id\": null,\n                    \"inputArguments\": []\n                },\n                {\n                    \"ocb_id\": \"co2_rw\",\n                    \"opcua_id\": \"ns=1;s=co2_rw\",\n                    \"object_id\": null,\n                    \"inputArguments\": []\n                }\n            ]\n        },\n        {\n            \"id\": \"TL1\",\n            \"type\": \"device2\",\n            \"service\": \"sabana\",\n            \"subservice\": \"/team\",\n            \"polling\": false,\n            \"mappings\": [\n                {\n                    \"ocb_id\": \"temperature_tl\",\n                    \"opcua_id\": \"ns=1;s=temperature_tl\",\n                    \"inputArguments\": []\n                },\n                {\n                    \"ocb_id\": \"ph_tl\",\n                    \"opcua_id\": \"ns=1;s=ph_tl\",\n                    \"object_id\": null,\n                    \"inputArguments\": []\n                },\n                {\n                    \"ocb_id\": \"oxdis_tl\",\n                    \"opcua_id\": \"ns=1;s=oxdis_tl\",\n                    \"object_id\": null,\n                    \"inputArguments\": []\n                },\n                {\n                    \"ocb_id\": \"co2_tl\",\n                    \"opcua_id\": \"ns=1;s=co2_tl\",\n                    \"object_id\": null,\n                    \"inputArguments\": []\n                }\n            ]\n        }\n    ],\n    \"contextSubscriptions\": [],\n    \"multiCore\": false\n}\n"}
{"op":"IoTAgentNGSI.ContextServer","time":"2022-02-10T16:31:21.555Z","lvl":"INFO","msg":"Loading NGSI Contect server routes"}
time=2022-02-10T16:31:21.660Z | lvl=INFO | corr=n/a | trans=n/a | op=n/a | msg=Express server listening on :::8080
time=2022-02-10T16:31:21.689Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=Options =  None http://opcfoundation.org/UA/SecurityPolicy#None
time=2022-02-10T16:31:21.695Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= connecting to  Servidor
(node:7) [DEP0097] DeprecationWarning: Using a domain property in MakeCallback is deprecated. Use the async_context variant of MakeCallback or the AsyncResource class instead.
time=2022-02-10T16:31:23.209Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= session created
time=2022-02-10T16:31:23.212Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= sessionId :  ns=1;g=D89438C2-294F-D6AE-223D-1D090E046884
time=2022-02-10T16:31:23.212Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= the timeout value set by the server is  100000  ms
time=2022-02-10T16:31:23.309Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= --- NAMESPACE ARRAY ---
time=2022-02-10T16:31:23.310Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  0   :  http://opcfoundation.org/UA/
time=2022-02-10T16:31:23.310Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  1   :  urn:iotcarsrv:NodeOPCUA-Server
time=2022-02-10T16:31:23.310Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= -----------------------
time=2022-02-10T16:31:23.343Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=registering OCB context RW1 of type device
time=2022-02-10T16:31:23.355Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=registering OCB context TL1 of type device2
time=2022-02-10T16:31:23.362Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=Starting timer  -1
time=2022-02-10T16:31:23.362Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=NO Timeout set!!!
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T16:31:23.389Z","lvl":"DEBUG","msg":"Request for path [/iot/devices/RW1] from [localhost:4001]"}
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T16:31:23.398Z","lvl":"DEBUG","msg":"Error [DEVICE_NOT_FOUND] handling request: No device was found with id:RW1"}
{"op":"IoTAgentNGSI.DomainControl","time":"2022-02-10T16:31:23.431Z","lvl":"DEBUG","msg":"response-time: 51"}
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T16:31:23.434Z","lvl":"DEBUG","msg":"Request for path [/iot/devices/TL1] from [localhost:4001]"}
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T16:31:23.435Z","lvl":"DEBUG","msg":"Error [DEVICE_NOT_FOUND] handling request: No device was found with id:TL1"}
{"op":"IoTAgentNGSI.DomainControl","time":"2022-02-10T16:31:23.447Z","lvl":"DEBUG","msg":"response-time: 13"}
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T16:31:23.453Z","lvl":"DEBUG","msg":"Request for path [/iot/devices/RW1] from [localhost:4001]"}
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T16:31:23.458Z","lvl":"DEBUG","msg":"Error [DEVICE_NOT_FOUND] handling request: No device was found with id:RW1"}
{"op":"IoTAgentNGSI.DomainControl","time":"2022-02-10T16:31:23.464Z","lvl":"DEBUG","msg":"response-time: 11"}
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T16:31:23.469Z","lvl":"DEBUG","msg":"Request for path [/iot/devices/TL1] from [localhost:4001]"}
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T16:31:23.478Z","lvl":"DEBUG","msg":"Error [DEVICE_NOT_FOUND] handling request: No device was found with id:TL1"}
{"op":"IoTAgentNGSI.DomainControl","time":"2022-02-10T16:31:23.486Z","lvl":"DEBUG","msg":"response-time: 17"}
time=2022-02-10T16:31:23.508Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=device deleted!
{"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2022-02-10T16:31:23.517Z","lvl":"DEBUG","msg":"Looking for device params [\"service\",\"subservice\",\"type\"]"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.530Z","lvl":"DEBUG","msg":"deviceData after merge with conf: {\"id\":\"RW1\",\"name\":\"RW1\",\"type\":\"device\",\"active\":[{\"name\":\"temperature_rw\",\"type\":\"Number\"},{\"name\":\"ph_rw\",\"type\":\"Number\"},{\"name\":\"oxdis_rw\",\"type\":\"Number\"},{\"name\":\"co2_rw\",\"type\":\"Number\"}],\"service\":\"sabana\",\"subservice\":\"/team\",\"polling\":false,\"endpoint\":\"Servidor\"}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.537Z","lvl":"DEBUG","msg":"deviceData before merge with conf: {\"id\":\"RW1\",\"name\":\"RW1\",\"type\":\"device\",\"active\":[{\"name\":\"temperature_rw\",\"type\":\"Number\",\"object_id\":\"temperature_rw\"},{\"name\":\"ph_rw\",\"type\":\"Number\",\"object_id\":\"ph_rw\"},{\"name\":\"oxdis_rw\",\"type\":\"Number\",\"object_id\":\"oxdis_rw\"},{\"name\":\"co2_rw\",\"type\":\"Number\",\"object_id\":\"co2_rw\"}],\"lazy\":[],\"commands\":[],\"service\":\"sabana\",\"subservice\":\"/team\",\"polling\":false,\"endpoint\":\"Servidor\",\"staticAttributes\":[],\"subscriptions\":[]}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.561Z","lvl":"DEBUG","msg":"Registering device into NGSI Service:\n{\n    \"id\": \"RW1\",\n    \"name\": \"RW1\",\n    \"type\": \"device\",\n    \"active\": [\n        {\n            \"name\": \"temperature_rw\",\n            \"type\": \"Number\",\n            \"object_id\": \"temperature_rw\"\n        },\n        {\n            \"name\": \"ph_rw\",\n            \"type\": \"Number\",\n            \"object_id\": \"ph_rw\"\n        },\n        {\n            \"name\": \"oxdis_rw\",\n            \"type\": \"Number\",\n            \"object_id\": \"oxdis_rw\"\n        },\n        {\n            \"name\": \"co2_rw\",\n            \"type\": \"Number\",\n            \"object_id\": \"co2_rw\"\n        }\n    ],\n    \"lazy\": [],\n    \"commands\": [],\n    \"service\": \"sabana\",\n    \"subservice\": \"/team\",\n    \"polling\": false,\n    \"endpoint\": \"Servidor\",\n    \"staticAttributes\": [],\n    \"subscriptions\": []\n}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.563Z","lvl":"DEBUG","msg":"No Context Provider registrations found for unregister"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.663Z","lvl":"DEBUG","msg":"Creating initial entity in the Context Broker:\n {\n    \"url\": \"http://orion:1026/v1/updateContext\",\n    \"method\": \"POST\",\n    \"json\": {\n        \"contextElements\": [\n            {\n                \"type\": \"device\",\n                \"isPattern\": \"false\",\n                \"id\": \"RW1\",\n                \"attributes\": [\n                    {\n                        \"name\": \"temperature_rw\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"ph_rw\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"oxdis_rw\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"co2_rw\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    }\n                ]\n            }\n        ],\n        \"updateAction\": \"APPEND\"\n    },\n    \"headers\": {\n        \"fiware-service\": \"sabana\",\n        \"fiware-servicepath\": \"/team\",\n        \"fiware-correlator\": \"1ab6248b-3a42-42f6-b536-5736740f4ddb\"\n    }\n}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.665Z","lvl":"DEBUG","msg":"executeWithSecurity"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.669Z","lvl":"DEBUG","msg":"error {\"name\":\"DEVICE_GROUP_NOT_FOUND\",\"message\":\"Couldn\\t find device group\",\"code\":404} in get group device"}
time=2022-02-10T16:31:23.672Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=device deleted!
{"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2022-02-10T16:31:23.673Z","lvl":"DEBUG","msg":"Looking for device params [\"service\",\"subservice\",\"type\"]"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.673Z","lvl":"DEBUG","msg":"deviceData after merge with conf: {\"id\":\"RW1\",\"name\":\"RW1\",\"type\":\"device\",\"active\":[{\"name\":\"temperature_rw\",\"type\":\"Number\",\"object_id\":\"temperature_rw\"},{\"name\":\"ph_rw\",\"type\":\"Number\",\"object_id\":\"ph_rw\"},{\"name\":\"oxdis_rw\",\"type\":\"Number\",\"object_id\":\"oxdis_rw\"},{\"name\":\"co2_rw\",\"type\":\"Number\",\"object_id\":\"co2_rw\"}],\"service\":\"sabana\",\"subservice\":\"/team\",\"polling\":false,\"endpoint\":\"Servidor\"}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.674Z","lvl":"DEBUG","msg":"deviceData before merge with conf: {\"id\":\"RW1\",\"name\":\"RW1\",\"type\":\"device\",\"active\":[{\"name\":\"temperature_rw\",\"type\":\"Number\",\"object_id\":\"temperature_rw\"},{\"name\":\"ph_rw\",\"type\":\"Number\",\"object_id\":\"ph_rw\"},{\"name\":\"oxdis_rw\",\"type\":\"Number\",\"object_id\":\"oxdis_rw\"},{\"name\":\"co2_rw\",\"type\":\"Number\",\"object_id\":\"co2_rw\"}],\"lazy\":[],\"commands\":[],\"service\":\"sabana\",\"subservice\":\"/team\",\"polling\":false,\"endpoint\":\"Servidor\",\"staticAttributes\":[],\"subscriptions\":[]}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.675Z","lvl":"DEBUG","msg":"Registering device into NGSI Service:\n{\n    \"id\": \"RW1\",\n    \"name\": \"RW1\",\n    \"type\": \"device\",\n    \"active\": [\n        {\n            \"name\": \"temperature_rw\",\n            \"type\": \"Number\",\n            \"object_id\": \"temperature_rw\"\n        },\n        {\n            \"name\": \"ph_rw\",\n            \"type\": \"Number\",\n            \"object_id\": \"ph_rw\"\n        },\n        {\n            \"name\": \"oxdis_rw\",\n            \"type\": \"Number\",\n            \"object_id\": \"oxdis_rw\"\n        },\n        {\n            \"name\": \"co2_rw\",\n            \"type\": \"Number\",\n            \"object_id\": \"co2_rw\"\n        }\n    ],\n    \"lazy\": [],\n    \"commands\": [],\n    \"service\": \"sabana\",\n    \"subservice\": \"/team\",\n    \"polling\": false,\n    \"endpoint\": \"Servidor\",\n    \"staticAttributes\": [],\n    \"subscriptions\": []\n}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.677Z","lvl":"DEBUG","msg":"No Context Provider registrations found for unregister"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.679Z","lvl":"DEBUG","msg":"Creating initial entity in the Context Broker:\n {\n    \"url\": \"http://orion:1026/v1/updateContext\",\n    \"method\": \"POST\",\n    \"json\": {\n        \"contextElements\": [\n            {\n                \"type\": \"device\",\n                \"isPattern\": \"false\",\n                \"id\": \"RW1\",\n                \"attributes\": [\n                    {\n                        \"name\": \"temperature_rw\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"ph_rw\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"oxdis_rw\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"co2_rw\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    }\n                ]\n            }\n        ],\n        \"updateAction\": \"APPEND\"\n    },\n    \"headers\": {\n        \"fiware-service\": \"sabana\",\n        \"fiware-servicepath\": \"/team\",\n        \"fiware-correlator\": \"1ab6248b-3a42-42f6-b536-5736740f4ddb\"\n    }\n}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.679Z","lvl":"DEBUG","msg":"executeWithSecurity"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.679Z","lvl":"DEBUG","msg":"error {\"name\":\"DEVICE_GROUP_NOT_FOUND\",\"message\":\"Couldn\\t find device group\",\"code\":404} in get group device"}
time=2022-02-10T16:31:23.693Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=device deleted!
{"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2022-02-10T16:31:23.701Z","lvl":"DEBUG","msg":"Looking for device params [\"service\",\"subservice\",\"type\"]"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.701Z","lvl":"DEBUG","msg":"deviceData after merge with conf: {\"id\":\"TL1\",\"name\":\"TL1\",\"type\":\"device2\",\"active\":[{\"name\":\"temperature_tl\",\"type\":\"Number\"},{\"name\":\"ph_tl\",\"type\":\"Number\"},{\"name\":\"oxdis_tl\",\"type\":\"Number\"},{\"name\":\"co2_tl\",\"type\":\"Number\"}],\"service\":\"sabana\",\"subservice\":\"/team\",\"polling\":false,\"endpoint\":\"Servidor\"}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.701Z","lvl":"DEBUG","msg":"deviceData before merge with conf: {\"id\":\"TL1\",\"name\":\"TL1\",\"type\":\"device2\",\"active\":[{\"name\":\"temperature_tl\",\"type\":\"Number\",\"object_id\":\"temperature_tl\"},{\"name\":\"ph_tl\",\"type\":\"Number\",\"object_id\":\"ph_tl\"},{\"name\":\"oxdis_tl\",\"type\":\"Number\",\"object_id\":\"oxdis_tl\"},{\"name\":\"co2_tl\",\"type\":\"Number\",\"object_id\":\"co2_tl\"}],\"lazy\":[],\"commands\":[],\"service\":\"sabana\",\"subservice\":\"/team\",\"polling\":false,\"endpoint\":\"Servidor\",\"staticAttributes\":[],\"subscriptions\":[]}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.703Z","lvl":"DEBUG","msg":"Registering device into NGSI Service:\n{\n    \"id\": \"TL1\",\n    \"name\": \"TL1\",\n    \"type\": \"device2\",\n    \"active\": [\n        {\n            \"name\": \"temperature_tl\",\n            \"type\": \"Number\",\n            \"object_id\": \"temperature_tl\"\n        },\n        {\n            \"name\": \"ph_tl\",\n            \"type\": \"Number\",\n            \"object_id\": \"ph_tl\"\n        },\n        {\n            \"name\": \"oxdis_tl\",\n            \"type\": \"Number\",\n            \"object_id\": \"oxdis_tl\"\n        },\n        {\n            \"name\": \"co2_tl\",\n            \"type\": \"Number\",\n            \"object_id\": \"co2_tl\"\n        }\n    ],\n    \"lazy\": [],\n    \"commands\": [],\n    \"service\": \"sabana\",\n    \"subservice\": \"/team\",\n    \"polling\": false,\n    \"endpoint\": \"Servidor\",\n    \"staticAttributes\": [],\n    \"subscriptions\": []\n}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.703Z","lvl":"DEBUG","msg":"No Context Provider registrations found for unregister"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.703Z","lvl":"DEBUG","msg":"Creating initial entity in the Context Broker:\n {\n    \"url\": \"http://orion:1026/v1/updateContext\",\n    \"method\": \"POST\",\n    \"json\": {\n        \"contextElements\": [\n            {\n                \"type\": \"device2\",\n                \"isPattern\": \"false\",\n                \"id\": \"TL1\",\n                \"attributes\": [\n                    {\n                        \"name\": \"temperature_tl\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"ph_tl\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"oxdis_tl\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"co2_tl\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    }\n                ]\n            }\n        ],\n        \"updateAction\": \"APPEND\"\n    },\n    \"headers\": {\n        \"fiware-service\": \"sabana\",\n        \"fiware-servicepath\": \"/team\",\n        \"fiware-correlator\": \"1ab6248b-3a42-42f6-b536-5736740f4ddb\"\n    }\n}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.703Z","lvl":"DEBUG","msg":"executeWithSecurity"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.703Z","lvl":"DEBUG","msg":"error {\"name\":\"DEVICE_GROUP_NOT_FOUND\",\"message\":\"Couldn\\t find device group\",\"code\":404} in get group device"}
time=2022-02-10T16:31:23.707Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=device deleted!
{"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2022-02-10T16:31:23.711Z","lvl":"DEBUG","msg":"Looking for device params [\"service\",\"subservice\",\"type\"]"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.717Z","lvl":"DEBUG","msg":"deviceData after merge with conf: {\"id\":\"TL1\",\"name\":\"TL1\",\"type\":\"device2\",\"active\":[{\"name\":\"temperature_tl\",\"type\":\"Number\",\"object_id\":\"temperature_tl\"},{\"name\":\"ph_tl\",\"type\":\"Number\",\"object_id\":\"ph_tl\"},{\"name\":\"oxdis_tl\",\"type\":\"Number\",\"object_id\":\"oxdis_tl\"},{\"name\":\"co2_tl\",\"type\":\"Number\",\"object_id\":\"co2_tl\"}],\"service\":\"sabana\",\"subservice\":\"/team\",\"polling\":false,\"endpoint\":\"Servidor\"}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.717Z","lvl":"DEBUG","msg":"deviceData before merge with conf: {\"id\":\"TL1\",\"name\":\"TL1\",\"type\":\"device2\",\"active\":[{\"name\":\"temperature_tl\",\"type\":\"Number\",\"object_id\":\"temperature_tl\"},{\"name\":\"ph_tl\",\"type\":\"Number\",\"object_id\":\"ph_tl\"},{\"name\":\"oxdis_tl\",\"type\":\"Number\",\"object_id\":\"oxdis_tl\"},{\"name\":\"co2_tl\",\"type\":\"Number\",\"object_id\":\"co2_tl\"}],\"lazy\":[],\"commands\":[],\"service\":\"sabana\",\"subservice\":\"/team\",\"polling\":false,\"endpoint\":\"Servidor\",\"staticAttributes\":[],\"subscriptions\":[]}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.717Z","lvl":"DEBUG","msg":"Registering device into NGSI Service:\n{\n    \"id\": \"TL1\",\n    \"name\": \"TL1\",\n    \"type\": \"device2\",\n    \"active\": [\n        {\n            \"name\": \"temperature_tl\",\n            \"type\": \"Number\",\n            \"object_id\": \"temperature_tl\"\n        },\n        {\n            \"name\": \"ph_tl\",\n            \"type\": \"Number\",\n            \"object_id\": \"ph_tl\"\n        },\n        {\n            \"name\": \"oxdis_tl\",\n            \"type\": \"Number\",\n            \"object_id\": \"oxdis_tl\"\n        },\n        {\n            \"name\": \"co2_tl\",\n            \"type\": \"Number\",\n            \"object_id\": \"co2_tl\"\n        }\n    ],\n    \"lazy\": [],\n    \"commands\": [],\n    \"service\": \"sabana\",\n    \"subservice\": \"/team\",\n    \"polling\": false,\n    \"endpoint\": \"Servidor\",\n    \"staticAttributes\": [],\n    \"subscriptions\": []\n}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.717Z","lvl":"DEBUG","msg":"No Context Provider registrations found for unregister"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.719Z","lvl":"DEBUG","msg":"Creating initial entity in the Context Broker:\n {\n    \"url\": \"http://orion:1026/v1/updateContext\",\n    \"method\": \"POST\",\n    \"json\": {\n        \"contextElements\": [\n            {\n                \"type\": \"device2\",\n                \"isPattern\": \"false\",\n                \"id\": \"TL1\",\n                \"attributes\": [\n                    {\n                        \"name\": \"temperature_tl\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"ph_tl\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"oxdis_tl\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"co2_tl\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    }\n                ]\n            }\n        ],\n        \"updateAction\": \"APPEND\"\n    },\n    \"headers\": {\n        \"fiware-service\": \"sabana\",\n        \"fiware-servicepath\": \"/team\",\n        \"fiware-correlator\": \"1ab6248b-3a42-42f6-b536-5736740f4ddb\"\n    }\n}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.720Z","lvl":"DEBUG","msg":"executeWithSecurity"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:23.721Z","lvl":"DEBUG","msg":"error {\"name\":\"DEVICE_GROUP_NOT_FOUND\",\"message\":\"Couldn\\t find device group\",\"code\":404} in get group device"}
time=2022-02-10T16:31:23.943Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=@@@ groupService remove: {"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
CONFIGURATION API
Analyzing...device
Analyzing...device2
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:24.023Z","lvl":"DEBUG","msg":"Initial entity created successfully."}
{"op":"IoTAgentNGSI.InMemoryDeviceRegister","time":"2022-02-10T16:31:24.027Z","lvl":"DEBUG","msg":"Storing device with id [RW1] and type [device]"}
time=2022-02-10T16:31:24.032Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=registered successfully OCB context RW1
time=2022-02-10T16:31:24.040Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=temperature_rw
time=2022-02-10T16:31:24.043Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=ph_rw
time=2022-02-10T16:31:24.048Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=co2_rw
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:24.068Z","lvl":"DEBUG","msg":"Initial entity created successfully."}
{"op":"IoTAgentNGSI.InMemoryDeviceRegister","time":"2022-02-10T16:31:24.069Z","lvl":"DEBUG","msg":"Storing device with id [TL1] and type [device2]"}
time=2022-02-10T16:31:24.069Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=registered successfully OCB context TL1
time=2022-02-10T16:31:24.071Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=temperature_tl
time=2022-02-10T16:31:24.075Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=ph_tl
time=2022-02-10T16:31:24.075Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=oxdis_tl
time=2022-02-10T16:31:24.076Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=co2_tl
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:24.092Z","lvl":"DEBUG","msg":"Initial entity created successfully."}
ERROR iotAgentLib.register
time=2022-02-10T16:31:24.093Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not register OCB context TL1
time=2022-02-10T16:31:24.095Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DUPLICATE_DEVICE_ID","message":"A device with the same pair (Service, DeviceId) was found:TL1","code":409}
time=2022-02-10T16:31:24.098Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=temperature_tl
time=2022-02-10T16:31:24.098Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=ph_tl
time=2022-02-10T16:31:24.098Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=oxdis_tl
time=2022-02-10T16:31:24.099Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=co2_tl
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:24.102Z","lvl":"DEBUG","msg":"Initial entity created successfully."}
ERROR iotAgentLib.register
time=2022-02-10T16:31:24.102Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not register OCB context RW1
time=2022-02-10T16:31:24.102Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DUPLICATE_DEVICE_ID","message":"A device with the same pair (Service, DeviceId) was found:RW1","code":409}
time=2022-02-10T16:31:24.102Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=temperature_rw
time=2022-02-10T16:31:24.102Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=ph_rw
time=2022-02-10T16:31:24.103Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=initializing monitoring: ns=1;s=co2_rw
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T16:31:24.135Z","lvl":"DEBUG","msg":"Request for path [/iot/services] from [localhost:4001]"}
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T16:31:24.135Z","lvl":"DEBUG","msg":"Body:\n\n{\n    \"services\": [\n        {\n            \"resource\": \"/device\",\n            \"apikey\": \"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\n            \"entity_type\": \"device\",\n            \"cbHost\": \"orion:1026\",\n            \"commands\": [],\n            \"lazy\": [],\n            \"attributes\": [\n                {\n                    \"name\": \"temperature_rw\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"temperature_rw\"\n                },\n                {\n                    \"name\": \"ph_rw\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"ph_rw\"\n                },\n                {\n                    \"name\": \"co2_rw\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"co2_rw\"\n                }\n            ],\n            \"static_attributes\": []\n        },\n        {\n            \"resource\": \"/device2\",\n            \"apikey\": \"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\n            \"entity_type\": \"device2\",\n            \"cbHost\": \"orion:1026\",\n            \"commands\": [],\n            \"lazy\": [],\n            \"attributes\": [\n                {\n                    \"name\": \"temperature_tl\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"temperature_tl\"\n                },\n                {\n                    \"name\": \"ph_tl\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"ph_tl\"\n                },\n                {\n                    \"name\": \"oxdis_tl\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"oxdis_tl\"\n                },\n                {\n                    \"name\": \"co2_tl\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"co2_tl\"\n                }\n            ],\n            \"static_attributes\": []\n        }\n    ]\n}\n\n"}
{"op":"IoTAgentNGSI.DeviceGroupService","time":"2022-02-10T16:31:24.146Z","lvl":"DEBUG","msg":"Creating new set of 2 services"}
{"op":"IoTAgentNGSI.DeviceGroupService","time":"2022-02-10T16:31:24.146Z","lvl":"DEBUG","msg":"validateGroup {\"resource\":\"/device\",\"apikey\":\"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\"cbHost\":\"orion:1026\",\"commands\":[],\"lazy\":[],\"attributes\":[{\"name\":\"temperature_rw\",\"type\":\"Number\",\"object_id\":\"temperature_rw\"},{\"name\":\"ph_rw\",\"type\":\"Number\",\"object_id\":\"ph_rw\"},{\"name\":\"co2_rw\",\"type\":\"Number\",\"object_id\":\"co2_rw\"}],\"type\":\"device\",\"staticAttributes\":[],\"service\":\"sabana\",\"subservice\":\"/team\"}"}
{"op":"IoTAgentNGSI.DeviceGroupService","time":"2022-02-10T16:31:24.147Z","lvl":"DEBUG","msg":"generateDuplicateHander error [object Object] and foundGroup undefined"}
{"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2022-02-10T16:31:24.147Z","lvl":"DEBUG","msg":"Storing device group for service [1] and subservice [sabana] /team"}
{"op":"IoTAgentNGSI.DeviceGroupService","time":"2022-02-10T16:31:24.147Z","lvl":"DEBUG","msg":"validateGroup {\"resource\":\"/device2\",\"apikey\":\"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\"cbHost\":\"orion:1026\",\"commands\":[],\"lazy\":[],\"attributes\":[{\"name\":\"temperature_tl\",\"type\":\"Number\",\"object_id\":\"temperature_tl\"},{\"name\":\"ph_tl\",\"type\":\"Number\",\"object_id\":\"ph_tl\"},{\"name\":\"oxdis_tl\",\"type\":\"Number\",\"object_id\":\"oxdis_tl\"},{\"name\":\"co2_tl\",\"type\":\"Number\",\"object_id\":\"co2_tl\"}],\"type\":\"device2\",\"staticAttributes\":[],\"service\":\"sabana\",\"subservice\":\"/team\"}"}
{"op":"IoTAgentNGSI.DeviceGroupService","time":"2022-02-10T16:31:24.147Z","lvl":"DEBUG","msg":"generateDuplicateHander error [object Object] and foundGroup undefined"}
{"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2022-02-10T16:31:24.147Z","lvl":"DEBUG","msg":"Storing device group for service [2] and subservice [sabana] /team"}
{"op":"IoTAgentNGSI.DomainControl","time":"2022-02-10T16:31:24.152Z","lvl":"DEBUG","msg":"response-time: 49"}
Pending transations:  BrowseRequest BrowseRequest CreateSubscriptionRequest CreateSubscriptionRequest CreateSubscriptionRequest CreateSubscriptionRequest CreateSubscriptionRequest CreateSubscriptionRequest CreateSubscriptionRequest CreateSubscriptionRequest CreateSubscriptionRequest
Warning : your opcua client is sending multiple requests simultaneously to the server CreateSubscriptionRequest
Warning : please fix your application code
time=2022-02-10T16:31:24.175Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=GROUPS SUCCESSFULLY CREATED!
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:24.468Z","lvl":"DEBUG","msg":"Removing device register in Device Service"}
{"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2022-02-10T16:31:24.469Z","lvl":"DEBUG","msg":"Looking for device params [\"service\",\"subservice\",\"type\"]"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:24.470Z","lvl":"DEBUG","msg":"deviceData after merge with conf: {\"id\":\"RW1\",\"name\":\"RW1\",\"type\":\"device\",\"active\":[{\"name\":\"temperature_rw\",\"type\":\"Number\",\"object_id\":\"temperature_rw\"},{\"name\":\"ph_rw\",\"type\":\"Number\",\"object_id\":\"ph_rw\"},{\"name\":\"co2_rw\",\"type\":\"Number\",\"object_id\":\"co2_rw\"}],\"service\":\"sabana\",\"subservice\":\"/team\",\"polling\":false,\"endpoint\":\"Servidor\",\"creationDate\":1644510684027}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:24.473Z","lvl":"DEBUG","msg":"deviceData before merge with conf: {\"id\":\"RW1\",\"name\":\"RW1\",\"type\":\"device\",\"active\":[{\"name\":\"temperature_rw\",\"type\":\"Number\",\"object_id\":\"temperature_rw\"},{\"name\":\"ph_rw\",\"type\":\"Number\",\"object_id\":\"ph_rw\"},{\"name\":\"co2_rw\",\"type\":\"Number\",\"object_id\":\"co2_rw\"}],\"lazy\":[],\"commands\":[],\"service\":\"sabana\",\"subservice\":\"/team\",\"polling\":false,\"endpoint\":\"Servidor\",\"creationDate\":1644510684027,\"staticAttributes\":[],\"subscriptions\":[],\"cbHost\":\"orion:1026\"}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:24.474Z","lvl":"DEBUG","msg":"No Context Provider registrations found for unregister"}
{"op":"IoTAgentNGSI.InMemoryDeviceRegister","time":"2022-02-10T16:31:24.474Z","lvl":"DEBUG","msg":"Removing device with id [RW1] from service [sabana]."}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:24.474Z","lvl":"DEBUG","msg":"Removing device register in Device Service"}
{"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2022-02-10T16:31:24.474Z","lvl":"DEBUG","msg":"Looking for device params [\"service\",\"subservice\",\"type\"]"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:24.475Z","lvl":"DEBUG","msg":"deviceData after merge with conf: {\"id\":\"TL1\",\"name\":\"TL1\",\"type\":\"device2\",\"active\":[{\"name\":\"temperature_tl\",\"type\":\"Number\",\"object_id\":\"temperature_tl\"},{\"name\":\"ph_tl\",\"type\":\"Number\",\"object_id\":\"ph_tl\"},{\"name\":\"oxdis_tl\",\"type\":\"Number\",\"object_id\":\"oxdis_tl\"},{\"name\":\"co2_tl\",\"type\":\"Number\",\"object_id\":\"co2_tl\"}],\"service\":\"sabana\",\"subservice\":\"/team\",\"polling\":false,\"endpoint\":\"Servidor\",\"creationDate\":1644510684069}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:24.475Z","lvl":"DEBUG","msg":"deviceData before merge with conf: {\"id\":\"TL1\",\"name\":\"TL1\",\"type\":\"device2\",\"active\":[{\"name\":\"temperature_tl\",\"type\":\"Number\",\"object_id\":\"temperature_tl\"},{\"name\":\"ph_tl\",\"type\":\"Number\",\"object_id\":\"ph_tl\"},{\"name\":\"oxdis_tl\",\"type\":\"Number\",\"object_id\":\"oxdis_tl\"},{\"name\":\"co2_tl\",\"type\":\"Number\",\"object_id\":\"co2_tl\"}],\"lazy\":[],\"commands\":[],\"service\":\"sabana\",\"subservice\":\"/team\",\"polling\":false,\"endpoint\":\"Servidor\",\"creationDate\":1644510684069,\"staticAttributes\":[],\"subscriptions\":[],\"cbHost\":\"orion:1026\"}"}
{"op":"IoTAgentNGSI.DeviceService","time":"2022-02-10T16:31:24.475Z","lvl":"DEBUG","msg":"No Context Provider registrations found for unregister"}
{"op":"IoTAgentNGSI.InMemoryDeviceRegister","time":"2022-02-10T16:31:24.475Z","lvl":"DEBUG","msg":"Removing device with id [TL1] from service [sabana]."}
ERROR !!! callback has thrown en error  TypeError: callback is not a function
    at Function.register (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/iotManagerService.js:147:9)
    at Domain.expandedFunction (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/domain.js:160:23)
    at Domain.run (domain.js:349:14)
    at ensureSouthboundTransaction (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/domain.js:144:22)
    at Object.register (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/domain.js:163:16)
    at /opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/groups/groupService.js:157:31
    at /opt/iotagent-opcua/node_modules/iotagent-node-lib/node_modules/async/dist/async.js:473:16
    at next (/opt/iotagent-opcua/node_modules/iotagent-node-lib/node_modules/async/dist/async.js:5329:29)
    at /opt/iotagent-opcua/node_modules/iotagent-node-lib/node_modules/async/dist/async.js:969:16
    at Function.remove (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/groups/groupRegistryMemory.js:246:5)
    at Domain.expandedFunction (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/domain.js:160:23)
    at Domain.run (domain.js:349:14)
    at ensureSouthboundTransaction (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/domain.js:144:22)
    at /opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/domain.js:163:16
    at nextTask (/opt/iotagent-opcua/node_modules/iotagent-node-lib/node_modules/async/dist/async.js:5324:14)
    at next (/opt/iotagent-opcua/node_modules/iotagent-node-lib/node_modules/async/dist/async.js:5331:9)
time=2022-02-10T16:31:24.484Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=Something went wrong during OPCUA node existence check
Error: internal Error
    at _client.performMessageTransaction (/opt/iotagent-opcua/node_modules/node-opcua-client/dist/private/client_session_impl.js:763:33)
    at modified_callback (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:877:17)
    at process_request_callback (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:65:5)
    at ClientSecureChannelLayer._on_message_received (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:446:9)
    at MessageBuilder.ClientSecureChannelLayer.messageBuilder.on (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:137:18)
    at MessageBuilder.emit (events.js:198:13)
    at MessageBuilder.EventEmitter.emit (domain.js:466:23)
    at MessageBuilder._decodeMessageBody (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/message_builder.js:181:26)
    at MessageBuilder._feed_messageChunk (/opt/iotagent-opcua/node_modules/node-opcua-transport/dist/source/message_builder_base.js:185:18)
    at PacketAssembler.MessageBuilderBase._packetAssembler.on (/opt/iotagent-opcua/node_modules/node-opcua-transport/dist/source/message_builder_base.js:51:68)
    at PacketAssembler.emit (events.js:198:13)
    at PacketAssembler.EventEmitter.emit (domain.js:466:23)
    at PacketAssembler.feed (/opt/iotagent-opcua/node_modules/node-opcua-packet-assembler/dist/packet_assembler.js:51:18)
    at MessageBuilder.feed (/opt/iotagent-opcua/node_modules/node-opcua-transport/dist/source/message_builder_base.js:84:35)
    at ClientSecureChannelLayer._on_receive_message_chunk (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:806:29)
    at ClientTCP_transport._transport.on (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:654:18)
CONFIGURATION API
Analyzing...RW1
Analyzing...TL1
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-11T16:47:18.232Z","lvl":"DEBUG","msg":"Request for path [/iot/services] from [localhost:4001]"}
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-11T16:47:18.233Z","lvl":"DEBUG","msg":"Body:\n\n{\n    \"services\": [\n        {\n            \"resource\": \"/RW1\",\n            \"apikey\": \"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\n            \"entity_type\": \"RW1\",\n            \"cbHost\": \"orion:1026\",\n            \"commands\": [],\n            \"lazy\": [],\n            \"attributes\": [\n                {\n                    \"name\": \"temperature_rw\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"temperature_rw\"\n                },\n                {\n                    \"name\": \"ph_rw\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"ph_rw\"\n                },\n                {\n                    \"name\": \"dissox_rw\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"dissox_rw\"\n                },\n                {\n                    \"name\": \"co2_rw\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"co2_rw\"\n                }\n            ],\n            \"static_attributes\": []\n        },\n        {\n            \"resource\": \"/TL1\",\n            \"apikey\": \"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\n            \"entity_type\": \"TL1\",\n            \"cbHost\": \"orion:1026\",\n            \"commands\": [],\n            \"lazy\": [],\n            \"attributes\": [\n                {\n                    \"name\": \"temperature_tl\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"temperature_tl\"\n                },\n                {\n                    \"name\": \"ph_tl\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"ph_tl\"\n                },\n                {\n                    \"name\": \"dissox_tl\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"dissox_tl\"\n                },\n                {\n                    \"name\": \"co2_tl\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"co2_tl\"\n                }\n            ],\n            \"static_attributes\": []\n        }\n    ]\n}\n\n"}
{"op":"IoTAgentNGSI.DeviceGroupService","time":"2022-02-11T16:47:18.234Z","lvl":"DEBUG","msg":"Creating new set of 2 services"}
{"op":"IoTAgentNGSI.DeviceGroupService","time":"2022-02-11T16:47:18.235Z","lvl":"DEBUG","msg":"validateGroup {\"resource\":\"/RW1\",\"apikey\":\"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\"cbHost\":\"orion:1026\",\"commands\":[],\"lazy\":[],\"attributes\":[{\"name\":\"temperature_rw\",\"type\":\"Number\",\"object_id\":\"temperature_rw\"},{\"name\":\"ph_rw\",\"type\":\"Number\",\"object_id\":\"ph_rw\"},{\"name\":\"dissox_rw\",\"type\":\"Number\",\"object_id\":\"dissox_rw\"},{\"name\":\"co2_rw\",\"type\":\"Number\",\"object_id\":\"co2_rw\"}],\"type\":\"RW1\",\"staticAttributes\":[],\"service\":\"sabana\",\"subservice\":\"/team\"}"}
{"op":"IoTAgentNGSI.DeviceGroupService","time":"2022-02-11T16:47:18.242Z","lvl":"DEBUG","msg":"generateDuplicateHander error [object Object] and foundGroup undefined"}
{"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2022-02-11T16:47:18.244Z","lvl":"DEBUG","msg":"Storing device group for service [3] and subservice [sabana] /team"}
{"op":"IoTAgentNGSI.DeviceGroupService","time":"2022-02-11T16:47:18.244Z","lvl":"DEBUG","msg":"validateGroup {\"resource\":\"/TL1\",\"apikey\":\"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\"cbHost\":\"orion:1026\",\"commands\":[],\"lazy\":[],\"attributes\":[{\"name\":\"temperature_tl\",\"type\":\"Number\",\"object_id\":\"temperature_tl\"},{\"name\":\"ph_tl\",\"type\":\"Number\",\"object_id\":\"ph_tl\"},{\"name\":\"dissox_tl\",\"type\":\"Number\",\"object_id\":\"dissox_tl\"},{\"name\":\"co2_tl\",\"type\":\"Number\",\"object_id\":\"co2_tl\"}],\"type\":\"TL1\",\"staticAttributes\":[],\"service\":\"sabana\",\"subservice\":\"/team\"}"}
{"op":"IoTAgentNGSI.DeviceGroupService","time":"2022-02-11T16:47:18.244Z","lvl":"DEBUG","msg":"generateDuplicateHander error null and foundGroup {\"resource\":\"/TL1\",\"apikey\":\"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\"cbHost\":\"orion:1026\",\"commands\":[],\"lazy\":[],\"attributes\":[{\"name\":\"temperature_tl\",\"type\":\"Number\",\"object_id\":\"temperature_tl\"},{\"name\":\"ph_tl\",\"type\":\"Number\",\"object_id\":\"ph_tl\"},{\"name\":\"dissox_tl\",\"type\":\"Number\",\"object_id\":\"dissox_tl\"},{\"name\":\"co2_tl\",\"type\":\"Number\",\"object_id\":\"co2_tl\"}],\"type\":\"TL1\",\"staticAttributes\":[],\"service\":\"sabana\",\"subservice\":\"/team\",\"_id\":2,\"creationDate\":1644598037989}"}
{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-11T16:47:18.244Z","lvl":"DEBUG","msg":"Error [DUPLICATE_GROUP] handling request: A device configuration already exists for resource /TL1 and API Key 801230BJKL23Y9090DSFL123HJK09H324HV8732"}
{"op":"IoTAgentNGSI.DomainControl","time":"2022-02-11T16:47:18.245Z","lvl":"DEBUG","msg":"response-time: 13"}
time=2022-02-11T16:47:18.246Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=GROUPS SUCCESSFULLY CREATED!
time=2022-02-11T16:47:18.346Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237507
time=2022-02-11T16:47:18.346Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.346Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.346Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.347Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.347Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.434Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237508
time=2022-02-11T16:47:18.434Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.434Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.434Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.434Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.435Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.436Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=temperature_rw
time=2022-02-11T16:47:18.446Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_rw  value has changed to 14.46229781092612
time=2022-02-11T16:47:18.446Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:18.446Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:18.518Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237509
time=2022-02-11T16:47:18.518Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.518Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.518Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.518Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.518Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.519Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=ph_rw
time=2022-02-11T16:47:18.546Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237510
time=2022-02-11T16:47:18.547Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.547Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.547Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.547Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.547Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.565Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_rw  value has changed to 7.649004492989825
time=2022-02-11T16:47:18.566Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:18.566Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:18.602Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237511
time=2022-02-11T16:47:18.602Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.602Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.602Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.602Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.603Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.643Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_rw  value has changed to 17.073829128305785
time=2022-02-11T16:47:18.643Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:18.643Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:18.646Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237512
time=2022-02-11T16:47:18.647Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.647Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.647Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.647Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.647Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.666Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237513
time=2022-02-11T16:47:18.666Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.666Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.667Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.667Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.667Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.692Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237514
time=2022-02-11T16:47:18.693Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.693Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.693Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.695Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.695Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.697Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_rw  value has changed to 8.439051087049728
time=2022-02-11T16:47:18.697Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:18.697Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:18.734Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237515
time=2022-02-11T16:47:18.734Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.734Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.734Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.734Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.734Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.760Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237516
time=2022-02-11T16:47:18.760Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.760Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.760Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.760Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.760Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.784Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237517
time=2022-02-11T16:47:18.785Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.785Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.785Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.785Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.785Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.817Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237518
time=2022-02-11T16:47:18.817Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.818Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.818Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.818Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.818Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.842Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237519
time=2022-02-11T16:47:18.843Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.843Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.843Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.843Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.843Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.867Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237520
time=2022-02-11T16:47:18.867Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.867Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.867Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.867Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.868Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.948Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237521
time=2022-02-11T16:47:18.948Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.949Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.949Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.949Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.949Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.966Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started subscription:  237522
time=2022-02-11T16:47:18.967Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg= revised parameters 
time=2022-02-11T16:47:18.967Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised maxKeepAliveCount   10  ( requested  10)
time=2022-02-11T16:47:18.967Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised lifetimeCount       1000  ( requested  1000)
time=2022-02-11T16:47:18.967Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  revised publishingInterval  50  ( requested  10)
time=2022-02-11T16:47:18.967Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=  suggested timeout hint      10000
time=2022-02-11T16:47:18.973Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=dissox_rw
time=2022-02-11T16:47:18.995Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=co2_rw
time=2022-02-11T16:47:19.010Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_rw  value has changed to 8.137968428262537
time=2022-02-11T16:47:19.010Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.010Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.011Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_rw  value has changed to 75.70614101348951
time=2022-02-11T16:47:19.011Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.011Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.024Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=temperature_tl
time=2022-02-11T16:47:19.034Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=ph_tl
time=2022-02-11T16:47:19.059Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=dissox_tl
time=2022-02-11T16:47:19.061Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_tl  value has changed to 17.74795161832566
time=2022-02-11T16:47:19.061Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.061Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.062Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_tl  value has changed to 7.76328674520168
time=2022-02-11T16:47:19.062Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.062Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.086Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=co2_tl
time=2022-02-11T16:47:19.095Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=temperature_rw
time=2022-02-11T16:47:19.110Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_tl  value has changed to 86.65667327760565
time=2022-02-11T16:47:19.110Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.111Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.114Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_rw  value has changed to 17.073829128305785
time=2022-02-11T16:47:19.114Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.114Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.116Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_tl  value has changed to 360.341397182702
time=2022-02-11T16:47:19.116Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.116Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.123Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=ph_rw
time=2022-02-11T16:47:19.150Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=dissox_rw
time=2022-02-11T16:47:19.158Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=co2_rw
time=2022-02-11T16:47:19.161Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_rw  value has changed to 15.550567917257267
time=2022-02-11T16:47:19.161Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.161Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.163Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_rw  value has changed to 87.80461499022691
time=2022-02-11T16:47:19.163Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.163Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.165Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_rw  value has changed to 8.439051087049728
time=2022-02-11T16:47:19.165Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.165Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.186Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=temperature_tl
time=2022-02-11T16:47:19.209Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_rw  value has changed to 5.797066631418472
time=2022-02-11T16:47:19.209Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.209Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.212Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_rw  value has changed to 5.797066631418472
time=2022-02-11T16:47:19.213Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.213Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.216Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_tl  value has changed to 17.16446382528108
time=2022-02-11T16:47:19.216Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.216Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.217Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_tl  value has changed to 58.188941308401844
time=2022-02-11T16:47:19.217Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.217Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.226Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_tl  value has changed to 17.16446382528108
time=2022-02-11T16:47:19.227Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.227Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.227Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_rw  value has changed to 87.80461499022691
time=2022-02-11T16:47:19.227Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.227Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.228Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=successfully terminated subscription: 3234512923
time=2022-02-11T16:47:19.230Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_tl  value has changed to 7.972945522391472
time=2022-02-11T16:47:19.230Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.230Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.231Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_tl  value has changed to 374.474869913957
time=2022-02-11T16:47:19.231Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.231Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.232Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_rw  value has changed to 8.175838526384542
time=2022-02-11T16:47:19.232Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.232Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.234Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=successfully terminated subscription: 3234512923
time=2022-02-11T16:47:19.250Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=ph_tl
time=2022-02-11T16:47:19.275Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_tl  value has changed to 7.972945522391472
time=2022-02-11T16:47:19.275Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.276Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.286Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=dissox_tl
time=2022-02-11T16:47:19.376Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=started monitoring: ns=1;s=co2_tl
time=2022-02-11T16:47:19.378Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_tl  value has changed to 58.188941308401844
time=2022-02-11T16:47:19.378Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.379Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.379Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_tl  value has changed to 374.474869913957
time=2022-02-11T16:47:19.379Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.379Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.665Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_rw  value has changed to 14.900552687932622
time=2022-02-11T16:47:19.666Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.666Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.678Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_tl  value has changed to 399.78877035494196
time=2022-02-11T16:47:19.678Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.678Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.681Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_rw  value has changed to 8.312542826284517
time=2022-02-11T16:47:19.681Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.681Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.682Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_tl  value has changed to 7.8287810523124115
time=2022-02-11T16:47:19.682Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.683Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.684Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_tl  value has changed to 399.78877035494196
time=2022-02-11T16:47:19.684Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.684Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.715Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_rw  value has changed to 8.403263223131509
time=2022-02-11T16:47:19.715Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.715Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.717Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_rw  value has changed to 8.403263223131509
time=2022-02-11T16:47:19.717Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.717Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.719Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_tl  value has changed to 17.48460572888928
time=2022-02-11T16:47:19.719Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.719Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.723Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_tl  value has changed to 75.94862366908501
time=2022-02-11T16:47:19.723Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.723Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.728Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_rw  value has changed to 66.22194097897463
time=2022-02-11T16:47:19.729Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.729Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.729Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_tl  value has changed to 17.48460572888928
time=2022-02-11T16:47:19.729Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.729Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.735Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_tl  value has changed to 75.94862366908501
time=2022-02-11T16:47:19.735Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.735Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:19.735Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_rw  value has changed to 66.22194097897463
time=2022-02-11T16:47:19.736Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:19.736Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:19.736Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_tl  value has changed to 7.8287810523124115
time=2022-02-11T16:47:19.736Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:19.736Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.268Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_rw  value has changed to 17.096635377289104
time=2022-02-11T16:47:20.268Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:20.268Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:20.269Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_rw  value has changed to 7.579923565288991
time=2022-02-11T16:47:20.269Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:20.269Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:20.270Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_tl  value has changed to 8.104071505356085
time=2022-02-11T16:47:20.270Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.270Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.270Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_tl  value has changed to 369.8299768168922
time=2022-02-11T16:47:20.271Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.271Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.271Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_rw  value has changed to 4.041867319875552
time=2022-02-11T16:47:20.271Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:20.271Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:20.272Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_rw  value has changed to 4.041867319875552
time=2022-02-11T16:47:20.272Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:20.272Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:20.273Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_tl  value has changed to 16.901991758490936
time=2022-02-11T16:47:20.273Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.273Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.273Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_tl  value has changed to 60.76334815089348
time=2022-02-11T16:47:20.273Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.273Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.274Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_rw  value has changed to 99.86767555326162
time=2022-02-11T16:47:20.274Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:20.274Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:20.327Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_tl  value has changed to 16.901991758490936
time=2022-02-11T16:47:20.328Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.328Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.329Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_tl  value has changed to 60.76334815089348
time=2022-02-11T16:47:20.329Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.329Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.329Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_rw  value has changed to 99.86767555326162
time=2022-02-11T16:47:20.330Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:20.330Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:20.331Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_tl  value has changed to 8.104071505356085
time=2022-02-11T16:47:20.331Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.331Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.331Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_tl  value has changed to 369.8299768168922
time=2022-02-11T16:47:20.331Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.331Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.666Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_rw  value has changed to 18.78215004309629
time=2022-02-11T16:47:20.666Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:20.667Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:20.685Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_tl  value has changed to 8.06940772184398
time=2022-02-11T16:47:20.686Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.686Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.688Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_tl  value has changed to 381.8193244337177
time=2022-02-11T16:47:20.688Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.688Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.689Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_rw  value has changed to 8.3651690014536
time=2022-02-11T16:47:20.690Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:20.690Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:20.691Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=ph_tl  value has changed to 8.06940772184398
time=2022-02-11T16:47:20.691Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.691Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.695Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_tl  value has changed to 381.8193244337177
time=2022-02-11T16:47:20.695Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.695Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.715Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_rw  value has changed to 7.948659187788903
time=2022-02-11T16:47:20.715Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:20.715Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:20.717Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=co2_rw  value has changed to 7.948659187788903
time=2022-02-11T16:47:20.717Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:20.718Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:20.718Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_tl  value has changed to 14.352285140113743
time=2022-02-11T16:47:20.718Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.719Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.719Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_tl  value has changed to 62.75852242267811
time=2022-02-11T16:47:20.719Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.720Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.730Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_rw  value has changed to 101.06481746574397
time=2022-02-11T16:47:20.730Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:20.730Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
time=2022-02-11T16:47:20.731Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_tl  value has changed to 14.352285140113743
time=2022-02-11T16:47:20.731Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.731Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.746Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_tl  value has changed to 62.75852242267811
time=2022-02-11T16:47:20.746Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context TL1
time=2022-02-11T16:47:20.746Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:TL1","code":404}
time=2022-02-11T16:47:20.746Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=dissox_rw  value has changed to 101.06481746574397
time=2022-02-11T16:47:20.747Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:20.747Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}
{"op":"IoTAgentNGSI.DomainControl","time":"2022-02-11T16:47:20.859Z","lvl":"ERROR","msg":"{ TypeError: Cannot read property '0' of undefined\n    at /opt/iotagent-opcua/iot_agent_modules/run/run.js:1217:56\n    at Array.forEach (<anonymous>)\n    at Timeout._setInterval [as _onTimeout] (/opt/iotagent-opcua/iot_agent_modules/run/run.js:1216:38)\n    at ontimeout (timers.js:436:11)\n    at tryOnTimeout (timers.js:300:5)\n    at listOnTimeout (timers.js:263:5)\n    at Timer.processTimers (timers.js:223:10)\n  domain:\n   Domain {\n     domain: null,\n     _events:\n      [Object: null prototype] {\n        removeListener: [Function: updateExceptionCapture],\n        newListener: [Function: updateExceptionCapture],\n        error: [Function: domainErrorHandler] },\n     _eventsCount: 3,\n     _maxListeners: undefined,\n     members: [],\n     start: 1644598036503,\n     trans: 'dd520f86-bd0e-41dc-aaef-dd575be7e9ef',\n     corr: 'dd520f86-bd0e-41dc-aaef-dd575be7e9ef',\n     op: 'IoTAgentNGSI.IOTAMService',\n     [Symbol(kWeak)]: WeakReference {} },\n  domainThrown: true }"}
{"op":"IoTAgentNGSI.DomainControl","time":"2022-02-11T16:47:20.861Z","lvl":"DEBUG","msg":"response-time: 4358"}
time=2022-02-11T16:47:21.196Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=ns=1;s=temperature_rw  value has changed to 16.100318997578054
time=2022-02-11T16:47:21.196Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg=could not find the OCB context RW1
time=2022-02-11T16:47:21.196Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/team | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:RW1","code":404}

Devices with empty device_id are getting created

Description:

Provisioning a device on the IoTAgent OPC UA with blank device_id gets registered.

Steps to reproduce:

Send a device provisioning request to the 4001 port of IoTAgent OPC UA with blank device_id as follows:

{
    "devices": [
        {
            "device_id": "",
            "entity_name": "urn:ngsi-ld:Device:age09_Car",
            "entity_type": "Device",
            "attributes": [
                {
                    "object_id": "ns=3;s=EngineBrake",
                    "name": "EngineBrake",
                    "type": "Number"
                },
                {
                    "object_id": "ns=3;s=Acceleration",
                    "name": "Acceleration",
                    "type": "Number"
                },
                {
                    "object_id": "ns=3;s=EngineStopped",
                    "name": "EngineStopped",
                    "type": "Boolean"
                }
]}]}

Expected Output:

{"name":"MISSING_ATTRIBUTES","message":"The request was not well formed:Missing attributes: [\"device_id\"]"}

Actual Output:

201 Created

Devices GET Output:

{
    "count": 1,
    "devices": [
        {
            "device_id": "",
            "service": "openiot5",
            "service_path": "/demo",
            "entity_name": "urn:ngsi-ld:Device:age09_Car",
            "entity_type": "Device",
            "attributes": [
                {
                    "object_id": "ns=3;s=EngineBrake",
                    "name": "EngineBrake",
                    "type": "Number"
                },
                {
                    "object_id": "ns=3;s=Acceleration",
                    "name": "Acceleration",
                    "type": "Number"
                },
                {
                    "object_id": "ns=3;s=EngineStopped",
                    "name": "EngineStopped",
                    "type": "Boolean"
                }
            ],
            "lazy": [],
            "commands": [
                {
                    "object_id": "Error",
                    "name": "Error",
                    "type": "command"
                },
                {
                    "object_id": "Stop",
                    "name": "Stop",
                    "type": "command"
                },
                {
                    "object_id": "Accelerate",
                    "name": "Accelerate",
                    "type": "command"
                }
            ],
            "static_attributes": []
        }
    ]
}

Affected Product Version:

IoTAgent OPC UA latest

Environment details (with versions):

OS: Centos 7
Env (Docker/K8s): Both Docker & K8S

How to test iotagent opcua with dummy device data.

Hi @gabrieledeluca @PietroGreco ,

I want to test iotagent opcua with my dummy device data. I have followed the steps described in the below document.
https://github.com/Engineering-Research-and-Development/iotagent-opcua/blob/master/docs/opc_ua_agent_tutorial.md

Install iotagent-opcua using docker
Provision a new Device
Now, I want to check the flow is working correctly by sending the value from opcua to orion as to check End to end dummy data flow with Orion.
Also, I don't have the actual device/sensor. I want to send data using my dummy device.

Please guide me how I can test with my dummy device and how can service provisioning can be done using opcua?
Also, please confirm which payload format used by iotagent-opcua

Registering variable with node_id with quotes

Hello,

I'm trying to register a variable with the following node_id in a OPC UA server: ns=3;s="input1". I'm sending the following JSON to the OPC UA Agent:

{
    "devices": [
        {
            "device_id": "plc_demo",
            "entity_name": "urn:ngsi-ld:PLC:001",
            "entity_type": "Device",
            "attributes": [
                {
                    "object_id": "ns*3:s*\"input1\"",
                    "name": "input1",
                    "type": "Number" 
                }          
            ],
            "lazy": [],
            "commands": []
        }
    ]
}

I tried to escape the double quotes in the JSON but the agent responds "WRONG_SYNTAX". Also, I tried to use "ns*3:s*input1", but the agent didn't find the node in the address space (because the node_id is ns=3;s="input1" not ns=3;s=input1) and "ns*3:s*\\\"input1\\\"" but the agent responded WRONG_SYNTAX again. I couldn't find any info about this in the documentation. So, there is a way to register a variable with quotes in its node_id?

Thank you so much.

Support of Scorpio Context Broker?

Hello,

I have a question regarding the support of Scorpio Context Broker. Actually it seems that iotagent-opcua only supports Orion Context Broker - is it planned to also support Scorpio in the future?

Greetings!

Name of the attributes in ContextBroker

Hello,

I have already got everything connected working correctly and using the mapping tool in an almost perfect way.

My question is if it is possible that the attribute name that is generated in Orion Context Broker does not include the OPC id node. "3:Co2"

like for example:


[
    {
        "id": "Reactor:001",
        "type": "Reactor",
        "3:Co2": {
            "type": "Number",
            "value": 2,
            "metadata": {}
        },
        "3:Radiation": {
            "type": "Number",
            "value": 2,
            "metadata": {}
        },
        "3:Temperature": {
            "type": "Number",
            "value": 2,
            "metadata": {}
        }
    },
    {
        "id": "Simulacion:001",
        "type": "Simulation",
        "3:Counter": {
            "type": "Number",
            "value": 2,
            "metadata": {}
        },
        "3:Random": {
            "type": "Number",
            "value": -1.144637,
            "metadata": {}
        },
        "3:Sawtooth": {
            "type": "Number",
            "value": -0.8944,
            "metadata": {}
        },
        "3:Sinusoid": {
            "type": "Number",
            "value": -0.902752,
            "metadata": {}
        },
        "3:Square": {
            "type": "Number",
            "value": -2,
            "metadata": {}
        },
        "3:Triangle": {
            "type": "Number",
            "value": -0.5962667,
            "metadata": {}
        }
    }
]

Provision a new device error

Hi I am trying to provision a new device via API with NGSIV2 and I always get the same error :

{
    "name": "WRONG_SYNTAX",
    "message": "Wrong syntax in request: Errors found validating request."
}

This error is related to the = in the Object_id field, it seems that it is not supported by OCB. But in all their examples they use it. How can I fix the problem

devices


{
    "devices": [
        {
            "device_id": "TL1",
            "entity_name": "TL1",
            "entity_type": "device2",
            "attributes": [
                {
                    "object_id": "ns=1;s=temperature_tl",
                    "name": "temperature_tl",
                    "type": "Number"
                }
            ],
            "lazy": [],
            "commands" : []
      }
    ]
}

log:


{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T21:10:28.714Z","lvl":"DEBUG","msg":"Request for path [/iot/devices/] from [localhost:4001]"}

{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T21:10:28.714Z","lvl":"DEBUG","msg":"Body:\n\n{\n    \"devices\": [\n        {\n            \"device_id\": \"TL1\",\n            \"entity_name\": \"TL1\",\n            \"entity_type\": \"device2\",\n            \"attributes\": [\n                {\n                    \"object_id\": \"ns=1;s=temperature_tl\",\n                    \"name\": \"temperature_tl\",\n                    \"type\": \"Number\"\n                }\n            ],\n            \"lazy\": [],\n            \"commands\": []\n        }\n    ]\n}\n\n"}

{"op":"IoTAgentNGSI.RestUtils","time":"2022-02-10T21:10:28.717Z","lvl":"DEBUG","msg":"Errors found validating request: {\"valid\":false,\"errors\":[{\"attribute\":\"pattern\",\"property\":\"devices.0.attributes.0.object_id\",\"expected\":\"^([^<>();'=\\\"]+)+$\",\"actual\":\"ns=1;s=temperature_tl\",\"message\":\"invalid input\"}]}"}

{"op":"IoTAgentNGSI.GenericMiddlewares","time":"2022-02-10T21:10:28.718Z","lvl":"DEBUG","msg":"Error [WRONG_SYNTAX] handling request: Wrong syntax in request: Errors found validating request."}

Multiple inputs command and output result

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

NGSI version and Orion CB for Agent

I am working with the tutorial for OPC-UA IoT Agent which is using this docker-compose.yml file for car-server.
The environment parameter of iotage services included IOTA_CB_NGSI_VERSION=ld which I understand as: The IoT Agent will update active attributes to Context Broker via NGSI-LD.
However, the image setting of orion service is image: fiware/orion:latest
Here is the whole docker-compose.yml I got after clone the project:

version: "3"

services:
  iotcarsrv:
    hostname: iotcarsrv
    image: iotagent4fiware/opcuacarsrv:latest
    volumes:
      - ./CARCONF/car_config.json:/opt/opc-ua-car-server/Car/Car1/config/car_config.json
    networks:
      - hostnet
    ports:
      - "5001:5001"

  iotage:
    hostname: iotage
    image: iotagent4fiware/iotagent-opcua:latest
    networks:
      - hostnet
      - iotnet
    ports:
      - "4001:4001"
      - "4081:8080"
    depends_on:
      - iotcarsrv
      - iotmongo
      - orion
    volumes:
      - ./AGECONF:/opt/iotagent-opcua/conf
      - ./certificates:/opt/iotagent-opcua/certificates
    command: npm start
    environment:
      - IOTA_REGISTRY_TYPE=mongodb #Whether to hold IoT device info in memory or in a database
      - IOTA_LOG_LEVEL=DEBUG # The log level of the IoT Agent
      - IOTA_MONGO_HOST=iot_mongo # The host name of MongoDB
      - IOTA_MONGO_DB=iotagent_opcua # The name of the database used in mongoDB
      - IOTA_CB_NGSI_VERSION=ld # use NGSI-LD when sending updates for active attributes
      - IOTA_JSON_LD_CONTEXT=https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.3.jsonld
      - IOTA_FALLBACK_TENANT=opcua_car
      - IOTA_RELAX_TEMPLATE_VALIDATION=true

  iotmongo:
    hostname: iot_mongo
    image: mongo:4.2
    networks:
      - iotnet
    volumes:
      - iot_mongo_data:/data/db
      - iot_mongo_conf:/data/configdb

  ################ OCB ################

  orion:
    hostname: orion
    image: fiware/orion:latest
    networks:
      - hostnet
      - ocbnet
    ports:
      - "1026:1026"
    depends_on:
      - orion_mongo
    command: -statCounters -dbhost orion_mongo -logForHumans -logLevel INFO -t 255

  orion_mongo:
    hostname: orion_mongo
    image: mongo:4.2
    networks:
      - ocbnet
    ports:
      - "27017:27017"
    volumes:
      - orion_mongo_data:/data/db
      - orion_mongo_conf:/data/configdb
    command: --nojournal

volumes:
  iot_mongo_data:
  iot_mongo_conf:
  orion_mongo_data:
  orion_mongo_conf:

networks:
  hostnet:
  iotnet:
  ocbnet:

As the file docker-compose.yml was included in .dockerignore I am not sure if the it is up to date.
I think the IOTA_CB_NGSI_VERSION and the orion's image should be set accordingly so there are two settings that make sense to me:

  • If NGSI-LD is used for IoT Agent: change image: fiware/orion:latest to image: fiware/orion-ld:latest.
  • If NGSI-V2 is used for IoT Agent: change IOTA_CB_NGSI_VERSION=ld to IOTA_CB_NGSI_VERSION=v2 and remove IOTA_JSON_LD_CONTEXT=https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.3.jsonld.

In my case, I also have to change -logLevel to DEBUG to make the orion work.

Please correct me if I am wrong and let me know if there are further modification needed in case of using NGSI-v2 for IoT Agent OPC-UA

Complex mapping

How can I map OPC attribute to more complex json property?

For example I would like to have model like that:

{
   "id": "some-id",
   "type": "Sensor",
   "hasFunction": {
       "type": "property",
       "value": {
           "hasSensingRange": {
              "type": "Property",
              "observedAt": "2022-12-02T01:48:29Z", <--- this one I know is going to be introduced in next version
              "value": 23, <---- this one is taken from another NodeId
              "unitCode": "°C" <---- this one is taken from NodeId (nested inside previous one)
           },
       }
   }
}

Ideally it would be nice to have more detailed documentation for mapping

Two connections opc ua

Hi!
I would like to know, how is the implementation for the two connection on iotagent.
I try two endpoints on config.properties
for example:

## SOUTHBOUND CONFIGURATION (OPC UA)
namespace-ignore=0,3,7
endpoint=opc.tcp://server:4840; opc.tcp://server:5840; 

The nodeID is 2 in both cases.
I used the config.json.MULTIPLE_DEVICES file, for example, and the docker-compose.yml in iotagent I put:

iotage:
      hostname: iotage
      image: iotagent4fiware/iotagent-opcua:1.3.4
      networks:
          - fiware_default
      ports:
          - "4001:4001"
          - "4081:8080"
      extra_hosts:
          - "server:10.150.10.110"
      depends_on:
          - mongo-db
          - orion
      volumes:
          - ./AGECONF:/opt/iotagent-opcua/conf
      command: /usr/bin/tail -f /var/log/lastlog

How do I do it?
Are there more necessary changes or I need another agent in this case?

[MUST] Every GE must have training materials

At the moment this enabler has no Tutorial and no link to the Academy and does not fulfil the minimum Training section requirements.

The suggestion is to create a simple Attaching other IoT Agents tutorial to provide a series of simple hello world connections for each agent in turn - this needs to include

  • One docker compose file for base config
  • A set of REST API calls to provision the service
  • An indication on how to make minimal measure arrive (e.g. publishing an MQTT topic or equivalent)
  • Proof that the data arrives in Orion.
  • Presence of training is a MUST requirement

"Executed expiring daemon" from IoTAgentNGSI.ContextServer

I am working with the IoT Agent for OPCUA with the following setting:
The server is OPC UA Prosys Server Simulation

AGECONF/config.json:

{
  "logLevel" : "DEBUG",
  "contextBroker" : {
    "host" : "orion",
    "port" : 1026
  },
  "server" : {
    "port" : 4001,
    "baseRoot" : "/"
  },
  "deviceRegistry" : {
    "type" : "memory"
  },
  "mongodb" : {
    "host" : "iotmongo",
    "port" : "27017",
    "db" : "iotagent",
    "retries" : 5,
    "retryTime" : 5
  },
  "types" : {
    "7:Simulation" : {
      "service" : "opcua_car",
      "subservice" : "/demo",
      "active" : [ {
        "name" : "7:Counter",
        "type" : "Number"
      }, {
        "name" : "7:Random",
        "type" : "Number"
      }, {
        "name" : "7:Sawtooth",
        "type" : "Number"
      }, {
        "name" : "7:Sinusoid",
        "type" : "Number"
      }, {
        "name" : "7:Square",
        "type" : "Number"
      }, {
        "name" : "7:Triangle",
        "type" : "Number"
      } ],
      "lazy" : [ ],
      "commands" : [ ]
    }
  },
  "browseServerOptions" : null,
  "service" : "opcua_car",
  "subservice" : "/demo",
  "providerUrl" : "http://iotage:4001",
  "pollingExpiration" : "200000",
  "pollingDaemonFrequency" : "20000",
  "deviceRegistrationDuration" : "P1M",
  "defaultType" : null,
  "contexts" : [ {
    "id" : "age01_7:Simulation",
    "type" : "7:Simulation",
    "service" : "opcua_car",
    "subservice" : "/demo",
    "polling" : false,
    "mappings" : [ {
      "ocb_id" : "7:Counter",
      "opcua_id" : "ns=7;i=1001",
      "object_id" : null,
      "inputArguments" : [ ]
    }, {
      "ocb_id" : "7:Random",
      "opcua_id" : "ns=7;i=1002",
      "object_id" : null,
      "inputArguments" : [ ]
    }, {
      "ocb_id" : "7:Sawtooth",
      "opcua_id" : "ns=7;i=1003",
      "object_id" : null,
      "inputArguments" : [ ]
    }, {
      "ocb_id" : "7:Sinusoid",
      "opcua_id" : "ns=7;i=1004",
      "object_id" : null,
      "inputArguments" : [ ]
    }, {
      "ocb_id" : "7:Square",
      "opcua_id" : "ns=7;i=1005",
      "object_id" : null,
      "inputArguments" : [ ]
    }, {
      "ocb_id" : "7:Triangle",
      "opcua_id" : "ns=7;i=1006",
      "object_id" : null,
      "inputArguments" : [ ]
    } ]
  } ],
  "contextSubscriptions" : [ ]
}

opcua-postgres.yml as a docker-compose file:

version: "3"
#secrets:
#   age_idm_auth:
#      file: age_idm_auth.txt

services:
  iotage:
    hostname: iotage
    image: iotagent4fiware/iotagent-opcua:1.3.4
    networks:
      - hostnet
      - iotnet
    ports:
      - "${AGENT_SERVER_PORT}:${AGENT_SERVER_PORT}"
      - "4081:8080"
    extra_hosts:
      - "iotcarsrv:192.168.50.167"
      - "HP:192.168.50.167"
    depends_on:
      - iotmongo
      - orion
    volumes:
      - ./AGECONF:/opt/iotagent-opcua/conf
      - ./certificates:/opt/iotagent-opcua/certificates
    command: /usr/bin/tail -f /var/log/lastlog

  iotmongo:
    hostname: iotmongo
    image: mongo:3.4
    networks:
      - iotnet
    volumes:
      - iotmongo_data:/data/db
      - iotmongo_conf:/data/configdb

  ################ OCB ################

  orion:
    hostname: orion
    image: fiware/orion:latest
    networks:
      - hostnet
      - ocbnet
    ports:
      - "${ORION_PORT}:${ORION_PORT}"
    depends_on:
      - orion_mongo
    #command: -dbhost mongo
    entrypoint: /usr/bin/contextBroker -fg -multiservice -statCounters -dbhost mongo -logForHumans -logLevel DEBUG -t 255

  orion_mongo:
    hostname: orion_mongo
    image: mongo:3.4
    networks:
      ocbnet:
        aliases:
          - mongo
    volumes:
      - orion_mongo_data:/data/db
      - orion_mongo_conf:/data/configdb
    command: --nojournal

  ############### CYGNUS ###############

  cygnus:
    image: fiware/cygnus-ngsi:${CYGNUS_VERSION}
    hostname: cygnus
    container_name: fiware-cygnus
    networks:
      - hostnet
    depends_on:
      - postgres-db
    expose:
      - "${CYGNUS_POSTGRESQL_SERVICE_PORT}" # 5055
      - "${CYGNUS_API_PORT}" # 5080
    ports:
      - "${CYGNUS_POSTGRESQL_SERVICE_PORT}:${CYGNUS_POSTGRESQL_SERVICE_PORT}"
      - "${CYGNUS_API_PORT}:${CYGNUS_API_PORT}"
    environment:
      - "CYGNUS_POSTGRESQL_SERVICE_PORT=${CYGNUS_POSTGRESQL_SERVICE_PORT}"      
      - "CYGNUS_POSTGRESQL_HOST=postgres-db" # Hostname of the PostgreSQL server used to persist historical contex
      - "CYGNUS_POSTGRESQL_PORT=${POSTGRES_DB_PORT}" # Port that the PostgreSQL server uses to listen to commands
      - "CYGNUS_POSTGRESQL_DATABASE=${POSTGRES_DB}"
      - "CYGNUS_POSTGRESQL_USER=postgres" # Username for the PostgreSQL database user
      - "CYGNUS_POSTGRESQL_PASS=password" # Password for the PostgreSQL database user
      - "CYGNUS_POSTGRESQL_ENABLE_CACHE=true" # Switch to enable caching within the PostgreSQL configuration
      - "CYGNUS_SERVICE_PORT=${CYGNUS_POSTGRESQL_SERVICE_PORT}" # Notification Port that Cygnus listens when subcr
      - "CYGNUS_API_PORT=${CYGNUS_API_PORT}" # Port that Cygnus listens on for operational reasons
      - "CYGNUS_LOG_LEVEL=DEBUG" # The logging level for Cygnus


  postgres-db:
    image: postgres
    hostname: postgres-db
    expose:
      - "${POSTGRES_DB_PORT}"
    ports:
      - "${POSTGRES_DB_PORT}:${POSTGRES_DB_PORT}"
    networks:
      - hostnet
    environment:
      - "POSTGRES_PASSWORD=password"
      - "POSTGRES_USER=postgres"
      - "POSTGRES_DB=${POSTGRES_DB}"
    volumes:
      - postgres-db:/var/lib/postgresql/data

volumes:
  iotmongo_data:
  iotmongo_conf:
  orion_mongo_data:
  orion_mongo_conf:
  postgres-db:

networks:
  hostnet:
  iotnet:
  ocbnet:

The certificates were created and put in both OPCUA server and client (Fiware OPCUA agent).
I got this error, which was not shown ever during last implementation.

image

The error message is ambiguous for me as I don't know which daemon it is referring to.
I have check the dockerd with sudo systemctl status dockerd which showed active
image

After about 5 mins the agent showed this

image

Tutorial not fully working

Ref:- #79

Tried after the fix for the above issue, works partially now.

This request works
curl -X PUT 'http://localhost:1026/v2/entities/age01_Car/attrs/Accelerate?type=Device' -H 'content-type: application/json' -H 'fiware-service: opcua_car' -H 'fiware-servicepath: /demo' -d '{ "value": [2], "type": "command" }'

but the GET request as shown below still reports error
curl -X GET http://localhost:1026/v2/entities/age01_Car/attrs/Speed -H 'fiware-service: opcua_car' -H 'fiware-servicepath: /demo' {"error":"NotFound","description":"The entity does not have such an attribute"}

Suggestion: Error handling when sending a command.

Hi, I am using The IoT Agent OPC UA with a custum build FreeOpcUa server written in Python. I am able to connect both of them and they are working fine.

I am writing this issue regarding how the IoT Agent handles errors if a called method is failed to operate.
The demonstrate what I mean I have the current lines of code in my OPC UA server.

def turn_pump_on(parent):
    if manualoperation.get_value() == True:
        pump_closed.set_value(False)
        pump_q.set_value(1) # Flowrate defined in project implementation
    else:  
        return ua.StatusCode(0x80990000) # Status code for BadConditionDisable error

This means that when executing the method if the variable "manual operation" is True it should turn the pump on by changing the closed and flow rate variables. If the "manual operation" variable is set to False it should return a "BadConditionDisable" error (I can get this error in UAExpert).

Even thou the method returns an error I can see that in the Orion the turn_pump_on_status has the value " pending".
I would sugest that it change this value to failed in this case and as such returns an error when sending a Patch request thought IOT Agent for example.

External hosts OPCUA

Hello,

I have a local OPC server which I access via opc.tcp://localhost:5001/UA/CarServer. I have a nodejs client that queries this server to check that it works correctly.

I am following your tutoral to create the IoTAgent to that server but I have doubts when configuring the extra_hosts files:
- "iotcarsrv:192.168.40.42"
- "pietro-deb.pietro.local:192.168.40.42”

In this case, how should I configure it? Also I do not understand the need to enter here the OPC server when in the AGECONF/config.properties file it is necessary to put the endpoint of the OPC server.

Best regards and thanks

could not find the OCB context

Hello,

I am having problems launching the IoTAgent opcua server. My config.json file theoretically works correctly since sometimes it works and sometimes it does not.

The log when the system is created is as follows:

if accessing the OPC as it retrieves the values of the nodes (ns=3;i=1006 value has changed to -1.334667) but when I query iot/devices/ it is empty but the OCB entities if it is filled.

I have the impression that it does create all the OCB but it is not able to save the devices in the agent by checking the log. how can I solve it?


iotage_1       | time=2021-11-04T13:05:38.174Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= session created
iotage_1       | time=2021-11-04T13:05:38.176Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= sessionId :  ns=1;g=2364B445-FE6E-4E42-9CA4-6A9B828545D2
iotage_1       | time=2021-11-04T13:05:38.176Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= the timeout value set by the server is  100000  ms
iotage_1       | time=2021-11-04T13:05:38.525Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= --- NAMESPACE ARRAY ---
iotage_1       | time=2021-11-04T13:05:38.526Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  0   :  http://opcfoundation.org/UA/
iotage_1       | time=2021-11-04T13:05:38.526Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  1   :  urn:MacBook-Pro.local:OPCUA:SimulationServer
iotage_1       | time=2021-11-04T13:05:38.526Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  2   :  http://www.prosysopc.com/OPCUA/SimulationServer/
iotage_1       | time=2021-11-04T13:05:38.526Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  3   :  http://www.prosysopc.com/OPCUA/SimulationNodes/
iotage_1       | time=2021-11-04T13:05:38.526Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  4   :  http://www.prosysopc.com/OPCUA/SimulationNodes/SimulationConfiguration/
iotage_1       | time=2021-11-04T13:05:38.526Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  5   :  null
iotage_1       | time=2021-11-04T13:05:38.526Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  6   :  null
iotage_1       | time=2021-11-04T13:05:38.527Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  7   :  urn:localhost/UA/CarServer
iotage_1       | time=2021-11-04T13:05:38.527Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  8   :  urn:localhost:UA:CarServer/SimulationConfiguration/
iotage_1       | time=2021-11-04T13:05:38.527Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  9   :  null
iotage_1       | time=2021-11-04T13:05:38.527Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  10   :  urn:localhost:5001/UA/CarServer/SimulationConfiguration/
iotage_1       | time=2021-11-04T13:05:38.527Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= Namespace  11   :  urn:localhost/UA/CarServer/SimulationConfiguration/
iotage_1       | time=2021-11-04T13:05:38.527Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg= -----------------------
iotage_1       | time=2021-11-04T13:05:38.538Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=registering OCB context React of type React
iotage_1       | time=2021-11-04T13:05:38.550Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=registering OCB context Simulation of type Simulation
iotage_1       | time=2021-11-04T13:05:38.558Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=Starting timer  -1
iotage_1       | time=2021-11-04T13:05:38.559Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=NO Timeout set!!!
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:38.569Z","lvl":"DEBUG","msg":"Request for path [/iot/devices/React] from [localhost:4001]"}
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:38.573Z","lvl":"DEBUG","msg":"Error [DEVICE_NOT_FOUND] handling request: No device was found with id:React"}
iotage_1       | {"op":"IoTAgentNGSI.DomainControl","time":"2021-11-04T13:05:38.581Z","lvl":"DEBUG","msg":"response-time: 14"}
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:38.584Z","lvl":"DEBUG","msg":"Request for path [/iot/devices/Simulation] from [localhost:4001]"}
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:38.585Z","lvl":"DEBUG","msg":"Error [DEVICE_NOT_FOUND] handling request: No device was found with id:Simulation"}
iotage_1       | {"op":"IoTAgentNGSI.DomainControl","time":"2021-11-04T13:05:38.588Z","lvl":"DEBUG","msg":"response-time: 4"}
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:38.589Z","lvl":"DEBUG","msg":"Request for path [/iot/devices/React] from [localhost:4001]"}
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:38.589Z","lvl":"DEBUG","msg":"Error [DEVICE_NOT_FOUND] handling request: No device was found with id:React"}
iotage_1       | {"op":"IoTAgentNGSI.DomainControl","time":"2021-11-04T13:05:38.590Z","lvl":"DEBUG","msg":"response-time: 1"}
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:38.591Z","lvl":"DEBUG","msg":"Request for path [/iot/devices/Simulation] from [localhost:4001]"}
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:38.591Z","lvl":"DEBUG","msg":"Error [DEVICE_NOT_FOUND] handling request: No device was found with id:Simulation"}
iotage_1       | {"op":"IoTAgentNGSI.DomainControl","time":"2021-11-04T13:05:38.592Z","lvl":"DEBUG","msg":"response-time: 1"}
iotage_1       | time=2021-11-04T13:05:38.597Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=device deleted!
iotage_1       | {"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2021-11-04T13:05:38.598Z","lvl":"DEBUG","msg":"Looking for device params [\"service\",\"subservice\",\"type\"]"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.599Z","lvl":"DEBUG","msg":"deviceData after merge with conf: {\"id\":\"React\",\"name\":\"React\",\"type\":\"React\",\"active\":[{\"name\":\"Temperature\",\"type\":\"Number\"},{\"name\":\"Co2\",\"type\":\"Number\"},{\"name\":\"Radiation\",\"type\":\"Number\"}],\"service\":\"sabana\",\"subservice\":\"/\",\"polling\":false,\"endpoint\":\"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\"}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.600Z","lvl":"DEBUG","msg":"deviceData before merge with conf: {\"id\":\"React\",\"name\":\"React\",\"type\":\"React\",\"active\":[{\"name\":\"Temperature\",\"type\":\"Number\",\"object_id\":\"Temperature\"},{\"name\":\"Co2\",\"type\":\"Number\",\"object_id\":\"Co2\"},{\"name\":\"Radiation\",\"type\":\"Number\",\"object_id\":\"Radiation\"}],\"lazy\":[],\"commands\":[],\"service\":\"sabana\",\"subservice\":\"/\",\"polling\":false,\"endpoint\":\"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\",\"staticAttributes\":[],\"subscriptions\":[]}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.600Z","lvl":"DEBUG","msg":"Registering device into NGSI Service:\n{\n    \"id\": \"React\",\n    \"name\": \"React\",\n    \"type\": \"React\",\n    \"active\": [\n        {\n            \"name\": \"Temperature\",\n            \"type\": \"Number\",\n            \"object_id\": \"Temperature\"\n        },\n        {\n            \"name\": \"Co2\",\n            \"type\": \"Number\",\n            \"object_id\": \"Co2\"\n        },\n        {\n            \"name\": \"Radiation\",\n            \"type\": \"Number\",\n            \"object_id\": \"Radiation\"\n        }\n    ],\n    \"lazy\": [],\n    \"commands\": [],\n    \"service\": \"sabana\",\n    \"subservice\": \"/\",\n    \"polling\": false,\n    \"endpoint\": \"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\",\n    \"staticAttributes\": [],\n    \"subscriptions\": []\n}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.601Z","lvl":"DEBUG","msg":"No Context Provider registrations found for unregister"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.604Z","lvl":"DEBUG","msg":"Creating initial entity in the Context Broker:\n {\n    \"url\": \"http://orion:1026/v1/updateContext\",\n    \"method\": \"POST\",\n    \"json\": {\n        \"contextElements\": [\n            {\n                \"type\": \"React\",\n                \"isPattern\": \"false\",\n                \"id\": \"React\",\n                \"attributes\": [\n                    {\n                        \"name\": \"Temperature\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Co2\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Radiation\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    }\n                ]\n            }\n        ],\n        \"updateAction\": \"APPEND\"\n    },\n    \"headers\": {\n        \"fiware-service\": \"sabana\",\n        \"fiware-servicepath\": \"/\",\n        \"fiware-correlator\": \"d03ab3ee-ec2d-483b-aa53-280fcfe3cb1b\"\n    }\n}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.604Z","lvl":"DEBUG","msg":"executeWithSecurity"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.605Z","lvl":"DEBUG","msg":"error {\"name\":\"DEVICE_GROUP_NOT_FOUND\",\"message\":\"Couldn\\t find device group\",\"code\":404} in get group device"}
iotage_1       | time=2021-11-04T13:05:38.607Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=device deleted!
iotage_1       | {"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2021-11-04T13:05:38.607Z","lvl":"DEBUG","msg":"Looking for device params [\"service\",\"subservice\",\"type\"]"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.607Z","lvl":"DEBUG","msg":"deviceData after merge with conf: {\"id\":\"React\",\"name\":\"React\",\"type\":\"React\",\"active\":[{\"name\":\"Temperature\",\"type\":\"Number\",\"object_id\":\"Temperature\"},{\"name\":\"Co2\",\"type\":\"Number\",\"object_id\":\"Co2\"},{\"name\":\"Radiation\",\"type\":\"Number\",\"object_id\":\"Radiation\"}],\"service\":\"sabana\",\"subservice\":\"/\",\"polling\":false,\"endpoint\":\"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\"}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.607Z","lvl":"DEBUG","msg":"deviceData before merge with conf: {\"id\":\"React\",\"name\":\"React\",\"type\":\"React\",\"active\":[{\"name\":\"Temperature\",\"type\":\"Number\",\"object_id\":\"Temperature\"},{\"name\":\"Co2\",\"type\":\"Number\",\"object_id\":\"Co2\"},{\"name\":\"Radiation\",\"type\":\"Number\",\"object_id\":\"Radiation\"}],\"lazy\":[],\"commands\":[],\"service\":\"sabana\",\"subservice\":\"/\",\"polling\":false,\"endpoint\":\"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\",\"staticAttributes\":[],\"subscriptions\":[]}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.607Z","lvl":"DEBUG","msg":"Registering device into NGSI Service:\n{\n    \"id\": \"React\",\n    \"name\": \"React\",\n    \"type\": \"React\",\n    \"active\": [\n        {\n            \"name\": \"Temperature\",\n            \"type\": \"Number\",\n            \"object_id\": \"Temperature\"\n        },\n        {\n            \"name\": \"Co2\",\n            \"type\": \"Number\",\n            \"object_id\": \"Co2\"\n        },\n        {\n            \"name\": \"Radiation\",\n            \"type\": \"Number\",\n            \"object_id\": \"Radiation\"\n        }\n    ],\n    \"lazy\": [],\n    \"commands\": [],\n    \"service\": \"sabana\",\n    \"subservice\": \"/\",\n    \"polling\": false,\n    \"endpoint\": \"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\",\n    \"staticAttributes\": [],\n    \"subscriptions\": []\n}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.607Z","lvl":"DEBUG","msg":"No Context Provider registrations found for unregister"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.608Z","lvl":"DEBUG","msg":"Creating initial entity in the Context Broker:\n {\n    \"url\": \"http://orion:1026/v1/updateContext\",\n    \"method\": \"POST\",\n    \"json\": {\n        \"contextElements\": [\n            {\n                \"type\": \"React\",\n                \"isPattern\": \"false\",\n                \"id\": \"React\",\n                \"attributes\": [\n                    {\n                        \"name\": \"Temperature\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Co2\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Radiation\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    }\n                ]\n            }\n        ],\n        \"updateAction\": \"APPEND\"\n    },\n    \"headers\": {\n        \"fiware-service\": \"sabana\",\n        \"fiware-servicepath\": \"/\",\n        \"fiware-correlator\": \"d03ab3ee-ec2d-483b-aa53-280fcfe3cb1b\"\n    }\n}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.608Z","lvl":"DEBUG","msg":"executeWithSecurity"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.608Z","lvl":"DEBUG","msg":"error {\"name\":\"DEVICE_GROUP_NOT_FOUND\",\"message\":\"Couldn\\t find device group\",\"code\":404} in get group device"}
iotage_1       | time=2021-11-04T13:05:38.610Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=device deleted!
iotage_1       | {"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2021-11-04T13:05:38.610Z","lvl":"DEBUG","msg":"Looking for device params [\"service\",\"subservice\",\"type\"]"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.610Z","lvl":"DEBUG","msg":"deviceData after merge with conf: {\"id\":\"Simulation\",\"name\":\"Simulation\",\"type\":\"Simulation\",\"active\":[{\"name\":\"Counter\",\"type\":\"Number\"},{\"name\":\"Random\",\"type\":\"Number\"},{\"name\":\"Sawtooth\",\"type\":\"Number\"},{\"name\":\"Sinusoid\",\"type\":\"Number\"},{\"name\":\"Square\",\"type\":\"Number\"},{\"name\":\"Triangle\",\"type\":\"Number\"}],\"service\":\"sabana\",\"subservice\":\"/\",\"polling\":false,\"endpoint\":\"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\"}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.610Z","lvl":"DEBUG","msg":"deviceData before merge with conf: {\"id\":\"Simulation\",\"name\":\"Simulation\",\"type\":\"Simulation\",\"active\":[{\"name\":\"Counter\",\"type\":\"Number\",\"object_id\":\"Counter\"},{\"name\":\"Random\",\"type\":\"Number\",\"object_id\":\"Random\"},{\"name\":\"Sawtooth\",\"type\":\"Number\",\"object_id\":\"Sawtooth\"},{\"name\":\"Sinusoid\",\"type\":\"Number\",\"object_id\":\"Sinusoid\"},{\"name\":\"Square\",\"type\":\"Number\",\"object_id\":\"Square\"},{\"name\":\"Triangle\",\"type\":\"Number\",\"object_id\":\"Triangle\"}],\"lazy\":[],\"commands\":[],\"service\":\"sabana\",\"subservice\":\"/\",\"polling\":false,\"endpoint\":\"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\",\"staticAttributes\":[],\"subscriptions\":[]}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.611Z","lvl":"DEBUG","msg":"Registering device into NGSI Service:\n{\n    \"id\": \"Simulation\",\n    \"name\": \"Simulation\",\n    \"type\": \"Simulation\",\n    \"active\": [\n        {\n            \"name\": \"Counter\",\n            \"type\": \"Number\",\n            \"object_id\": \"Counter\"\n        },\n        {\n            \"name\": \"Random\",\n            \"type\": \"Number\",\n            \"object_id\": \"Random\"\n        },\n        {\n            \"name\": \"Sawtooth\",\n            \"type\": \"Number\",\n            \"object_id\": \"Sawtooth\"\n        },\n        {\n            \"name\": \"Sinusoid\",\n            \"type\": \"Number\",\n            \"object_id\": \"Sinusoid\"\n        },\n        {\n            \"name\": \"Square\",\n            \"type\": \"Number\",\n            \"object_id\": \"Square\"\n        },\n        {\n            \"name\": \"Triangle\",\n            \"type\": \"Number\",\n            \"object_id\": \"Triangle\"\n        }\n    ],\n    \"lazy\": [],\n    \"commands\": [],\n    \"service\": \"sabana\",\n    \"subservice\": \"/\",\n    \"polling\": false,\n    \"endpoint\": \"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\",\n    \"staticAttributes\": [],\n    \"subscriptions\": []\n}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.611Z","lvl":"DEBUG","msg":"No Context Provider registrations found for unregister"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.611Z","lvl":"DEBUG","msg":"Creating initial entity in the Context Broker:\n {\n    \"url\": \"http://orion:1026/v1/updateContext\",\n    \"method\": \"POST\",\n    \"json\": {\n        \"contextElements\": [\n            {\n                \"type\": \"Simulation\",\n                \"isPattern\": \"false\",\n                \"id\": \"Simulation\",\n                \"attributes\": [\n                    {\n                        \"name\": \"Counter\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Random\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Sawtooth\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Sinusoid\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Square\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Triangle\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    }\n                ]\n            }\n        ],\n        \"updateAction\": \"APPEND\"\n    },\n    \"headers\": {\n        \"fiware-service\": \"sabana\",\n        \"fiware-servicepath\": \"/\",\n        \"fiware-correlator\": \"d03ab3ee-ec2d-483b-aa53-280fcfe3cb1b\"\n    }\n}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.611Z","lvl":"DEBUG","msg":"executeWithSecurity"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.611Z","lvl":"DEBUG","msg":"error {\"name\":\"DEVICE_GROUP_NOT_FOUND\",\"message\":\"Couldn\\t find device group\",\"code\":404} in get group device"}
iotage_1       | time=2021-11-04T13:05:38.612Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=device deleted!
iotage_1       | {"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2021-11-04T13:05:38.612Z","lvl":"DEBUG","msg":"Looking for device params [\"service\",\"subservice\",\"type\"]"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.612Z","lvl":"DEBUG","msg":"deviceData after merge with conf: {\"id\":\"Simulation\",\"name\":\"Simulation\",\"type\":\"Simulation\",\"active\":[{\"name\":\"Counter\",\"type\":\"Number\",\"object_id\":\"Counter\"},{\"name\":\"Random\",\"type\":\"Number\",\"object_id\":\"Random\"},{\"name\":\"Sawtooth\",\"type\":\"Number\",\"object_id\":\"Sawtooth\"},{\"name\":\"Sinusoid\",\"type\":\"Number\",\"object_id\":\"Sinusoid\"},{\"name\":\"Square\",\"type\":\"Number\",\"object_id\":\"Square\"},{\"name\":\"Triangle\",\"type\":\"Number\",\"object_id\":\"Triangle\"}],\"service\":\"sabana\",\"subservice\":\"/\",\"polling\":false,\"endpoint\":\"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\"}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.612Z","lvl":"DEBUG","msg":"deviceData before merge with conf: {\"id\":\"Simulation\",\"name\":\"Simulation\",\"type\":\"Simulation\",\"active\":[{\"name\":\"Counter\",\"type\":\"Number\",\"object_id\":\"Counter\"},{\"name\":\"Random\",\"type\":\"Number\",\"object_id\":\"Random\"},{\"name\":\"Sawtooth\",\"type\":\"Number\",\"object_id\":\"Sawtooth\"},{\"name\":\"Sinusoid\",\"type\":\"Number\",\"object_id\":\"Sinusoid\"},{\"name\":\"Square\",\"type\":\"Number\",\"object_id\":\"Square\"},{\"name\":\"Triangle\",\"type\":\"Number\",\"object_id\":\"Triangle\"}],\"lazy\":[],\"commands\":[],\"service\":\"sabana\",\"subservice\":\"/\",\"polling\":false,\"endpoint\":\"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\",\"staticAttributes\":[],\"subscriptions\":[]}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.612Z","lvl":"DEBUG","msg":"Registering device into NGSI Service:\n{\n    \"id\": \"Simulation\",\n    \"name\": \"Simulation\",\n    \"type\": \"Simulation\",\n    \"active\": [\n        {\n            \"name\": \"Counter\",\n            \"type\": \"Number\",\n            \"object_id\": \"Counter\"\n        },\n        {\n            \"name\": \"Random\",\n            \"type\": \"Number\",\n            \"object_id\": \"Random\"\n        },\n        {\n            \"name\": \"Sawtooth\",\n            \"type\": \"Number\",\n            \"object_id\": \"Sawtooth\"\n        },\n        {\n            \"name\": \"Sinusoid\",\n            \"type\": \"Number\",\n            \"object_id\": \"Sinusoid\"\n        },\n        {\n            \"name\": \"Square\",\n            \"type\": \"Number\",\n            \"object_id\": \"Square\"\n        },\n        {\n            \"name\": \"Triangle\",\n            \"type\": \"Number\",\n            \"object_id\": \"Triangle\"\n        }\n    ],\n    \"lazy\": [],\n    \"commands\": [],\n    \"service\": \"sabana\",\n    \"subservice\": \"/\",\n    \"polling\": false,\n    \"endpoint\": \"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\",\n    \"staticAttributes\": [],\n    \"subscriptions\": []\n}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.612Z","lvl":"DEBUG","msg":"No Context Provider registrations found for unregister"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.613Z","lvl":"DEBUG","msg":"Creating initial entity in the Context Broker:\n {\n    \"url\": \"http://orion:1026/v1/updateContext\",\n    \"method\": \"POST\",\n    \"json\": {\n        \"contextElements\": [\n            {\n                \"type\": \"Simulation\",\n                \"isPattern\": \"false\",\n                \"id\": \"Simulation\",\n                \"attributes\": [\n                    {\n                        \"name\": \"Counter\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Random\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Sawtooth\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Sinusoid\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Square\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    },\n                    {\n                        \"name\": \"Triangle\",\n                        \"type\": \"Number\",\n                        \"value\": \" \"\n                    }\n                ]\n            }\n        ],\n        \"updateAction\": \"APPEND\"\n    },\n    \"headers\": {\n        \"fiware-service\": \"sabana\",\n        \"fiware-servicepath\": \"/\",\n        \"fiware-correlator\": \"d03ab3ee-ec2d-483b-aa53-280fcfe3cb1b\"\n    }\n}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.613Z","lvl":"DEBUG","msg":"executeWithSecurity"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.613Z","lvl":"DEBUG","msg":"error {\"name\":\"DEVICE_GROUP_NOT_FOUND\",\"message\":\"Couldn\\t find device group\",\"code\":404} in get group device"}

iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.781Z","lvl":"DEBUG","msg":"Initial entity created successfully."}
iotage_1       | {"op":"IoTAgentNGSI.InMemoryDeviceRegister","time":"2021-11-04T13:05:38.783Z","lvl":"DEBUG","msg":"Storing device with id [React] and type [React]"}
iotage_1       | time=2021-11-04T13:05:38.783Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=registered successfully OCB context React
orion_1        | time=2021-11-04T13:05:38.784Z | lvl=INFO | corr=d03ab3ee-ec2d-483b-aa53-280fcfe3cb1b | trans=1636031123-418-00000000002 | from=192.168.80.6 | srv=sabana | subsrv=/ | comp=Orion | op=logTracing.cpp[130]:logInfoRequestWithPayload | msg=Request received: POST /v1/updateContext, request payload (253 bytes): {"contextElements":[{"type":"React","isPattern":"false","id":"React","attributes":[{"name":"Temperature","type":"Number","value":" "},{"name":"Co2","type":"Number","value":" "},{"name":"Radiation","type":"Number","value":" "}]}],"updateAction":"APPEND"}, response code: 200
orion_1        | time=2021-11-04T13:05:38.788Z | lvl=INFO | corr=d03ab3ee-ec2d-483b-aa53-280fcfe3cb1b | trans=1636031123-418-00000000003 | from=192.168.80.6 | srv=sabana | subsrv=/ | comp=Orion | op=logTracing.cpp[130]:logInfoRequestWithPayload | msg=Request received: POST /v1/updateContext, request payload (403 bytes): {"contextElements":[{"type":"Simulation","isPattern":"false","id":"Simulation","attributes":[{"name":"Counter","type":"Number","value":" "},{"name":"Random","type":"Number","value":" "},{"name":"Sawtooth","type":"Number","value":" "},{"name":"Sinusoid","type":"Number","value":" "},{"name":"Square","type":"Number","value":" "},{"name":"Triangle","type":"Number","value":" "}]}],"updateAction":"APPEND"}, response code: 200
iotage_1       | time=2021-11-04T13:05:38.788Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1008
orion_1        | time=2021-11-04T13:05:38.792Z | lvl=INFO | corr=d03ab3ee-ec2d-483b-aa53-280fcfe3cb1b | trans=1636031123-418-00000000004 | from=192.168.80.6 | srv=sabana | subsrv=/ | comp=Orion | op=logTracing.cpp[130]:logInfoRequestWithPayload | msg=Request received: POST /v1/updateContext, request payload (403 bytes): {"contextElements":[{"type":"Simulation","isPattern":"false","id":"Simulation","attributes":[{"name":"Counter","type":"Number","value":" "},{"name":"Random","type":"Number","value":" "},{"name":"Sawtooth","type":"Number","value":" "},{"name":"Sinusoid","type":"Number","value":" "},{"name":"Square","type":"Number","value":" "},{"name":"Triangle","type":"Number","value":" "}]}],"updateAction":"APPEND"}, response code: 200
iotage_1       | time=2021-11-04T13:05:38.793Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1009
iotage_1       | time=2021-11-04T13:05:38.794Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1010
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.797Z","lvl":"DEBUG","msg":"Initial entity created successfully."}
iotage_1       | ERROR iotAgentLib.register
iotage_1       | time=2021-11-04T13:05:38.799Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=could not register OCB context React
iotage_1       | time=2021-11-04T13:05:38.800Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg={"name":"DUPLICATE_DEVICE_ID","message":"A device with the same pair (Service, DeviceId) was found:React","code":409}
iotage_1       | time=2021-11-04T13:05:38.810Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1008
iotage_1       | time=2021-11-04T13:05:38.811Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1009
iotage_1       | time=2021-11-04T13:05:38.813Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1010
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.815Z","lvl":"DEBUG","msg":"Initial entity created successfully."}
iotage_1       | {"op":"IoTAgentNGSI.InMemoryDeviceRegister","time":"2021-11-04T13:05:38.815Z","lvl":"DEBUG","msg":"Storing device with id [Simulation] and type [Simulation]"}
iotage_1       | time=2021-11-04T13:05:38.815Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=registered successfully OCB context Simulation
iotage_1       | time=2021-11-04T13:05:38.817Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1001
iotage_1       | time=2021-11-04T13:05:38.818Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1002
iotage_1       | time=2021-11-04T13:05:38.819Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1003
iotage_1       | time=2021-11-04T13:05:38.820Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1004
iotage_1       | time=2021-11-04T13:05:38.822Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1005
iotage_1       | time=2021-11-04T13:05:38.822Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1006
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:38.824Z","lvl":"DEBUG","msg":"Initial entity created successfully."}
iotage_1       | ERROR iotAgentLib.register
iotage_1       | time=2021-11-04T13:05:38.824Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=could not register OCB context Simulation
iotage_1       | time=2021-11-04T13:05:38.824Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg={"name":"DUPLICATE_DEVICE_ID","message":"A device with the same pair (Service, DeviceId) was found:Simulation","code":409}
iotage_1       | time=2021-11-04T13:05:38.825Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1001
iotage_1       | time=2021-11-04T13:05:38.826Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1002
iotage_1       | time=2021-11-04T13:05:38.827Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1003
iotage_1       | time=2021-11-04T13:05:38.828Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1004
iotage_1       | time=2021-11-04T13:05:38.829Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1005
iotage_1       | time=2021-11-04T13:05:38.830Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=initializing monitoring: ns=3;i=1006
iotage_1       | Pending transations:  BrowseRequest BrowseRequest BrowseRequest BrowseRequest BrowseRequest BrowseRequest BrowseRequest BrowseRequest CreateSubscriptionRequest CreateSubscriptionRequest CreateSubscriptionRequest
iotage_1       | Warning : your opcua client is sending multiple requests simultaneously to the server CreateSubscriptionRequest
iotage_1       | Warning : please fix your application code
iotage_1       | ERROR !!! callback has thrown en error  ReferenceError: apikey is not defined
iotage_1       |     at /opt/iotagent-opcua/iot_agent_modules/run/run.js:658:57
iotage_1       |     at Object.getDevice [as get] (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/devices/deviceRegistryMemory.js:146:9)
iotage_1       |     at /opt/iotagent-opcua/iot_agent_modules/run/run.js:651:42
iotage_1       |     at /opt/iotagent-opcua/node_modules/async/lib/async.js:718:13
iotage_1       |     at iterate (/opt/iotagent-opcua/node_modules/async/lib/async.js:262:13)
iotage_1       |     at /opt/iotagent-opcua/node_modules/async/lib/async.js:274:29
iotage_1       |     at /opt/iotagent-opcua/node_modules/async/lib/async.js:44:16
iotage_1       |     at /opt/iotagent-opcua/node_modules/async/lib/async.js:723:17
iotage_1       |     at /opt/iotagent-opcua/node_modules/async/lib/async.js:167:37
iotage_1       |     at /opt/iotagent-opcua/iot_agent_modules/run/run.js:643:49
iotage_1       |     at performMessageTransaction (/opt/iotagent-opcua/node_modules/node-opcua-client/dist/private/client_session_impl.js:276:20)
iotage_1       |     at _performMessageTransaction (/opt/iotagent-opcua/node_modules/node-opcua-client/dist/private/client_session_impl.js:183:17)
iotage_1       |     at ClientSecureChannelLayer._client.performMessageTransaction (/opt/iotagent-opcua/node_modules/node-opcua-client/dist/private/client_session_impl.js:778:20)
iotage_1       |     at modified_callback (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:873:31)
iotage_1       |     at process_request_callback (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:65:5)
iotage_1       |     at ClientSecureChannelLayer._on_message_received (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:446:9)
iotage_1       | time=2021-11-04T13:05:40.177Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=Something went wrong during OPCUA node existence check
iotage_1       | Error: internal Error
iotage_1       |     at _client.performMessageTransaction (/opt/iotagent-opcua/node_modules/node-opcua-client/dist/private/client_session_impl.js:763:33)
iotage_1       |     at modified_callback (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:877:17)
iotage_1       |     at process_request_callback (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:65:5)
iotage_1       |     at ClientSecureChannelLayer._on_message_received (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:446:9)
iotage_1       |     at MessageBuilder.ClientSecureChannelLayer.messageBuilder.on (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:137:18)
iotage_1       |     at MessageBuilder.emit (events.js:198:13)
iotage_1       |     at MessageBuilder.EventEmitter.emit (domain.js:466:23)
iotage_1       |     at MessageBuilder._decodeMessageBody (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/message_builder.js:181:26)
iotage_1       |     at MessageBuilder._feed_messageChunk (/opt/iotagent-opcua/node_modules/node-opcua-transport/dist/source/message_builder_base.js:185:18)
iotage_1       |     at PacketAssembler.MessageBuilderBase._packetAssembler.on (/opt/iotagent-opcua/node_modules/node-opcua-transport/dist/source/message_builder_base.js:51:68)
iotage_1       |     at PacketAssembler.emit (events.js:198:13)
iotage_1       |     at PacketAssembler.EventEmitter.emit (domain.js:466:23)
iotage_1       |     at PacketAssembler.feed (/opt/iotagent-opcua/node_modules/node-opcua-packet-assembler/dist/packet_assembler.js:51:18)
iotage_1       |     at MessageBuilder.feed (/opt/iotagent-opcua/node_modules/node-opcua-transport/dist/source/message_builder_base.js:84:35)
iotage_1       |     at ClientSecureChannelLayer._on_receive_message_chunk (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:806:29)
iotage_1       |     at ClientTCP_transport._transport.on (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:654:18)
iotage_1       | CONFIGURATION API
iotage_1       | Analyzing...React
iotage_1       | Analyzing...Simulation
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:40.202Z","lvl":"DEBUG","msg":"Request for path [/iot/services] from [localhost:4001]"}
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:40.202Z","lvl":"DEBUG","msg":"Body:\n\n{\n    \"services\": [\n        {\n            \"resource\": \"/React\",\n            \"apikey\": \"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\n            \"entity_type\": \"React\",\n            \"cbHost\": \"orion:1026\",\n            \"commands\": [],\n            \"lazy\": [],\n            \"attributes\": [\n                {\n                    \"name\": \"Temperature\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Temperature\"\n                },\n                {\n                    \"name\": \"Co2\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Co2\"\n                },\n                {\n                    \"name\": \"Radiation\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Radiation\"\n                }\n            ],\n            \"static_attributes\": []\n        },\n        {\n            \"resource\": \"/Simulation\",\n            \"apikey\": \"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\n            \"entity_type\": \"Simulation\",\n            \"cbHost\": \"orion:1026\",\n            \"commands\": [],\n            \"lazy\": [],\n            \"attributes\": [\n                {\n                    \"name\": \"Counter\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Counter\"\n                },\n                {\n                    \"name\": \"Random\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Random\"\n                },\n                {\n                    \"name\": \"Sawtooth\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Sawtooth\"\n                },\n                {\n                    \"name\": \"Sinusoid\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Sinusoid\"\n                },\n                {\n                    \"name\": \"Square\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Square\"\n                },\n                {\n                    \"name\": \"Triangle\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Triangle\"\n                }\n            ],\n            \"static_attributes\": []\n        }\n    ]\n}\n\n"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceGroupService","time":"2021-11-04T13:05:40.205Z","lvl":"DEBUG","msg":"Creating new set of 2 services"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceGroupService","time":"2021-11-04T13:05:40.206Z","lvl":"DEBUG","msg":"validateGroup {\"resource\":\"/React\",\"apikey\":\"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\"cbHost\":\"orion:1026\",\"commands\":[],\"lazy\":[],\"attributes\":[{\"name\":\"Temperature\",\"type\":\"Number\",\"object_id\":\"Temperature\"},{\"name\":\"Co2\",\"type\":\"Number\",\"object_id\":\"Co2\"},{\"name\":\"Radiation\",\"type\":\"Number\",\"object_id\":\"Radiation\"}],\"type\":\"React\",\"staticAttributes\":[],\"service\":\"sabana\",\"subservice\":\"/\"}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceGroupService","time":"2021-11-04T13:05:40.207Z","lvl":"DEBUG","msg":"generateDuplicateHander error [object Object] and foundGroup undefined"}
iotage_1       | {"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2021-11-04T13:05:40.208Z","lvl":"DEBUG","msg":"Storing device group for service [1] and subservice [sabana] /"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceGroupService","time":"2021-11-04T13:05:40.208Z","lvl":"DEBUG","msg":"validateGroup {\"resource\":\"/Simulation\",\"apikey\":\"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\"cbHost\":\"orion:1026\",\"commands\":[],\"lazy\":[],\"attributes\":[{\"name\":\"Counter\",\"type\":\"Number\",\"object_id\":\"Counter\"},{\"name\":\"Random\",\"type\":\"Number\",\"object_id\":\"Random\"},{\"name\":\"Sawtooth\",\"type\":\"Number\",\"object_id\":\"Sawtooth\"},{\"name\":\"Sinusoid\",\"type\":\"Number\",\"object_id\":\"Sinusoid\"},{\"name\":\"Square\",\"type\":\"Number\",\"object_id\":\"Square\"},{\"name\":\"Triangle\",\"type\":\"Number\",\"object_id\":\"Triangle\"}],\"type\":\"Simulation\",\"staticAttributes\":[],\"service\":\"sabana\",\"subservice\":\"/\"}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceGroupService","time":"2021-11-04T13:05:40.208Z","lvl":"DEBUG","msg":"generateDuplicateHander error [object Object] and foundGroup undefined"}
iotage_1       | {"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2021-11-04T13:05:40.209Z","lvl":"DEBUG","msg":"Storing device group for service [2] and subservice [sabana] /"}
iotage_1       | {"op":"IoTAgentNGSI.DomainControl","time":"2021-11-04T13:05:40.210Z","lvl":"DEBUG","msg":"response-time: 22"}
iotage_1       | time=2021-11-04T13:05:40.211Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=GROUPS SUCCESSFULLY CREATED!
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:40.330Z","lvl":"DEBUG","msg":"Removing device register in Device Service"}
iotage_1       | {"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2021-11-04T13:05:40.331Z","lvl":"DEBUG","msg":"Looking for device params [\"service\",\"subservice\",\"type\"]"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:40.332Z","lvl":"DEBUG","msg":"deviceData after merge with conf: {\"id\":\"React\",\"name\":\"React\",\"type\":\"React\",\"active\":[{\"name\":\"Temperature\",\"type\":\"Number\",\"object_id\":\"Temperature\"},{\"name\":\"Co2\",\"type\":\"Number\",\"object_id\":\"Co2\"},{\"name\":\"Radiation\",\"type\":\"Number\",\"object_id\":\"Radiation\"}],\"service\":\"sabana\",\"subservice\":\"/\",\"polling\":false,\"endpoint\":\"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\",\"creationDate\":1636031138783}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:40.333Z","lvl":"DEBUG","msg":"deviceData before merge with conf: {\"id\":\"React\",\"name\":\"React\",\"type\":\"React\",\"active\":[{\"name\":\"Temperature\",\"type\":\"Number\",\"object_id\":\"Temperature\"},{\"name\":\"Co2\",\"type\":\"Number\",\"object_id\":\"Co2\"},{\"name\":\"Radiation\",\"type\":\"Number\",\"object_id\":\"Radiation\"}],\"lazy\":[],\"commands\":[],\"service\":\"sabana\",\"subservice\":\"/\",\"polling\":false,\"endpoint\":\"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\",\"creationDate\":1636031138783,\"staticAttributes\":[],\"subscriptions\":[],\"cbHost\":\"orion:1026\"}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:40.334Z","lvl":"DEBUG","msg":"No Context Provider registrations found for unregister"}
iotage_1       | {"op":"IoTAgentNGSI.InMemoryDeviceRegister","time":"2021-11-04T13:05:40.335Z","lvl":"DEBUG","msg":"Removing device with id [React] from service [sabana]."}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:40.337Z","lvl":"DEBUG","msg":"Removing device register in Device Service"}
iotage_1       | {"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2021-11-04T13:05:40.338Z","lvl":"DEBUG","msg":"Looking for device params [\"service\",\"subservice\",\"type\"]"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:40.339Z","lvl":"DEBUG","msg":"deviceData after merge with conf: {\"id\":\"Simulation\",\"name\":\"Simulation\",\"type\":\"Simulation\",\"active\":[{\"name\":\"Counter\",\"type\":\"Number\",\"object_id\":\"Counter\"},{\"name\":\"Random\",\"type\":\"Number\",\"object_id\":\"Random\"},{\"name\":\"Sawtooth\",\"type\":\"Number\",\"object_id\":\"Sawtooth\"},{\"name\":\"Sinusoid\",\"type\":\"Number\",\"object_id\":\"Sinusoid\"},{\"name\":\"Square\",\"type\":\"Number\",\"object_id\":\"Square\"},{\"name\":\"Triangle\",\"type\":\"Number\",\"object_id\":\"Triangle\"}],\"service\":\"sabana\",\"subservice\":\"/\",\"polling\":false,\"endpoint\":\"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\",\"creationDate\":1636031138815}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:40.339Z","lvl":"DEBUG","msg":"deviceData before merge with conf: {\"id\":\"Simulation\",\"name\":\"Simulation\",\"type\":\"Simulation\",\"active\":[{\"name\":\"Counter\",\"type\":\"Number\",\"object_id\":\"Counter\"},{\"name\":\"Random\",\"type\":\"Number\",\"object_id\":\"Random\"},{\"name\":\"Sawtooth\",\"type\":\"Number\",\"object_id\":\"Sawtooth\"},{\"name\":\"Sinusoid\",\"type\":\"Number\",\"object_id\":\"Sinusoid\"},{\"name\":\"Square\",\"type\":\"Number\",\"object_id\":\"Square\"},{\"name\":\"Triangle\",\"type\":\"Number\",\"object_id\":\"Triangle\"}],\"lazy\":[],\"commands\":[],\"service\":\"sabana\",\"subservice\":\"/\",\"polling\":false,\"endpoint\":\"opc.tcp://MacBook-Pro.local:5001/UA/CarServer\",\"creationDate\":1636031138815,\"staticAttributes\":[],\"subscriptions\":[],\"cbHost\":\"orion:1026\"}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceService","time":"2021-11-04T13:05:40.340Z","lvl":"DEBUG","msg":"No Context Provider registrations found for unregister"}
iotage_1       | {"op":"IoTAgentNGSI.InMemoryDeviceRegister","time":"2021-11-04T13:05:40.340Z","lvl":"DEBUG","msg":"Removing device with id [Simulation] from service [sabana]."}
iotage_1       | ERROR !!! callback has thrown en error  TypeError: callback is not a function
iotage_1       |     at Function.register (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/iotManagerService.js:147:9)
iotage_1       |     at Domain.expandedFunction (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/domain.js:160:23)
iotage_1       |     at Domain.run (domain.js:349:14)
iotage_1       |     at ensureSouthboundTransaction (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/domain.js:144:22)
iotage_1       |     at Object.register (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/domain.js:163:16)
iotage_1       |     at /opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/groups/groupService.js:157:31
iotage_1       |     at /opt/iotagent-opcua/node_modules/iotagent-node-lib/node_modules/async/dist/async.js:473:16
iotage_1       |     at next (/opt/iotagent-opcua/node_modules/iotagent-node-lib/node_modules/async/dist/async.js:5329:29)
iotage_1       |     at /opt/iotagent-opcua/node_modules/iotagent-node-lib/node_modules/async/dist/async.js:969:16
iotage_1       |     at Function.remove (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/groups/groupRegistryMemory.js:246:5)
iotage_1       |     at Domain.expandedFunction (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/domain.js:160:23)
iotage_1       |     at Domain.run (domain.js:349:14)
iotage_1       |     at ensureSouthboundTransaction (/opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/domain.js:144:22)
iotage_1       |     at /opt/iotagent-opcua/node_modules/iotagent-node-lib/lib/services/common/domain.js:163:16
iotage_1       |     at nextTask (/opt/iotagent-opcua/node_modules/iotagent-node-lib/node_modules/async/dist/async.js:5324:14)
iotage_1       |     at next (/opt/iotagent-opcua/node_modules/iotagent-node-lib/node_modules/async/dist/async.js:5331:9)
iotage_1       | time=2021-11-04T13:05:40.343Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=Something went wrong during OPCUA node existence check
iotage_1       | Error: internal Error
iotage_1       |     at _client.performMessageTransaction (/opt/iotagent-opcua/node_modules/node-opcua-client/dist/private/client_session_impl.js:763:33)
iotage_1       |     at modified_callback (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:877:17)
iotage_1       |     at process_request_callback (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:65:5)
iotage_1       |     at ClientSecureChannelLayer._on_message_received (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:446:9)
iotage_1       |     at MessageBuilder.ClientSecureChannelLayer.messageBuilder.on (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:137:18)
iotage_1       |     at MessageBuilder.emit (events.js:198:13)
iotage_1       |     at MessageBuilder.EventEmitter.emit (domain.js:466:23)
iotage_1       |     at MessageBuilder._decodeMessageBody (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/message_builder.js:181:26)
iotage_1       |     at MessageBuilder._feed_messageChunk (/opt/iotagent-opcua/node_modules/node-opcua-transport/dist/source/message_builder_base.js:185:18)
iotage_1       |     at PacketAssembler.MessageBuilderBase._packetAssembler.on (/opt/iotagent-opcua/node_modules/node-opcua-transport/dist/source/message_builder_base.js:51:68)
iotage_1       |     at PacketAssembler.emit (events.js:198:13)
iotage_1       |     at PacketAssembler.EventEmitter.emit (domain.js:466:23)
iotage_1       |     at PacketAssembler.feed (/opt/iotagent-opcua/node_modules/node-opcua-packet-assembler/dist/packet_assembler.js:51:18)
iotage_1       |     at MessageBuilder.feed (/opt/iotagent-opcua/node_modules/node-opcua-transport/dist/source/message_builder_base.js:84:35)
iotage_1       |     at ClientSecureChannelLayer._on_receive_message_chunk (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:806:29)
iotage_1       |     at ClientTCP_transport._transport.on (/opt/iotagent-opcua/node_modules/node-opcua-secure-channel/dist/source/client/client_secure_channel_layer.js:654:18)
iotage_1       | CONFIGURATION API
iotage_1       | Analyzing...React
iotage_1       | Analyzing...Simulation
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:40.349Z","lvl":"DEBUG","msg":"Request for path [/iot/services] from [localhost:4001]"}
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:40.350Z","lvl":"DEBUG","msg":"Body:\n\n{\n    \"services\": [\n        {\n            \"resource\": \"/React\",\n            \"apikey\": \"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\n            \"entity_type\": \"React\",\n            \"cbHost\": \"orion:1026\",\n            \"commands\": [],\n            \"lazy\": [],\n            \"attributes\": [\n                {\n                    \"name\": \"Temperature\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Temperature\"\n                },\n                {\n                    \"name\": \"Co2\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Co2\"\n                },\n                {\n                    \"name\": \"Radiation\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Radiation\"\n                }\n            ],\n            \"static_attributes\": []\n        },\n        {\n            \"resource\": \"/Simulation\",\n            \"apikey\": \"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\n            \"entity_type\": \"Simulation\",\n            \"cbHost\": \"orion:1026\",\n            \"commands\": [],\n            \"lazy\": [],\n            \"attributes\": [\n                {\n                    \"name\": \"Counter\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Counter\"\n                },\n                {\n                    \"name\": \"Random\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Random\"\n                },\n                {\n                    \"name\": \"Sawtooth\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Sawtooth\"\n                },\n                {\n                    \"name\": \"Sinusoid\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Sinusoid\"\n                },\n                {\n                    \"name\": \"Square\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Square\"\n                },\n                {\n                    \"name\": \"Triangle\",\n                    \"type\": \"Number\",\n                    \"object_id\": \"Triangle\"\n                }\n            ],\n            \"static_attributes\": []\n        }\n    ]\n}\n\n"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceGroupService","time":"2021-11-04T13:05:40.351Z","lvl":"DEBUG","msg":"Creating new set of 2 services"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceGroupService","time":"2021-11-04T13:05:40.351Z","lvl":"DEBUG","msg":"validateGroup {\"resource\":\"/React\",\"apikey\":\"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\"cbHost\":\"orion:1026\",\"commands\":[],\"lazy\":[],\"attributes\":[{\"name\":\"Temperature\",\"type\":\"Number\",\"object_id\":\"Temperature\"},{\"name\":\"Co2\",\"type\":\"Number\",\"object_id\":\"Co2\"},{\"name\":\"Radiation\",\"type\":\"Number\",\"object_id\":\"Radiation\"}],\"type\":\"React\",\"staticAttributes\":[],\"service\":\"sabana\",\"subservice\":\"/\"}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceGroupService","time":"2021-11-04T13:05:40.351Z","lvl":"DEBUG","msg":"generateDuplicateHander error [object Object] and foundGroup undefined"}
iotage_1       | {"op":"IoTAgentNGSI.InMemoryGroupRegister","time":"2021-11-04T13:05:40.351Z","lvl":"DEBUG","msg":"Storing device group for service [3] and subservice [sabana] /"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceGroupService","time":"2021-11-04T13:05:40.352Z","lvl":"DEBUG","msg":"validateGroup {\"resource\":\"/Simulation\",\"apikey\":\"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\"cbHost\":\"orion:1026\",\"commands\":[],\"lazy\":[],\"attributes\":[{\"name\":\"Counter\",\"type\":\"Number\",\"object_id\":\"Counter\"},{\"name\":\"Random\",\"type\":\"Number\",\"object_id\":\"Random\"},{\"name\":\"Sawtooth\",\"type\":\"Number\",\"object_id\":\"Sawtooth\"},{\"name\":\"Sinusoid\",\"type\":\"Number\",\"object_id\":\"Sinusoid\"},{\"name\":\"Square\",\"type\":\"Number\",\"object_id\":\"Square\"},{\"name\":\"Triangle\",\"type\":\"Number\",\"object_id\":\"Triangle\"}],\"type\":\"Simulation\",\"staticAttributes\":[],\"service\":\"sabana\",\"subservice\":\"/\"}"}
iotage_1       | {"op":"IoTAgentNGSI.DeviceGroupService","time":"2021-11-04T13:05:40.353Z","lvl":"DEBUG","msg":"generateDuplicateHander error null and foundGroup {\"resource\":\"/Simulation\",\"apikey\":\"801230BJKL23Y9090DSFL123HJK09H324HV8732\",\"cbHost\":\"orion:1026\",\"commands\":[],\"lazy\":[],\"attributes\":[{\"name\":\"Counter\",\"type\":\"Number\",\"object_id\":\"Counter\"},{\"name\":\"Random\",\"type\":\"Number\",\"object_id\":\"Random\"},{\"name\":\"Sawtooth\",\"type\":\"Number\",\"object_id\":\"Sawtooth\"},{\"name\":\"Sinusoid\",\"type\":\"Number\",\"object_id\":\"Sinusoid\"},{\"name\":\"Square\",\"type\":\"Number\",\"object_id\":\"Square\"},{\"name\":\"Triangle\",\"type\":\"Number\",\"object_id\":\"Triangle\"}],\"type\":\"Simulation\",\"staticAttributes\":[],\"service\":\"sabana\",\"subservice\":\"/\",\"_id\":2,\"creationDate\":1636031140209}"}
iotage_1       | {"op":"IoTAgentNGSI.GenericMiddlewares","time":"2021-11-04T13:05:40.354Z","lvl":"DEBUG","msg":"Error [DUPLICATE_GROUP] handling request: A device configuration already exists for resource /Simulation and API Key 801230BJKL23Y9090DSFL123HJK09H324HV8732"}
iotage_1       | {"op":"IoTAgentNGSI.DomainControl","time":"2021-11-04T13:05:40.356Z","lvl":"DEBUG","msg":"response-time: 7"}
iotage_1       | time=2021-11-04T13:05:40.358Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=GROUPS SUCCESSFULLY CREATED!
iotage_1       | time=2021-11-04T13:05:40.786Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  109
iotage_1       | time=2021-11-04T13:05:40.786Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:40.787Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:40.787Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:40.787Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:40.788Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:40.984Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started monitoring: ns=3;i=1008
iotage_1       | time=2021-11-04T13:05:41.035Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  110
iotage_1       | time=2021-11-04T13:05:41.035Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:41.035Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:41.036Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:41.036Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:41.036Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:41.186Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started monitoring: ns=3;i=1009
iotage_1       | time=2021-11-04T13:05:41.190Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  111
iotage_1       | time=2021-11-04T13:05:41.191Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:41.191Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:41.191Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:41.192Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:41.193Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:41.197Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  112
iotage_1       | time=2021-11-04T13:05:41.197Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:41.198Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:41.198Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:41.199Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:41.200Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.InitSubscriptions | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
grafana        | t=2021-11-04T13:05:43+0000 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/live/ws status=0 remote_addr=192.168.80.1 time_ms=67 size=0 referer=
iotage_1       | time=2021-11-04T13:05:48.498Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  113
iotage_1       | time=2021-11-04T13:05:48.498Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:48.498Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:48.498Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:48.499Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:48.499Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:48.698Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  114
iotage_1       | time=2021-11-04T13:05:48.698Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:48.699Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:48.699Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:48.699Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:48.699Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:48.898Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  116
iotage_1       | time=2021-11-04T13:05:48.899Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:48.899Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:48.899Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:48.899Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:48.899Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:49.248Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  118
iotage_1       | time=2021-11-04T13:05:49.249Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:49.249Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:49.249Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:49.249Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:49.249Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:49.402Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  117
iotage_1       | time=2021-11-04T13:05:49.403Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:49.403Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:49.403Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:49.403Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:49.403Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:49.406Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  115
iotage_1       | time=2021-11-04T13:05:49.406Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:49.406Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:49.407Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:49.407Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:49.407Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:49.881Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  119
iotage_1       | time=2021-11-04T13:05:49.881Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:49.884Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:49.884Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:49.884Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:49.884Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:49.890Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  121
iotage_1       | time=2021-11-04T13:05:49.890Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:49.890Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:49.891Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:49.891Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:49.891Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:50.099Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  120
iotage_1       | time=2021-11-04T13:05:50.099Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:50.099Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:50.099Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:50.099Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:50.099Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:50.313Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  124
iotage_1       | time=2021-11-04T13:05:50.313Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:50.313Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:50.313Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:50.313Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:50.313Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:50.358Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  122
iotage_1       | time=2021-11-04T13:05:50.358Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:50.358Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:50.359Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:50.359Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:50.359Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:50.550Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  123
iotage_1       | time=2021-11-04T13:05:50.551Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:50.551Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:50.551Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:50.551Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:50.551Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:51.101Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  125
iotage_1       | time=2021-11-04T13:05:51.101Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:05:51.101Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:05:51.101Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:05:51.101Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:05:51.101Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:05:51.261Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started monitoring: ns=3;i=1008
iotage_1       | {"op":"IoTAgentNGSI.DomainControl","time":"2021-11-04T13:05:51.518Z","lvl":"ERROR","msg":"{ TypeError: Cannot read property '0' of undefined\n    at /opt/iotagent-opcua/iot_agent_modules/run/run.js:1217:56\n    at Array.forEach (<anonymous>)\n    at Timeout._setInterval [as _onTimeout] (/opt/iotagent-opcua/iot_agent_modules/run/run.js:1216:38)\n    at ontimeout (timers.js:436:11)\n    at tryOnTimeout (timers.js:300:5)\n    at listOnTimeout (timers.js:263:5)\n    at Timer.processTimers (timers.js:223:10)\n  domain:\n   Domain {\n     domain: null,\n     _events:\n      [Object: null prototype] {\n        removeListener: [Function: updateExceptionCapture],\n        newListener: [Function: updateExceptionCapture],\n        error: [Function: domainErrorHandler] },\n     _eventsCount: 3,\n     _maxListeners: undefined,\n     members: [],\n     start: 1636031133509,\n     trans: 'd03ab3ee-ec2d-483b-aa53-280fcfe3cb1b',\n     corr: 'd03ab3ee-ec2d-483b-aa53-280fcfe3cb1b',\n     op: 'IoTAgentNGSI.IOTAMService',\n     [Symbol(kWeak)]: WeakReference {} },\n  domainThrown: true }"}
iotage_1       | {"op":"IoTAgentNGSI.DomainControl","time":"2021-11-04T13:05:51.520Z","lvl":"DEBUG","msg":"response-time: 18011"}
iotage_1       | {"op":"IoTAgentNGSI.CommandService","time":"2021-11-04T13:05:55.472Z","lvl":"DEBUG","msg":"Executed expiration daemon"}
iotage_1       | time=2021-11-04T13:05:58.107Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=successfully terminated subscription: 3234512923
fiware-cygnus  | time=2021-11-04T13:06:00.578Z | lvl=DEBUG | corr=N/A | trans=N/A | srv=N/A | subsrv=N/A | comp=cygnus-ngsi | op=run | msg=org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable[131] : Checking file:/opt/apache-flume/conf/agent.conf for changes
fiware-cygnus  | time=2021-11-04T13:06:00.719Z | lvl=DEBUG | corr=N/A | trans=N/A | srv=N/A | subsrv=N/A | comp=cygnus-ngsi | op=processNewBatches | msg=com.telefonica.iot.cygnus.sinks.NGSISink[519] : Batch accumulation time reached, the batch will be processed as it is
fiware-cygnus  | time=2021-11-04T13:06:00.818Z | lvl=DEBUG | corr=N/A | trans=N/A | srv=N/A | subsrv=N/A | comp=cygnus-ngsi | op=run | msg=com.telefonica.iot.cygnus.interceptors.NGSINameMappingsInterceptor$PeriodicalNameMappingsReader[205] : [nmi] The configuration has not changed
iotage_1       | time=2021-11-04T13:06:01.566Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started monitoring: ns=3;i=1010
iotage_1       | time=2021-11-04T13:06:08.269Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started monitoring: ns=3;i=1009
iotage_1       | time=2021-11-04T13:06:08.273Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started subscription:  126
iotage_1       | time=2021-11-04T13:06:08.273Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg= revised parameters 
iotage_1       | time=2021-11-04T13:06:08.273Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised maxKeepAliveCount   10  ( requested  10)
iotage_1       | time=2021-11-04T13:06:08.273Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised lifetimeCount       1000  ( requested  1000)
iotage_1       | time=2021-11-04T13:06:08.273Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  revised publishingInterval  100  ( requested  10)
iotage_1       | time=2021-11-04T13:06:08.273Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=  suggested timeout hint      10000
iotage_1       | time=2021-11-04T13:06:08.420Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=successfully terminated subscription: 3234512923
iotage_1       | time=2021-11-04T13:06:08.430Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started monitoring: ns=3;i=1001
iotage_1       | time=2021-11-04T13:06:08.434Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started monitoring: ns=3;i=1002
iotage_1       | time=2021-11-04T13:06:08.436Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.keepaliveSubscriptionBroker | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started monitoring: ns=3;i=1003
iotage_1       | time=2021-11-04T13:06:08.573Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=ns=3;i=1002  value has changed to 0.1538777
iotage_1       | time=2021-11-04T13:06:08.574Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=could not find the OCB context Simulation
iotage_1       | time=2021-11-04T13:06:08.575Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:Simulation","code":404}
iotage_1       | time=2021-11-04T13:06:08.579Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=ns=3;i=1009  value has changed to 6
iotage_1       | time=2021-11-04T13:06:08.579Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=could not find the OCB context React
iotage_1       | time=2021-11-04T13:06:08.579Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:React","code":404}
iotage_1       | time=2021-11-04T13:06:08.579Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=ns=3;i=1009  value has changed to 23
iotage_1       | time=2021-11-04T13:06:08.580Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=could not find the OCB context React
iotage_1       | time=2021-11-04T13:06:08.580Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg={"name":"DEVICE_NOT_FOUND","message":"No device was found with id:React","code":404}
iotage_1       | time=2021-11-04T13:06:08.581Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=started monitoring: ns=3;i=1006
iotage_1       | time=2021-11-04T13:06:08.583Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=ns=3;i=1010  value has changed to 27
time=2021-11-04T12:55:41.565Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=ns=3;i=1006 value has changed to -1.334667

time=2021-11-04T12:55:41.565Z | lvl=ERROR | corr=n/a | trans=n/a | op=Index.Monitoring | comp=iotAgent-OPCUA | srv=sabana | subsrv=/ | msg=could not find the OCB context Simulation

IoT Agent version should be updated

With the latest release of the IoT Node Agent, the package.json of the IoT Agent for OPC-UA should be updated and a new release made.

This keeps the IoT Agent for OPC-UA is alignment with the other IoT Agents and should be completed prior to the FIWARE 7.5.1 release

Attributes are not updated in the OCB

I am trying to communicate with an external opc server, the communication is established correctly and the iot agent receives the updates and sends the patch command to the OCB but it does not update the values of the attributes.

Captura de pantalla 2022-11-22 125938

The OCBreceives the patch command

Captura de pantalla 2022-11-22 130129

But when I query via postman the attribute has not been updated

Captura de pantalla 2022-11-22 130314

If I send the same patch command as the OCB agent through postman if it updates the attribute value

Captura de pantalla 2022-11-22 130535
Captura de pantalla 2022-11-22 130557
Captura de pantalla 2022-11-22 130623

Thank you very much for the help.

debuging

Hello,

Sorry for my stupid question, I'm not familiar with NodJS, but I would like to find what cause my error message.
My problem is, I can't see my error messages on the console after I execute the docker file.

I tried these in the run.js file, even if I wrtite after the logger.info(logContext, '----------------------------------------------------'); line:
logger.info(logContext, '--error--');
console.log('--error--');

In the config.properties the log-level=INFO.

I use this command for docker:
docker-compose -f docker-compose-external-server.yml up --build
I tried the --force-recreate flag, but nothing changed.

Thank you,
Péter

use of 'ns' & 's' in object_id during device registration

Hi, I was going through the complete tutorial. while registering the devices i have encountered with the term "ns=3" & "s=Accelerate" in object_id while device registration. Does 'ns' refer to namespace & 's' refer to sensors. I have assumed this as namespace and sensors, after i have gone through the "/iotagent-opcua/CARCONF/car_config.json". is my understanding is correct?
And when i change the "ns=3" with some different number, and get the device list the attribute for which i change the value of "ns" is not displayed in the device list. and where all i have to make changes if i need to change the value of "ns".

Error launching docker image: "Config is not defined"

Hello,

I am launching the agent in a docker-compose file along with some other FIWARE components and I am getting this error when the OPC UA agent launches:

iotage_1          | time=2019-06-04T11:16:53.891Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=----------------------------------------------------
iotage_1          | time=2019-06-04T11:16:53.893Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=endpointUrl         =  opc.tcp://<ipaddr>:<port>
iotage_1          | time=2019-06-04T11:16:53.893Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=securityMode        =  NONE
iotage_1          | time=2019-06-04T11:16:53.895Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=securityPolicy      =  0
iotage_1          | time=2019-06-04T11:16:53.897Z | lvl=INFO | corr=n/a | trans=n/a | op=Index.Initialize | comp=iotAgent-OPCUA | srv=n/a | subsrv=n/a | msg=timeout             =  -1
iotage_1          | {"op":"IoTAgentNGSI.DomainControl","time":"2019-06-04T11:16:53.901Z","lvl":"ERROR","msg":"{ ReferenceError: config is not defined\n    
at Object.run (/opt/iotagent-opcua/iot_agent_modules/run/run.js:95:36)\n    
at /opt/iotagent-opcua/index.js:89:21\n    
at ChildProcess.exithandler (child_process.js:288:5)\n   
at emitTwo (events.js:126:13)\n    
at ChildProcess.emit (events.js:214:7)\n     
at maybeClose (internal/child_process.js:915:16)\n     
at Socket.stream.socket.on (internal/child_process.js:336:11)\n     
at emitOne (events.js:116:13)\n    at Socket.emit (events.js:211:7)\n     
at Pipe._handle.close [as _onclose] (net.js:561:12)\n  domain: \n   Domain {\n     domain: null,\n 
_events: { error: [Function: domainErrorHandler] },\n     _eventsCount: 1,\n     
_maxListeners: undefined,\n     members: [],\n      
start: 1559647009724,\n     trans: '6cab4c02-8950-4627-aa7d-84517463d3a3',\n     corr: '6cab4c02-8950-4627-aa7d-84517463d3a3',\n     op: 'IoTAgentNGSI.DeviceService' },\n  domainThrown: true }"}

My docker-compose configuration for the agent is:

  iotage:
    hostname: iotage
    image: rdlabengpa/opcuaage:latest
    networks:
      fiwareNetwork:
        aliases:
          - iotagent-opcua
    ports:
      - "4001:4001"
      - "4081:8080"
    depends_on:
      - mongodb
    volumes:
      - ./AGECONF:/opt/iotagent-opcua/conf

And the config.properties file looks like:

namespace-ignore=2
context-broker-host=orion
context-broker-port=1026
server-base-root=/
server-port=4001
device-registry-type=memory
mongodb-host=mongodb
mongodb-port=27017
mongodb-db=iotagent
mongodb-retries=5
mongodb-retry-time=5
fiware-service=<service>
fiware-service-path=<service-path>
provider-url=http://iotage:4001
device-registration-duration=P1M
endpoint=opc.tcp://<ipaddr>:<port>
log-level=DEBUG

#DATATYPE MAPPING OPCUA --> NGSI
OPC-datatype-Number=Number
OPC-datatype-Decimal128=Number
OPC-datatype-Double=Number
OPC-datatype-Float=Number
OPC-datatype-Integer=Integer
OPC-datatype-UInteger=Integer
OPC-datatype-String=Text
OPC-datatype-ByteString=Text
#END DATATYPE MAPPING OPCUA --> NGSI

#SESSION PARAMETERS
requestedPublishingInterval=500
requestedLifetimeCount=1000
requestedMaxKeepAliveCount=5
maxNotificationsPerPublish=10
publishingEnabled=true
priority=10

#SERVER CERT E AUTH
securityMode=NONE
securityPolicy=
userName=
password=

#Administration Services
api-port=4081
#End Administration Services

#POLL COMMANDS SETTINGS
polling=false
polling-commands-timer=30000
pollingDaemonFrequency=20000
pollingExpiration=200000
#END POLL COMMANDS SETTINGS

#AGENT ID
agent-id=iotagent-opcua


samplingInterval=1
queueSize=10
discardOldest=True

Actually the last parameters (samplingInterval, queueSize, discardOldest) are there because I was getting an error the first time I launched the agent saying that those were null, so I put them in the configuration file with some "random" values.

Are those errors due to not setting the fiware_path and fiware_service_path parameters? I am not sending any data to the agent yet.

Or because of the endpoint parameter? Actually this last parameter I do not know what it refers to, can I get some advice on what to put here?

Thanks and BR!

Remove Node v6

(To be addressed in May 2019)

Related to telefonicaid/iotagent-node-lib/issues/700

Node v6 ends support in April 2019 (see https://github.com/nodejs/Release) and should be removed by that date. In particular, this issue involves the following actions:

  • engine version should be modified to be >=8 in packages.json
  • Latest version of iotagent-node-lib to be added to package dependencies.

Assuming this component is added to Travis CI, any remaining Node v6 testing should also be removed from .travis.yml at this point.

Variables not being updated in OCB

Hey guys, I created an OPC UA server following this tutorial https://github.com/node-opcua/node-opcua/blob/master/documentation/creating_a_server.md. I'm using node-opcua v2.1.9. The server is running fine, but the IoT agent is only getting values from it when it is started. Then, when the OPCUA server updates the value of a variable, the agent isn't realizing it and it isn't getting the new variable value. I also tested my server with this tool https://github.com/node-opcua/opcua-commander and it got the value of the variables when they were updated.

I've tested the IoT Agent with your OPC UA Server example https://github.com/Engineering-Research-and-Development/opc-ua-car-server and it worked fine.

I've been stuck with this problem now almost 2 weeks. When I first started, I've seen that the agent was using the node-opcua v0.0.61. Now I've seen that you are updating it to node-opcua v2.1.8, but the docker image seems to be using the old version yet.

Could it be a problem between node-opcua version in client and server?

Write commands/methods error

I'm trying to execute methods on the opc server but I can't. I have the following method in my opc server.

Captura de pantalla 2022-11-22 125938

My config.js

var 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"
			  }]
		}
	},
    contexts: [
	{
		id: "Habitacion:001",
		type: "Habitacion",
		polling: "false",
		mappings: [
			{
				ocb_id: "pressure",
				opcua_id: "ns=4;i=4",
				object_id: null,
				inputArguments: []
			},
			{
				ocb_id: "temperature",
				opcua_id: "ns=4;i=3",
				object_id: null,
				inputArguments: []
			}
		]
	}
	],
    contextSubscriptions: [{
		id: "Habitacion:001",
		type: "Habitacion",
		mappings: [
			{
				ocb_id: "temperatureCommand",
				opcua_id: "ns=4;i=9",
				object_id: "ns=4;i=9",
				inputArguments: []
	}]
	}],
    service: 'opcua_car',
    subservice: '/demo',
    providerUrl: 'http://localhost:4041',
    deviceRegistrationDuration: 'P20Y',
    defaultType: 'Device',
    defaultResource: '/iot/opcua',
    explicitAttrs: false
};

config.opcua = {
    endpoint: 'opc.tcp://192.168.2.1:4840/PLC',
    securityMode: 'None',
    securityPolicy: 'None',
    username: null,
    password: null,
    uniqueSubscription: false,
    polling: false,
    agentId: 'age01_',
    namespaceIgnore: '0,7',
    entityId: 'age01_Car',
    entityType: 'Device'
};
config.jexlTransformations = {};
config.configRetrieval = false;
config.defaultKey = 'iot';
config.defaultTransport = 'OPCUA';
//config.multiCore = false;
config.autoprovision = true;
module.exports = config;

When I execute the command to activate the method it gives an error
Captura de pantalla 2022-11-24 104915

But the iot-agent receives the update command

Captura de pantalla 2022-11-24 105051

iot agent devices

Captura de pantalla 2022-11-24 104942

ocb entities

Captura de pantalla 2022-11-24 105548

it does not update the conf.properties of the docker once modified

Hi!
I try it to use the lastest version iotagent_opcua in Fiware.

My docker-compose.yml is this:

version: "3.5"
secrets:
    age_idm_auth:
        file: age_idm_auth.txt

services:

  orion:
    image: fiware/orion:latest
    hostname: orion
    container_name: fiware-orion
    depends_on:
      - mongo-db
    networks:
      - fiware_default
      - hostnet
    expose:
      - "1026"
    ports:
      - "1026:1026" # localhost:1026
    command:  -statCounters -dbhost mongo-db -logForHumans -logLevel DEBUG -t 255
    healthcheck:
      test: curl --fail -s http://orion:1026/version || exit 1
      interval: 5s

  iot-agent:
    image: fiware/iotagent-ul:latest
    hostname: iot-agent
    container_name: fiware-iot-agent
    depends_on:
      - mongo-db
      - mosquitto
    networks:
      - fiware_default
    expose:
      - "4041"
      - "7896"
    ports:
      - "4041:4041" # localhost:4041
      - "7896:7896"
    environment:
      - IOTA_CB_HOST=orion # name of the context broker to update context
      - IOTA_CB_PORT=1026 # port the context broker listens on to update context
      - IOTA_NORTH_PORT=4041
      - IOTA_REGISTRY_TYPE=mongodb #Whether to hold IoT device info in memory or in a database
      - IOTA_LOG_LEVEL=DEBUG # The log level of the IoT Agent
      - IOTA_TIMESTAMP=true # Supply timestamp information with each measurement
      - IOTA_CB_NGSI_VERSION=v2 # use NGSIv2 when sending updates for active attributes
      - IOTA_AUTOCAST=true # Ensure Ultralight number values are read as numbers not strings
      - IOTA_MONGO_HOST=mongo-db # The host name of MongoDB
      - IOTA_MONGO_PORT=27017 # The port mongoDB is listening on
      - IOTA_MONGO_DB=iotagentul # The name of the database used in mongoDB
      - IOTA_HTTP_PORT=7896
      - IOTA_MQTT_HOST=mosquitto # The host name of the MQTT Broker
      - IOTA_MQTT_PORT=1883 # The port the MQTT Broker is listening on to receive topics
      - IOTA_PROVIDER_URL=http://iot-agent:4041
    healthcheck:
      interval: 5s

  tutorial:
    image: fiware/tutorials.context-provider
    hostname: tutorial
    container_name: fiware-tutorial
    depends_on:
      - orion
      - iot-agent
    networks:
      fiware_default:
        aliases:
          - iot-sensors
          - context-provider
    expose:
      - "3002"
      - "3001"
    ports:
      - "3002:3002" # localhost:3002
      - "3001:3001" # localhost:3001
    environment:
      - "MONGO_URL=mongodb://mongo-db:27017"
      - "DEBUG=tutorial:*"
      - "WEB_APP_PORT=3002" # Port used by the content provider proxy and web-app for viewing data
      - "IOTA_HTTP_HOST=iot-agent"
      - "IOTA_HTTP_PORT=7896"
      - "DUMMY_DEVICES_PORT=3001" # Port used by the dummy IOT devices to receive commands
      - "DUMMY_DEVICES_TRANSPORT=MQTT" # Default transport used by dummy IoT devices
      - "DUMMY_DEVICES_API_KEY=4jggokgpepnvsb2uv4s40d59ov"
      - "CONTEXT_BROKER=http://orion:1026/v2" # URL of the context broker to update context
      - "MQTT_BROKER_URL=mqtt://mosquitto"
      
  iotage:
      hostname: iotage
      image: iotagent4fiware/iotagent-opcua:latest
      networks:
          - hostnet
          - fiware_default
      ports:
          - "4001:4001"
          - "4081:8080"
      extra_hosts:
          - "pc:10.150.10.195"
      depends_on:
          # - iotcarsrv
          - iotmongo
          - orion
      volumes:
          - ./AGECONF:/opt/iotagent-opcua/conf
          - ./certificates:/opt/iotagent-opcua/certificates
      environment:
        - IOTA_REGISTRY_TYPE=mongodb #Whether to hold IoT device info in memory or in a database
        - IOTA_LOG_LEVEL=DEBUG # The log level of the IoT Agent
        - IOTA_MONGO_HOST=iotmongo # The host name of MongoDB
        - IOTA_MONGO_DB=iotagent_opcua # The name of the database used in mongoDB
        - IOTA_JSON_LD_CONTEXT=https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.3.jsonld #comment if you mind using NGSIv2
        - IOTA_FALLBACK_TENANT=opcua_waam
        - IOTA_RELAX_TEMPLATE_VALIDATION=true

  iotmongo:
      hostname: iotmongo
      image: mongo:4.2
      networks:
          - fiware_default
      volumes:
          - iotmongo_data:/data/db
          - iotmongo_conf:/data/configdb

  sth-comet:
    image: fiware/sth-comet
    hostname: sth-comet
    container_name: fiware-sth-comet
    depends_on:
        - mongo-db
    networks:
        - fiware_default
    ports:
        - "8666:8666"
    environment:
        - STH_HOST=0.0.0.0
        - STH_PORT=8666
        - DB_PREFIX=sth_
        - DB_URI=mongo-db:27017
        - LOGOPS_LEVEL=DEBUG

  cygnus:
    image: fiware/cygnus-ngsi:latest
    hostname: cygnus
    container_name: fiware-cygnus
    depends_on:
        - mongo-db
    networks:
        - fiware_default
    expose:
        - "5080"
        - "5051"
    ports:
        - "5051:5051"
        - "5080:5080"
    environment:
        - "CYGNUS_MONGO_HOSTS=mongo-db:27017"
        - "CYGNUS_MONGO_SERVICE_PORT=5051"
        - "CYGNUS_LOG_LEVEL=DEBUG"
        - "CYGNUS_SERVICE_PORT=5051"
        - "CYGNUS_API_PORT=5080"

  mongo-db:
    image: mongo:4.2
    hostname: mongo-db
    container_name: db-mongo
    expose:
      - "27017"
    ports:
      - "27017:27017" # localhost:27017
    networks:
      fiware_default:
          aliases:
              - mongo
    volumes:
      - mongo-db:/data
      - orion_mongo_data:/data/db
      - orion_mongo_conf:/data/configdb
    command: --nojournal
    healthcheck:
      test: |
        host=`hostname --ip-address || echo '127.0.0.1'`;
        mongo --quiet 27017/test --eval 'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)' && echo 0 || echo 1
      interval: 5s

  mosquitto:
    image: eclipse-mosquitto:latest
    hostname: mosquitto
    container_name: mosquitto
    expose:
      - "1883"
      - "9001"
    ports:
      - "1883:1883"
      - "9001:9001"
    volumes:
      - ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf
      - /var/log/mosquitto/mosquitto.log:/mosquitto/log/mosquitto.log
    networks:
      - fiware_default

  crate-db:
    image: crate:4.1.4
    hostname: crate-db
    container_name: cratedb
    networks:
      fiware_default:
          aliases:
              - cratedb
    ports:
        - "4200:4200"
        - "4300:4300"
        - "5432:5432"
    command:
        crate -Cauth.host_based.enabled=false  -Ccluster.name=democluster -Chttp.cors.enabled=true
        -Chttp.cors.allow-origin="*"
    environment:
        - CRATE_HEAP_SIZE=2g
  quantumleap:
    image: smartsdk/quantumleap
    hostname: quantumleap
    networks:
        - fiware_default
    ports:
        - "8668:8668"
    depends_on:
        - crate-db
    environment:
        - CRATE_HOST=crate-db
        - LOGLEVEL=DEBUG
  grafana:
    image: grafana/grafana:8.1.1
    depends_on:
        - crate-db
    ports:
        - "3003:3000"
    volumes:
        - grafana-storage:/var/lib/grafana
        - ./grafana/grafana.ini:/etc/grafana/grafana.ini
    environment:
        - GF_INSTALL_PLUGINS=https://github.com/orchestracities/grafana-map-plugin/archive/master.zip;grafana-map-plugin,grafana-clock-panel,grafana-worldmap-panel,natel-plotly-panel
networks:
  fiware_default:
  hostnet:

volumes:
  mongo-db: ~
  iotmongo_data:
  iotmongo_conf:
  orion_mongo_data:
  orion_mongo_conf:
  grafana-storage:

My AGECONF/conf.properties is this:

namespace-ignore=0,3,7
#endpoint=opc.tcp://iotcarsrv:5001/UA/CarServer
endpoint=opc.tcp://pc:4840

context-broker-host=orion
context-broker-port=1026
fiware-service=opcua_pc
fiware-service-path=/

server-base-root=/
server-port=4001
provider-url=http://iotage:4001

device-registration-duration=P1M
device-registry-type=memory

log-level=DEBUG

namespaceIndex=3
namespaceNumericIdentifier=1000

mongodb-host=iotmongo
mongodb-port=27017
mongodb-db=iotagent
mongodb-retries=5
mongodb-retry-time=5

OPC-datatype-Number=Number
OPC-datatype-Decimal128=Number
OPC-datatype-Double=Number
OPC-datatype-Float=Number
OPC-datatype-Integer=Integer
OPC-datatype-UInteger=Integer
OPC-datatype-String=Text
OPC-datatype-ByteString=Text

requestedPublishingInterval=10
requestedLifetimeCount=1000
requestedMaxKeepAliveCount=10
maxNotificationsPerPublish=100
publishingEnabled=true
priority=10

uniqueSubscription=true

samplingInterval=1
queueSize=10000
discardOldest=false

securityMode=None
securityPolicy=None
userName=
password=

api-port=8080

polling=false
polling-commands-timer=30000
pollingDaemonFrequency=20000
pollingExpiration=200000

checkTimer=2000

My AGECONF/config.json is this:

{
	"logLevel": "INFO",
	"multiCore": false,
	"relaxTemplateValidation": true,
	"contextBroker": {
		"host": "orion",
		"port": 1026,
		"ngsiVersion": "ld",
		"jsonLdContext": "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld",
		"service": "opcua_pc",
		"subservice": "/"
	},
	"server": {
		"port": 4001,
		"baseRoot": "/"
	},
	"deviceRegistry": {
		"type": "memory"
	},
	"mongodb": {
		"host": "iotmongo",
		"port": "27017",
		"db": "iotagent",
		"retries": 5,
		"retryTime": 5
	},
	"types": {
		"PC": {
			"service": "opcua_pc",
			"subservice": "/",
			"active": [          
               {
                  "name":"speed",
                  "type":"Number"
               },
               {
                  "name":"process_status",
                  "type":"command"
               },
               {
                  "name":"voltage",
                  "type":"Number"
               },
               {
                  "name":"current",
                  "type":"Number"
               },
               {
                  "name":"stop_process",
                  "type":"command"
               }
            ],
			"lazy": [

            ],
			"commands": [

            ]
		}
	},
	"browseServerOptions": null,
	"service": "opcua_pc",
	"subservice": "/",
	"providerUrl": "http://iotage:4001",
	"pollingExpiration": "200000",
	"pollingDaemonFrequency": "20000",
	"deviceRegistrationDuration": "P1M",
	"defaultType": null,
	"contexts": [
        
    ],
	"contextSubscriptions": [{
		"id": "Robot",
		"type": "PC",
		"ngsiVersion": "ld",
		"jsonLdContext": "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld",
		"mappings": [     
        {
           "ocb_id":"speed",
           "opcua_id":"ns=2;s=speed",
           "object_id":null,
           "inputArguments":[

           ]
        },
        {
           "ocb_id":"process_status",
           "opcua_id":"ns=2;s=process_status",
           "object_id":null,
           "inputArguments":[

           ]
        },
        {
           "ocb_id":"voltage",
           "opcua_id":"ns=2;s=voltage",
           "object_id":null,
           "inputArguments":[

           ]
        },
        {
           "ocb_id":"current",
           "opcua_id":"ns=2;s=current",
           "object_id":null,
           "inputArguments":[

           ]
        },
        {
           "ocb_id":"stop_process",
           "opcua_id":"ns=2;s=stop_process",
           "object_id":null,
           "inputArguments":[

           ]
        }]
	}]
}

The problem is when I run the docker-compose, the iotagent shows always the default conf.properties, it try to connect to opc.tcp://iotcarsrv:5001/UA/CarServer.

Thank you in advance,

[MUST] Dockerization must protect Username/Password ENV

With the addition of Oauth2 support authentication with using FIWARE Keyrock, usernames and passwords are now part of the Docker environment variables. Currently these can only be passed using plain text. The addition of Docker Secrets support protecting these passwords is necessary to plug a potential security flaw.

This is a simple addition of a script in the same manner as PostGres (and relevant documentation of course) Cygnus does it already. This flaw relates to all IoT Agents.

telefonicaid/iotagent-node-lib#726 (comment)

Within the Docker container, Passwords etc can only be passed protected by Docker Secrets

  • MUST requirement from TSC

Sending Northbound traffic from IoTAgent OPCUA to Orion Context Broker

Hi, according to the doc, I have deployed OPC UA server, OPC UA Agent.
Now, following the doc, I provisioned the "car" device and updated the Orion entity for "accelerate" attribute.

What I want is to send device alerts (Northbound data) from IoT Agent which will update it on Orion CB. (Like send attribute to 7896 port in other IoTAgents).

Also, if this is done via the OPC UA Server, could you please share the procedure?

[SHOULD] run tests on CI - test suite missing

There are currently no CI Tests run on push.
There is also no badge displaying the current test state on Travis (or equivalent)

<br/>
[![Documentation badge](https://img.shields.io/readthedocs/iotagent-opcua.svg)](https://iotagent-opcua.rtfd.io/)
[![Build badge](https://img.shields.io/travis/Engineering-Research-and-Development/iotagent-opcua.svg)](https://travis-ci.org/Engineering-Research-and-Development/iotagent-opcua/)
![Status](https://nexus.lab.fiware.org/static/badges/statuses/iot-openmtc.svg)

You can look in the IoTagent-LoRaWAN to see how to set up the .travis.yml file.

  • displaying CI is a TSC MUST requirement
  • running tests on CI is a TSC SHOULD requirement

Docker-compose file

In the docker-composer files there are some unclear comments, in particular at the line is told to comment if you want to use NGSI-LD or to comment the line if you want to use NGSI-V2.

Reading the strings that should be commented out however, it would seem that it is necessary to remove the comments from the lines to use NGSI-LD, and comment them if you want to use NGS-V2.

Is my interpretation correct? Thanks for clearing it up.

PS: the same issue is present to the file docker-compose-external-server.yml

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.