Hi,
ich habe mein System auf LogDB "umgestellt".
Nun würde ich gern einen Plot erzeugen der mir neben der Temperatur auch den Status der Poolheizung als an bzw aus darstellt.
Diese liefert aber "nur" den aktuellen Stromverbrauch und nicht den Status an oder aus. Daher habe ich wie unter:
https://wiki.fhem.de/wiki/SVG-Plots_von_FileLog_auf_DbLog_umstellen (https://wiki.fhem.de/wiki/SVG-Plots_von_FileLog_auf_DbLog_umstellen)
[/size][size=78%]im Artikel @fld beschrieben folgende Zeile in mein gplut file eingefügt bzw die entsprechende zuweisungszeile geändert:[/size]
[/size]
#DBLogging pool.heating:power:::$val=~s/.*I:\s([-\.\d]+).*/$1>0?1:0/eg
Nur leider ohne Erfolg. Der Plot zeigt noch immer nicht den Status richtig an.
Meine Plot Definition sieht so aus:
# Created by FHEM/98_SVG.pm, 2019-08-03 09:18:22
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 'Pool Temperature - Heizungsstatus'
set ytics
set y2tics
set grid ytics
set ylabel "Temperature"
set y2label "Status"
set yrange [0:35]
set y2range [-1:3]
#DBLogging sensor_pool_temperatur_wasser:temperature
#DBLogging sensor_pool_temperatur_luft:temperature
#DBLogging pool.heating:power:::$val=~s/.*I:\s([-\.\d]+).*/$1>0?1:0/eg
plot "<IN>" using 1:2 axes x1y1 title 'Wasser' ls l2 lw 1 with lines,\
"<IN>" using 1:2 axes x1y1 title 'Luft' ls l0 lw 1 with lines,\
"<IN>" using 1:2 axes x1y2 title 'Pool Heizung' ls l3 lw 1 with lines
Ich kann dir bei den regex nicht helfen. Hatte mal was ähnliches. Ich habe mir ein userreadings erstellt mit 0 oder 1 das kannst du gut plotten. Denke es ist auch schneller im Vergleich zu regex für jeden Satz im Plot. Als Ansatz ... vielleicht hilft es. Historische Sätze kannst du ... wenn nötig ... mit sql Export und etwas Logik in SQL-file erstellen.