Hallo,
ich habe in meinem Archiv einige Variablen mit ein paar Ausreißern. Ich vermute an irgendeinem Tag in den letzten 10 Monaten war mal der Wert zwischendurch 0 oder so.
Gibt es einen Weg EINFACH den fehlerhaften Wert zu finden?
Hallo,
ich habe in meinem Archiv einige Variablen mit ein paar Ausreißern. Ich vermute an irgendeinem Tag in den letzten 10 Monaten war mal der Wert zwischendurch 0 oder so.
Gibt es einen Weg EINFACH den fehlerhaften Wert zu finden?
Es gibt ein Modul ArchivedatenAnomalien aber ich meine nur für Daten vom Typ Zähler.
Ralf
Danke. Damit habe ich es leider nicht geschafft. Ich überlege eine Funktion zu schreiben, die die CSV Daten nach Unnregelmäßigkeiten durchsucht.
Habe ein Script geschrieben. Das hat bei einer der beiden fehlerhaften Variablen auch zwei Stellen gefunden. Die habe ich in der CSV aufgeräumt und neu aggregiert. Ohne Erfolg.
Hi Tobias,
wenn du die Rohdaten und das Script hier teilen magst kann bestimmt jemand helfen.
Grüße in die Nachbarschaft
Volker
Hier das Script:
<?php
$basis = 'C:\programdata\Symcon\db\\';
$datei = '\32810.csv';
//$datei = '\13616.csv';
$ordner=array(
'2023\06','2023\07','2023\08','2023\09','2023\10','2023\11','2023\12','2024\01',
'2024\02','2024\03','2024\04','2024\05','2024\06','2024\07','2024\08','2024\09',
'2024\10','2024\11','2024\12','2025\01','2025\02','2025\03','2025\04','2025\05',
'2025\06','2025\07','2025\08','2025\09','2025\10');
//$ordner=array('2023\06');
$old=0;
foreach($ordner as $ort){
$pfad = $basis.$ort.$datei;
if(file_exists($pfad)){
echo $pfad."\n";
if (($handle = fopen($pfad, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 100, ",")) !== FALSE) {
if(isset($data[1])){
//echo $data[1] . "\n";
if($data[1]<$old){
echo $data[1]."---FEHLER---";
}
$old=$data[1];
}
}
fclose($handle);
}
}
}
Rohdaten sind ~20 MB und möchte ich zumindest nicht öffentlich teilen. Wenn jemand konkret reinsehen will, würde ich sie per PN senden.
Wieso hast Du so gigantisch negative Werte? Hast Du schon 1GWh eingespeist? Für Zähler sollten die Werte immer größer werden nicht kleiner. Das ist auch die Voraussetzung für das Modul.
Ralf
Das ist ein reiner Bezugszähler. Alle Werte sind positiv. Das ist ja gerade das Problem, dass ich suche und versuche zu lösen.
Der Ausreisser sieht von der Zahlenfolge schwer nach Beteiligung von PHP_INT_MIN aus. Ich weiß, das hilft jetzt nicht direkt weiter …
Ich hab auch mal manuel im Archiv gelöscht und nichts ist passiert. Nach einem Tipp hier im Forum dann aggregiert. Und siehe da… …es war weg.
Aber jedesmal und alles suchen/löschen/aggregieren ist vieeeel arbeit. Daher wäre es super wenn es da was geben würde, evt. auch ganz automatisch.
Jan
Aggregiert habe ich natürlich.
Aber der Fehler ist gefunden. Das ist der minimale Wert des Standardprofils ‘~ActiveEnergy.KNX’
Wirklich brauchbar sind diese Grenzwerte bei einem Zähler natürlich nicht, da er je nach Anzeigezeitraum vollkommen unterschiedlich ist.
Auf was für ein System läuft welche IPS Version?
Ralf
IP-Symcon 8.0, Windows (amd64), 26.08.2024, a934dd4e1b93