Documentation Index
Fetch the complete documentation index at: https://docs.nexalis.io/llms.txt
Use this file to discover all available pages before exploring further.
Windows install folders and file locations
You’ll receive two installers: NexalisAgent-[VERSION]-win-x64 (for example, NexalisAgent-1.1.6-win-x64) or NexalisAgent-[VERSION]-win-x86 (for example, NexalisAgent-1.1.6-win-x86)
Run the installer that matches your system architecture (x64 or x86).
In x64 the installer installs the agent, gRPC_kafka and connectors inside C:\Program Files\Nexalis\NexalisAgent.
In x86 the installer installs the agent, gRPC_kafka and connectors inside C:\Program Files (x86)\Nexalis\NexalisAgent.
For consistency, the data and logs are written inside %ProgramData%\Nexalis\NexalisAgent, usually C:\ProgramData\Nexalis\NexalisAgent.
gRPC_kafka has its default directory at %ProgramData%\Nexalis\NexalisAgent\gRPC_kafka.
Connectors have their default directory inside %ProgramData%\Nexalis\NexalisAgent\connectors\.
For example, the opcua_connector default directory is %ProgramData%\Nexalis\NexalisAgent\connectors\opcua_connector
This directory contains:
- device_models — configurations
- certs — configuration certificates.
The offline database is inside %ProgramData%\Nexalis\NexalisAgent\gRPC_kafka\persistent_buffer.
It is created when gRPC_kafka is configured and running.
You can find the latest NexalisAgentService logs in %ProgramData%\Nexalis\NexalisAgent\logs\nexalis_agent_service\NexalisAgentService.log.
You can configure other logs connection for gRPC_kafka in their respective configurations.
If not configured the default log location will be inside the connector data directory.
For example, the opcua connector logs will be by default inside %ProgramData%\Nexalis\NexalisAgent\connectors\opcua_connector
NexalisAgent Windows commands
The installer adds NexalisAgent to your PATH.
After running the installer, you can open a new Administrator PowerShell window (after a few seconds) and run
Usage: C:\Program Files\Nexalis\NexalisAgent\NexalisAgent.exe <command>
help
print this text
version
get current version v1.1.6
service-install [ --no-autostart ]
Create service (sc create) (Require Admin)
service-reset
Stop & delete the service (Require Admin)
start
Start the service (sc start) (Require Admin)
restart
restart the service (sc stop and sc start) (Require Admin)
reload
ask service to reload config.json
stop
Stop the service (sc stop) (Require Admin)
authorize-opcda-clsid CLSID
Authorize service for DCOM access for CLSID (Require Admin)
gRPC_kafka-sasl-login USERNAME set KAFKA_SASL_USERNAME for admin and KAFKA_SASL_PASSWORD from standard input into service parameters (Require Admin)
See Errors section if you have an error.
version command
Version shows the version of the installed agent.
status command
Status allows you to query the current status of the agent/gRPC_kafka and all the connectors and to view the JSON configuration errors from config.json, connectors and gRPC_kafka.
See Errors section if you have an error.
{
"status": true,
"gRPCKafkaStatus": {
"connector": {
"name": "gRPC_kafka",
"deviceModel": "",
"communicationAddress": "",
"siteName": "",
"deviceID": ""
},
"running": true,
"enabled": true,
"startedAt": "2026-02-04T19:22:25Z",
"nbRestart": 0
},
"connectorsStatus": [
{
"connector": {
"name": "modbus_connector",
"deviceModel": "./device_models/solar_inverter/SolarInverterSimulator/SolarInverterSimulator.json",
"communicationAddress": "127.0.0.1:5023",
"siteName": "SITE_modbus_2",
"deviceID": "4"
},
"running": false,
"enabled": true,
"startedAt": "2026-02-04T19:22:45Z",
"endedAt": "2026-02-04T19:22:45Z",
"nbRestart": 0,
"lastExitCode": 127
},
{
"connector": {
"name": "modbus_connector",
"deviceModel": "./device_models/solar_inverter/SunSpec-PICS-SMA-SBx.x-1SP-US-401_102/SunSpec-PICS-SMA-SBx.x-1SP-US-401_102.json",
"communicationAddress": "127.0.0.1:5021",
"siteName": "SITE_modbus_1",
"deviceID": "2"
},
"running": false,
"enabled": true,
"startedAt": "2026-02-04T19:22:45Z",
"endedAt": "2026-02-04T19:22:45Z",
"nbRestart": 2,
"lastExitCode": 127
},
{
"connector": {
"name": "dnp3_connector",
"deviceModel": "./device_models/cyclic-1.json",
"communicationAddress": "127.0.0.1:5025",
"siteName": "SITE_dnp3_1",
"deviceID": "6"
},
"running": true,
"enabled": true,
"startedAt": "2026-02-04T19:22:25Z",
"nbRestart": 0
}
]
}
start, stop, restart command
In Windows, these commands start, stop, and restart the NexalisAgent Windows service.
The Windows service runs the executable nexalis_agent_service\NexalisAgentService (from Program Files).
A JSON status is printed. The status field indicates whether the operation was successful.
reload command
Sends a reload request to NexalisAgentService.
The service compares the new config.json with the running configuration and applies only the necessary changes.
It does the same for all device models used in config.json and the gRPC_kafka JSON config.
This allows you to not restart everything when changing just a configuration.
However the reload command does not check credentials or certificates or connections for changes.
For Example:
- adding, removing or changing configuration inside config.json will start,stop or restart the appropriate connector.
- changing JSON content of a device_model will trigger restart for that specific connector.
- changing opcua credentials in the device model, will trigger restart of the connector.
- changing gRPC_kafka credentials or any environment variables will not trigger restart.
- changing connector specific files like certificates will not trigger restart of the connector.
A JSON status is printed. The status field indicates whether the operation was successful.
When a configuration is invalid, you will see the error in the error fields.
{
"status": false,
"errornum": 1,
"errorMessage": "connectors/modbus_connector/device_models/SolarInverterSimulator.json: [json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid literal; last read: '[#'",
"connector": {
"name": "modbus_connector",
"deviceModel": "./device_models/solar_inverter/SolarInverterSimulator/SolarInverterSimulator.json",
"communicationAddress": "127.0.0.1:5022",
"siteName": "SITE_modbus_2",
"deviceID": "3"
}
}
gRPC_kafka-sasl-login command
You can update the gRPC_kafka credentials with this command.
Enter the password and then press Enter to set the password.
NexalisAgent gRPC_kafka-sasl-login myusername
Alternatively, you can set credentials inside the service parameters in the Registry Editor.
NexalisAgentService reads the 2 service parameters.
- KAFKA_SASL_USERNAME
- KAFKA_SASL_PASSWORD
authorize-opcda-clsid command
opcda32_connector and opcda64_connector require service permission
to access DCOM and to communicate with the configured interface.
You can run
NexalisAgent authorize-opcda-clsid CLSID
You must replace CLSID with the OPC DA DCOM CLSID you used to connect.
service-reset command
This command is run by the Windows uninstaller.
It uninstalls the service.
Preferably it should be stopped first.
The service will not be restarted automatically
NexalisAgent service-reset
service-install [ —no-autostart ]
This command is run by the Windows installer.
You do not have to run manually.
It configure the service and it’s permissions.
Running this command enables the service to be automatically started at boot, except if —no-autostart is set.
NexalisAgent service-install