This commit is contained in:
@@ -58,6 +58,24 @@ final class EaseeGatewayProtokollTest extends TestCase
|
||||
], $beobachtungen);
|
||||
}
|
||||
|
||||
public function testFreigabediagnoseWirdAusBeobachtungenExtrahiert(): void
|
||||
{
|
||||
$beobachtungen = EaseeGatewayProtokoll::extrahiereBeobachtungen([
|
||||
'serialNumber' => 'EH123456',
|
||||
'observations' => [
|
||||
['id' => 42, 'value' => true],
|
||||
['id' => 43, 'value' => true],
|
||||
['id' => 96, 'value' => 55],
|
||||
],
|
||||
], ['EH123456']);
|
||||
|
||||
self::assertSame([
|
||||
['Seriennummer' => 'EH123456', 'ID' => 42, 'Wert' => true],
|
||||
['Seriennummer' => 'EH123456', 'ID' => 43, 'Wert' => true],
|
||||
['Seriennummer' => 'EH123456', 'ID' => 96, 'Wert' => 55],
|
||||
], $beobachtungen);
|
||||
}
|
||||
|
||||
public function testSeriennummerWirdNormalisiert(): void
|
||||
{
|
||||
self::assertSame(
|
||||
|
||||
@@ -89,6 +89,24 @@ final class EaseeLadestatusTest extends TestCase
|
||||
self::assertSame(13, $status['ApiMaximalstrom_A']);
|
||||
}
|
||||
|
||||
public function testFreigabeUndGrundOhneLadestromKommenAusEaseeBeobachtungen(): void
|
||||
{
|
||||
$status = EaseeLadestatus::ausBeobachtungen([
|
||||
'31' => true,
|
||||
'42' => true,
|
||||
'43' => true,
|
||||
'96' => 55,
|
||||
'102' => true,
|
||||
'109' => 2,
|
||||
], 16);
|
||||
|
||||
self::assertTrue($status['EaseeAktiviert']);
|
||||
self::assertTrue($status['AutorisierungErforderlich']);
|
||||
self::assertTrue($status['RemoteStartErforderlich']);
|
||||
self::assertTrue($status['SmartCharging']);
|
||||
self::assertSame(55, $status['GrundKeinLadestrom']);
|
||||
}
|
||||
|
||||
public function testNurSolarladenIstFestErzwungen(): void
|
||||
{
|
||||
self::assertFalse(EaseeLadestatus::solarladenErzwungen(0));
|
||||
|
||||
@@ -70,6 +70,12 @@ final class EaseeModuleStrukturTest extends TestCase
|
||||
self::assertStringContainsString("'Phasenzahl'", $modul);
|
||||
self::assertStringNotContainsString('7500', $modul);
|
||||
self::assertStringNotContainsString('Abfrageintervall', $modul);
|
||||
self::assertStringContainsString("'action' => 'StartCharging'", $modul);
|
||||
|
||||
$gateway = (string) file_get_contents(
|
||||
__DIR__ . '/../EaseeGateway/module.php'
|
||||
);
|
||||
self::assertStringContainsString('/commands/start_charging', $gateway);
|
||||
}
|
||||
|
||||
/** @return array<string, mixed> */
|
||||
|
||||
@@ -72,6 +72,21 @@ return static function (TestContext $test): void {
|
||||
$test->assertSame(200, $antwort['httpCode']);
|
||||
});
|
||||
|
||||
$test->runCase('Ladestart wird ueber Gateway angenommen', static function (
|
||||
TestContext $test
|
||||
) use ($gateway): void {
|
||||
$antwort = json_decode(ENELIXEASEE_ProcessStationRequest(
|
||||
$gateway,
|
||||
json_encode([
|
||||
'action' => 'StartCharging',
|
||||
'serialNumber' => 'EH123456',
|
||||
], JSON_THROW_ON_ERROR)
|
||||
), true, 512, JSON_THROW_ON_ERROR);
|
||||
|
||||
$test->assertSame(true, $antwort['success']);
|
||||
$test->assertSame(200, $antwort['httpCode']);
|
||||
});
|
||||
|
||||
$test->runCase('Gebrochene Stromvorgabe wird abgelehnt', static function (
|
||||
TestContext $test
|
||||
) use ($gateway): void {
|
||||
|
||||
@@ -111,6 +111,10 @@ return static function (TestContext $test): void {
|
||||
$test->runCase('Wartezustand startet konservativ ohne aktive Phase', static function (
|
||||
TestContext $test
|
||||
) use ($sendeBeobachtung, $station): void {
|
||||
$sendeBeobachtung('EH123456', 42, true);
|
||||
$sendeBeobachtung('EH123456', 43, true);
|
||||
$sendeBeobachtung('EH123456', 96, 55);
|
||||
$sendeBeobachtung('EH123456', 102, true);
|
||||
$sendeBeobachtung('EH123456', 109, 2);
|
||||
$sendeBeobachtung('EH123456', 110, 0);
|
||||
IPS_RequestAction($station, 'Solarladen', false);
|
||||
@@ -132,6 +136,20 @@ return static function (TestContext $test): void {
|
||||
),
|
||||
'"Ampere":16'
|
||||
));
|
||||
$test->assertTrue(str_contains(
|
||||
(string) GetValue(
|
||||
$test->objectByIdent('LetzterStartbefehl', $station)
|
||||
),
|
||||
'"Aktion":"StartCharging"'
|
||||
));
|
||||
$test->assertSame(
|
||||
55,
|
||||
GetValue($test->objectByIdent('GrundKeinLadestrom', $station))
|
||||
);
|
||||
$test->assertSame(
|
||||
true,
|
||||
GetValue($test->objectByIdent('AutorisierungErforderlich', $station))
|
||||
);
|
||||
|
||||
IPS_RequestAction($station, 'Solarladen', true);
|
||||
$sendeBeobachtung('EH123456', 110, 30);
|
||||
|
||||
Reference in New Issue
Block a user