OWCOUNT Kein Mitternachtswert im Tageslog und Fehlermeldung wenn A/BName gesetzt

Begonnen von Burkhard, 16 Oktober 2015, 18:44:55

Vorheriges Thema - Nächstes Thema

Burkhard

Guten Abend,

Wenn ich Namen für AName und BName setzte und die Counter abfrage, dann bekomme ich folgende Fehlermeldung:

OWCOUNT: Could not get values from device DualCounter, reason: OWCOUNT: Could not get values from device DualCounter, reason: no return from OWServer for counter.Test

und es werden dann auch keine Einträge in das Tageslog geschrieben, sondern erst wieder wenn ich das Attribut BName/AName lösche.
Hier im Forum habe ich eine Aussage von Prof. Dr. Henning dazu gefunden. (http://forum.fhem.de/index.php/topic,27932.msg208690.html#msg208690) Ansonsten keine weiteren Hinweise, weder im Forum noch im Netz.

Des weiteren fehlt in meinem Tageslog die Tagessumme gegen Mitternacht. Also kann ich auch nichts mit .*day.* filtern.
Die letzte Eintragung im Tageslog sieht immer so aus:

2015-10-15_23:59:52 DualCounter A: 6.310 m³ Volumenstrom: 0.000 m³/h B: 1305.00 cts B_rate:  0.00 cts/h



Ich benutzte die Fhem Version 5.6 auf einem Raspberry Pi und ein 'update' in Fhem habe ich auch gemacht.
Auch auf dem Pi habe ich alles mit apt-get update/upgrade auf den neuesten Stand gebracht.

Habe alles im Forum zu OWCOUNT gelesen und bin aber auf keine Lösung gestoßen. Wo könnte ich jetzt noch suchen?
Wahrscheinlich ist es ein Anfängerfehler oder ich hab irgendwo etwas übersehen, aber ich finde einfach nicht die Ursache.

Meine Konfiguration sieht so aus:

define DualCounter OWCOUNT 1D.32C70D000000 60
attr DualCounter AFactor 0.01
attr DualCounter AMode daily
attr DualCounter AOffset -286325748
attr DualCounter APeriod hour
attr DualCounter ARate Volumen|Volumenstrom
attr DualCounter AUnit Kubikmeter|m³
attr DualCounter IODev 1wire
attr DualCounter LogM Logger_Month
attr DualCounter LogY Logger_Year
attr DualCounter alias Zähler
attr DualCounter model DS2423
attr DualCounter room Gaszähler

Das Tageslog:

define Logger_Day FileLog /opt/fhem/log/Gasverbrauch-%Y-%m-%d.log DualCounter.*A.*Volumenstrom.*
attr Logger_Day logtype text
attr Logger_Day room Gaszähler

Das Monatlog:

define Logger_Month FileLog /opt/fhem/log/Gasverbrauch-%Y-%m.log DualCounter:*day.*
attr Logger_Month logtype text
attr Logger_Month room Gaszähler

Das Jahreslog:

define Logger_Year FileLog /opt/fhem/log/Gasverbrauch-%Y.log DualCounter:month.*
attr Logger_Year logtype text
attr Logger_Year room Gaszähler


Viele Grüße

Burkhard

Prof. Dr. Peter Henning

Na sieh mal einer an, ein echter Bug, gratuliere.

Hier fragt das OWCOUNT-Modul den OWServer nicht mit den festen Kanalnamen ab, die dieser kennt - sondern versucht es mit den eigenen Definitionen.

Das ist in der anliegenden Datei behoben. Ich komme aber nicht zum Testen, darum bitte erst ausprobieren - dann werde ich es ins Repository hochladen.

LG

pah

Burkhard

Moin,

das Abholen der Werte vom OWServer klappt jetzt. Die Summe gegen Mitternacht wird noch nicht ins Tageslog geschrieben.

Letzte Zeile im Tageslog:

2015-10-17_23:59:27 DualCounter Gasverbrauch: 5.770 m³ Volumenstrom: 0.000 m³/h B: 1305.00 cts B_rate:  0.00 cts/h


Auszug aus dem Hauptlog:

2015.10.17 23:58:27 5: Gasverbrauch: 5.770 m³ Volumenstrom: 0.000 m³/h B: 1305.00 cts B_rate:  0.00 cts/h
2015.10.17 23:59:27 3: OWCOUNT: No monthly summary possible, invalid logfile format in LogM for device DualCounter
2015.10.17 23:59:27 3: OWCOUNT: No yearly summary possible, invalid logfile format in LogY for device DualCounter


Gruß

Burkhard

Prof. Dr. Peter Henning

Tja, dann steht wohl irgendein Müll in den Dateien. Das ist aber kein Problem des OWCOUNT-Moduls.

LG

pah

Burkhard

Die Dateien des Monats- und Jahreslog sind leer. Wenn ich es richtig verstanden habe, kann die Monatsdatei nicht gefüllt werden wenn im Tageslog die Zusammenfassung gegen Mitternacht nicht vorhanden ist.
Genau diese Zeile (mit dem Wort 'day')  fehlt aber im Tageslog.
Leider weiss ich nicht warum und wo ich da noch suchen soll. Bin für jeden Tip dankbar und werde ihm nachgehen.

Gruß

Burkhard

Prof. Dr. Peter Henning

Unsinn - im Tageslog gibt es keine Zusammenfassung. 
Sondern kurz vor Mitternacht wird ein Event ausgelöst mit der Tagessumme - der muss natürlich durch eine FileLog-Definition abgefangen und in die Datei für das Monatslog geschrieben werden.
Und kurz vor Mitternacht am Monatsletzten wird ein Event ausgelöst mit der Monatssumme - der muss ebenfalls durch eine FileLog-Definition abgefangen und in die Datei für das Jahreslog geschrieben werden.

Beispiele:


define GasD FileLog /home/fhem/fhemlogs/GasD-%Y-%m-%d.log G.Verb:energy.*power.*
attr GasD archivedir /home/fhemnas/fhemarchive
attr GasD nrarchive 0
attr GasD room Logs

define GasM FileLog /home/fhem/fhemlogs/GasM-%Y-%m.log  G.Verb.*day.*D.*
attr GasM archivedir /home/fhemnas/fhemarchive
attr GasM nrarchive 0
attr GasM room Logs

define GasY FileLog /home/fhem/fhemlogs/GasY-%Y.log  G.Verb.*month.*
attr GasY archivedir /home/fharchiemnas/fhemarchive
attr GasY nrarchive 0
attr GasY room Logs


LG

pah

Burkhard

Das FileLog für den Monat *hab* ich ja so definiert!

define Logger_Month FileLog /opt/fhem/log/Gasverbrauch-%Y-%m.log DualCounter:*day.*
attr Logger_Month logtype text
attr Logger_Month room Gaszähler

Laut Regex-Tester im Internet müsste es auch funktionieren.
Die Sache mit dem Eintrag des Mitternachtswerts hab ich hier gelesen und angenommen das sei so richtig.
http://forum.fhem.de/index.php/topic,42051.msg342996.html#msg342996

Gruß

Burkhard

Burkhard

Guten Morgen,

Ein Eintrag im Monatslog hat es wieder nicht gegeben.
Wie kann ich überprüfen ob das Event um Mitternacht ausgelöst wird. Der Event-Monitor hat ein solches Event nicht angezeigt.

Gruß

Burkhard

Prof. Dr. Peter Henning

Bei den Readings in der normalen FHEM-Device-Ansicht des Counters muss es ein reading mit dem Namen "day" geben.

LG

pah

Burkhard

Genau dieses readingsmit dem Namen 'day' fehlt bei mir.

Gruß

Burkhard

Prof. Dr. Peter Henning

Das liegt daran, dass immer noch Müll in der Logdatei steht => No monthly summary possible, also kein Mitternachtsevent.

Noch mal: Diese Dateien enthalten irgendetwas, sind aber nicht leer !

LG

pah

Burkhard

Hier mal alle drei Dateien. Tageslog ist gefüllt, Monats- und Jahreslog sind leer, 0 Bytes.

Burkhard

Guten Morgen,

heute gab es ebenfalls keinen Eintrag im Monatslog. Wo, oder wie könnte ich weitersuchen?

Gruß

Burkhard

Prof. Dr. Peter Henning

Ich lese hier seitenweise Posts von Definitionen und Filelogs - aber keinen Auszug aus dem FHEM-Log.....

Ab Zeile 580 in OWCOUNT steht aber ganz klar, dass es eine Fehlermeldung geben müsste:
#-- daybreak postprocessing
  if( $daybreak == 1 ){
    #-- daily/monthly accumulated value
    @monthv = OWCOUNT_GetMonth($hash);
    @yearv  = OWCOUNT_GetYear($hash);
    #-- put in monthly and yearly sums
    if( int(@monthv) == 2 ){
      $total0 = $monthv[0]->[1];
      $total1 = $monthv[1]->[1];
      $dvalue    = sprintf("D%02d ",$day).$dvalue;
      $dvalue    = sprintf($dvalue,$total0,$total1);
      readingsBulkUpdate($hash,"day",$dvalue);
    }else{
      Log3 $name,3,"OWCOUNT: No monthly summary possible, ".$monthv[0]." for device $name";
      $total0 = 0;
      $total1 = 0;
    };


Man kann das auch manuell aufrufen: Was liefert die Eingabe von

{OWCOUNT_GetMonth($defs{"DualCounter"})}

??

LG

pah

Burkhard

Guten Tag,

vom Programmieren verstehe ich leider nichts.
Die Ausgabe von {OWCOUNT_GetMonth($defs{"DualCounter"})} ergibt: invalid logfile format in LogM

Die Zeilen im fhemlog um Mitternacht habe ich weiter oben schon einmal geschrieben.

Hier nochmal ein Auszug:

2015.10.19 23:57:33 5: Gasverbrauch: 5.520 m³ Volumenstrom: 0.000 m³/h B: 1355.00 cts B_rate:  0.00 cts/h
2015.10.19 23:58:33 5: Gasverbrauch: 5.520 m³ Volumenstrom: 0.000 m³/h B: 1355.00 cts B_rate:  0.00 cts/h
2015.10.19 23:59:33 3: OWCOUNT: No monthly summary possible, invalid logfile format in LogM for device DualCounter
2015.10.19 23:59:33 3: OWCOUNT: No yearly summary possible, invalid logfile format in LogY for device DualCounter
2015.10.19 23:59:33 5: Gasverbrauch: 5.520 m³ Volumenstrom: 0.000 m³/h B: 1355.00 cts B_rate:  0.00 cts/h
2015.10.20 00:00:33 5: Gasverbrauch: 0.000 m³ Volumenstrom: 0.000 m³/h B: 1355.00 cts B_rate:  0.00 cts/h


Bei der Fehlermeldung habe ich angenommen sie erscheint weil die Logs für den Monat und das Jahr leer sind.
Ich habe es so verstanden, dass erst das reading mit dem Wort 'day' erzeugt werden muss um überhaupt etwas in das Monatslog zu bekommen.
Aber dieses reading fehlt bei mir aus irgendeinem Grund, oder ich habe etwas missverstanden.

Gruß

Burkhard