Fakelog mit DBLOG

Begonnen von axel.mohnen, 05 November 2014, 13:41:40

Vorheriges Thema - Nächstes Thema

axel.mohnen

Hallo Fhem'ler,

ich habe eine Methode geschrieben (myUtils) die mir ein Reading vom Stromzähler (SMLUSB) ausliest und pro Monat einen Eintrag in DBLOG Tabelle "HISTORY" schreibt.
Ziel ist ein Jahres-Balkendiagram der die kumulierten Werte pro Monat anzeigt.

Frage:
Kann ich einen Fake DBLOG/SVG anlegen (wie bei Filelog) ohne direkten Bezug auf ein Device?

Vielen Dank im Voraus

Viele Grüsse
Axel

marvin78

Ich habe für solche Fälle ein/mehrere dummy-Device(s). Dort schreibe ich readings rein (statt sie direkt zu loggen) und das loggen übernimmt FHEM. Dann gibt es auch keine Probleme bei einem Plot für das Device:reading.

axel.mohnen

Hallo Marvin78,

danke für deinen Hinweis. Das Problem ist (habe ich nicht genau genug beschrieben), ich möchte nicht nur einmal pro Monat einen Eintrag in die DB schreiben, sondern mehrmals pro Monat den aktuellen DB Eintrag "updaten".

Soweit ich weiss schreibt DBLOG immer einen neuen Eintrag in die DB wenn sich das Reading ändert.

Gruss Axel

marvin78

Warum musst du updaten? Könntest du die Daten nicht kumulieren oder ggf. ein Delta bilden?

axel.mohnen

Um ein Jahres-Balkendiagram (fixedrange = YEAR) zugenerieren, darf ich nur einen Eintrag pro Monat haben, ansonsten werden immer "Stufen" im SVG ausgegeben.
So war es es mit Filelog deshalb bin auf DBLOG gewechselt und meine eigene Methode geschrieben die den letzten Logeintrag updaten kann.

Gibts dafür einen "einfacheren" Lösungsansatz? 

marvin78

#5
Genau das ist doch mit meiner oben beschriebenen Lösung möglich. Wenn du bspw. täglich einen Wert im Reading x hast, kumulierst du die Werte im Reading y und schreibst am letzten Tag eines Monats den Gesamtwert z in das Dummy (y setzt du wieder zurück auf 0). Somit schreibst du z nur einmal pro Monat und kannst dieses Reading dann im Plot verwenden.

So mache ich das aktuell auch mit dem Ernergieverbrauch in meinem Büro um meiner Frau anschaulich zu beweisen, dass das nur einen Bruchteil ihrer Lampen für die Reptilien ausmacht ;)

Edit: Es muss nichteinmal ein Dummy sein. Man kann die Readings auch direkt ins Device schreiben.

axel.mohnen

Da bist du schon weiter wie ich,meine Frau hat die Vorteile von Fhem noch nicht erkannt ;-)

Die Lösung die du beschieben zeigt den "Balken" für den aktuellen Monat nur am Ende des Monats. Ich möchte aber die Werte in Echtzeit im Chart sehen.
Ich hoffe ich habe mir nicht zuviel zugemutet ;-)

axel.mohnen

ich habe eine Lösung gefunden:
- DUMMY Device definiert ohne readings
- DBLOG Device definiert mit Link zum DUMMY Device und FAKE Reading
- SVG Plot angelegt mit link im DBLOG
- GPLOT file nicht mit SVG-Editor schreiben sondern manuell!! Der SVG-Editor gibt mir nicht die Fake Vorschlagswerte im Drop-Down-List für Device:Reading.
Keine Ahnung wo die Vorschlagswerte gelesen werden, bei mir werden die readings vom Stromzähler angezeigt die ich eigentlich in einem anderen DBLOG definiert habe. Ich denke die Key-Werte werden aus der DB Tabelle History gelesen.

Grüss
Axel