Plot "0-Werte" auslassen

Begonnen von kabakakao, 23 Februar 2016, 20:34:18

Vorheriges Thema - Nächstes Thema

kabakakao

Guten Abend,

ich kämpfe gerade mit meinem Plot für meinen Stromzähler.
Ich bekomme in regelmäßigen Abständen "0-Werte" von meinem Zähler.
Wenn ich dazu jetzt einen Plot mache, ist das ein ZickZack, dass man gar nichts mehr erkennt.

Somit würde ich diese gerne beim Plot einfach auslassen.
Gibt es da eine Möglichkeit?

Ich habe es schon mit:

$fld[3]==0?:$fld[3]

versucht, das klappt aber leider nicht.

ein:
$fld[3]==0?300:$fld[3]

setzt alle "0-Werte" auf 300. Das macht den Graphen lesbarer, ist aber nicht das, was ich gerne hätte.

Habe ich einen Denkfehler, oder geht das nicht?

Bennemannc

Hallo,

wenn Du 0 ersetzt oder wegläßt, verfälscht Du unweigerlich den Verlauf. Dann ist die Grafik zwar schöner - aber eben nicht mehr richtig. Du könntest mit den Stilen mal experimentieren (cubic, quadrat) dann ist es schon mal nicht mehr so eckig.
Ansonsten, schau Dir doch mal die verschieden Statistikmodule an. Da könnte man dann einen Mittelwert loggen und daraus eine Kurve bauen.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

rudolfkoenig

Ideen:

Eigentlich muss das Problem an der Quelle (== Stromzaehler) behoben werden.
Wenn das nicht geht, dann im Modul.
Wenn das auch nicht geht, dann koennte man ein notify bauen, der bei Werten ungleich 0 ein setreading ausfuehrt, was wiederum im FileLog verewigt und im Plot angezeigt wird.
Alternativ koennte mn versuchen in der Plot-Definition / Regexp Spalte nur Werte ungleich 0 zu matchen (nicht ganz trivial).
Ganz gewiefte koennten in der Plot-Definition / Function Spalte eine eigene Funktion aus 99_myUtils.pm aufruft, der den letzten Wert in einer globalen Variable merkt, und falls der Aktuelle 0 ist, dann diesen gemerkten zurueckliefert.

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

kabakakao

Vielen Dank für eure Antworten.
Die "0-Werte" kommen daher, dass bei geringem Stromverbrauch innerhalb einer Meldeperiode keine kompletten Umdrehungen gezählt werden konnten.
Das das der Graph, wenn ich den Wert weglasse, nicht ganz korrekt ist, ist mir auch klar.
Aber so ist er etwas besser lesbar. Ich lasse mir zusätzlich auch die Stundenwerte anzeigen.

@frank: Wenn man den kleinen Tippfehler bemerkt funktioniert deine Lösung. Vielen Dank. korrekt heißt es:
$fld[3]==0?undef:$fld[3]

Gruß,
Stephan

frank

ZitatWenn man den kleinen Tippfehler bemerkt funktioniert deine Lösung.
glückwunsch, test bestanden.  ;)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Mirko_2013

Hallo zusammen,

Ich möchte das Thema nochmal aufgreifen allerdings zum Thema DbLog.
Ich bin gerade dabei meine Plots alle auf das DBLog umzustellen und habe das gleiche Problem.
Bisher konnte ich "Verbindungsfeher" die im Log mit einer "0" als Wert verbucht werden mit folgender Zeile im Plot unterdrücken.

$fld[3]==0?undef:$fld[3]

Mit DbLog geht das nicht mehr mein Versuch war bisher mit

$val=($val==0?undef:$val)

das gleiche zu erreichen, allerdings ohne Erfolg.

Könnt Ihr mir einen Tip geben, wie ich das ganze auch mit DbLog im Plot "korrigieren" kann?

Danke und viele Grüße
Mirko
HP Microserver Gen8; fhem-5.8; CUL868 - V1.66; CUL868 - V1.61; CUL433 - V1.61; CUNX - V2.67; eBus Koppler USB