Hallo, ich versuche schon einige Zeit warum regexp im FileLog funktioniert aber mit DbLog nicht.
Im FileLog:
#FileLog 3:Schalter_Wohnungstuer.*:0:$fld[2]=~"on"?1:0
funktioniert.
Im DbLog:
#DbLog 3:Schalter_Wohnungstuer.*:0:$fld[2]=~"on"?1:0
Dabei ist es egal ob ich auf "on" oder "open" prüfe, mit FileLog geht es, mit DbLog nicht. Egal wie ich regexp versuche anzupassen.
Die funktionierende gplot Datei (mit FileLog):
# Created by FHEM/98_SVG.pm, 2013-11-14 19:09:32
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> <L1>'
set ytics ("closed" 0, "open" 1)
set y2tics ("closed" 0, "open" 1)
set grid
set ylabel "Status"
set y2label "Status"
set yrange [-0.1:1.1]
set y2range [-0.1:1.1]
#FileLog 3:Schalter_Wohnungstuer.*:0:$fld[2]=~"on"?1:0
plot "<IN>" using 1:2 axes x1y2 notitle ls l0 lw 1 with steps
Habe in der letzten Zeit 17 Plots von FileLog auf DbLog problemlos umstellen können aber an dem Schalter kapituliere ich langsam.
Wo liegt mein Denkfehler?
VG
Frank
Hallo,
da meine GPlot auch dim abfängt (dank andre) sieht die GPLOT bei mir so aus:
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 ("Aus" 0, "Ein" 1)
set y2tics ("Aus" 0, "Ein" 1)
set yrange [-0.1:1.1]
set y2range [-0.1:1.1]
set ylabel "Status"
set y2label "Status"
#DbLog <SPEC1>:state:::$val=~s/(Ein|Aus|dim)(\d*).*/$1eq"Ein"?1:($1eq"dim"?$2*0.01:0)/eg
plot "< awk '{print $1, $3~/dim.*/? 1 : 0; }' <IN>"\
using 1:2 notitle with steps
Ich mappe aber on/off auf Ein/Aus.
Hoffe das hilft dir weiter.
Grüße
Das war der Tip, funktioniert auf Anhieb. Die regexp, da wäre ich mit meinen bescheidenen Perl Kenntnissen nie drauf gekommen, wie es gefiltert werden muss.
Die gplot Datei hat jetzt auch den Namen puschel2.gplot ;)
Danke, ich sitze seit 2 Wochen daran und hatte den einen Sensor schon wieder auf FileLog umgestellt.
VG
Frank
Hallo,
ZitatDie gplot Datei hat jetzt auch den Namen puschel2.gplot
Das ehrt mich aber ich will mich keinesfalls mit fremden Federn schmücken.
ZitatDie regexp, da wäre ich mit meinen bescheidenen Perl Kenntnissen nie drauf gekommen, wie es gefiltert werden muss.
Denkst du ich?
Mir hat andre dabei geholfen - und mir einiges beigebracht was regexp anbelangt.
Also wenn dann sollte die Datei andre.gplot heissen ;D
Wobei ich sie einfach nur fs20db.gplot benannt habe 8)
Grüße
Ich nochmal, obwohl die gplot funktioniert, bringt das Log jetzt jede Menge Fehler in der Art:
2014.02.04 21:03:51 3: DbLog: Error in inline function: <$val=~s/(open|closed)(\d*).*/$1eq"open"?1:/eg>, Error: syntax error at (eval 7838) line 1, at EOF
2014.02.04 21:03:51 3: DbLog: Error in inline function: <$val=~s/(open|closed)(\d*).*/$1eq"open"?1:/eg>, Error: syntax error at (eval 7839) line 1, at EOF
2014.02.04 21:03:51 3: DbLog: Error in inline function: <$val=~s/(open|closed)(\d*).*/$1eq"open"?1:/eg>, Error: syntax error at (eval 7840) line 1, at EOF
2014.02.04 21:03:51 3: DbLog: Error in inline function: <$val=~s/(open|closed)(\d*).*/$1eq"open"?1:/eg>, Error: syntax error at (eval 7841) line 1, at EOF
2014.02.04 21:03:51 3: DbLog: Error in inline function: <$val=~s/(open|closed)(\d*).*/$1eq"open"?1:/eg>, Error: syntax error at (eval 7842) line 1, at EOF
2014.02.04 21:03:51 3: DbLog: Error in inline function: <$val=~s/(open|closed)(\d*).*/$1eq"open"?1:/eg>, Error: syntax error at (eval 7843) line 1, at EOF
regexp:
#DbLog <SPEC1>:state:::$val=~s/(open|closed|dim)(\d*).*/$1eq"open"?1:($1eq"dim"?$2*0.01:0)/eg
plot "< awk '{print $1, $3~/dim.*/? 1 : 0; }' <IN>"\
using 1:2 notitle with steps
Hast du eine Idee?
Gruß Frank
Hallo,
ähem - sorry da hab ich keine Idee.
update mal ausgeführt?
Ich hab keine Fehler im Log.
Grüße
Mach ich morgen. Mal sehen, was da los ist.
VG
Frank
@Puschel74
Nachdem ich gestern Abend Debian komplett neu gestartet habe, sind die Fehlermeldungen im Log weg! Hätte wahrscheinlich auch gereicht fhem mit einem shutdown restart mal neu zu starten.
VG
Frank