Plotverlauf phasenweise "ausblenden" (basierend) auf anderem Plotverlauf?

Begonnen von sunrise, 09 November 2023, 09:15:51

Vorheriges Thema - Nächstes Thema

sunrise

Hallo Rudolf und andere FHEM-Experten!

Ist es möglich, einen Plotverlauf stellenweise auszublenden, abhängig von einem anderen Plotverlauf? Es geht um die im Screenshot hervorgehobenen 4 Abschnitte, wo die Heizkreis-Pumpe nicht nur "schnüffelt" (Spitze), sondern auch eine Weile läuft (Plateau). Nur bei Plateaus des Plots für die HK-Pumpe soll ein Plot für 'Vorlauf-Rücklauf' angezeigt werden, weil dieser Plot zu anderen Zeiten a) nicht aussagekräftig ist und b) die Übersicht der ganzen Plot-Darstellung erschwert.

Man kann ja bei den Plots auch Formeln angeben, z.B. so etwas:
#FileLog_Mythz 19:Mythz.sHC1\x3a::$fld[18]=~"summer"?0:1
Allerdings blicke ich nicht durch, ob mein oben geschildertes Ansinnen auch so möglich ist, und wenn ja, wie die Formel dazu aussehen müsste.

Ich könnte in der Formel für den 'Vorlauf-Rücklauf' Plot den Zustand der HK-Pumpe multiplizieren (0: aus, 1: ein), aber dann werden auch die kurzen Spitzen der HK-Pumpe mitberücksichtigt, was ich gerne vermeiden möchte.

Außerdem möchte ich ja, dass der Plot für 'Vorlauf-Rücklauf' an den "uninteressanten" Stellen ausgeblendet (also quasi unterbrochen wird). Mit dem o.g. Vorgehen würde der Plot an den Stellen aber auf Null gehen.

Könnt Ihr mir dazu bitte einen Hinweis in die richtige Richtung geben? Herzlichen Dank! ❤️

Du darfst diesen Dateianhang nicht ansehen.
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

rudolfkoenig

Das sollte machbar sein, wenn alle notwendigen Daten in einer FileLog-Zeile vorhanden sind.

Die Berechnung wuerde ich in 99_myUtils durchfuehren, und diese Routine mit den notwendigen Parameter ($fld[x1], usw) in der function-Spalte aufrufen.

sunrise

Danke! Ja, die Werte sind in einer FileLog-Datei (Mythz-2023-11.log) vorhanden:
Zitat2023-11-09_09:30:05 Mythz sGlobal: outsideTemp: 10.5 flowTemp: 26.7 returnTemp: 22.5 hotGasTemp: 23.3 dhwTemp: 48.5 flowTempHC2: 0 evaporatorTemp: 18.7 condenserTemp: 23.8 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 1 lowPressureSensor: 1 evaporatorIceMonitor: 1 signalAnode: 0 evuRelease: n.a. ovenFireplace: 0 STB: n.a. outputVentilatorPower: 57 inputVentilatorPower: 57 mainVentilatorPower: 0 outputVentilatorSpeed: 43 inputVentilatorSpeed: 28 mainVentilatorSpeed: 0 outsideTempFiltered: 9.1 relHumidity: n.a. dewPoint: n.a. P_Nd: n.a. P_Hd: n.a. actualPower_Qc: n.a. actualPower_Pel: n.a. collectorTemp: 76.2 insideTemp: 0
heatingCircuitPump: 0 oder
heatingCircuitPump: 1

Den Parameter lese ich so aus:
#FileLog_Mythz 31:Mythz.sGlobal\x3a:0:$fld[30]
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

sunrise

Zitat von: rudolfkoenig am 09 November 2023, 09:25:42Die Berechnung wuerde ich in 99_myUtils durchfuehren, und diese Routine mit den notwendigen Parameter ($fld[x1], usw) in der function-Spalte aufrufen.
Geht das nur über 99_myUtils? Ein Konstrukt wie folgendes ist wohl nicht möglich:
#FileLog_Mythz 17:Mythz.sHC1\x3a::($fld[12]-$fld[8])*(31:Mythz.sGlobal\x3a:0:$fld[30])
Dieses konkret funktioniert nicht, d.h. es gar keinen Plot für 'Vorlauf-Rücklauf' angezeigt, aber geht es direkt in der .gplot Datei?
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

sunrise

