fix(manager): Prognoseberechtigungen verständlich diagnostizieren
This commit is contained in:
+5
-7
@@ -2266,12 +2266,7 @@ class Manager extends IPSModule implements ManagerSchnittstelle
|
|||||||
/** @param array<string, mixed> $lease */
|
/** @param array<string, mixed> $lease */
|
||||||
private function prognoseBerechtigungInLease(array $lease): bool
|
private function prognoseBerechtigungInLease(array $lease): bool
|
||||||
{
|
{
|
||||||
return Lizenzpruefung::berechtigungsMenge($lease, Lizenzpruefung::NETZFAHRPLAN) > 0
|
return Lizenzpruefung::hatPrognoseBerechtigung($lease);
|
||||||
|| (Lizenzpruefung::berechtigungsMenge($lease, Lizenzpruefung::PROGNOSE_PV) > 0
|
|
||||||
&& Lizenzpruefung::berechtigungsMenge(
|
|
||||||
$lease,
|
|
||||||
Lizenzpruefung::PROGNOSE_VERBRAUCH
|
|
||||||
) > 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function berechtigungLizenziert(string $kennung, ?string $lizenzcode = null): bool
|
private function berechtigungLizenziert(string $kennung, ?string $lizenzcode = null): bool
|
||||||
@@ -2421,7 +2416,10 @@ class Manager extends IPSModule implements ManagerSchnittstelle
|
|||||||
if (!$lizenziert) {
|
if (!$lizenziert) {
|
||||||
return 'Prognosen sind deaktiviert. Fuer die Manager-ID '
|
return 'Prognosen sind deaktiviert. Fuer die Manager-ID '
|
||||||
. $managerID
|
. $managerID
|
||||||
. ' fehlen forecast_pv plus forecast_load oder grid_schedule.';
|
. ' ist keine Prognoseberechtigung vorhanden. Benoetigt wird entweder '
|
||||||
|
. 'PV-Ertragsprognose zusammen mit Verbrauchsprognose oder der '
|
||||||
|
. 'Intelligente Netzfahrplan. Nach der Erweiterung im Lizenzportal '
|
||||||
|
. 'die Lizenz erneut pruefen und binden.';
|
||||||
}
|
}
|
||||||
|
|
||||||
return ($aktiv ? 'Prognosen sind aktiviert. ' : 'Prognosen sind deaktiviert. ')
|
return ($aktiv ? 'Prognosen sind aktiviert. ' : 'Prognosen sind deaktiviert. ')
|
||||||
|
|||||||
@@ -279,6 +279,7 @@ stabile ID gebunden werden.
|
|||||||
| HTTP `429` | Zu viele Aktivierungsversuche; vor dem naechsten Versuch warten. |
|
| HTTP `429` | Zu viele Aktivierungsversuche; vor dem naechsten Versuch warten. |
|
||||||
| `Lizenzserver nicht erreichbar` | DNS, Internetzugang, HTTPS und Systemzeit des Symcon-Systems pruefen. Eine bestehende Lease gilt nur bis `offlineUntil`. |
|
| `Lizenzserver nicht erreichbar` | DNS, Internetzugang, HTTPS und Systemzeit des Symcon-Systems pruefen. Eine bestehende Lease gilt nur bis `offlineUntil`. |
|
||||||
| `Offline-Freigabe ist abgelaufen.` | Verbindung zum Lizenzserver wiederherstellen und Lizenz erneut pruefen. |
|
| `Offline-Freigabe ist abgelaufen.` | Verbindung zum Lizenzserver wiederherstellen und Lizenz erneut pruefen. |
|
||||||
|
| `Keine Prognoseberechtigung vorhanden` | Im Lizenzportal entweder PV-Ertragsprognose zusammen mit Verbrauchsprognose oder den Intelligenten Netzfahrplan ergaenzen. Anschliessend im Manager `Lizenz pruefen und binden` ausloesen, die Prognose aktivieren und die Konfiguration speichern. |
|
||||||
|
|
||||||
Fuer eine genauere Diagnose koennen die Diagnosevariablen eingeblendet werden.
|
Fuer eine genauere Diagnose koennen die Diagnosevariablen eingeblendet werden.
|
||||||
`Lizenzstatus` zeigt dann den aktuellen Zustand. Mit aktiviertem Debug-Logging
|
`Lizenzstatus` zeigt dann den aktuellen Zustand. Mit aktiviertem Debug-Logging
|
||||||
|
|||||||
@@ -117,6 +117,19 @@ final class Lizenzpruefung
|
|||||||
return $menge;
|
return $menge;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Eine Prognose ist entweder durch den Netzfahrplan oder durch beide
|
||||||
|
* Einzelberechtigungen fuer PV und Verbrauch freigeschaltet.
|
||||||
|
*
|
||||||
|
* @param array<string, mixed> $lease
|
||||||
|
*/
|
||||||
|
public static function hatPrognoseBerechtigung(array $lease): bool
|
||||||
|
{
|
||||||
|
return self::berechtigungsMenge($lease, self::NETZFAHRPLAN) > 0
|
||||||
|
|| (self::berechtigungsMenge($lease, self::PROGNOSE_PV) > 0
|
||||||
|
&& self::berechtigungsMenge($lease, self::PROGNOSE_VERBRAUCH) > 0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Rechnet freie, bestehende Einzellizenzen auf nicht separat lizenzierte Waermepumpen an.
|
* Rechnet freie, bestehende Einzellizenzen auf nicht separat lizenzierte Waermepumpen an.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -228,6 +228,47 @@ final class LizenzpruefungTest extends TestCase
|
|||||||
Lizenzpruefung::pruefeVerbrauchermengen($lease, $pruefmengen);
|
Lizenzpruefung::pruefeVerbrauchermengen($lease, $pruefmengen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testPvUndVerbrauchGebenPrognoseFrei(): void
|
||||||
|
{
|
||||||
|
$lease = $this->lease('manager_standard');
|
||||||
|
$lease['entitlements'][] = [
|
||||||
|
'catalog_key' => Lizenzpruefung::PROGNOSE_PV,
|
||||||
|
'quantity' => 1,
|
||||||
|
'status' => 'active',
|
||||||
|
];
|
||||||
|
$lease['entitlements'][] = [
|
||||||
|
'catalog_key' => Lizenzpruefung::PROGNOSE_VERBRAUCH,
|
||||||
|
'quantity' => 1,
|
||||||
|
'status' => 'active',
|
||||||
|
];
|
||||||
|
|
||||||
|
self::assertTrue(Lizenzpruefung::hatPrognoseBerechtigung($lease));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testEinzelnePrognoseBerechtigungReichtNichtAus(): void
|
||||||
|
{
|
||||||
|
$lease = $this->lease('manager_standard');
|
||||||
|
$lease['entitlements'][] = [
|
||||||
|
'catalog_key' => Lizenzpruefung::PROGNOSE_PV,
|
||||||
|
'quantity' => 1,
|
||||||
|
'status' => 'active',
|
||||||
|
];
|
||||||
|
|
||||||
|
self::assertFalse(Lizenzpruefung::hatPrognoseBerechtigung($lease));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testNetzfahrplanGibtPrognoseAlleineFrei(): void
|
||||||
|
{
|
||||||
|
$lease = $this->lease('manager_standard');
|
||||||
|
$lease['entitlements'][] = [
|
||||||
|
'catalog_key' => Lizenzpruefung::NETZFAHRPLAN,
|
||||||
|
'quantity' => 1,
|
||||||
|
'status' => 'active',
|
||||||
|
];
|
||||||
|
|
||||||
|
self::assertTrue(Lizenzpruefung::hatPrognoseBerechtigung($lease));
|
||||||
|
}
|
||||||
|
|
||||||
public function testLizenzcodeWirdWieAufDemServerNormalisiert(): void
|
public function testLizenzcodeWirdWieAufDemServerNormalisiert(): void
|
||||||
{
|
{
|
||||||
self::assertSame(
|
self::assertSame(
|
||||||
|
|||||||
Reference in New Issue
Block a user