Hallo Zusammen,
ich habe gem. WIKI (http://www.fhemwiki.de/wiki/OWCOUNT) meinen DS2434 eingerichtet. Es läuft soweit ganz gut, das tägliche Logfile wird gefüttert, Plots funktionieren auch.
Lediglich das Monatslog wird nicht gefüllt. Dabei habe ich ich an die Anleitung gehalten.
Hier ein List des Logfiles:
Internals: CFGFN
DEF ./log/1wire_Strom_GesamtM-%Y-%m.log 1wire_Strom_Gesamt.*day.*
NAME 1wire_Strom_GesamtM.FL
NR 3404
NTFY_ORDER 50-1wire_Strom_GesamtM.FL
REGEXP 1wire_Strom_Gesamt.*day.*
STATE active
TYPE FileLog
currentlogfile ./log/1wire_Strom_GesamtM-2015-10.log
logfile ./log/1wire_Strom_GesamtM-%Y-%m.log
Attributes: archivedir ./media/backup/
logtype text
nrarchive 3
room Strom
Und hier das List vom Device:
Internals:
ALARM 1
ASYNC 1
DEF 1D.80950F000000
INTERVAL 300
IODev 1wire
NAME 1wire_Strom_Gesamt
NOTIFYDEV global
NR 906
NTFY_ORDER 50-1wire_Strom_Gesamt
NUMTASKS 0
OW_FAMILY 1D OW_ID 80950F000000
PRESENT 1
ROM_ID 1D.80950F000000.D6
STATE E-Energy: 7.965 kWh E-Power: 0.612 kW B: 27.00 cts B_rate: 0.00 cts/h
TYPE OWCOUNT
Readings:
2015-10-10 18:23:16 B 27 2015-10-10 18:23:16
B_rate 0 2015-10-10 18:23:16
E-Energy 7.965 2015-10-10 18:23:16
E-Power 0.612 2015-10-07 18:56:06
alarm 1 2015-10-09 23:57:50
day D09 E-Energy: 20.46 kWh E-EnergyM: 57.60 kWh B: 27.00 cts BM: 27.00 cts 2015-10-07 19:00:58
present 1 2015-10-10 18:23:16
state E-Energy: 7.965 kWh E-Power: 0.612 kW B: 27.00 cts B_rate: 0.00 cts/h owg_midnight: 74.06 27 owg_str:
OWCOUNT 5.27idnight 16.44�� 2015-10-09 midnight 74.06�� 2015-10-09 midnight 27.00�� owg_val: 81805 27
Attributes:
AFactor 0.001
AMode daily
AName E-Energy|energy
AOffset 220.0
APeriod hour
ARate E-Power|power
AUnit kWh|kWh
IODev 1wire
LogM 1wire_Strom_GesamtM.FL
LogY 1wire_Strom_GesamtY.FL
event-on-change-reading state
model DS2423
room Strom
Seht Ihr den Fehler den ich nicht sehe ?
Ich würde als Regexp nehmen:
1wire_Strom_Gesamt.*day.*D.*
sonst kommt eher zuviel ins Logfile. Allerdings ist das kein Fehler, der zuwenig ins Logfile schreibt....
Ist das wirklich leer, oder steht da etwas Anderes drin ?
LG
pah
Danke für den Tip.
Da steht wirklich nichts drin. Aber auch im Tageslog müsste doch gegen Ende des Tages die Zusammenfassung des Tages auftauchen, oder ? Die ist da nämlich auch nicht drin, also kann auch Regexp nix rausfiltern.
Ich werde die Log-Devices löschen, und neu anlegen. Mal sehen wie es dann aussieht.
Dies ist die Definition des Tageslog:
./log/1wire_Strom_Gesamt-%Y-%m-%d.log 1wire_Strom_Gesamt.*E-Energy.*E-Power.*
Dies ist das Ergebnis:
2015-10-11_20:15:29 1wire_Strom_Gesamt E-Energy: 8.708 kWh E-Power: 0.669 kW B: 27.00 cts B_rate: 0.00 cts/h
Counter B ist nicht angeschlossen, und habe ich doch per Regexp "ausgeschlossen. Wieso wird es dennoch geloggt ? Oder habe ich das Regexp noch nicht verstanden ? :-[
LG
Hallo,
gestern Abend wurde das Monatslog korrekt befüllt.
Wenn das heute Abend wieder passiert, wovon ich ausgehe, setze ich das Thema auf "gelöst".
Ach ja, um die Frage zu beantworten: Das Log war komplett leer....
In solchen Fällen hilft ein "reopen" im Logdevice.
LG
pah
Hallo,
Danke. Was bewirkt das genau ? (Außer der wörtlichen Übersetzung) ::)
LG
Die Schreibroutinen von Perl können nur auf Dateien schreiben, die geöffnet sind. Wenn eine andere Anwendung (z.B. ein Editor) diese für sich reklamiert hatte, geht das manchmal schief. => reopen.
LG pah
Moin,
aha, alles klar. Merci.
Mal was anderes, wieviele Devices hängen bei Dir maximal an einem 1wire-Bus ?
Bei mir knapp 40. Läuft zwar störungsfrei, aber ich frage mich ob nicht langsam die Grenze erreicht ist. (Abfrageintervalle, Antwortzeiten etc). Stromversorgung übernimmt ein aktiver USB-Hub mit 1200mA am Port.
LG
Ich habe 6 1-Wire-Bussysteme... 4x USB (alle an einem Raspberry Pi 2), einmal Ethernet, einmal WLAN.
Tipp: Stromversorgung _hinter_ dem 1-Wire Busmaster auf den Bus geben.
LG
pah
Danke für den Tip.
Sorry, noch ne weitere Frage:
Das Jahreslog wird nicht gefüllt. Geschieht das monatsweise am MonatsEnde ?
Weil diese Fehlermeldung habe ich im allgemeinen LogFile:
2015.10.13 23:55:42 3: OWCOUNT: No yearly summary possible, invalid logfile format in LogY
2015.10.13 23:55:45 1: PERL WARNING: Use of uninitialized value in division (/) at ./FHEM/10_CUL_HM.pm line 7440, <OWXFILE> line 40.
Für das jährliche Logfile habe ich als Attribut "text" gewählt. Reopen hatte ich gestern nachmittag schon gemacht.
Hier das List:
Internals:
CFGFN
DEF ./log/1wire_Strom_GesamtY-%Y.log 1wire_Strom_Gesamt.*month.*
NAME 1wire_Strom_GesamtY.FL
NR 9468
NTFY_ORDER 50-1wire_Strom_GesamtY.FL
REGEXP 1wire_Strom_Gesamt.*month.*
STATE active
TYPE FileLog
currentlogfile ./log/1wire_Strom_GesamtY-2015.log
logfile ./log/1wire_Strom_GesamtY-%Y.log
Attributes:
archivedir ./media/backup
logtype text
nrarchive 3
room StromLog
Zitat
Das Jahreslog wird nicht gefüllt. Geschieht das monatsweise am MonatsEnde ?
Ja. Und natürlich kann die Jahressumme ohne vorhandene Einträge nicht errechnet werden.
LG
pah
Ok, dachte ich mir.
Lediglich der FehlerEintrag in Log hatte mich irritiert.
Guten Morgen,
ich muss das mal wieder hochholen. Zum Monatswechsel wurde das Monatslog (05) nicht mehr gefüllt. Tageslog + Jahreslog wurden korrekt gefüllt.
Bislang wurde das Monatslog korrekt gefüllt. Mitte April habe die OWCOUNT auf Version 6.01 aktualisiert. Die Definition des Devices oder deren Attribute wurden nicht geändert.
So lautet die unveränderte Def: ./log/1wire_Strom_GesamtM-%Y-%m.log 1wire_Strom_Gesamt.*day.*D.*
Hier ein List des Devices:
Internals:
ALARM 1
ASYNC 1
DEF 1D.80950F000000
INTERVAL 300
IODev 1wire
NAME 1wire_Strom_Gesamt
NOTIFYDEV global
NR 934
NTFY_ORDER 50-1wire_Strom_Gesamt
NUMTASKS 0
OW_FAMILY 1D
OW_ID 80950F000000
PRESENT 1
ROM_ID 1D.80950F000000.D6
STATE energy: 20.823 kWh power: 0.228 kW energy: 2.590 kWh power: 0.024 kW
TYPE OWCOUNT
Readings:
2016-05-02 09:10:18 E-Energy 20.823
2016-05-02 09:10:18 E-Power 0.228
2016-05-02 09:10:18 Hz-Energy 2.59
2016-05-02 09:10:18 Hz-Power 0.024
2016-05-02 09:10:18 Stromkosten 4.3998999
2016-05-02 09:09:54 alarm 1
2016-04-30 23:55:36 day D30 E-Energy: 11.79 kWh E-EnergyM: 375.99 kWh Hz-Energy: 2.42 kWh Hz-EnergyM: 55.99 kWh
2016-04-30 23:55:36 month M04 E-EnergyM: 375.99 kWh E-EnergyY: 1570.32 kWh Hz-EnergyM: 55.99 kWh Hz-EnergyY: 275.96 kWh
2016-05-02 09:09:45 present 1
Helper:
owg_midnight:
2809.71
411.96
owg_str:
2016-04-30 midnight 2809.71
2016-04-30 midnight 411.96
owg_val:
2830313
414929
Attributes:
AFactor 0.001
AMode daily
AName E-Energy|energy
AOffset 220.0
APeriod hour
ARate E-Power|power
AUnit kWh
BFactor 0.001
BMode daily
BName Hz-Energy|energy
BOffset -379
BPeriod hour
BRate Hz-Power|power
BUnit kWh
IODev 1wire
LogM 1wire_Strom_GesamtM.FL
LogY 1wire_Strom_GesamtY.FL
model DS2423eold
nomemory 1
Ich schaus mir an - bei mir wurde es auch nicht befüllt :-((
LG
pah
Danke für die Rückmeldung. Mag er nicht ins leere Log schreiben so wie das Anfang des Jahres beim Jahreslog auch der Fall war ?
Edith: Heute der Wurm drin
Genullt hat er um Mitternacht auch nicht... :'(
FHEM-Log:
2016.05.02 10:20:18.368 1: device 1wire_Strom_Gesamt returns invalid data 255 255 255 2550x20
2016.05.02 10:20:17.942 1: device 1wire_Strom_Gesamt returns invalid data 255 255 255 2550x20
Device-Log
2016-05-02_10:25:18 1wire_Strom_Gesamt Hz-Power: -51533841.3239
2016-05-02_10:25:18 1wire_Strom_Gesamt Hz-Energy: 2.643
2016-05-02_10:25:18 1wire_Strom_Gesamt E-Power: -51504853.3559
2016-05-02_10:25:18 1wire_Strom_Gesamt E-Energy: 21.156
2016-05-02_10:20:18 1wire_Strom_Gesamt Hz-Power: 51534627.804
2016-05-02_10:20:18 1wire_Strom_Gesamt Hz-Energy: 4294554.956
2016-05-02_10:20:18 1wire_Strom_Gesamt E-Power: 51505640.376
2016-05-02_10:20:18 1wire_Strom_Gesamt E-Energy: 4292157.805
Hat hier die Hard oder Software gezickt ?
Kurzer Zwischenstand:
Log wurde heute Nacht gefüllt (D02), nachdem ich gestern händisch den Wert für D01 ins leere Log eingetragen haben.
Aber: Die Mitternachswerte wurden trotz (AMode=daily;BMode=daily) NICHT gelöscht.
Habe jetzt mal die Attribute AMode+BMode nochmal auf daily gesetzt und gespeichert. Vielleicht bringt es ja was
Nö, ich nehme alles zurück - bei mir wurde alles korrekt befüllt. Und zwar sowohl für Wasser, als auch für Gas - beide laufen jeweils über einen DS2423. Ergebnis des Logging:
In der Datei GasM-2016-04.log:
2016-04-29_23:58:42 G.Verb day: D29 energy: 4.86 m³ energyM: 113.16 m³ meter: 1750.75 m³ meterM: 1750.74 m³
2016-04-30_23:55:03 G.Verb day: D30 energy: 2.49 m³ energyM: 115.65 m³ meter: 1753.23 m³ meterM: 1753.23 m³
In der Datei GasM-2016-05.log:
2016-05-01_23:58:03 G.Verb day: D01 energy: 0.78 m³ energyM: 0.78 m³ meter: 1754.01 m³ meterM: 1754.01 m³
2016-05-02_23:55:49 G.Verb day: D02 energy: 0.38 m³ energyM: 1.16 m³ meter: 1754.39 m³ meterM: 1754.39 m³
In der Datei GasY-2016.log
2016-01-31_23:59:46 G.Verb month: M01 energyM: 273.3 m³ energyY: 273.3 m³ meterM: 2159.38 cts meterY: 2159.38 cts
2016-02-29_23:56:11 G.Verb month: M02 energyM: 237.64 m³ energyY: 510.94 m³ meterM: 2397.04 m³ meterY: 4556.42 m³
2016-03-31_23:55:01 G.Verb month: M03 energyM: 223.44 m³ energyY: 734.38 m³ meterM: 1637.57 m³ meterY: 1637.57 m³
2016-04-30_23:55:03 G.Verb month: M04 energyM: 115.65 m³ energyY: 850.03 m³ meterM: 1753.23 m³ meterY: 1753.23 m³
Meine Vermutung ist, dass bei deinen regulären Ausdrücken für die Logfiles etwas nicht stimmt.
Also spaßeshalber mal meine im Detail
Definition des Counters
efine G.Verb OWCOUNT DS2423 CE780F000000
attr G.Verb userattr costperm3
attr G.Verb AFactor 0.01
attr G.Verb AMode daily
attr G.Verb AName energy
attr G.Verb APeriod hour
attr G.Verb ARate power
attr G.Verb AUnit m³
attr G.Verb BFactor 0.01
attr G.Verb BName meter
attr G.Verb BOffset 152099.4
attr G.Verb BRate rate
attr G.Verb BUnit m³
attr G.Verb IODev OWX_UG2
attr G.Verb LogM GasM
attr G.Verb LogY GasY
attr G.Verb comment <embed src='fhem/SVGX_widget?type=bar&subtype=red&size=200x120&p1=energy&s1=20 m³&p2=power&s2=1 m³/h&p3=GV'/>
attr G.Verb costperm3 0.68678
attr G.Verb group consumableSensor
attr G.Verb model DS2423
attr G.Verb nomemory 0
attr G.Verb room Energie
attr G.Verb stateFormat <embed src='fhem/SVGX_widget?type=bar&subtype=red&size=200x120&p1=energy&s1=20 m³&p2=power&s2=1 m³/h&p3=GV'/>
attr G.Verb userReadings vol {ReadingsVal("G.Verb","energy",0)},cost:energy.* {AttrVal("G.Verb", "costperm3", 0)*ReadingsVal("G.Verb","energy",0)},power.av {movingAverage("G.Verb","power",1800)}
Wichtig dabei sind die Attribute LogM und LogY - ansonsten führt das Modul keine Summenbildung durch. Kann man dann zwar immer noch machen lassen, durch irgendein externes Programm - ist aber so einfacher.
Und die Definition der Logfiles muss natürlich genau diese DeviceNamen verwenden:
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/fhemnas/fhemarchive
attr GasY nrarchive 0
attr GasY room Logs
Ich bin ja gerne bereit, irgendwelche Dinge zu ändern - aber dazu muss ich sie nachstellen können.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 03 Mai 2016, 13:07:36
Meine Vermutung ist, dass bei deinen regulären Ausdrücken für die Logfiles etwas nicht stimmt.
LG
pah
Hm, irgendwann hatte ich mal ein leeres TagesLog, und dann habe ich die Regexp so geändert, das es wieder gefüllt wurde. Das hat bis dato dann auch funktioniert. Jetzt habe ich die Regexp wieder zurückgedreht, so wie Du es auch hast.
Erstmal danke für den Hinweis.