This commit is contained in:
@@ -18,8 +18,6 @@ final class AnlagentopologieTest extends TestCase
|
||||
'Name' => 'Hybrid Ost',
|
||||
'Typ' => 'hybrid',
|
||||
'ACNennleistung_kW' => 10.0,
|
||||
'ACEinspeisegrenze_kW' => 8.0,
|
||||
'ACBezugsgrenze_kW' => 0.0,
|
||||
]], JSON_THROW_ON_ERROR),
|
||||
json_encode([
|
||||
[
|
||||
@@ -62,6 +60,8 @@ final class AnlagentopologieTest extends TestCase
|
||||
self::assertSame(12.8, $topologie['summary']['pvDcKwp']);
|
||||
self::assertSame(10.0, $topologie['summary']['pvAcKw']);
|
||||
self::assertSame(12.8, $topologie['summary']['usableBatteryKwh']);
|
||||
self::assertArrayNotHasKey('acExportLimitKw', $topologie['inverters'][0]);
|
||||
self::assertArrayNotHasKey('acImportLimitKw', $topologie['inverters'][0]);
|
||||
self::assertSame([[
|
||||
'inverterId' => 'hybrid-1',
|
||||
'acRatedKw' => 10.0,
|
||||
|
||||
@@ -131,8 +131,9 @@ final class DemoanlageBootstrapTest extends TestCase
|
||||
self::assertStringContainsString("'Begrenzungsart' => 'watt'", $source);
|
||||
self::assertStringContainsString("'EinspeisebegrenzungAktiv' => true", $source);
|
||||
self::assertStringContainsString("'Einspeisegrenze' => 3000.0", $source);
|
||||
self::assertStringContainsString("'Einspeisetoleranz' => 100.0", $source);
|
||||
self::assertStringContainsString("'PrognoseAktiv' => false", $source);
|
||||
self::assertStringContainsString("'NetzfahrplanAktiv' => false", $source);
|
||||
self::assertStringNotContainsString("'Einspeisetoleranz'", $source);
|
||||
self::assertStringContainsString("'demo-hybrid-1'", $source);
|
||||
self::assertStringContainsString("'demo-pv-1'", $source);
|
||||
self::assertStringContainsString("'demo-battery-1'", $source);
|
||||
|
||||
@@ -15,17 +15,16 @@ final class EinspeiseReglerTest extends TestCase
|
||||
$ergebnis = EinspeiseRegler::verteile(
|
||||
-15000.0,
|
||||
10000.0,
|
||||
100.0,
|
||||
[
|
||||
['ID' => 'wr-1', 'Nennleistung_W' => 10000, 'Istleistung_W' => 10000],
|
||||
['ID' => 'wr-2', 'Nennleistung_W' => 5000, 'Istleistung_W' => 5000],
|
||||
]
|
||||
);
|
||||
|
||||
self::assertSame(10100.0, $ergebnis['ZielGesamtleistung_W']);
|
||||
self::assertSame(4900.0, $ergebnis['Abregelbedarf_W']);
|
||||
self::assertSame(6733.333, $ergebnis['Grenzen_W']['wr-1']);
|
||||
self::assertSame(3366.667, $ergebnis['Grenzen_W']['wr-2']);
|
||||
self::assertSame(10000.0, $ergebnis['ZielGesamtleistung_W']);
|
||||
self::assertSame(5000.0, $ergebnis['Abregelbedarf_W']);
|
||||
self::assertSame(6666.667, $ergebnis['Grenzen_W']['wr-1']);
|
||||
self::assertSame(3333.333, $ergebnis['Grenzen_W']['wr-2']);
|
||||
}
|
||||
|
||||
public function testAbregelungFolgtDerTatsaechlichenErzeugung(): void
|
||||
@@ -33,7 +32,6 @@ final class EinspeiseReglerTest extends TestCase
|
||||
$ergebnis = EinspeiseRegler::verteile(
|
||||
-10000.0,
|
||||
5000.0,
|
||||
0.0,
|
||||
[
|
||||
['ID' => 'wr-1', 'Nennleistung_W' => 10000, 'Istleistung_W' => 10000],
|
||||
['ID' => 'wr-2', 'Nennleistung_W' => 10000, 'Istleistung_W' => 0],
|
||||
@@ -49,7 +47,6 @@ final class EinspeiseReglerTest extends TestCase
|
||||
$ergebnis = EinspeiseRegler::verteile(
|
||||
-6000.0,
|
||||
10000.0,
|
||||
100.0,
|
||||
[
|
||||
['ID' => 'wr-1', 'Nennleistung_W' => 10000, 'Istleistung_W' => 4000],
|
||||
['ID' => 'wr-2', 'Nennleistung_W' => 10000, 'Istleistung_W' => 2000],
|
||||
@@ -57,22 +54,21 @@ final class EinspeiseReglerTest extends TestCase
|
||||
['wr-1' => 5000, 'wr-2' => 5000]
|
||||
);
|
||||
|
||||
self::assertSame(13900.0, $ergebnis['ZielGesamtleistung_W']);
|
||||
self::assertSame(6950.0, $ergebnis['Grenzen_W']['wr-1']);
|
||||
self::assertSame(6950.0, $ergebnis['Grenzen_W']['wr-2']);
|
||||
self::assertSame(14000.0, $ergebnis['ZielGesamtleistung_W']);
|
||||
self::assertSame(7000.0, $ergebnis['Grenzen_W']['wr-1']);
|
||||
self::assertSame(7000.0, $ergebnis['Grenzen_W']['wr-2']);
|
||||
}
|
||||
|
||||
public function testToleranzVerhindertPendelnAmGrenzwert(): void
|
||||
public function testRegelungFolgtAuchKleinenAbweichungenStufenlos(): void
|
||||
{
|
||||
$ergebnis = EinspeiseRegler::verteile(
|
||||
-10050.0,
|
||||
10000.0,
|
||||
100.0,
|
||||
[['ID' => 'wr-1', 'Nennleistung_W' => 10000, 'Istleistung_W' => 9000]],
|
||||
['wr-1' => 8000]
|
||||
);
|
||||
|
||||
self::assertSame(8000.0, $ergebnis['ZielGesamtleistung_W']);
|
||||
self::assertSame(7950.0, $ergebnis['ZielGesamtleistung_W']);
|
||||
}
|
||||
|
||||
public function testStellwerteWerdenInProzentOderWattAusgegeben(): void
|
||||
|
||||
@@ -50,6 +50,12 @@ final class EnergieMessungTest extends TestCase
|
||||
self::assertSame(0.0, EnergieMessung::hausleistung(500.0, -1200.0, 0.0));
|
||||
}
|
||||
|
||||
public function testBerechnetHausenergieAusDenZaehlerdeltas(): void
|
||||
{
|
||||
self::assertSame(8.5, EnergieMessung::hausenergie(10.0, 2.0, 4.0, 1.5, 2.0));
|
||||
self::assertSame(0.0, EnergieMessung::hausenergie(1.0, 0.0, 5.0, 0.0, 0.0));
|
||||
}
|
||||
|
||||
public function testIgnoriertUngueltigeDauerUndNichtEndlicheWerte(): void
|
||||
{
|
||||
$werte = EnergieMessung::energieDeltas([
|
||||
|
||||
@@ -52,6 +52,11 @@ final class ManagerEnergieModulstrukturTest extends TestCase
|
||||
'IstleistungVariableID',
|
||||
'LeistungVariableID',
|
||||
'SOCVariableID',
|
||||
'NetzbezugEnergieVariableID',
|
||||
'NetzeinspeisungEnergieVariableID',
|
||||
'ErzeugungsenergieVariableID',
|
||||
'LadeenergieVariableID',
|
||||
'EntladeenergieVariableID',
|
||||
] as $erwartet) {
|
||||
self::assertStringContainsString($erwartet, $formular);
|
||||
}
|
||||
@@ -78,6 +83,8 @@ final class ManagerEnergieModulstrukturTest extends TestCase
|
||||
self::assertStringContainsString("RegisterTimer(
|
||||
'MesswerteAufzeichnen'", $modul);
|
||||
self::assertStringContainsString('EnergieMessung::energieDeltas', $modul);
|
||||
self::assertStringContainsString('EnergieMessung::hausenergie', $modul);
|
||||
self::assertStringContainsString("RegisterAttributeString('MessungZaehlerstaende'", $modul);
|
||||
}
|
||||
|
||||
public function testFunFactsSindResponsivUndErklaerenUmrechnungen(): void
|
||||
|
||||
@@ -50,9 +50,14 @@ final class ManagerModulstrukturTest extends TestCase
|
||||
'Umschaltdifferenz',
|
||||
'EinspeisebegrenzungAktiv',
|
||||
'Einspeisegrenze',
|
||||
'Einspeisetoleranz',
|
||||
'PrognoseAktiv',
|
||||
'PrognoseLizenzInformation',
|
||||
'NetzfahrplanAktiv',
|
||||
'NetzbezugEnergieVariableID',
|
||||
'NetzeinspeisungEnergieVariableID',
|
||||
'IstleistungVariableID',
|
||||
'ErzeugungsenergieVariableID',
|
||||
'Erzeugungsenergiefaktor',
|
||||
'BegrenzungVariableID',
|
||||
'Begrenzungsart',
|
||||
'DiagnosevariablenAnzeigen',
|
||||
@@ -70,6 +75,9 @@ final class ManagerModulstrukturTest extends TestCase
|
||||
'LeistungVariableID',
|
||||
'Leistungsfaktor',
|
||||
'SOCVariableID',
|
||||
'LadeenergieVariableID',
|
||||
'EntladeenergieVariableID',
|
||||
'Energiefaktor',
|
||||
'EnergyPieAnzeigen',
|
||||
'EnergiediagrammeAnzeigen',
|
||||
'FunFactsAnzeigen',
|
||||
@@ -81,7 +89,8 @@ final class ManagerModulstrukturTest extends TestCase
|
||||
self::assertStringContainsString($property, $json);
|
||||
}
|
||||
foreach (['Regelintervall', 'Vorgabeintervall', 'UmschaltschwelleUeberschuss',
|
||||
'UmschaltschwelleLastspitze', 'Optionale obere Anschluesse', 'LizenzAnschluss'] as $entfernt
|
||||
'UmschaltschwelleLastspitze', 'Optionale obere Anschluesse', 'LizenzAnschluss',
|
||||
'Einspeisetoleranz', 'ACEinspeisegrenze_kW', 'ACBezugsgrenze_kW'] as $entfernt
|
||||
) {
|
||||
self::assertStringNotContainsString($entfernt, $json);
|
||||
}
|
||||
@@ -294,8 +303,16 @@ final class ManagerModulstrukturTest extends TestCase
|
||||
$inhalt
|
||||
);
|
||||
self::assertStringContainsString('Lizenzpruefung::NETZFAHRPLAN', $inhalt);
|
||||
self::assertStringContainsString('Lizenzpruefung::PROGNOSE_PV', $inhalt);
|
||||
self::assertStringContainsString('Lizenzpruefung::PROGNOSE_VERBRAUCH', $inhalt);
|
||||
self::assertStringContainsString('prognoseLizenzStatustext(', $inhalt);
|
||||
self::assertStringContainsString(
|
||||
"foreach (['PeakShavingTitel', 'EinspeisebegrenzungAktiv', 'Einspeisegrenze']",
|
||||
$inhalt
|
||||
);
|
||||
self::assertStringContainsString('aktuelleNetzfahrplanVorgabe()', $inhalt);
|
||||
self::assertStringContainsString('gibEinspeisebegrenzungFrei()', $inhalt);
|
||||
self::assertStringNotContainsString("RegisterPropertyFloat('Einspeisetoleranz'", $inhalt);
|
||||
}
|
||||
|
||||
public function testManagerVerwendetDieNeuenZeitdefaults(): void
|
||||
|
||||
@@ -80,8 +80,6 @@ return static function (TestContext $test): void {
|
||||
'Name' => 'Hybridwechselrichter',
|
||||
'Typ' => 'hybrid',
|
||||
'ACNennleistung_kW' => 10.0,
|
||||
'ACEinspeisegrenze_kW' => 8.0,
|
||||
'ACBezugsgrenze_kW' => 0.0,
|
||||
'IstleistungVariableID' => $pvLeistungId,
|
||||
'Istleistungsfaktor' => 1.0,
|
||||
]];
|
||||
|
||||
Reference in New Issue
Block a user