Hallo,
ich logge in eine MySQL DB. So weit, so gut.
u.a. ist dort mein Heizsystem (HCS) gelogget.
Nun möchte ich gerne daraus zwei Dinge polten:
1. den Demand
2. den Status des Brennedevice
Folgendes Plotfile habe ich erstellt:
# Created by FHEM/98_SVG.pm, 2014-11-20 12:24:29
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 '<L1>'
set ytics ("demand" 1, "idle" 0)
set y2tics ("on" 1, "off" 0)
set grid ytics
set ylabel "Bedarf"
set y2label "Brenner"
#DbLog HCS_System:devicestate
#DbLog HCS_System:state
plot "<IN>" using 1:2 axes x1y1 title 'Bedarf' ls l1 lw 1 with bars,\
"<IN>" using 1:2 axes x1y2 title 'Brenner' ls l2 lw 1 with bars
In der DB stehen auch schön die Daten:
2014-11-20_06:04:01 on
2014-11-20_06:04:01 demand
2014-11-20_07:34:02 off
2014-11-20_07:34:02 idle
2014-11-20_07:44:02 demand
2014-11-20_07:44:02 on
2014-11-20_08:39:02 idle
2014-11-20_08:39:02 off
2014-11-20_09:20:57 idle
2014-11-20_10:41:09 on
2014-11-20_10:41:09 demand
Keiner eine Idee? :'(
Versuch mal sowas in der Art:
#DbLog Device:state:::$val=($val=~"on"?1:0)
Gruß Lars
Leider nicht:
2014.11.21 10:39:49 1: PERL WARNING: Argument "on" isn't numeric in subtraction (-) at ./FHEM/98_SVG.pm line 1532.
2014.11.21 10:39:49 1: PERL WARNING: Argument "demand" isn't numeric in subtraction (-) at ./FHEM/98_SVG.pm line 1540.
2014.11.21 10:39:49 1: PERL WARNING: Argument "demand" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1198.
2014.11.21 10:39:49 1: PERL WARNING: Argument "on" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1198.
2014.11.21 10:39:49 1: PERL WARNING: Argument "demand" isn't numeric in sprintf at ./FHEM/98_SVG.pm line 1147.
2014.11.21 10:39:49 1: PERL WARNING: Argument "on" isn't numeric in sprintf at ./FHEM/98_SVG.pm line 1147.
Habe jetzt alle möglichen Kombis getestet, wie z.B.:
#DbLog HCS_System:state::$dld[2]=~"demand"?1:0
#DbLog HCS_System:devicestate::$dld[2]=~"on"?1:0
Geht leider nicht.
Wenn ich mir anschaue, was abgearbeitet wird, bekomme ich dies Info:
get myDbLog HISTORY - 2014-11-21_00:00:00 2014-11-22_00:00:01 HCS_System:state::$dld[2]=~"demand"?1:0 HCS_System:devicestate::$dld[2]=~"on"?1:0
2014-11-21_06:01:59 demand
2014-11-21_08:34:30 demand
2014-11-21_10:34:39 demand
#HCS_System:state::$dld[2]=~"demand"?1:
2014-11-21_06:01:59 on
#HCS_System:devicestate::$dld[2]=~"on"?1:
Zitat von: Mitch am 21 November 2014, 11:20:19
Habe jetzt alle möglichen Kombis getestet, wie z.B.:
#DbLog HCS_System:state::$dld[2]=~"demand"?1:0
#DbLog HCS_System:devicestate::$dld[2]=~"on"?1:0
Versuch es mal mit
#DbLog HCS_System:state:::$val=$val=~"demand"?1:0
#DbLog HCS_System:devicestate:::$val=$val=~"on"?1:0
Jetzt ist zwar der Wert richtig zugeordnet
2014-11-21_06:01:59 1
2014-11-21_08:34:30 1
2014-11-21_10:34:39 1
#HCS_System:state:::$val=$val=~"demand"?1:0
2014-11-21_06:01:59 1
#HCS_System:devicestate:::$val=$val=~"on"?1:0
aber am Plot ist nun demand und on unten, also sehe ich keine Linie?
?
siehe Anhang
Ah, musste noch die Range mit
set yrange [0:1]
set y2range [0:1]
angeben.
Jetzt scheint es zu gehen, vielen Dank!!
Zitat von: Mitch am 21 November 2014, 13:14:21
Ah, musste noch die Range mit
set yrange [0:1]
set y2range [0:1]
angeben.
Jetzt scheint es zu gehen, vielen Dank!!
gerne auch ein bisschen weiter
set yrange [0.9:1.1]
set y2range [0.9:1.1]
dann fallen die Linien nicht mit der Grenze zusammen
Grüße
Igami
Was noch komisch ist, ich erhalte für "demand", d.h. es wird Wärme benötigt, nur Linien?
Der demand besteht ja länger und schaltet dann den Brenner ein?
Siehe Anhang