FHEM Forum

FHEM - Hausautomations-Systeme => 1Wire => Thema gestartet von: Tweak am 06 Oktober 2014, 21:35:48

Titel: OWCount month,year Zähler mit dblog
Beitrag von: Tweak am 06 Oktober 2014, 21:35:48
Hallo,
Irgendwie will bei mir bei OWCount das Monats bzw das Jahreslog nicht klappen. Funktioniert das mit DBlog nicht? Oder muss man hierfür gesonderte Konfigurationen vornehmen?

Danke für eure Hilfe!

MFG
Titel: Antw:OWCount month,year Zähler mit dblog
Beitrag von: Spielmann am 16 Februar 2017, 12:25:37
Diese alte Frage beschäftigt mich derzeit auch. Der normale Tageslog wird auch in dblog generiert. Wie bekomme ich jedoch ein Konstrukt zusammen, dass der Monats- und Jahreslog über die Attribute logM und logY ein Eintrag in dblog anstatt filelog erzeugt? Erstaunlicherweise finde ich zu diesem Thema keine Beiträge im Forum, Wiki oder Literatur (Smart Home Hacks). Ich fände es schade, diesen bereits integrierten Monats- und Jahreslog nicht nutzen zu können und evtl. auf eine andere Lösung auszuweichen (z.B. Wiki Thema Stromzähler und 1-Wire mit dummy und 99_myUtils Konstruktionen)

Gruß
Spielmann
Titel: Antw:OWCount month,year Zähler mit dblog
Beitrag von: Prof. Dr. Peter Henning am 17 Februar 2017, 13:29:49
Das liegt an der Art und Weise, wie OWCOUNT am Ende des Monats/Jahres die Gesamtsumme berechnet: Durch Einlesen der existierenden (und per Attribut LogM und LogY bekannt gemachten) Logdateien. Das lässt sich sicher so verallgemeinern, dass es auch alte Logeinträge in der dbLog liest - allerdings habe ich im Moment sehr viele andere Baustellen.

Zwei workarounds:

1. Monatslog und Jahreslog nicht nur in der dbLog führen, sondern parallel in einer Datei
2. Andere Möglichkeit zur Summation der Monatsdaten nutzen, dafür gibt es mehrere Module.

LG

pah
Titel: Antw:OWCount month,year Zähler mit dblog
Beitrag von: tschirch am 09 März 2017, 10:55:59
Hallo, ich habe noch eine dritte Möglichkeit zu P. Hennings Vorschlägen. Ist mit wenig Aufwand und ohne Änderung am Modul machbar.
Ich benutze das notify mit der regExp auf Zählername.day.* bzw. auf Zählername.month.* . Durch das notify-Modul landen alle Textstücke des day oder month readings durchnummeriert in $EVTPART0, $EVTPART1 usw. Die Zahlenwerte stehen in diesem Fall in $EVTPART3, $EVTPART6, $EVTPART9 und $EVTPART12. Diese Werte kann man im notify-Befehlsteil benutzen zum Setzen des state eines dummy: z.B. set Zaehler1_day $EVTPART3 . Das dummy muss natürlich vorher definiert worden sein. Zuguterletzt muss man das dblog auf dieses dummy ansetzen.
Beschrieben habe ich hiermit nur den Zahlenwert. Man kann natürlich zum Verschönern auch die Bezeichnung und die physikalische Einheit in den String mit "hineinbasteln". Das kann jeder nach eigenen Bedürfnissen machen.

VG Steffen
Titel: Antw:OWCount month,year Zähler mit dblog
Beitrag von: Spielmann am 14 März 2017, 20:08:31
Dann stelle ich auch noch meine vierte einfache Möglichkeit vor. Ich zerlege auch das day und month reading (split Befehl) und lege lauter userReadings an. Diese landen somit automatisch im dblog. Hier mein userReading:
attr Zaehler userReadings day_gestern_Stromzaehler:day.* {(split ' ', ReadingsVal("Zaehler","day","")) [2]} ,\
day_kumuliertM_Stromzaehler:day.* {(split ' ', ReadingsVal("Zaehler","day","")) [5]} ,\
day_gestern_Wasseruhr:day.* {(split ' ', ReadingsVal("Zaehler","day","")) [8]/1000} ,\
day_kumuliertM_Wasseruhr:day.* {(split ' ', ReadingsVal("Zaehler","day","")) [11]/1000},\
month_letzterM_Stromzaehler:month.* {(split ' ', ReadingsVal("Zaehler","month","")) [2]} ,
month_kumuliertY_Stromzaehler:month.* {(split ' ', ReadingsVal("Zaehler","month","")) [5]} ,
month_letzterM_Wasseruhr:month.* {(split ' ', ReadingsVal("Zaehler","month","")) [8]/1000} ,
month_kumuliertY_Wasseruhr:month.* {(split ' ', ReadingsVal("Zaehler","month","")) [11]/1000},\
Stromz_gerundet { sprintf("%.1f", (ReadingsVal("Zaehler", "Stromzaehler", 0))) }


Gruß
Spielmann