Hallo,
Ich habe eine Wärmepumpe welche sowohl fürs Heizen als auch für die WW Bereitung zuständig ist.
Die WP hängt an einem eigenen Stromzähler welchen ich in DBLog logge. Ebenso frage ich alle 3min den aktuellen Betriebszustand der WP ab.
Wäre es möglich dies z.B. über LogProxy in einem Balkendiagramm abzubilden ohne die Daten quasi doppelt in die DB zu schreiben?
Also z.B. ein Balkendiagramm welches mir den Verbrauch pro Tag darstellt, diesen jedoch aufgeteilt in Heizen und WW. Unterer Teil das Balkens wäre dann der Stromverbrauch für WW und der obere der fürs Heizen.
Ist dies überhaupt möglich ohne entsprechenden Log Eintrag?
Sollte man die werte doch separat mitloggen wollen, wie würde man das am besten machen? Über ein dummy device wenn es bei jedem Stromzähler Reading für die Zustände abgespeichert werden soll?
Über DBRep wenn ich nur einen Wert pro Tag odr Stunde möchte?
Welche Möglichkeiten zur Umsätzung gibt es hierfür, und was macht Sinn?
Danke
Crispyduck
Ich benutze dazu 3 hourcounter:
• hc.gesamt (zählt den kompletten Gasverbrauch)
• hc.Heizung (zählt nur, wenn WW-Pumpe aus)
• hc.WW (zählt nur, wenn WW-Pumpe an)
hc.gesamt nutzt den physischen Zähler, für hc.Heizung und hc.WW habe ich als Zähldevice jeweils einen Dummy definiert, der durch ein notify getriggert wird
Die Definition für das notify sieht so aus:
mys_103_TempHum2Button {
if (ReadingsVal("mys_103_TempHum2Button","status1","") eq "on" && (ReadingsVal("Vitocrossal","Speicherladepumpe","") eq "on" || ReadingsVal("Vitocrossal","BetriebsArt","") eq "WW")) {
fhem "set d.mys_103_GasZaehler_WW on"
} else {
fhem "set d.mys_103_GasZaehler_WW off"
}
}
mys_103_TempHum2Button ist mein physischer Gaszähler (über Reedkontakt).
Das hourcounter Reading ,,appCountsPerDay" wird nur 1 x pro Tag geschrieben - also minimal 3 zusätzliche Sätze). Mehr bräuchtest du nicht in der DB zu speichern. Das hängt dann aber auch mit deiner DbLog-Definition zusammen. DBRep brauchst du dafür nicht.
Ein mögliches Plot kann so aussehen:
LG
Holger
Spitze! Genau so hab ich mir das vorgestellt!
Glaube ich habe es auch verstanden, bis auf das minimal 3 zusätzliche Sätze. Die 3 houercounter müssen doch auch jedes mal schreiben wenn der Zähper gepollt wird, also zumindest immer der Countrr der aktiv ist.
Wärst du so nett und würdest noch deine hourcounter, Dummys als auch den plot posten?!
Danke,
Crispyduck
Mindestens 3 Sätze zusätzlich pro Tag in der DB, um entsprechende Plots darstellen zu können. Die 3 hourcounter erzeugen sehr viele Events - aber du hast doch selber in der Hand, was davon in die DB aufgenommen wird. In dem gplot siehst du, dass ich nur 3 Readings zur Auswertung benötige.
Internals:
DEF mys_103_TempHum2Button:status1:.on mys_103_TempHum2Button:status1:.off
NAME hc.Gasverbrauch_Gesamt
NR 128
NTFY_ORDER 50-hc.Gasverbrauch_Gesamt
STATE Zaehlerstand: 4084369 Verbrauch: 593
TYPE HourCounter
VERSION 1.0.1.2 - 24.12.2014
Helper:
Dblog:
Appcountsperhour:
Myfhemdb:
TIME 1492891200.44971
VALUE 46
Countsoverall:
Myfhemdb:
TIME 1492888401.4066
VALUE 4084369
Countsperday:
Myfhemdb:
TIME 1492888401.4066
VALUE 593
State:
Myfhemdb:
TIME 1492888401.4066
VALUE 593
Readings:
2017-04-22 00:00:00 appCountsPerDay 679
2017-04-22 22:00:00 appCountsPerHour 46
2017-04-22 22:00:00 appCountsPerHourTemp 0
2017-04-01 00:00:00 appCountsPerMonth 18824
2017-04-22 21:13:21 appCountsPerMonthTemp 12365
2017-04-16 00:00:00 appCountsPerWeek 4032
2017-04-22 21:13:21 appCountsPerWeekTemp 4931
2017-01-01 00:00:00 appCountsPerYear 40628
2017-04-22 21:13:21 appCountsPerYearTemp 101926
2017-04-22 00:00:00 appOpHoursPerDay 0.785277777777778
2017-04-22 22:00:00 appOpHoursPerDayTemp 1.65777777777778
2017-04-01 00:00:00 appOpHoursPerMonth 75.2322222222223
2017-04-22 00:00:00 appOpHoursPerMonthTemp 43.5591666666667
2017-04-16 00:00:00 appOpHoursPerWeek 18.7633333333333
2017-04-22 00:00:00 appOpHoursPerWeekTemp 15.0405555555556
2017-01-01 00:00:00 appOpHoursPerYear 103.38
2017-04-22 00:00:00 appOpHoursPerYearTemp 248.89
2017-04-22 00:00:00 appUtilization 3.41425120772947
2017-04-22 22:00:00 appUtilizationTemp 7.53535353535354
2017-04-22 22:00:00 appUtilizationTempOld 4.14785146791272
2017-04-22 22:00:00 countsOverall 4084369
2017-04-22 22:00:00 countsPerDay 593
2017-04-22 22:00:00 pauseTimeEdge 18
2017-04-22 22:00:00 pauseTimeIncrement 18
2017-04-22 22:00:00 pauseTimeOverall 32907087
2017-04-22 22:00:00 pauseTimePerDay 71312
2017-04-22 22:00:00 pulseTimeEdge 2
2017-04-22 22:00:00 pulseTimeIncrement 2799
2017-04-22 22:00:00 pulseTimeOverall 4156639
2017-04-22 22:00:00 pulseTimePerDay 5968
2017-04-22 22:00:00 state 593
2017-04-22 21:13:21 tickChanged 71
2017-04-22 10:32:04 tickDay 0
2017-04-22 22:00:00 tickHour 12
2017-04-22 10:32:04 tickMonth 0
2017-04-22 22:00:00 tickUpdated 126
2017-04-22 10:32:04 tickWeek 0
2017-04-22 10:32:04 tickYear 0
2017-04-22 22:00:00 value 1
Helper:
OFF_Regexp mys_103_TempHum2Button:status1:.off
ON_Regexp mys_103_TempHum2Button:status1:.on
calledByEvent
changedTimestamp 2017-04-22 22:00:00
forceClear
forceDayChange
forceHourChange
forceMonthChange
forceWeekChange
forceYearChange
isFirstRun
sdRoundHourLast 1492891200
value 1
cmdQueue:
Attributes:
DbLogExclude appUtilization.*,value,pause.*,pulse.*,app.*Temp,tick.*
event-min-interval tick.*:0,.*:3600
event-on-change-reading .*
group GAS: Verbrauch
room Heizung
stateFormat Zaehlerstand: countsOverall Verbrauch: countsPerDay
Internals:
CHANGED
DEF d.mys_103_GasZaehler_Heizung:on d.mys_103_GasZaehler_Heizung:off
NAME hc.Gasverbrauch_Heizung
NR 117
NTFY_ORDER 50-hc.Gasverbrauch_Heizung
STATE 472
TYPE HourCounter
VERSION 1.0.1.2 - 24.12.2014
Helper:
Dblog:
Appcountsperhour:
Myfhemdb:
TIME 1492891200.68486
VALUE 1
Countsoverall:
Myfhemdb:
TIME 1492888624.32398
VALUE 4026195
Countsperday:
Myfhemdb:
TIME 1492888624.32398
VALUE 472
State:
Myfhemdb:
TIME 1492888624.32398
VALUE 472
Readings:
2017-04-22 00:00:00 appCountsPerDay 449
2017-04-22 22:00:00 appCountsPerHour 1
2017-04-22 22:00:00 appCountsPerHourTemp 0
2017-04-01 00:00:00 appCountsPerMonth 14394
2017-04-22 21:17:04 appCountsPerMonthTemp 8772
2017-04-16 00:00:00 appCountsPerWeek 2817
2017-04-22 21:17:04 appCountsPerWeekTemp 3814
2017-01-01 00:00:00 appCountsPerYear 120284
2017-04-22 21:17:04 appCountsPerYearTemp 82993
2017-04-22 00:00:00 appOpHoursPerDay 0.663611111111111
2017-04-22 22:22:55 appOpHoursPerDayTemp 1.91833333333333
2017-04-01 00:00:00 appOpHoursPerMonth 30.3497222222223
2017-04-22 00:00:00 appOpHoursPerMonthTemp 17.1847222222222
2017-04-16 00:00:00 appOpHoursPerWeek 7.07
2017-04-22 00:00:00 appOpHoursPerWeekTemp 4.82555555555555
2017-01-01 00:00:00 appOpHoursPerYear 371.95138888889
2017-04-22 00:00:00 appOpHoursPerYearTemp 121.749444444444
2017-04-22 00:00:00 appUtilization 2.76879570714973
2017-04-22 22:22:55 appUtilizationTemp 8.5708966801117
2017-04-22 22:22:55 appUtilizationTempOld 8.5708966801117
2017-04-22 22:22:55 countsOverall 4026195
2017-04-22 22:22:55 countsPerDay 472
2017-04-22 22:22:55 pauseTimeEdge 1518
2017-04-22 22:22:55 pauseTimeIncrement 1518
2017-04-22 22:22:55 pauseTimeOverall 36961480
2017-04-22 22:22:55 pauseTimePerDay 73536
2017-04-22 22:22:55 pulseTimeEdge 9
2017-04-22 22:22:55 pulseTimeIncrement 3951
2017-04-22 22:22:55 pulseTimeOverall 1801843
2017-04-22 22:22:55 pulseTimePerDay 6906
2017-04-22 22:22:55 state 472
2017-04-22 21:17:04 tickChanged 360
2017-04-22 10:32:04 tickDay 0
2017-04-22 22:00:00 tickHour 12
2017-04-22 10:32:04 tickMonth 0
2017-04-22 22:22:55 tickUpdated 666
2017-04-22 10:32:04 tickWeek 0
2017-04-22 10:32:04 tickYear 0
2017-04-22 22:22:55 value 1
Helper:
OFF_Regexp d.mys_103_GasZaehler_Heizung:off
ON_Regexp d.mys_103_GasZaehler_Heizung:on
calledByEvent
changedTimestamp 2017-04-22 22:22:55
forceClear
forceDayChange
forceHourChange
forceMonthChange
forceWeekChange
forceYearChange
isFirstRun
sdRoundHourLast 1492891200
value 1
cmdQueue:
Attributes:
DbLogExclude appUtilization.*,value,pause.*,pulse.*,app.*Temp,tick.*
event-min-interval tick.*:0
event-on-change-reading .*
group GAS: Verbrauch
room Heizung
Internals:
CHANGED
DEF d.mys_103_GasZaehler_WW:on d.mys_103_GasZaehler_WW:off
NAME hc.Gasverbrauch_WW
NR 79
NTFY_ORDER 50-hc.Gasverbrauch_WW
STATE 122
TYPE HourCounter
VERSION 1.0.1.2 - 24.12.2014
Helper:
Dblog:
Appcountsperhour:
Myfhemdb:
TIME 1492891200.71862
VALUE 46
Countsoverall:
Myfhemdb:
TIME 1492888401.45921
VALUE 3941990
Countsperday:
Myfhemdb:
TIME 1492888401.45921
VALUE 122
State:
Myfhemdb:
TIME 1492888401.45921
VALUE 122
Readings:
2017-04-22 00:00:00 appCountsPerDay 230
2017-04-22 22:00:00 appCountsPerHour 46
2017-04-22 22:00:00 appCountsPerHourTemp 0
2017-04-01 00:00:00 appCountsPerMonth 4490
2017-04-22 21:13:21 appCountsPerMonthTemp 3621
2017-04-16 00:00:00 appCountsPerWeek 1223
2017-04-22 21:13:21 appCountsPerWeekTemp 1131
2017-01-01 00:00:01 appCountsPerYear 42437
2017-04-22 21:13:21 appCountsPerYearTemp 19094
2017-04-22 00:00:00 appOpHoursPerDay 0.118611111111111
2017-04-22 22:22:55 appOpHoursPerDayTemp 0.118611111111111
2017-04-01 00:00:00 appOpHoursPerMonth 44.9249999999999
2017-04-22 00:00:00 appOpHoursPerMonthTemp 26.3413888888888
2017-04-16 00:00:00 appOpHoursPerWeek 11.6877777777778
2017-04-22 00:00:00 appOpHoursPerWeekTemp 10.2080555555555
2017-01-01 00:00:01 appOpHoursPerYear 513.897777777778
2017-04-22 00:00:00 appOpHoursPerYearTemp 127.104444444444
2017-04-22 00:00:00 appUtilization 0.494877381669835
2017-04-22 22:22:55 appUtilizationTemp 0.52994104871238
2017-04-22 22:22:55 appUtilizationTempOld 0.52994104871238
2017-04-22 22:22:55 countsOverall 3941990
2017-04-22 22:22:55 countsPerDay 122
2017-04-22 22:22:55 pauseTimeEdge 18
2017-04-22 22:22:55 pauseTimeIncrement 3951
2017-04-22 22:22:55 pauseTimeOverall 47869480
2017-04-22 22:22:55 pauseTimePerDay 80027
2017-04-22 22:22:55 pulseTimeEdge 223
2017-04-22 22:22:55 pulseTimeIncrement 223
2017-04-22 22:22:55 pulseTimeOverall 2348940
2017-04-22 22:22:55 pulseTimePerDay 427
2017-04-22 22:22:55 state 122
2017-04-22 21:17:04 tickChanged 344
2017-04-22 10:31:59 tickDay 0
2017-04-22 22:00:00 tickHour 12
2017-04-22 10:31:59 tickMonth 0
2017-04-22 22:22:55 tickUpdated 399
2017-04-22 10:31:59 tickWeek 0
2017-04-22 10:31:59 tickYear 0
2017-04-22 22:22:55 value 0
Helper:
OFF_Regexp d.mys_103_GasZaehler_WW:off
ON_Regexp d.mys_103_GasZaehler_WW:on
calledByEvent
changedTimestamp 2017-04-22 22:22:55
forceClear
forceDayChange
forceHourChange
forceMonthChange
forceWeekChange
forceYearChange
isFirstRun
sdRoundHourLast 1492891200
value 0
cmdQueue:
Attributes:
DbLogExclude appUtilization.*,value,pause.*,pulse.*,app.*Temp,tick.*
event-min-interval tick.*:0
event-on-change-reading .*
group GAS: Verbrauch
room Heizung
Internals:
NAME d.mys_103_GasZaehler
NR 132
STATE on
TYPE dummy
Readings:
2017-04-22 22:24:55 state on
Attributes:
DbLogExclude state
group GAS: Verbrauch
room Heizung
setList state:on,off
Internals:
NAME d.mys_103_GasZaehler_Heizung
NR 115
STATE on
TYPE dummy
Readings:
2017-04-22 22:24:55 state on
Attributes:
DbLogExclude state
group GAS: Verbrauch
room Heizung
setList state:on,off
Internals:
NAME d.mys_103_GasZaehler_WW
NR 78
STATE off
TYPE dummy
Readings:
2017-04-22 22:24:55 state off
Attributes:
DbLogExclude state
group GAS: Verbrauch
room Heizung
setList state:on,off
# Created by FHEM/98_SVG.pm, 2017-03-16 09:03:50
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid y2tics
set ylabel "Verbrauch in â,¬"
set y2label "Gasverbrauch in m³"
set yrange [0:<L2>]
set y2range [0:<L1>]
#lp DbLog:myFHEMdb_LT,offset=-60*60*1:hc.Gasverbrauch_Gesamt:appCountsPerDay:::$val=($val/=100)
#lp DbLog:myFHEMdb_LT,offset=-60*60*1:hc.Gasverbrauch_WW:appCountsPerDay:::$val=($val/=100)
#lp DbLog:myFHEMdb_LT,offset=-60*60*1:hc.Gasverbrauch_Gesamt:appCountsPerDay:::$val=($val/100*9.4585275*0.0532)
plot "<IN>" using 1:2 axes x1y2 title 'Verbrauch gesamt m³' ls l0 lw 3 with bars,\
"<IN>" using 1:2 axes x1y2 title 'davon Verbrauch WW-Erzeugung m³' ls l2fill lw 1 with bars,\
"<IN>" using 1:2 axes x1y1 title 'Verbrauch Gesamt in â,¬' ls l1fill lw 3 with bars
Tolle Arbeit!
Die Frage zur Formel im Plot hat sich mit einer Forumssuche erübrigt. ;-)
Noch eine Verständnisfrage zum hourcounter, wenn ich wirklich nur das Reading für den countperday abspeichere, was pssiert bei einem Stromausfall, count wieder bei 0?
Habe ursprünglich nicht erwähnt das ich einen Modbus Stromzähler habe der mir schon die kWh, Aktuellen Verbrauch,... liefert. Ich habe die Daten daher immer in Werten in der DB und brauche nicht selbst zu zählen.
Daher hatte ich auch die Idee ob es nicht mehr sinn macht mir die 3 Werte so wie du sie im Plot hast 1x am Tag bzw. Nacht per DBRep zu errechnen.
Müsste doch weitaus resourcen schonender sein?
Ich habe ausserdem zwei LogDBs, eine als Langzeitspeicher, wo genau solche Daten rein sollen, und eine kurzzeit DB, wo ich vorallem jetzt mal sehr viel logge.
Passt zwar jetzt nicht mehr wirklich zur ursprünglichen Frage; aber Hintergrund ist auch das ich gerade eine kleine PV Anlage 2,1kWp selbst baue und um den Eigenverbrauch zu erhöhen WW Produktion steuern möchte.
Dazu wäre es aber schon mal nicht schlecht wenn ich überhaupt wüsste wie oft und wann meine Wärmepumpe mit wie viel Strom WW bereitet.
Also wann, wie oft, wie lange und mit wie Viel Strom wird pro Tag WW bereitet.
Lg
Crispyduck
Zitatwas pssiert bei einem Stromausfall
Dann musst du die Readings countsOverall und countsPerDay neu setzen über die set-Anweisung im hourcounter.
Meine LogDB-Konfiguration sieht genau so aus, eine Kurz- und eine Langzeit-DB.
Ich verstehe nicht, wozu dur DBRep benötigst. Deine Daten vom Modbus Stromzähler hast du doch in Readings. Mit denen rechnest du zum Tageswechsel und schreibst die Ergebnisse weg, z.B. in userReadings.
Stimmt eigentlich, ich brauche ja eigentlich immer nur die aktuellen Stromzähler Werte von WW_aus weniger WW_an rechnen und ich hab die kWh für 1x WW bereiten.
Ich könnte also bei jedem Schalterwechsel, also WW_an, WW_aus, Heizen_an und Heizen _aus mir entsprechende Readings erzeugen und damit rechnen.
Ich hab nur noch keine Ahnung wie ich mir das aus Readings unterschiedlicher devices zusammen bastel.
Habe z.B. jede Minute ein Reading vom Stromzähler mit aktuellem Totalverbrauch. Und ein paar mal am Tag ein Reading vom der Heizunung das WW_an oder WW_aus geschaltet wurde. Wie könnte ich mir jetzt die Summe des Stromverbrauchs während WW_an war von 00:00 - 23:59 ausrechnen?