- ): Promise<OCPP16BootNotificationResponse> {
- const payload: OCPP16BootNotificationRequest = {
- chargePointModel,
- chargePointVendor,
- ...(!Utils.isUndefined(chargeBoxSerialNumber) && { chargeBoxSerialNumber }),
- ...(!Utils.isUndefined(chargePointSerialNumber) && { chargePointSerialNumber }),
- ...(!Utils.isUndefined(firmwareVersion) && { firmwareVersion }),
- ...(!Utils.isUndefined(iccid) && { iccid }),
- ...(!Utils.isUndefined(imsi) && { imsi }),
- ...(!Utils.isUndefined(meterSerialNumber) && { meterSerialNumber }),
- ...(!Utils.isUndefined(meterType) && { meterType }),
- };
- return (await this.sendMessage(
- Utils.generateUUID(),
- payload,
- OCPP16RequestCommand.BOOT_NOTIFICATION,
- { ...params, skipBufferingOnError: true }
- )) as OCPP16BootNotificationResponse;
- }
-
- public async sendStatusNotification(
- connectorId: number,
- status: OCPP16ChargePointStatus,
- errorCode: OCPP16ChargePointErrorCode = OCPP16ChargePointErrorCode.NO_ERROR
- ): Promise<void> {
- const payload: StatusNotificationRequest = {
- connectorId,
- errorCode,
- status,
- };
- await this.sendMessage(Utils.generateUUID(), payload, OCPP16RequestCommand.STATUS_NOTIFICATION);
- }
-
- public async sendAuthorize(
- connectorId: number,
- idTag?: string
- ): Promise<OCPP16AuthorizeResponse> {
- const payload: AuthorizeRequest = {
- ...(!Utils.isUndefined(idTag) ? { idTag } : { idTag: Constants.DEFAULT_IDTAG }),
- };
- this.chargingStation.getConnectorStatus(connectorId).authorizeIdTag = idTag;
- return (await this.sendMessage(
- Utils.generateUUID(),
- payload,
- OCPP16RequestCommand.AUTHORIZE
- )) as OCPP16AuthorizeResponse;
- }
-
- public async sendStartTransaction(
- connectorId: number,
- idTag?: string
- ): Promise<OCPP16StartTransactionResponse> {
- const payload: StartTransactionRequest = {
- connectorId,
- ...(!Utils.isUndefined(idTag) ? { idTag } : { idTag: Constants.DEFAULT_IDTAG }),
- meterStart: this.chargingStation.getEnergyActiveImportRegisterByConnectorId(connectorId),
- timestamp: new Date().toISOString(),
- };
- return (await this.sendMessage(
- Utils.generateUUID(),
- payload,
- OCPP16RequestCommand.START_TRANSACTION
- )) as OCPP16StartTransactionResponse;
- }
-
- public async sendStopTransaction(
- transactionId: number,
- meterStop: number,
- idTag?: string,
- reason: OCPP16StopTransactionReason = OCPP16StopTransactionReason.NONE
- ): Promise<OCPP16StopTransactionResponse> {
- let connectorId: number;
- for (const id of this.chargingStation.connectors.keys()) {
- if (id > 0 && this.chargingStation.getConnectorStatus(id)?.transactionId === transactionId) {
- connectorId = id;
- break;
- }