This commit is contained in:
@@ -32,17 +32,21 @@ return static function (TestContext $test): void {
|
||||
]
|
||||
);
|
||||
|
||||
$anforderungSenden = static function (int $leistung) use (
|
||||
$anforderungSenden = static function (
|
||||
?int $leistung,
|
||||
string $betriebsart = 'PV'
|
||||
) use (
|
||||
$managerId,
|
||||
$verbraucherId
|
||||
): void {
|
||||
$paket = [
|
||||
'Kopf' => [
|
||||
'Version' => '3.0',
|
||||
'Version' => '4.0',
|
||||
'AbsenderID' => $managerId,
|
||||
'EmpfaengerID' => $verbraucherId,
|
||||
'Zeitpunkt' => time(),
|
||||
],
|
||||
'Betriebsart' => $betriebsart,
|
||||
'Sollleistung_W' => $leistung,
|
||||
];
|
||||
IPS_RequestAction(
|
||||
@@ -64,6 +68,28 @@ return static function (TestContext $test): void {
|
||||
}
|
||||
});
|
||||
|
||||
$test->runCase('PV und Peak liefern unterschiedliche Leistungsangebote', static function (
|
||||
TestContext $test
|
||||
) use ($verbraucherId, $anforderungSenden): void {
|
||||
IPS_RequestAction($verbraucherId, 'Aktiv', true);
|
||||
IPS_Sleep(2100);
|
||||
$anforderungSenden(null, 'Peak');
|
||||
|
||||
$abgewiesen = false;
|
||||
try {
|
||||
$anforderungSenden(1200, 'Peak');
|
||||
} catch (Throwable $fehler) {
|
||||
$abgewiesen = true;
|
||||
}
|
||||
if (!$abgewiesen) {
|
||||
$abgewiesen = GetValue($test->objectByIdent('SollwertGueltig', $verbraucherId)) !== true
|
||||
|| GetValue($test->objectByIdent('Sollleistung', $verbraucherId)) !== 1200;
|
||||
}
|
||||
$test->assertSame(true, $abgewiesen, 'Peak darf die Nennleistung nicht anbieten.');
|
||||
|
||||
$anforderungSenden(null, 'PV');
|
||||
});
|
||||
|
||||
$test->runCase('Nur angebotene Leistungsanforderungen werden angenommen', static function (
|
||||
TestContext $test
|
||||
) use (
|
||||
@@ -143,7 +169,7 @@ return static function (TestContext $test): void {
|
||||
SetValue($rueckmeldungId, true);
|
||||
});
|
||||
|
||||
$test->runCase('Tägliche Mindestlaufzeit wird spätestens rechtzeitig erzwungen', static function (
|
||||
$test->runCase('Peak kann die Tagesmindestlaufzeit ohne angebotene Sperre erzwingen', static function (
|
||||
TestContext $test
|
||||
) use (
|
||||
$verbraucherId,
|
||||
@@ -155,7 +181,13 @@ return static function (TestContext $test): void {
|
||||
$anforderungSenden(0);
|
||||
$test->waitUntil(static fn (): bool => GetValue($kontaktId) === false);
|
||||
SetValue($rueckmeldungId, false);
|
||||
$test->waitUntil(static fn (): bool => GetValue(
|
||||
$test->objectByIdent('Schaltzustand', $verbraucherId)
|
||||
) === false);
|
||||
IPS_Sleep(2100);
|
||||
|
||||
$anforderungSenden(null, 'Peak');
|
||||
IPS_SetProperty($verbraucherId, 'PeakSperreBeiMindestlaufzeitAnbieten', false);
|
||||
IPS_SetProperty($verbraucherId, 'Mindestlaufzeit', 86400);
|
||||
IPS_ApplyChanges($verbraucherId);
|
||||
$test->waitUntil(static fn (): bool => GetValue($kontaktId) === true);
|
||||
@@ -163,9 +195,14 @@ return static function (TestContext $test): void {
|
||||
$test->objectByIdent('Sollleistung', $verbraucherId)
|
||||
));
|
||||
SetValue($rueckmeldungId, true);
|
||||
$test->waitUntil(static fn (): bool => GetValue(
|
||||
$test->objectByIdent('Schaltzustand', $verbraucherId)
|
||||
) === true);
|
||||
|
||||
IPS_SetProperty($verbraucherId, 'Mindestlaufzeit', 0);
|
||||
IPS_SetProperty($verbraucherId, 'PeakSperreBeiMindestlaufzeitAnbieten', true);
|
||||
IPS_ApplyChanges($verbraucherId);
|
||||
$anforderungSenden(null, 'PV');
|
||||
});
|
||||
|
||||
$test->runCase('Physische Rückmeldung bestätigt und überwacht den Zustand', static function (
|
||||
|
||||
Reference in New Issue
Block a user