FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: gent am 25 Mai 2022, 23:09:34

Titel: DBLog Current in History schreiben
Beitrag von: gent am 25 Mai 2022, 23:09:34
Hi,

ich habe in meiner Current-Table noch Werte, die einen ziemlich alten Timestamp haben. Wie kann ich denn dafür sorgen, dass die Current-Table-Rows in die History-Table übertragen werden? Oder muss ich das per insert into select... machen?

LG, Holger
Titel: Antw:DBLog Current in History schreiben
Beitrag von: gent am 30 August 2022, 19:47:58
Hat niemand eine Antwort hierzu? Ich kann doch nicht der einzige sein, der das sieht?

LG
Titel: Antw:DBLog Current in History schreiben
Beitrag von: betateilchen am 30 August 2022, 20:09:42
Falscher Forumbereich für Deine Frage und außerdem ist die Frage an sich sehr merkwürdig.
Warum sollten die Werte in der current-Tabelle nicht schon in der history-Tabelle vorhanden sein?
Wenn das wirklich so ist, wäre das ein inkosistenter Zustand und Du solltest die Fehlerursache dafür auf Deinem System suchen.

Generell sollten alle Werte, die in "current" stehen, auch in "history" vorhanden sein und müssen nicht manuell dorthin übertragen werden.
Titel: Antw:DBLog Current in History schreiben
Beitrag von: gent am 01 September 2022, 20:08:21
Wenn die Frage mal genau gelesen worden wäre, wäre sie auch nicht merkwürdig: Ich weiß, dass es ein inkonsistenter Zustand ist und ich bin mir auch bewusst, wie das passiert sein kann. Ich wollte nur wissen, ob es einen Befehl im DBLog Modul dafür gibt oder ob ich die Werte per "Insert into Select" in die history Tabelle übertragen muss (sofern sie mich überhaupt noch interessieren).

ZitatGenerell sollten alle Werte, die in "current" stehen, auch in "history" vorhanden sein und müssen nicht manuell dorthin übertragen werden.

Ich würde mir zur Verifizierung, dass es sich nicht alleine um meine current-Tabelle handelt, wünschen, dass andere sich mal die current Tabelle genauer ansehen. Da werde ich sicherlich nicht der Einzige sein, der da Einträge findet, die einen Timestamp haben, der älter ist als z.B. der aktuelle Tag.
Titel: Antw:DBLog Current in History schreiben
Beitrag von: betateilchen am 02 September 2022, 11:59:33
Zitat von: gent am 01 September 2022, 20:08:21
Da werde ich sicherlich nicht der Einzige sein, der da Einträge findet, die einen Timestamp haben, der älter ist als z.B. der aktuelle Tag.

Da bist Du sicherlich nicht der Einzige, aber die Tatsache, dass der Timestamp in der current-Tabelle älter als der aktuelle Tag ist, ist an sich ja erstmal nicht falsch.

Die current-Tabelle enthält den aktuellsten Wert eines readings, der zuletzt geloggt wurde. Der bleibt so lange in der Tabelle, bis ein neuerer Wert kommt. Auch in meiner current-Tabelle gibt es Werte, die schon mehrere Monate "alt" sind. Für mich ist das völlig normal. Aber ich habe ja auch das Funktionsprinzip dieser Tabelle verstanden.
Titel: Antw:DBLog Current in History schreiben
Beitrag von: betateilchen am 02 September 2022, 12:03:45
Zitat von: gent am 01 September 2022, 20:08:21
Ich wollte nur wissen, ob es einen Befehl im DBLog Modul dafür gibt oder ob ich die Werte per "Insert into Select" in die history Tabelle übertragen muss

Wenn überhaupt, würde ich eine solche Möglichkeit eher in DbRep suchen statt in DbLog. DbRep bietet zumindest die Möglichkeit, die current-Tabelle zu leeren oder auch die current-Tabelle mit einem Extrakt aus der history-Tabelle vorzubelegen. Außerdem kann DbRep auch SQL-Befehle direkt ausführen.

commandref lesen könnte helfen.
Titel: Antw:DBLog Current in History schreiben
Beitrag von: Guybrush am 03 September 2022, 13:50:06
also meinem verständnis nach geht es hier nur um eine einmalige Übertragung der Werte aus current nach history, da current nicht mehr benutzt wird?

dann ist das aber der falsche Ort hier und sollte direkt in der mysql shell gemacht werden.

deine überlegungen waren insoweit ja schon richtig:

insert into history select * from current;


sowas einmaliges in fhem umzusetzen dürfte um zig faktoren aufwendiger sein, dass man da nicht einmal drüber nachdenken sollte. sowas lohnt sich nur, wenn es wiederkehrend zu machen wäre, was aber von der dblog struktur her unsinnig wäre, da die werte ohnehin drin stehen sollten. wenn du nicht sicher bist, ob die werte in der history Tabelle nicht doch schon enthalten sind, dann müsstest du das noch mit einem left join auf die history table versehen

Titel: Antw:DBLog Current in History schreiben
Beitrag von: gent am 09 September 2022, 20:17:59
Zitat von: betateilchen am 02 September 2022, 11:59:33
Da bist Du sicherlich nicht der Einzige, aber die Tatsache, dass der Timestamp in der current-Tabelle älter als der aktuelle Tag ist, ist an sich ja erstmal nicht falsch.

Die current-Tabelle enthält den aktuellsten Wert eines readings, der zuletzt geloggt wurde. Der bleibt so lange in der Tabelle, bis ein neuerer Wert kommt. Auch in meiner current-Tabelle gibt es Werte, die schon mehrere Monate "alt" sind. Für mich ist das völlig normal. Aber ich habe ja auch das Funktionsprinzip dieser Tabelle verstanden.

Ja, ich aber nicht. Daher die Frage im Anfängerbereich. Ich würde jetzt mal ganz provokant die Frage stellen: Wo bitte schön kann ich mich über das "Funktionsprinzip dieser Tabelle" informieren

Und hier sind wir wieder bei dem ewigen Problem von FHEM: "Wenn Du keine Ahnung hast, lies Dir doch einfach dröfltausend Forenbeiträge durch, dann checkst Du das schon irgendwann". Anstatt einmal zu jedem Modul eine vernünftige Erklärung zu schreiben.

Mir hätte einfach diese Information - nachzulesen z.B. in der Commandref - völlig gereicht:

Zitat
Die current-Tabelle enthält den aktuellsten Wert eines readings, der zuletzt geloggt wurde. Der bleibt so lange in der Tabelle, bis ein neuerer Wert kommt.

Warum steht so etwas nicht einfach mal in der Modulbeschreibung?
Titel: Antw:DBLog Current in History schreiben
Beitrag von: betateilchen am 11 September 2022, 17:27:55
Zitat von: gent am 09 September 2022, 20:17:59
Mir hätte einfach diese Information - nachzulesen z.B. in der Commandref - völlig gereicht:

Warum steht so etwas nicht einfach mal in der Modulbeschreibung?

Tut es doch...

ZitatThe database contains two tables: current and history.
The latter contains all events whereas the former only contains the last event for any given reading and device.