FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: hhsch am 13 September 2014, 20:59:12

Titel: Differenz im DbLog SVG berechnen
Beitrag von: hhsch am 13 September 2014, 20:59:12
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?
Titel: Antw:Differenz im DbLog SVG berechnen
Beitrag von: franky08 am 14 September 2014, 01:52:01
Die Readings in der 99_myUtils berechnen und aus dem neuen Wert den Plot generieren, so mach ich das mit einigen Plots.

VG
Frank
Titel: Antw:Differenz im DbLog SVG berechnen
Beitrag von: hhsch am 14 September 2014, 21:02:51
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.
Titel: Antw:Differenz im DbLog SVG berechnen
Beitrag 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
Titel: Antw:Differenz im DbLog SVG berechnen
Beitrag von: Damian am 15 September 2014, 12:51:03
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
Titel: Antw:Differenz im DbLog SVG berechnen
Beitrag von: franky08 am 15 September 2014, 13:23:37
@Damian
Ich weis  ;)
Das hier ist für einen Anfänger aber übersichtlicher, find ich.

VG
Frank
Titel: Antw:Differenz im DbLog SVG berechnen
Beitrag von: hhsch am 16 September 2014, 20:55:35
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?