Autor Thema: OWCount month,year Zähler mit dblog  (Gelesen 779 mal)

Offline Tweak

  • Full Member
  • ***
  • Beiträge: 155
OWCount month,year Zähler mit dblog
« 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

Offline Spielmann

  • Jr. Member
  • **
  • Beiträge: 81
Antw:OWCount month,year Zähler mit dblog
« Antwort #1 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
FHEM mit Raspi
CCU2 mit diversen Komponenten und HMCCU
Siemens LOGO8 mit S7
1Wire Basteleien
Diesel-Tankstelle mit iButton, fhem, Arduino  (eine ewige Baustelle)

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4853
Antw:OWCount month,year Zähler mit dblog
« Antwort #2 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

Offline tschirch

  • New Member
  • *
  • Beiträge: 7
Antw:OWCount month,year Zähler mit dblog
« Antwort #3 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
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Spielmann

  • Jr. Member
  • **
  • Beiträge: 81
Antw:OWCount month,year Zähler mit dblog
« Antwort #4 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
« Letzte Änderung: 14 März 2017, 20:12:00 von Spielmann »
FHEM mit Raspi
CCU2 mit diversen Komponenten und HMCCU
Siemens LOGO8 mit S7
1Wire Basteleien
Diesel-Tankstelle mit iButton, fhem, Arduino  (eine ewige Baustelle)