Skip to content
This repository has been archived by the owner on Jan 10, 2025. It is now read-only.

Commit

Permalink
Merge pull request #2739 from sap-labs-france/master-qa
Browse files Browse the repository at this point in the history
Hot fixes
  • Loading branch information
Claude ROSSI authored Aug 16, 2021
2 parents 20aad56 + 1019de9 commit 7de3cf5
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 91 deletions.
160 changes: 80 additions & 80 deletions src/assets/i18n/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,55 +5,55 @@
"chargingAtChargeBox": "Sesión de carga: {{sessionID}} - Fecha de inicio: {{startDate}} a las {{startTime}} - Consumo de energía: {{totalConsumption}} kWh en la estación de recarga {{chargeBoxID}}"
},
"chargers": {
"chargeBoxSN": "Charge Box S/N",
"chargePointSN": "Charge Point S/N",
"chargingStation": "Charging Station",
"connector": "Connector",
"chargeBoxSN": "Número de serie de la estación de carga",
"chargePointSN": "Punto de carga",
"chargingStation": "Estación de carga",
"connector": "Conector",
"firmwareVersion": "Firmware Version",
"lastReboot": "Last Reboot",
"lastSeen": "Last Seen",
"maxPower": "Maximum Power (Watt)",
"model": "Model",
"numberOfConnectors": "Number of Connectors",
"ocppProtocol": "OCPP Protocol",
"ocppVersion": "OCPP Version",
"powerLimitUnit": "Power Limit Unit",
"timezone": "Charging Station Timezone",
"vendor": "Vendor"
"lastReboot": "Última puesta en marcha",
"lastSeen": "Última conexión",
"maxPower": "Máximo poder (Watt)",
"model": "Modelo",
"numberOfConnectors": "Número de conectores",
"ocppProtocol": "Protocolo OCPP",
"ocppVersion": "Versión OCPP",
"powerLimitUnit": "Unidad de līmite de poder",
"timezone": "Huso horario de la estación de carga",
"vendor": "Provedor"
},
"general": {
"changedBy": "Changed By",
"changedOn": "Changed On",
"createdOn": "Created On",
"date": "Date",
"endDate": "End Date",
"endTime": "End Time",
"invalidDate": "Invalid Date",
"invalidTime": "Invalid Time",
"latitude": "Latitude",
"longitude": "Longitude",
"month": "Month",
"name": "Name",
"price": "Price",
"priceUnit": "Price Unit",
"site": "Site",
"siteArea": "Site Area",
"startDate": "Start Date",
"startTime": "Start Time",
"time": "Time",
"value": "Value",
"year": "Year"
"changedBy": "Modificado por",
"changedOn": "Fecha de modificación",
"createdOn": "Fecha de creación",
"date": "Fecha",
"endDate": "Fecha de término",
"endTime": "Hora de término",
"invalidDate": "Fecha inválida",
"invalidTime": "Hora inválida",
"latitude": "Latitud",
"longitude": "Longitud",
"month": "Mes",
"name": "Nombre",
"price": "Precio",
"priceUnit": "Precio unitario",
"site": "Sitio",
"siteArea": "Zona del sitio",
"startDate": "Fecha de inicio",
"startTime": "Hora de inicio",
"time": "Hora",
"value": "Valor",
"year": "Año"
},
"loggings": {
"action": "Action",
"host": "Host",
"level": "Level",
"message": "Message",
"method": "Method",
"module": "Module",
"process": "Process",
"source": "Source",
"type": "Type"
"action": "Acción",
"host": "Servidor",
"level": "Nivel",
"message": "Mensaje",
"method": "Método",
"module": "Módulo",
"process": "Proceso",
"source": "Fuente",
"type": "Tipo"
},
"notifications": {
"sessionNotStarted": {
Expand All @@ -66,19 +66,19 @@
},
"ocpiPatchChargingStationsStatusesError": {
"title": "Estatus de envío de itinerancia",
"body": "La transferencia a la plataforma de itinerancia de los estatus de la estación de carga ha fallado en la ubicación '{{location}}' en la organización '{{tenantName}}', verifique los registros "
"body": "La transferencia a la plataforma de itinerancia de los estatus de la estación de carga ha fallado en la ubicación '{{location}}' en la organización '{{tenantName}}', verifique los registros"
},
"oicpPatchChargingStationsStatusesError": {
"title": "Hubject Send Statuses",
"body": "The transfer to the Hubject roaming platform of the charging station's statuses has failed in organization '{{tenantName}}', check the logs"
"title": "Hubject - Envío de estatus",
"body": "La actualización de las estaciones de carga hacia Hubject a fallado en la organización '{{tenantName}}', verifique los registros"
},
"oicpPatchChargingStationsError": {
"title": "Hubject Send Charging Stations",
"body": "The transfer to the Hubject roaming platform of the charging station's data has failed in organization '{{tenantName}}', check the logs"
"title": "Hubject - Envío de estación de carga",
"body": "La transferencia de información de la estación de carga a la plataforma de itinerancia de Hubject ha fallado en la organización '{{tenantName}}', verifique los registros"
},
"smtpError": {
"title": "Error del servidor de correo electrónico",
"body": "Del servidor de correo electrónico principal ha fallado en la organización '{{tenantName}}', verifique la configuración"
"body": "El servidor de correo electrónico principal ha fallado en la organización '{{tenantName}}', verifique la configuración"
},
"optimalChargeReached": {
"title": "Carga óptima alcanzada",
Expand All @@ -98,11 +98,11 @@
},
"unknownUserBadged": {
"title": "Usuario desconocido",
"body": "Un usuario desconocido se ha conectado a '{{chargeBoxID}}' con el badge ID '{{badgeID}}' en la organización '{{tenantName}}'"
"body": "Un usuario desconocido se ha conectado a '{{chargeBoxID}}' con la insignia ID '{{badgeID}}' en la organización '{{tenantName}}'"
},
"chargingStationRegistered": {
"title": "Estación de carga conectada",
"body": "La estación de carga '{{chargeBoxID}}' se ha conectado al servidor central en la organización'{{tenantName}}'"
"body": "La estación de carga '{{chargeBoxID}}' se ha conectado al servidor central en la organización '{{tenantName}}'"
},
"userAccountStatusChanged": {
"title": "Cuenta {{status}}",
Expand Down Expand Up @@ -131,56 +131,56 @@
"body": "No ha sido posible sincronizar {{nbrInvoicesInError}} facturas con el servicio del proveedor de facturación de la organización '{{tenantName}}'"
},
"billingPeriodicOperationFailed": {
"title": "Periodic Billing Operations",
"body": "Failed to process {{nbrInvoicesInError}} invoice(s). Organization '{{tenantName}}'"
"title": "Operaciones periódicas de facturación",
"body": "El processo de facturación de {{nbrInvoicesInError}} factura(s) ha fallado. Organización '{{tenantName}}'"
},
"computeAndApplyChargingProfilesFailed": {
"title": "Charging Profiles failed",
"body": "Unable to set charging profiles for '{{chargeBoxID}}' on site area '{{siteAreaName}}' in organization '{{tenantName}}'"
"title": "Fallo en cambio de perfiles",
"body": "Imposible aplicar los prefiles de carga para la estación '{{chargeBoxID}}' en la zona '{{siteAreaName}}' en la organización '{{tenantName}}'"
},
"billingNewInvoicePaid": {
"title": "New invoice paid",
"body": "Your invoice ({{invoiceNumber}}) amounting {{amount}} has been paid and is now available"
"title": "Nueva factura pagada",
"body": "Su factura ({{invoiceNumber}}) importe {{amount}} ha sido pagada y está disponible"
},
"billingNewInvoiceOpen": {
"title": "New invoice to pay",
"body": "A new invoice ({{invoiceNumber}}) amounting {{amount}} is now available. Please check your email to finalize the payment"
"title": "Nueva factura a pagar",
"body": "u factura ({{invoiceNumber}}) importe {{amount}} está disponible. Revise su correo para finalizar la operación"
},
"endUserErrorNotification": {
"title": "Un usuario ha reportado un error",
"body": "'{{userName}}' reportó: '{{errorTitle}}' - '{{errorDescription}}' en la organización '{{tenantName}}'"
},
"accountVerificationNotification": {
"title": "Account verified",
"bodyVerified": "Your account has been verified with success. An administrator will check and activate your account.",
"bodyVerifiedAndActivated": "Your account has been verified and activated with success."
"title": "Cuenta verificada",
"bodyVerified": "Su cuenta ha sido verificada con éxito. Un administrador revisará y activará su cuenta",
"bodyVerifiedAndActivated": "Su cuenta ha sido vericada y activada con éxito"
}
},
"siteArea": "Zona",
"statistics": {
"consumption": "Consumption (kW.h)",
"inactivity": "Inactivity (Hours)",
"numberOfSessions": "Number of Sessions",
"usage": "Usage (Hours)"
"consumption": "Consumo (kW.h)",
"inactivity": "Inactividad (horas)",
"numberOfSessions": "Número de sesiones",
"usage": "Uso (horas)"
},
"tags": {
"id": "Badge ID",
"description": "Badge Description",
"virtualBadge": "Virtual Badge"
"id": "Insignia ID",
"description": "Descripción",
"virtualBadge": "Insignia virtual"
},
"transactions": {
"totalConsumption": "Total Consumption (kW.h)",
"totalDuration": "Total Duration (Mins)",
"totalInactivity": "Total Inactivity (Mins)"
"totalConsumption": "Consumo total (kW.h)",
"totalDuration": "Duración total (min)",
"totalInactivity": "Inactividad total (min)"
},
"users": {
"email": "Email",
"eulaAcceptedOn": "EULA Accepted On",
"firstName": "First Name",
"email": "Correo electrónico",
"eulaAcceptedOn": "EULA aceptadas en",
"firstName": "Nombre",
"id": "ID",
"role": "Role",
"status": "Status",
"user": "User",
"userID": "User ID"
"role": "Rol",
"status": "Estatus",
"user": "Usuario",
"userID": "Usuario ID"
}
}
15 changes: 7 additions & 8 deletions src/client/ocpi/CpoOCPIClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1003,12 +1003,12 @@ export default class CpoOCPIClient extends OCPIClient {
connectorId: number, countryId: string, partyId: string): OCPILocation {
const connectors: OCPIConnector[] = [];
let status: ChargePointStatus;
for (const chargingStationConnector of chargingStation.connectors) {
if (chargingStationConnector.connectorId === connectorId) {
connectors.push(OCPIUtilsService.convertConnector2OCPIConnector(tenant, chargingStation, chargingStationConnector, countryId, partyId));
status = chargingStationConnector.status;
break;
}
const connector = Utils.getConnectorFromID(chargingStation, connectorId);
let chargePoint;
if (connector) {
connectors.push(OCPIUtilsService.convertConnector2OCPIConnector(tenant, chargingStation, connector, countryId, partyId));
status = connector.status;
chargePoint = Utils.getChargePointFromID(chargingStation, connector.chargePointID);
}
const ocpiLocation: OCPILocation = {
id: site.id,
Expand All @@ -1024,8 +1024,7 @@ export default class CpoOCPIClient extends OCPIClient {
type: OCPILocationType.UNKNOWN,
evses: [{
uid: OCPIUtils.buildEvseUID(chargingStation, Utils.getConnectorFromID(chargingStation, connectorId)),
evse_id: RoamingUtils.buildEvseID(countryId, partyId, chargingStation.id,
Utils.getConnectorFromID(chargingStation, connectorId).connectorId),
evse_id: RoamingUtils.buildEvseID(countryId, partyId, chargingStation.id, chargePoint && chargePoint.cannotChargeInParallel ? chargePoint.chargePointID : connectorId),
location_id: chargingStation.siteID,
status: OCPIUtilsService.convertStatus2OCPIStatus(status),
capabilities: [OCPICapability.REMOTE_START_STOP_CAPABLE, OCPICapability.RFID_READER],
Expand Down
7 changes: 7 additions & 0 deletions src/server/ocpi/OCPIUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,13 @@ export default class OCPIUtils {
}

public static buildEvseUID(chargingStation: ChargingStation, connector: Connector): string {
// connectors are grouped in the same evse when the connectors cannot charge in parallel
if (connector.chargePointID) {
const chargePoint = Utils.getChargePointFromID(chargingStation, connector.chargePointID);
if (chargePoint && chargePoint.cannotChargeInParallel) {
return `${chargingStation.id}*${chargePoint.chargePointID}`;
}
}
return `${chargingStation.id}*${connector.connectorId}`;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -853,9 +853,9 @@ export default class OCPIUtilsService {
const connectorOneStatus = OCPIUtilsService.convertToOneConnectorStatus(connectors);
// Build evse
const evse: OCPIEvse = {
// Force the connector id to always be 1 on charging station that have mutually exclusive connectors
uid: OCPIUtils.buildEvseUID(chargingStation, { connectorId: 1 } as Connector),
evse_id: RoamingUtils.buildEvseID(options.countryID, options.partyID, chargingStation.id, 1),
// Evse uid must contains the chargePoint.id
uid: OCPIUtils.buildEvseUID(chargingStation, connectors[0]),
evse_id: RoamingUtils.buildEvseID(options.countryID, options.partyID, chargingStation.id, chargePoint.chargePointID),
location_id: chargingStation.siteID,
status: chargingStation.inactive ? OCPIEvseStatus.INOPERATIVE : OCPIUtilsService.convertStatus2OCPIStatus(connectorOneStatus),
capabilities: [OCPICapability.REMOTE_START_STOP_CAPABLE, OCPICapability.RFID_READER],
Expand Down

0 comments on commit 7de3cf5

Please sign in to comment.