From 6cd7bf19f539f9fb74306fa96dc531a0d575882c Mon Sep 17 00:00:00 2001 From: dh_Agent Date: Thu, 1 Oct 2026 15:56:14 +0000 Subject: [PATCH] test(ladestation): Regeluebergang abwarten --- .../Symcon/modules/LadestationStandAlone.php | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/tests/Symcon/modules/LadestationStandAlone.php b/tests/Symcon/modules/LadestationStandAlone.php index 6509ef3..bfd8615 100644 --- a/tests/Symcon/modules/LadestationStandAlone.php +++ b/tests/Symcon/modules/LadestationStandAlone.php @@ -209,10 +209,25 @@ return static function (TestContext $test): void { 'Sollleistung_W' => $leistung, ], JSON_THROW_ON_ERROR)); }; + $warteAufGeraetebefehl = static function ( + int $stationId, + string $urlTeil + ) use ($test): string { + $deadline = microtime(true) + 3.0; + do { + $befehl = (string) GetValue($test->objectByIdent('LetzterGeraetebefehl', $stationId)); + if (str_contains($befehl, $urlTeil)) { + return $befehl; + } + IPS_Sleep(50); + } while (microtime(true) < $deadline); + + return $befehl; + }; $test->runCase('Alle drei Geraetevarianten erkennen Fahrzeug und Phasen', static function ( TestContext $test - ) use ($definitionen, $stationen): void { + ) use ($definitionen, $stationen, $warteAufGeraetebefehl): void { foreach ($stationen as $name => $stationId) { IPS_RequestAction($stationId, 'Aktiv', true); $test->assertSame(true, GetValue($test->objectByIdent('FahrzeugVerbunden', $stationId))); @@ -222,7 +237,10 @@ return static function (TestContext $test): void { ); $test->assertSame(false, GetValue($test->objectByIdent('FahrzeugGeladen', $stationId))); IPS_RequestAction($stationId, 'Solarladen', false); - $befehl = (string) GetValue($test->objectByIdent('LetzterGeraetebefehl', $stationId)); + $befehl = $warteAufGeraetebefehl( + $stationId, + $definitionen[$name]['BefehlUrlTeil'] + ); $diagnose = json_encode([ 'Aktiv' => GetValue($test->objectByIdent('Aktiv', $stationId)), 'Ladefreigabe' => GetValue($test->objectByIdent('Ladefreigabe', $stationId)),