Sorry, ich bin kein Programmierer und habe daher Schwierigkeiten bei der Umsetzung. In 99_myUtils.pm habe ich testhalber folgende Sub-Routine stehen, die zum Testen schlicht den Wert 1 (statisch) zurückliefern soll, damit ich diesen Rückgabe-Wert dann in der Funktion beim Plot verwenden kann (also mit 1 multiplizieren, was natürlich erst einmal nichts am Plot ändert, aber eben zum Testen diesen sollte):
sub
HC_pump
{
  my $ret = "";
  $ret = 1
}

Wie gesagt, bin ich kein Programmierer und nicht sicher, ob das so korrekt ist.

In der .gplot Datei für die Darstellung von 'Vorlauf minus Rücklauf' sieht es so aus:
#FileLog_Mythz 17:Mythz.sHC1\x3a::($fld[12]-$fld[8])*{HC_pump}
Auch hier weiß ich nicht, ob das *{HC_pump} am Ende so richtig ist. Eher nicht, denn der Plot sieht nicht wie erwartet aus (also er müsste ja eigentlich unverändert sein). Wenn ich *{HC_pump} entferne, ist der Plot ok. Ich vermute, die Syntax ist hier oder auch in 99_myUtils.pm fehlerhaft.

Kann mir bitte jemand auf die Sprünge helfen? Vielen Dank! :)
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

betateilchen

Naja, wenn Du möchtest, dass der Wert zurückgegeben wird, musst Du das in der Funktion halt auch angeben.

sub HC_pump {
  my $ret = 1;
  return $ret;
}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

sunrise

Dankeschön! :) Bin kein Programmierer und schaue mir daher diverse Code-Schnipsel an. Dass ich dabei nicht einmal die Hälfte verstehe und richtig umsetze, kommt ziemlich häufig vor. 🫢

Da ich die Routine nun korrigiert habe, aber der Plot immer noch nicht korrekt ist, vermute ich, dass folgender Aufruf der Routine in .gplot so nicht funktioniert:
#FileLog_Mythz 17:Mythz.sHC1\x3a::($fld[12]-$fld[8])*{HC_pump}
Oh my bad! 😮

Es muss so einfach lauten (keine geschweiften Klammern hinten):
#FileLog_Mythz 17:Mythz.sHC1\x3a::($fld[12]-$fld[8])*HC_pump
Kaum macht man's richtig... ;)
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

sunrise

Also prinzipiell kann ich nun den einen Plot (VL-RL) abhängig vom Zustand eines anderen Parameters (HK Pumpe) darstellen - aber leider wird der Plot dann entweder dargestellt oder gar nicht. Es scheint da keine Möglichkeit zu geben, den VL-RL Plot über die Zeit und damit wechselnden Zustände von 'HK Pumpe' darzustellen.

Ist meine Idee also doch nicht umsetzbar?
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

betateilchen

#8
Doch. Aber man programmiert nicht in einer gplot Datei.
Und mit dem Umfang Deiner vorhandenen Programmierkenntnisse wird es vermutlich recht schwierig.

Eventuell gäbe es ja noch den Weg, bereits das Loggen der vl/rl Daten in Abhängigkeit des Zustandes von "HK Pumpe" zu beeinflussen.
Zumindest bei DbLog wäre das mittels DbLogValueFn recht einfach umsetzbar.
Und wenn dann keine Daten vorhanden sind, werden halt auch keine im plot dargestellt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

sunrise

Ah, ich dachte, dass ein Forum dafür ist, um Hilfe zu bitten, wenn die eigenen Mittel nicht weiterreichen. ;)  Klar, dass ich mich schon bemühen werde!

Ich wollte auch nicht in der .gplot Datei programmieren (dort steht ja nur die Multiplikation mit dem Rückgabewert von HC_pump drin), sondern das dann in 99_myUtils.pm tun. Mir ist derzeit nicht klar, wie das konzeptionell aussehen muss. Bekommt die Formel in .gplot bei jedem Polling einen aktualisierten Wert von der Funktion in 99_myUtils.pm?

Sorry, dass ich so auf dem Schlauch stehe - und danke für Deine Geduld! :)
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

betateilchen

Zitat von: sunrise am 09 November 2023, 11:41:43Ah, ich dachte, dass ein Forum dafür ist, um Hilfe zu bitten, wenn die eigenen Mittel nicht weiterreichen.

Das ist auch so und das habe ich auch nicht in Abrede gestellt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

sunrise

Nein, ich hatte ja auch ein ;) angehängt und versucht, nochmal deutlicher zu machen, wo ich gerade hänge.
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

sunrise

Ich lasse es, denn es übersteigt tatsächlich meine Kompetenzen. Man kann den Plot ja ausblenden für einen besseren Überblick.
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2