Hallo zusammen,
ich verwende das Modul THZ meiner Stiebel Eltron Wärmepumpe. (define LWZ403 THZ 192.168.178.37:2222)
Daraus möchte ich täglich einmal um 23:55 Uhr die drei Readings (AussenTemp_avg_day, sElectrDHWDay, sElectrHCDay) in ein Logfile (LWZ403_Stromverbrauch) schreiben.
Für AussenTemp_avg_day funktioniert das auf folgendem Weg bisher tadellos...
define LWZ403_Stromverbrauch dummy
define FileLog_LWZ403_Stromverbrauch FileLog ./log/LWZ403_Stromverbrauch-%Y.log LWZ403_Stromverbrauch
attr FileLog_LWZ403_Stromverbrauch logtype text
define LWZ403_Stromverbrauch_anDummy at *23:55:00 { my $d= ReadingsVal("LWZ403","AussenTemp_avg_day",0)." °C"; fhem ("set LWZ403_Stromverbrauch $d")}
Nun komme ich aber nicht weiter. Ich komme (als Neuling) nicht darauf wie ich die beiden anderen Readings in das Logfile bekomme.
Ich dachte, ich könnte vielleicht das DEF des "at" um die folgenden Zeilen erweiten. Das hat aber nicht funktioniert.
*23:55:00 { my $d= ReadingsVal("LWZ403","sElectrDHWDay",0)." kWh"; fhem ("set LWZ403_Stromverbrauch $d")}
*23:55:00 { my $d= ReadingsVal("LWZ403","sElectrHCDay",0)." kWh"; fhem ("set LWZ403_Stromverbrauch $d")}
Oder muss ich für jedes Reading ein extra dummy und ein at anlegen? Aber wie bekomme ich das dann in EIN Logfile?
:-[ BITTE steinigt mich nicht gleich für meine Frage, ich hab mir die letzten beiden Nächt bis spät Nachts den Wolf gegoogled, aber als Prgrammier-Noob bin ich etwas auf Beispiele angewiesen. Und ich hab nichts passendes gefunden.
Könnt ihr mir bischen auf die Sprünge helfen?
Grüße
Mazz
Du kannst alles in eine Zeile des Dummys packen.
{
my $d1 = "AussenTemp_avg_day ".ReadingsVal("LWZ403","AussenTemp_avg_day",0)." °C ";
my $d2 = "sElectrDHWDay ".ReadingsVal("LWZ403","sElectrDHWDay",0)." kWh ";
my $d3 = "sElectrHCDay ".ReadingsVal("LWZ403","sElectrHCDay",0)." kWh ";
fhem ("set LWZ403_Stromverbrauch $d1 $d2 $d3");
}
(ungetestet, und ich übersehe oft etwas ;) )
Wenn du das nicht möchtest, schau' dir setreadings an.
Gruß
Hans
Oder einfach mittels setreading dem dummy mehr Readings spendieren.
Die weiteren Readings können dann auch für das Log mit angegeben werden.
Gruß
Dan
Hallo,
zuerst mal DANKE für die Antworten, besonders an Hans für das Beispiel.
Hier noch der vollstädigkeit halber der fertige Code:
define LWZ403_Stromverbrauch dummy
define FileLog_LWZ403_Stromverbrauch FileLog ./log/LWZ403_Stromverbrauch-%Y.log LWZ403_Stromverbrauch
attr FileLog_LWZ403_Stromverbrauch logtype text
define LWZ403_Stromverbrauch_anDummy at *23:55:00 {
my $d1 = "Tagesdurchschnittstemperatur ".ReadingsVal("LWZ403","AussenTemp_avg_day",0)." °C ";
my $d2 = "Stromverbrauch Warmwasser ".ReadingsVal("LWZ403","sElectrDHWDay",0)." ";
my $d3 = "Stromverbrauch Heizung ".ReadingsVal("LWZ403","sElectrHCDay",0)." ";
fhem ("set LWZ403_Stromverbrauch $d1 $d2 $d3");}
...führt zu folgendem Eintrag in der Logdatei
2016-09-17_23:55:00 LWZ403_Stromverbrauch Tagesdurchschnittstemperatur 15.9 °C Stromverbrauch Warmwasser 1792 Wh Stromverbrauch Heizung 236 Wh
Grüße Mazz