feat(manager): add opt-in native V4 shadow operation telemetry

This commit is contained in:
ENELIX Agent
2026-10-01 16:20:36 +00:00
parent 8d83b083bf
commit 640fe53720
7 changed files with 600 additions and 0 deletions
+12
View File
@@ -11,6 +11,8 @@ require_once __DIR__ . '/../libs/Anlagentopologie.php';
require_once __DIR__ . '/../libs/StoerungsSnapshot.php';
require_once __DIR__ . '/../libs/EnergieMessung.php';
require_once __DIR__ . '/../libs/ManagerEnergieTrait.php';
require_once __DIR__ . '/../libs/NetzfahrplanV4Betriebsdaten.php';
require_once __DIR__ . '/../libs/ManagerNetzfahrplanV4Trait.php';
use Belevo\EnelixEMS\Anlagentopologie;
use Belevo\EnelixEMS\EinspeiseRegler;
@@ -25,6 +27,7 @@ use Belevo\EnelixEMS\StoerungsSnapshot;
class Manager extends IPSModule implements ManagerSchnittstelle
{
use ManagerEnergieTrait;
use \Belevo\EnelixEMS\ManagerNetzfahrplanV4Trait;
private const STATUS_AKTIV = 102;
private const STATUS_MESSWERT_UNGUELTIG = 201;
@@ -112,6 +115,7 @@ class Manager extends IPSModule implements ManagerSchnittstelle
public function Create(): void
{
parent::Create();
$this->registriereNetzfahrplanV4();
$this->RegisterPropertyInteger('Rolle', 0);
$this->RegisterPropertyInteger('NetzleistungVariableID', 0);
@@ -232,6 +236,7 @@ class Manager extends IPSModule implements ManagerSchnittstelle
public function ApplyChanges(): void
{
parent::ApplyChanges();
$this->SetTimerInterval('NetzfahrplanV4Senden', 0);
$this->initialisiereLizenzInstallationID();
$this->aktualisiereVariablen();
@@ -287,6 +292,9 @@ class Manager extends IPSModule implements ManagerSchnittstelle
return;
}
$this->SetStatus(self::STATUS_AKTIV);
if ($this->ReadPropertyBoolean('NetzfahrplanV4SchattenAktiv')) {
$this->SetTimerInterval('NetzfahrplanV4Senden', 60000);
}
$this->synchronisiereAnlagentopologie();
if ($this->prognoseTelemetrieKonfiguriert()) {
$this->SetTimerInterval(
@@ -449,6 +457,10 @@ class Manager extends IPSModule implements ManagerSchnittstelle
$this->regeln((bool) $wert);
return;
case 'NetzfahrplanV4Senden':
$this->sendeNetzfahrplanV4();
return;
case 'PrognoseSenden':
$this->sendePrognoseTelemetrie();
return;