Archivumbau zur 5.5

Moin Niels,

danke, dann herrscht hier schon mal Klarheit :slight_smile:

Wo kommen jetzt eigentlich die Deadlocks her? Bisher hattest du die (hauptsächlich kosmetische) Meldung, dass das Schreiben mehrfach erfolgt und halt der eine Datensatz, der erst später dazukommt.

Also kann man die Meldungen dass erneut versucht wird den Satz zu schreiben ignorieren oder?

Warning:  boost::filesystem::rename: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: "C:\ProgramData\Symcon\db/2021/03/_11001.csv", "C:\ProgramData\Symcon\db/2021/03/11001.csv" in C:\ProgramData\Symcon\scripts\51765.ips.php on line 300

Was ist denn mit diesen Meldungen? Mal kann er temporäre Dateien nicht umbenennen und manchmal nicht löschen - die Stochastik ist geblieben. Die obige Meldung kam direkt nach einem AC_AddLoggedValues, d. h. es sollte ein Wert zugefügt werden aber ein anderer Prozess wollte die Datei umbenennen (ich war das nicht) :wink:

Den Defender habe ich auch mal probeweise ausgeschaltet. Dann verliert allerdings die Konsole vollständig die Verbindung und startet neu :roll_eyes:

Gruß
Hans

Das rename ist das AC_AddLoggedValues. Das klappt allerdings nicht, da irgend ein Prozess die Datei belegt. Technisch wird im Hintergrund eine neue Datei mit den Werten angelegt (_11001.csv). Wenn die dann fertig ist, wird die alte 11001.csv gelöscht und die _11001.csv zu 11001.csv umbenannt. Und das klappt halt nicht. Da die Datei mit _ gerade neu dazugekommen ist, ist diese natürlich ein Kandidat für Virenscanner und dergleichen um sich die mal anzuschauen.

Moin Niels,

ich habe die Datenübernahme jetzt mit ausgeschaltetem Defender - alle Einstellungen für Viren- und Bedrohungsschutz auf aus - durchgeführt. Auch diesmal kamen die Meldungen mit bis zu 9 Versuchen. Wie lange ist denn eure Pause. Ich verzögere das jetzt jeweils mit 5 s, wenn AC_AddLoggedValues fehlschlägt.

Für die Virenscanner Problematik spricht, dass sie die Stochastik erklären würde, da es ja immer andere Variablen betrifft. Vielleicht lässt sich der Defender nicht wirklich ausschalten.

Ich werde jetzt alle AC_AddLoggedValues abfangen und bis zu 2-mal 5 s warten. Sollte das auch nicht helfen, dann werde ich die Übernahme wieder wie früher auf die direkte Erzeugung der csv-Dateien umstellen. So hatte ich es auch vor der V5.5 bei den Sportdaten und da hat es nie ein Problem gegeben. Bei der Technik werden auch keine csv-Dateien gelöscht (nur beim Start) oder umbenannt.

Gruß
Hans

Moin Niels, moin paresy,

ich muss nochmals auf dieses Thema zurückkomen.

Ich wollte aus Energieverbrauchswerten mittels AC_AddLoggedValues die entsprechenden Kosten loggen. Auf dem schnellen Entwicklungssystem lief das durch. Auf dem langsameren Produktivsystem kam es massenhaft zu diesem bekannten Fehler.

Warning: boost::filesystem::rename: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: "C:\ProgramData\Symcon\db/2021/05/_59714.csv", "C:\ProgramData\Symcon\db/2021/05/59714.csv" in C:\ProgramData\Symcon\scripts\26042.ips.php on line 42
20.05.2021 11:14:59 -> 1710,459899414 -> 513,14 

Warning: boost::filesystem::rename: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: "C:\ProgramData\Symcon\db/2021/05/_59714.csv", "C:\ProgramData\Symcon\db/2021/05/59714.csv" in C:\ProgramData\Symcon\scripts\26042.ips.php on line 42
20.05.2021 11:19:55 -> 1710,566599609 -> 513,17 

Von den 12.700 Sätzen die erzeugt hätten müssen wurden nur 4.300 Sätze angelegt. Ich kann mir beim besten Willen nicht vorstellen, dass dieser Part in IPS wirklich komplett ok ist.

Gruß
Hans

Moin,

es scheint tatsächlich der Win 10 Virenscanner zu sein. Der Antimalware Service Executeable und IPS belegen jeweils 30 % der CPU während das Skript ausgeführt wird. Ist das Skript fertig belegt der Antimalware Service Executeable weniger als 1 %.

Also werde ich den Fehler wieder abfangen und entsprechende Wartezeiten einbauen.

Nachtrag: Es ist mir eben gelungen, den Echtzeitschutz für die Laufzeit des Skriptes zu deaktivieren und alle Datensätze wurden komplett ohne Fehlermeldungen ausgegeben.

Gruß
Hans

Zur Archiv-Funktion hätte ich gleich mal eine Frage.

Ich schlage mich aktuell gerade mit einem, eigentlich trivialen Problem herum.
Ich möchte in Higcharts den „Ein/Aus“-Status von diversen Schaltern abbilden
(konkret geht es aktuell um die Überwachung der Pool-Desinfektion)

Da im Archiv ja immer nur der „veränderte“ Wert abgespeichert wird, sieht die Abbildung in Highcharts leider immer sehr blöd aus, da Ein- und Ausschaltzeitpunkt immer als schräge Linie abgebildet werden. Nun dachte ich mir, kein Problem, schreibst Du eben bei Änderung der Variable erst den alten und nach einer Sekunde den neuen Wert in eine Variable.
Funktioniert nur leider nicht, weil mit der Archiv-Funktion die Variable eben immer nur einen verändeten Wert speichert.

Habt Ihr da evtl nen Tip für mich?
Vielen Dank schon mal
Jens

Hallo Jens,

du könntest für deine Highcharts die aggregierten Werte verwenden, diese haben dann auch jede Stunde etc. den gleichen Wert, wenn sich nichts ändert. Alternativ müsstest du dir die geloggten Daten für dein Highchart auslesen und dann wie von dir beschrieben anpassen, bevor du sie zu Highcharts weiterreichst.

Das geht auch direkt in Highcharts mit senkrechter Linie bei Bool.
Es ist zwar schon eine Ewigkeit her dass ich mich damit beschäftigt habe aber soweit ich mich erinnere gibt es dafür den Parameter
$serie[‚type‘] = „area“;
Weiteres ist besser im Highcharts Bereich aufgehoben, denn hier ist es mehr OT.

Vielen Dank,

der Type „area“ konnte das Problem leider auch nicht lösen. (verm. liegts an mir)
Ich habe mich aber zwischenzeitlich damit beholfen, dass ich die Variable auf „Float“ umgestellt habe und beim Einschalten von 0.00 → 0.01 → 1.00 und beim Ausschalten von 1.00 → 0.99 → 0.00 gehe.
So ändert sich der Wert, wenn auch geringfügig und läuft ins Archiv rein und der Graph sieht schön eckig aus :slight_smile:

Vielen Dank für Deinen Tip

Dann war es außer „area“ noch etwas zu zusätzlich. Aber es geht!
Mein Poolchart:

PS: ggf mach ein neues Thema unter Highcharts auf