FHEM Forum

FHEM => Automatisierung => Thema gestartet von: axel.mohnen am 05 November 2014, 13:41:40

Titel: Fakelog mit DBLOG
Beitrag von: axel.mohnen am 05 November 2014, 13:41:40
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
Titel: Antw:Fakelog mit DBLOG
Beitrag von: marvin78 am 05 November 2014, 13:45:15
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.
Titel: Antw:Fakelog mit DBLOG
Beitrag von: axel.mohnen am 05 November 2014, 13:54:27
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
Titel: Antw:Fakelog mit DBLOG
Beitrag von: marvin78 am 05 November 2014, 14:08:59
Warum musst du updaten? Könntest du die Daten nicht kumulieren oder ggf. ein Delta bilden?
Titel: Antw:Fakelog mit DBLOG
Beitrag von: axel.mohnen am 05 November 2014, 14:44:52
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? 
Titel: Antw:Fakelog mit DBLOG
Beitrag von: marvin78 am 05 November 2014, 14:49:43
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.
Titel: Antw:Fakelog mit DBLOG
Beitrag von: axel.mohnen am 05 November 2014, 15:00:27
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 ;-)
Titel: Antw:Fakelog mit DBLOG
Beitrag von: axel.mohnen am 06 November 2014, 11:31:39
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