Differenz im DbLog SVG berechnen

Begonnen von hhsch, 13 September 2014, 20:59:12

Vorheriges Thema - Nächstes Thema

hhsch

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?
FHEM mit DbLog (MySQL) auf BananaPi M2 (RPiTC-2_beta1-bpi-m2), mit CUL868 (fw 1.57) und CUL868 (fw 1.57) im HM Betrieb
12xCUL_EM, 2xCUL_WS, 6xHMS100T, 4xHMS100TF, CUL_HM_HM_CC_RT_DN, CUL_HM_HM_TC_IT_WM_W_EU, CUL_HM_HM_SEC_SCo, CUL_HM_HM_LC_SW2_FM, KS300

franky08

Die Readings in der 99_myUtils berechnen und aus dem neuen Wert den Plot generieren, so mach ich das mit einigen Plots.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

hhsch

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.
FHEM mit DbLog (MySQL) auf BananaPi M2 (RPiTC-2_beta1-bpi-m2), mit CUL868 (fw 1.57) und CUL868 (fw 1.57) im HM Betrieb
12xCUL_EM, 2xCUL_WS, 6xHMS100T, 4xHMS100TF, CUL_HM_HM_CC_RT_DN, CUL_HM_HM_TC_IT_WM_W_EU, CUL_HM_HM_SEC_SCo, CUL_HM_HM_LC_SW2_FM, KS300

franky08

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
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

franky08

@Damian
Ich weis  ;)
Das hier ist für einen Anfänger aber übersichtlicher, find ich.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

hhsch

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?
FHEM mit DbLog (MySQL) auf BananaPi M2 (RPiTC-2_beta1-bpi-m2), mit CUL868 (fw 1.57) und CUL868 (fw 1.57) im HM Betrieb
12xCUL_EM, 2xCUL_WS, 6xHMS100T, 4xHMS100TF, CUL_HM_HM_CC_RT_DN, CUL_HM_HM_TC_IT_WM_W_EU, CUL_HM_HM_SEC_SCo, CUL_HM_HM_LC_SW2_FM, KS300