Ich drehe mich im Kreis und schnalle nicht, warum das nicht funktioniert
Ich erstelle diese Variablen innerhalb der Klasse
?php
class WPLUX extends IPSModule
{
private $updateTimer;
private $start_kwh_in;
private $start_value_out;
In dieser Funktion dann möchte ich die Variablen befüllen und auch wieder abfragen
private function calc_jaz(string $mode, float $value_out)
{
// Berechnung des JAZ-Faktors
$jazVisible = $this->ReadPropertyFloat('kwhin');
$jazfaktorVariableID = @$this->GetIDForIdent('jazfaktor');
if ($mode == 'jaz' && $jazVisible !== 0 && IPS_VariableExists($jazVisible) && $jazfaktorVariableID !== false)
{
$kwh_in = GetValue($this->ReadPropertyFloat('kwhin'));
$this->SendDebug("JAZ", "Variablen zur Berechnung: start_kwh_in: ".$this->start_kwh_in." start_value_out: ".$this->start_value_out." kWh_in: ".$kwh_in." value_out: ".$value_out."", 0);
// Überprüfen, ob die Instanzvariablen bereits initialisiert wurden
if ($this->start_kwh_in === null || $this->start_value_out === null)
{
// Initialisierung der Instanzvariablen
$this->start_kwh_in = $kwh_in;
$this->start_value_out = $value_out;
$this->SendDebug("JAZ", "Variablen wurden abgeglichen (sollte nur einmalig passieren) Eingang: ".$this->start_kwh_in." Ausgang: ".$this->start_value_out."", 0);
}
$kwh_in_Change = $kwh_in - $this->start_kwh_in;
$value_out_Change = $value_out - $this->start_value_out;
if ($kwh_in_Change != 0) // Überprüfen, ob der Wert von $kwh_in_Change nicht 0 ist, um eine Division durch 0 zu verhindern
{
$jaz = $value_out_Change / $kwh_in_Change;
$this->SetValue('jazfaktor', $jaz);
$this->SendDebug("JAZ", "JAZ-Faktor: ".$jaz." wurde durch 'calc_jaz' berechnet (seit Reset)): Eingangsenergie: ".$kwh_in_Change." und Ausgangsenergie: ".$value_out_Change." und in die Variable ausgegeben", 0);
}
else
{
$this->SetValue('jazfaktor', 0);
$this->SendDebug("JAZ", "Der JAZ-Faktor konnte noch nicht berechnet werden da die Wertänderung noch nicht stattgefunden hat", 0);
}
}
}
Warum nur kommt beim nächsten Aufruf immer ‚null‘ zurück, obwohl ich im Debug sehe dass die Werte hier
$this->start_kwh_in = $kwh_in;
$this->start_value_out = $value_out;
synchronisiert wurden