FHEM Forum

FHEM => Automatisierung => Thema gestartet von: hecky456 am 18 Januar 2021, 13:53:53

Titel: statistics Reading mit split zerlegen
Beitrag von: hecky456 am 18 Januar 2021, 13:53:53
Hallo zusammen,

leider schaffe ich es nicht mir aus folgendem Reading "statTotal_consumptionLast Hour: 316.3 Day: 5192.3 Month: 5192.3 Year: 5192.3 (since: 2021-01-18 )" den Wert für Day heraus zu holen.
Eigentlich dachte ich, dass Problem hatten bestimmt schon einige aber leider konnte ich, abgesehen von einem Beitrag der mir nicht weitergeholfen hat, nichts finden.
Aktuell versuche ich das über folgendes at zu lösen (später würde ich mir gerne die Stromkosten für verschiedene Zeiträume berechen):
*0:05:00 {
   my $kWhPreis = AttrNum("SYS_Stromkosten", "kWhPreis", 0);

   my $Total_consump_last_day = {(split(" ",ReadingsVal("<Stromzaehler>","statTotal_consumptionLast","")))[3]};
   fhem("setreading SYS_Stromkosten Vortag " . ($Total_consump_last_day));
}

das Ergebnis sieht dann so aus: "Vortag HASH(0x559cd7d84470)"

Kann mir jemand sagen wo das Problem ist? Leider sind keine Perl-Kentnisse vorhanden :(

Vielen Dank und viele Grüße
Felix
Titel: Antw:statistics Reading mit split zerlegen
Beitrag von: Otto123 am 18 Januar 2021, 14:11:43
Hallo Felix,

zu viele Klammern? Oder das hier steht wirklich so? <Stromzaehler> Da muss der echte Name rein!
*0:05:00 {
   my $kWhPreis = AttrNum("SYS_Stromkosten", "kWhPreis", 0);
   my $Total_consump_last_day = (split(" ",ReadingsVal("Stromzaehler","statTotal_consumptionLast","")))[3];
   fhem("setreading SYS_Stromkosten Vortag " . $Total_consump_last_day);
}


Gruß Otto
Titel: Antw:statistics Reading mit split zerlegen
Beitrag von: hecky456 am 18 Januar 2021, 15:04:14
Hallo Otto,

vielen Dank für deine Hilfe. Das war das Problem! Du hast mir weitere Stunden Frust erspart ;)

Viele Grüße
Felix
Titel: Antw:statistics Reading mit split zerlegen
Beitrag von: Christoph Morrison am 18 Januar 2021, 16:25:55
Schau dir mal die Commandref an, Stichwort singularReadings. Du kannst dir auch ein Reading für den Tag anlegen lassen und musst das nicht selbst rauspopeln.