Verbrauchermodule und betriebsartabhängige Angebote ergänzen
Tests / test (push) Successful in 42s

This commit is contained in:
dh
2026-09-21 18:46:17 +00:00
parent 7b6d1b2f07
commit 3c71626b5f
46 changed files with 4513 additions and 311 deletions
+32 -11
View File
@@ -38,11 +38,13 @@ return static function (TestContext $test): void {
'DiagnosevariablenAnzeigen' => true,
]
);
$lizenzcode = trim((string) getenv('ENELIX_TEST_LICENSE_CODE'));
$managerId = $test->createInstance(
'{6F771B18-59D4-4C8A-B951-3B2FE9F6A2C4}',
'Hilfsmanager',
[
'NetzleistungVariableID' => $netzleistungId,
'Lizenzcode' => $lizenzcode,
'AutomatischeSuche' => false,
'VerbraucherZuordnung' => json_encode([
['InstanzID' => $verbraucherId, 'Aktiv' => true],
@@ -88,6 +90,17 @@ return static function (TestContext $test): void {
IPS_RequestAction($managerId, 'Regeln', true);
};
if ($lizenzcode === '') {
$test->runCase('Manager bleibt ohne Lizenz sicher gesperrt', static function (
TestContext $test
) use ($verbraucherId, $managerId): void {
$test->assertInstanceStatus($verbraucherId);
$test->assertInstanceStatus($managerId, 203);
});
return;
}
$test->runCase('Instanzen und Diagnosevariablen werden angelegt', static function (
TestContext $test
) use ($verbraucherId, $managerId): void {
@@ -119,7 +132,7 @@ return static function (TestContext $test): void {
);
});
$test->runCase('Unter Minimum wird in PV und Peak bis über die Hysterese geheizt', static function (
$test->runCase('Unter Minimum erzwingt PV das Maximum und Peak bietet alle Stufen', static function (
TestContext $test
) use (
$temperaturSetzen,
@@ -132,17 +145,19 @@ return static function (TestContext $test): void {
$warteAufKontakte([false, false, true]);
$test->assertSame('PV', GetValue($test->objectByIdent('Betriebsart', $managerId)));
$managerRegeln(3000.0);
$warteAufKontakte([false, false, true]);
IPS_Sleep(1100);
$managerRegeln(1000.0);
$warteAufKontakte([false, true, false]);
$test->assertSame('Peak', GetValue($test->objectByIdent('Betriebsart', $managerId)));
$temperaturSetzen(49.9);
$managerRegeln(3000.0);
$warteAufKontakte([false, false, true]);
IPS_Sleep(1100);
$temperaturSetzen(47.0);
$managerRegeln(1000.0);
$warteAufKontakte([true, false, false]);
IPS_Sleep(1100);
$temperaturSetzen(50.0);
$managerRegeln(3000.0);
$managerRegeln(1000.0);
$warteAufKontakte([false, false, false]);
});
@@ -170,12 +185,12 @@ return static function (TestContext $test): void {
$managerRegeln(-3000.0);
$warteAufKontakte([false, false, false]);
$temperaturSetzen(55.0);
$temperaturSetzen(54.9);
$managerRegeln(-3000.0);
$warteAufKontakte([false, false, true]);
});
$test->runCase('Legionellenziel erlaubt Peak-Stufen und lädt in PV maximal', static function (
$test->runCase('Erhöhtes Maximalziel bleibt im freien Peakbetrieb gesperrt', static function (
TestContext $test
) use (
$verbraucherId,
@@ -190,10 +205,10 @@ return static function (TestContext $test): void {
IPS_Sleep(1100);
$managerRegeln(2000.0);
$warteAufKontakte([true, false, false]);
$warteAufKontakte([false, false, false]);
});
$test->runCase('Zeitplan erzwingt rechtzeitiges Aufheizen wie ein Minimum', static function (
$test->runCase('Zeitplan bietet in Peak alle Stufen und erzwingt in PV das Maximum', static function (
TestContext $test
) use (
$verbraucherId,
@@ -211,6 +226,12 @@ return static function (TestContext $test): void {
['Uhrzeit' => date('H:i', time() + 60), 'Solltemperatur' => 60],
], JSON_THROW_ON_ERROR));
IPS_ApplyChanges($verbraucherId);
$test->assertSame(true, GetValue(
$test->objectByIdent('AenderungMoeglich', $verbraucherId)
));
$warteAufKontakte([false, false, false]);
$managerRegeln(-3000.0);
$warteAufKontakte([false, false, true]);
});
};