This commit is contained in:
@@ -184,6 +184,58 @@ return static function (TestContext $test): void {
|
||||
$test->assertInstanceStatus($station);
|
||||
});
|
||||
|
||||
$test->runCase('Solarumschaltung wartet auf die neue Manager-Vorgabe', static function (
|
||||
TestContext $test
|
||||
) use ($station): void {
|
||||
$managerId = $test->createInstance(
|
||||
'{6F771B18-59D4-4C8A-B951-3B2FE9F6A2C4}',
|
||||
'Hilfsmanager Easee-Uebergang',
|
||||
[
|
||||
'AutomatischeSuche' => false,
|
||||
'VerbraucherZuordnung' => json_encode([
|
||||
['InstanzID' => $station, 'Aktiv' => true],
|
||||
], JSON_THROW_ON_ERROR),
|
||||
]
|
||||
);
|
||||
$sendeSollwert = static function (int $leistung) use ($managerId, $station): void {
|
||||
IPS_RequestAction($station, 'ManagerdatenEmpfangen', json_encode([
|
||||
'Kopf' => [
|
||||
'Version' => '4.0',
|
||||
'AbsenderID' => $managerId,
|
||||
'EmpfaengerID' => $station,
|
||||
'Zeitpunkt' => time(),
|
||||
],
|
||||
'Betriebsart' => 'PV',
|
||||
'Sollleistung_W' => $leistung,
|
||||
], JSON_THROW_ON_ERROR));
|
||||
};
|
||||
|
||||
$sendeSollwert(4104);
|
||||
$befehlVorUmschaltung = (string) GetValue(
|
||||
$test->objectByIdent('LetzterGeraetebefehl', $station)
|
||||
);
|
||||
IPS_RequestAction($station, 'Solarladen', false);
|
||||
|
||||
$test->assertSame(
|
||||
$befehlVorUmschaltung,
|
||||
(string) GetValue($test->objectByIdent('LetzterGeraetebefehl', $station))
|
||||
);
|
||||
$test->assertSame(
|
||||
4104,
|
||||
GetValue($test->objectByIdent('Sollleistung', $station)),
|
||||
'Die Sollleistung muss bis zur neuen Manager-Vorgabe stabil bleiben.'
|
||||
);
|
||||
|
||||
$sendeSollwert(10944);
|
||||
$test->assertTrue(str_contains(
|
||||
(string) GetValue($test->objectByIdent('LetzterGeraetebefehl', $station)),
|
||||
'"Ampere":16'
|
||||
));
|
||||
|
||||
IPS_RequestAction($station, 'Solarladen', true);
|
||||
$sendeSollwert(0);
|
||||
});
|
||||
|
||||
$test->runCase('SignalR-Abbruch erreicht die Ladestation', static function (
|
||||
TestContext $test
|
||||
) use ($gateway, $station): void {
|
||||
@@ -226,4 +278,24 @@ return static function (TestContext $test): void {
|
||||
);
|
||||
$test->assertInstanceStatus($station, 202);
|
||||
});
|
||||
|
||||
$test->runCase('Leistungswerte und Fahrzeugstatus folgen ihrer Sichtbarkeitsgruppe', static function (
|
||||
TestContext $test
|
||||
) use ($station): void {
|
||||
IPS_SetProperty($station, 'EinstellungenInVisu', true);
|
||||
IPS_SetProperty($station, 'DiagnosevariablenAnzeigen', false);
|
||||
IPS_ApplyChanges($station);
|
||||
|
||||
$test->assertTrue(@IPS_GetObjectIDByIdent('Istleistung', $station) !== false);
|
||||
$test->assertTrue(@IPS_GetObjectIDByIdent('Sollleistung', $station) !== false);
|
||||
$test->assertSame(false, @IPS_GetObjectIDByIdent('Fahrzeugstatus', $station));
|
||||
|
||||
IPS_SetProperty($station, 'EinstellungenInVisu', false);
|
||||
IPS_SetProperty($station, 'DiagnosevariablenAnzeigen', true);
|
||||
IPS_ApplyChanges($station);
|
||||
|
||||
$test->assertSame(false, @IPS_GetObjectIDByIdent('Istleistung', $station));
|
||||
$test->assertSame(false, @IPS_GetObjectIDByIdent('Sollleistung', $station));
|
||||
$test->assertTrue(@IPS_GetObjectIDByIdent('Fahrzeugstatus', $station) !== false);
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user