@node-ocpp/core
v0.6.1-beta
Published
An OCPP CentralSystem framework
Downloads
1
Readme
A Node.js-based library for implementing an OCPP Central System (CS) providing an intuitive syntax for sending & handling messages. Currently supports OCPP-J (JSON over WebSocket) and includes message type definitions for 1.6 Feature Profile 'Core'.
Usage example
import { WsEndpoint, ocpp16 } from '@node-ocpp/core';
const cs = new WsEndpoint({ authRequired: false });
cs.handle<ocpp16.BootNotificationRequest>('BootNotification', async data => ({
currentTime: new Date(),
status: 'Accepted',
interval: 120,
}));
cs.on('client_connected', async session => {
const response = await cs.send<ocpp16.RemoteStartTransactionRequest>(
session.client.id,
'RemoteStartTransaction',
{ idTag: '1234567890' }
);
console.dir(response);
});
cs.listen();
Configuration
| Key | Type | Purpose | Default |
| ----------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- |
| port
| number | TCP port on which the application should listen | 8080
(development)80
(production) |
| hostname
| string | Host name on which the application should listen | localhost
|
| route
| string | Route which clients should connect to, appended by their individual CP id | /ocpp
|
| protocols
| string[] | WebSocket subprotocol versions for which upgrade requests should be allowed | ocpp1.2
- ocpp2.0.1
|
| actionsAllowed
| string[] | OCPP actions which the CS should allow to be sent/received | Actions for 1.6 Feature Profile 'Core' |
| maxConnections
| number | Maximum number of clients which should be allowed to connect at the same time | 511
|
| sessionTimeout
| number | Time in milliseconds after which a client session will be terminated if no further messages are received | 30000
|
| authRequired
| boolean | Whether connection attempts should be denied unless explicitly accepted | true
|
| basicAuth
| boolean | Whether HTTP BASIC authentication mechanism should be allowed(Only secure in combination with HTTPS) | true
|
| certificateAuth
| boolean | Whether clients should be able to use SSL/TLS certificates for authentication(It is recommended to use an e.g. Nginx proxy for this purpose) | false
|
| validation
| boolean | Whether the contents of inbound & outbound messages should be validated against official JSON schemas | true
|