Bestimmte Werte aus dem Archiv abfragen

Hallo Leute,

ich weiß gar nicht so recht, ob ich in diesem Unterforum richtig bin, ggf. bitte verschieben…

Ich würde gerne aus der logging.db bzw. aus den geloggten Daten meiner IP-Symcon Variable einen bestimmten Datensatz abfragen. Dieser sollte der neueste Datensatz mit dem Wert 0 sein. Von diesem benötige ich dann den TimeStamp, um mir herauszurechnen, wie lange die Variable schon nicht mehr den Wert 0 hat.

Ich weis, dass ich mir die Daten mit AC_GetAggregatedValues() bzw. AC_GetLoggedValues() abfragen kann und in diesen dann den letzten Datensatz mit dem Wert 0 heraussuchen kann. Mein Problem ist hier, dass ich allerdings einen fixen Zeitraum einstellen muss. Wenn der Zeitraum zu groß ist, kann dies auf die Performance gehen. Ist Zeitraum zu klein, so kann es sein, das kein einziger 0er dabei ist.

Mit SQL würde ich mein Problem whs. mit folgender Query lösen:


SELECT *
FROM archiv.variable
WHERE value == 0
ORDER BY TimeStamp DESC LIMIT 1;

Somit sind meine Fragen:
Wie kann ich mit den neuesten Datensatz meiner Variable mit dem Wert 0 aus der Datenbank herausholen?
Kann ich vielleicht direkt meine SQL - Query benutzen, da das Archiv sowieso eine SQL-Lite DB ist? Wenn ja, wie?
Oder gibt es andere Möglichkeiten die Daten aus dem Archiv abzufragen?

Danke schonmal im Vorhinein für eure Antworten.

lg RudiSym

Hi,
leider gibt es keine Möglichkeit eine Abfrage über das Archiv abzubilden.

Eine Alternative wäre, dass du eine weitere Variable erstellst, welche die Zeitstempel erfasst, an denen der Wert Null auftritt.

Dazu kannst du eine neue Integer Variable erstellen, an welchem ein Ereignis hängt.
Die Konfiguration sollte auf Bei Wert = 0 gestellt sein und der Haken bei „Nachfolgende Ereignisse“ gesetzt sein.
Der Quellcode für die Aktion könnte wie folgt aussehen:


SetValue($_IPS['TARGET'], time());

Dadurch hast du alle Zeitstempel, welche dem Suchkriterium entsprechen, in einer eigenen Abfrage zur Verfügung.

paresy

Hallo paresy,

Danke für die Hilfe.
Mit deinem workaround hat es super funktioniert.
Schade allerdings das man auf das Archiv nicht mehr Zugriff hat.

RudiSym