Ich habe von einem Homematic Zwischenstecker Verbrauchswerte in Watt/h, die ich gerne über gplot in kW/h darstellen möchte. Nach meiner Recherche wird für die Darstellung eine Logzeile offensichtlich in ein array $fld[ ] eingelesen. Die Anzahl der Elemente richtet sich wohl nach den gefundenen "Leerzeichen". Eine Zeile aus meinem Log sieht so aus:
2014-03-15_18:04:52 Stecker01_Pwr energy: 5737.9 also gibt es vier Einträge (beginnend mit 0).
------$fld[0]------+--$fld[1]----+$fld[2]+$fld[3]Der eigentliche Messwert (5737,9) ist im Datenfeld $fld[3] zu finden. Jetzt habe ich im Feld Fuction den Ausdruck
$fld[3]=$fld[3]/1000 eingetragen. Jetzt wird der dargestellte Wert korrekt in kw/h dargestellt.
Ich frage mich jetzt:
- geht das noch einfacher? und
- wo kann ich bezüglich der Verwendung von Functions etwas mehr erfahren?
Für die Darstellung ohne Brücksichtigung von Nachkommatas reicht ja auch der Eintrag von
int aus und nicht
$fld[3]=int $fld[3]Die Dokumentation von gnu-plot ist zu mächtig. Schön wäre etwas auf
fhem Zugeschnittenes.
Gruß Eberhard
Alternativ ein userReading verwenden, und gleich den geäderten Wert loggen.
Beispiel:
attr Zwischenstecker userReadings kW/h { int ( 10 *( (ReadingsVal("Zwischenstecker","Wattstunde",0) / 1000) + 0.5 ) / 10 }
Danke für die interessante Alternative; ich werde sie im Hinterkopf behalten, wenn ich die Log-Daten verändert abspeichern möchte. Nur ein kleiner Hinweis:
[korinthenkackermodus] Hinter der letzten 10 fehlt noch 'ne Klammer zu. Sorry, aber nur zu Vervollständigung. [/korinthenkackermodus]
Mir geht es momentan hier nur um das THema gplot und die damit verbundenen Möglichkeiten über Function angezeigte Logwerte gezielt temporär zu verändern.
Gruß Eberhard
Da sucht man tagelang nach Informationen und fragt letztendlich das Forum. Dann hat man den Thread eingestellt, schaut noch mal ins wiki und dann - oh-Graus-mich-trifft-der-Schlag - findet man einen Beitrag in englischer Sprache, der sagt was Sache ist.
Fazit: Nicht nur eine Nacht warten, bevor man (ich) etwas einstellt sondern immer eine Nacht länger :-[
Es gibt nur zwei Funktionen, die eingearbeitet sind: int und delta-h bzw. delta-d. Alles Andere geht nur über pearl-Ausdrücke wie oben erwähnt.
Gefunden habe ich es unter: http://www.fhemwiki.de/wiki/Creating_Plots (http://www.fhemwiki.de/wiki/Creating_Plots)
Danke nochmal an Joachim.
Gruß Eberhard
Moin FHEm2005,
ZitatNur ein kleiner Hinweis:
[korinthenkackermodus] Hinter der letzten 10 fehlt noch 'ne Klammer zu. Sorry, aber nur zu Vervollständigung. [/korinthenkackermodus]
Da hast Du recht, also hier die korrigierte Version:
attr Zwischenstecker userReadings kW/h { int ( 10 *( (ReadingsVal("Zwischenstecker","Wattstunde",0) / 1000) + 0.5 ) / 10 )}
das kommt davon, wenn man eigenen Codeschnippsel versucht anzupassen.
Gut dass Du eine Lösung für Dich gefunden hast.
Setze bitte deinen Tread-Titel auf gelöst.
Gruß Joachim