Hallo,
ich habe zwei Sensoren, die in den DbLog schreiben. Nun habe ich beide Sensoren in einem SVG Plot dargestellt.
#DbLog CUL_EM_12:total:::delta-d
#DbLog CUL_EM_10:total:::delta-d
Ich will jetzt ein Graphen aus der Differenz der beiden Sensoren anzeigen lassen.
Also der Wert von CUL_EM_10 - CUL_EM_12.
Wie kann ich das am einfachsten direkt im SVG berechnen lassen?
Die Readings in der 99_myUtils berechnen und aus dem neuen Wert den Plot generieren, so mach ich das mit einigen Plots.
VG
Frank
Kannst du ein Beispiel für eine Funktion bereitstellen?
sub test()
{
return {fhem("get myDbLog - - - - CUL_EM_12:total:::delta-h")};
}
Diese Funktion gibt nur "HASH(0x22b7418)" aus.
Hallo, ich lese über ReadingsVal die benötigten Daten aus den Readings und berechne dann in der 99_myUtils den benötigten neuen Wert, schreibe den in ein dummy oder in die Readings vom device und kann sie von da aus plotten.
Beispiel:
sub regen_tag()
{
my $y1 = ReadingsVal("myWS1080","Rain-total","999" );
my $y2 = ReadingsVal("myWS1080","Rain-total_min_day","999" );
my $y3 = ($y1 - $y2);
my $y4 = int(100 * $y3 + 0.5) / 100;
fhem "setreading Regen_diff_dummy state $y4";
fhem "setreading myWS1080 Regen_Tag $y4";
return ($y4);
}
VG
Frank
Zitat von: franky08 am 14 September 2014, 22:13:50
Hallo, ich lese über ReadingsVal die benötigten Daten aus den Readings und berechne dann in der 99_myUtils den benötigten neuen Wert, schreibe den in ein dummy oder in die Readings vom device und kann sie von da aus plotten.
Beispiel:
sub regen_tag()
{
my $y1 = ReadingsVal("myWS1080","Rain-total","999" );
my $y2 = ReadingsVal("myWS1080","Rain-total_min_day","999" );
my $y3 = ($y1 - $y2);
my $y4 = int(100 * $y3 + 0.5) / 100;
fhem "setreading Regen_diff_dummy state $y4";
fhem "setreading myWS1080 Regen_Tag $y4";
return ($y4);
}
VG
Frank
So etwas geht auch etwas kürzer inklusive Triggerung zum Berechnen (also ohne notify):
define regen DOIF
attr regen state {(([myWS1080:Rain-total]-[myWS1080:Rain-total_min_day])*100+0.5)/100}
Status von regen hat dann den berechneten Wert, den man Loggen kann.
Gruß
Damian
@Damian
Ich weis ;)
Das hier ist für einen Anfänger aber übersichtlicher, find ich.
VG
Frank
Danke für die ganzen Tipps :) ...
Ich kann jetzt die Einzelwerte voneinander abziehen und ausgeben lassen, doch mit der Delta Funktion funktioniert es nicht...
Hat dafür jemand eine Lösung?