Wie funktionier AC_GetLoggedValues?

Moin,
danke, jetzt läuft es.
Für n DAU in PHP ist das echt eine herausforderung.

Fehler 1: Mein Skript was werte füllt, schaffte das füllen mit in 0.2 Sekunden. Die Abfrage des TimeStamp haut dann natürlich alles weg.
Lösung: IPS_Sleep (1000); // pro Eintrag

Fehler 2: if ($logData[$i][‚Value‘] < 0.1){ …
Hier werden alle Temperaturen im minus Bereich gelöscht, unglücklich bei der Bodenfrostwarnung
Lösung: if ($logData[$i][‚Value‘] == 0){

Du hast mich mit deinen Skripten sehr glücklich gemacht, danke!!!

PS.
das Aggrieren übernehme ich auch, bei meiner Hardware (Xeon CPU, 64GB, SSD Raid 10) geht das aber eh ziemlich fix.
Und danke, jetzt kann ich noch besser arrys ansprechen - übernehme ich auch.

Hi,
bei 0 könntest Du Glück haben das es da keine Rundungsprobleme gibt.

Ralf

Hallo @bumaas ,

die Fehlermeldung „Output-Buffer exceeds Limit (1048576 bytes). Operation halted.“ bekomme ich auch, wenn meine Skritpe zum Archive korrigieren laufen.

Kann ich das Limit einfach hoch stellen?
Mein IP-Symcon Windows- Server hat aktuell 6 oder 8 GB RAM, könnte aber auch noch erweitern, das wäre kein Problem.

Was darf man da einstellen?

danke.

@bumaas,
das mit dem verschieben verstehe ich jetzt nicht. geht ja eher um den Buffer?

Es geht ja wohl um das Script hier und nicht um den Datenaustausch von Modulen.

Michael

HI, das Skript lief eigentlich seit Jahren ohne das ich es angefasst habe. jetzt nicht mehr. Vermutulich zuviel Daten in den Variablen?

Daher geht es eher mir um die Spezialschalter für den Buffer wegen der Meldung „Output-Buffer exceeds Limit (1048576 bytes). Operation halted." und ob ich den Buffer erhöhen kann damit skripte dieser Art wieder laufen.

Die Meldung kommt weil dein Skript mehr als 1MB Fehlermeldungen wirft.
Da gibt es nix zu erhöhen.

Der Spezialschalter war für den Datenaustausch von Modulen gedacht und wurde auch imho nie eingeführt.
Nicht umsonst ist der Beitrag unter PHP-Module (Entwicklung) .

Michael

@HarmonyFan , hat du eine Idee warum das Skript nicht mehr läuft?

Was sagt es bei Dir?

Moin,
Bei mir läuft es sei 3 Jahren ohne Probleme

15.09.2023 07:30:10 | 00000 | CUSTOM  | Zählerfilter        | Keller Dect200 - Multimeter (kWh) Zeit:2023-09-14 10:16:22 diff1:-0.0029999999999291 $diff2:-1449.312
15.09.2023 07:30:10 | 00000 | CUSTOM  | Zählerfilter        | Keller Dect200 - Multimeter (kWh) Zeit:2023-09-14 10:14:59 diff1:-1449.312 $diff2:1449.307
15.09.2023 07:30:10 | 00000 | CUSTOM  | Zählerfilter        | 10348: Fehlerhafte Werte:2
15.09.2023 07:31:10 | 00000 | CUSTOM  | Zählerfilter        | Küche Dect200 - Multimeter (kWh) Zeit:2023-09-14 10:15:35 diff1:-0.0010000000000332 $diff2:-381.209
15.09.2023 07:31:10 | 00000 | CUSTOM  | Zählerfilter        | Küche Dect200 - Multimeter (kWh) Zeit:2023-09-14 10:14:57 diff1:-381.209 $diff2:381.209
15.09.2023 07:31:10 | 00000 | CUSTOM  | Zählerfilter        | 46504: Fehlerhafte Werte:2
15.09.2023 07:31:20 | 00000 | CUSTOM  | Zählerfilter        | Klo Dect200 - Multimeter (kWh) Zeit:2023-09-14 10:15:56 diff1:-0.00099999999997635 $diff2:-572.484
15.09.2023 07:31:20 | 00000 | CUSTOM  | Zählerfilter        | Klo Dect200 - Multimeter (kWh) Zeit:2023-09-14 10:14:58 diff1:-572.484 $diff2:572.484

wie es soll. Hast du es Mal direkt in der console gestartet? Bei mir läuft es jede Nacht automatisch und auch nur über die letzten Werte.

Ralf

Hi,
aus eigener Erfahrung habe ich noch gemerkt das man die Routine filter_variable NIE auf normale Werte wie Momentanleistung anwenden darf da es kein Zähler ist. Um das zu verhindern prüfe ich jetzt in der Routine ob die Variable vom Typ Zähler ist. Einfach den Anfang der Filterroutine durch Folgendes ersetzen:

function filter_variable($ArchiveID, $VariableID) {

    if (AC_GetAggregationType($ArchiveID, $VariableID) == 0) return;

//Alle Datensätze der letzten Stunden abfragen

Ralf