Logging Werte extreme Ausreisser?

Guten Morgen,
ich habe bei meinen Logging Werten des Z-Wave Energiezähler des öfteren extreme Ausreisser?
Anbei ein Screenshot.

Liegt das am Qubino?
Hat jemand eine Idee wie ich dieses Problem beheben kann?

Danke für die Info!

Das Problem kenne ich.
Ich habe folgendes Skript unterhalb der kWh-Zähler Variable liegen.

$maxchange = 2.0; // Maximale zuname des Wertes
$delnegchange = FALSE; // Lösche Wert der kleiner ist als die vorherige
$debug = FALSE; // Debug Ausgabe - echo
$setvalue = FALSE; // Variable wird auf alten Archivwert gesetzt - dabei wird ein neuer Archiveintrag erzeugt
$corcounter = TRUE; // Zähle wie oft korrigiert wurde

// ------------------ Ende Config ---------------------------------------------------------

$ArchiveList = IPS_GetInstanceListByModuleID("{43192F0B-135B-4CE7-A0A7-1475603F3060}"); // Archivinstanzen abrufen
$ArchiveID = $ArchiveList[0]; // !!! Es wird die erste gefundene Archivinstanz verwendet
$Start = new DateTimeImmutable('Now');
$Start = $Start->modify('-1 day');
$starttime = strtotime($Start->format('Y-m-d H:i:s'));
$endtime = strtotime('Now');
$VariableID = IPS_GetParent($_IPS['SELF']) /* ID der Variablen im Archive */;

// Datensätze gestern bis jetzt abfragen
$logData = AC_GetLoggedValues($ArchiveID, $VariableID,  $starttime,$endtime, 0); 

// Anzahl der Werte
$entries = count($logData);

if($debug){
    echo "Werte: ".$entries.PHP_EOL;
    echo "Archiv 0: ".$logData[0]['Value'].PHP_EOL;
    echo "Archiv 1: ".$logData[1]['Value'].PHP_EOL;
    echo "Aktuell: ".GetValueFloat($VariableID).PHP_EOL;
    }

if ($entries > 1){
    $diff = $logData[0]['Value']-$logData[1]['Value'];
    if($debug){echo "Differenz: ".$diff.PHP_EOL;}
    if ($diff>$maxchange){
        echo "Wertänderung zu groß - Lösche Wert";
        AC_DeleteVariableData($ArchiveID, $VariableID,$logData[0]['TimeStamp'] ,$logData[0]['TimeStamp']);
        AC_ReAggregateVariable ($ArchiveID, $VariableID);
        if($setvalue){SetValueFloat($VariableID,$logData[1]['Value']);}
        // Korrekturzähler
        if ($corcounter){
            $corrections = ReadInteger("Korrekturen");
            $corrections ++;
            WriteInteger("Korrekturen",$corrections);
        }
    }
    if ($delnegchange === TRUE and $diff < 0 ){
        echo "Wertänderung negativ - Lösche Wert";
        AC_DeleteVariableData($ArchiveID, $VariableID,$logData[0]['TimeStamp'] ,$logData[0]['TimeStamp']);
        AC_ReAggregateVariable ($ArchiveID, $VariableID);
        if($setvalue){SetValueFloat($VariableID,$logData[1]['Value']);}
        // Korrekturzähler
        if ($corcounter){
            $corrections = ReadInteger("Korrekturen");
            $corrections ++;
            WriteInteger("Korrekturen",$corrections);
        }
    }
}

function ReadInteger($Name)
    {
    $result = preg_replace("/[^a-zA-Z0-9]+/", "", $Name);
	$varID = @IPS_GetObjectIDByIdent($result, $_IPS['SELF']);
    if ($varID == FALSE){
        WriteInteger($Name,0);
        $value = 0;
    }
    else{
    $value = GetValueInteger($varID);
    }
    return $value;
    }

function WriteInteger($Name, $Value)
	{
    $result = preg_replace("/[^a-zA-Z0-9]+/", "", $Name);
	$varID = @IPS_GetObjectIDByIdent($result, $_IPS['SELF']);
 	
 	if ($varID == FALSE){
		$varID = IPS_CreateVariable(1); //Integer
 		IPS_SetName($varID, $Name); // Variable benennen
		IPS_SetParent($varID, $_IPS['SELF']); // Variable einsortieren unter dem Objekt mit der ID "12345"
		IPS_SetIdent ($varID, $result);
   	}

	SetValueInteger($varID,$Value);
}

Auf dem Skript liegt dann ein Ereigniss, welches das Skript bei jeder Änderung der Variable startet.

Ich hätte solche Filter gerne nativ in Symcon aber bis es sowas gibt, behelfe ich mir so.

Grüße
Stefan

Hi Michl,
ich habe vor 3-4 Wochen meine letzten beiden Z-Wave Strommesssteckdosen rausgeschmissen weil die es auch gemacht haben. Ich hatte vorher auch eine Filterroutine drin die einmal Nachts die Werte kontrollierte. Das Script hatte ich auch im Forum gepostet und müsste mit dem Suchbegriff Median zu finden sein.

Ich weiß nicht ob es an Z-Wave selbst oder an schlechter Firmware der Steckdosen liegt/lag.

Ralf

Danke für die Info.
Ich werde das Script testen.