Files
Symcon_Belevo_Energiemanage…/Ladestation_OCPP/libs/ChargingProfileBuilder.php
T

52 lines
1.7 KiB
PHP

<?php
class ChargingProfileBuilder
{
public function build(array $setpoint, string $version): array
{
$currentA = max(0.0, (float)($setpoint['effectiveCurrentA'] ?? 0));
$validTo = gmdate('Y-m-d\TH:i:s\Z', time() + 120);
if ($version === '1.6') {
return [
'connectorId' => (int)($setpoint['connectorId'] ?? 1),
'csChargingProfiles' => [
'chargingProfileId' => (int)(time() % 100000),
'stackLevel' => 0,
'chargingProfilePurpose' => 'TxDefaultProfile',
'chargingProfileKind' => 'Absolute',
'validTo' => $validTo,
'chargingSchedule' => [
'chargingRateUnit' => 'A',
'chargingSchedulePeriod' => [
['startPeriod' => 0, 'limit' => $currentA]
]
]
]
];
}
return [
'evseId' => (int)($setpoint['evseId'] ?? 1),
'chargingProfile' => [
'id' => (int)(time() % 100000),
'stackLevel' => 0,
'chargingProfilePurpose' => 'TxDefaultProfile',
'chargingProfileKind' => 'Absolute',
'validTo' => $validTo,
'chargingSchedule' => [
[
'id' => 1,
'chargingRateUnit' => 'A',
'chargingSchedulePeriod' => [
['startPeriod' => 0, 'limit' => $currentA]
]
]
]
]
];
}
}
?>