FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Mazz78 am 17 September 2016, 11:44:14

Titel: Mehrere Readings eines Device mit "at" in Log schreiben ???
Beitrag von: Mazz78 am 17 September 2016, 11:44:14
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

Titel: Antw:Mehrere Readings eines Device mit "at" in Log schreiben ???
Beitrag von: Hans Franz am 17 September 2016, 12:54:26
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
Titel: Antw:Mehrere Readings eines Device mit "at" in Log schreiben ???
Beitrag von: DeeSPe am 17 September 2016, 16:25:43
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
Titel: Antw:Mehrere Readings eines Device mit "at" in Log schreiben ???
Beitrag von: Mazz78 am 17 September 2016, 22:24:47
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