FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: accloginsell am 19 März 2019, 08:36:42

Titel: Readings Zeit berechnung
Beitrag von: accloginsell am 19 März 2019, 08:36:42
Servus beinand,

ich habe jetzt lange rumprobiert und komme auf keinen Nenner.
Kann mir jemand bei diesem Thema helfen.
Ich möchte zwischen zwei Readings die Zeit ermitteln.


turfreischaltung:.* {
my $timestamp = FmtDateTime(ReadingsVal("geofancy","lastLoc_nico",2000-01-01 00:00:00));
  my $seconds = FmtDateTime(ReadingsVal("geofancy","currLoc_nico",2000-01-01 00:00:00));
  my $result = ($timestamp - $seconds);
fhem("setreading arbeitswegberechnung test $timestamp");;
}


Das ist mein ernster Entwurf leider kommt hier eine 0 raus.

Kann mir jemand das begradigen?

Merci euch!
LG
Nico
Titel: Antw:Readings Zeit berechnung
Beitrag von: rabehd am 19 März 2019, 09:39:46
Welches Ergebnis erhälst Du mit der Eingabe {FmtDateTime(ReadingsVal("geofancy","lastLoc_nico",2000-01-01 00:00:00))} eingibst?
Welcher Wert ist im Reading "lastLoc_nico" des Device "geofancy"?
Das Gleiche für für das andere Reading.

Und da wäre noch das
https://forum.fhem.de/index.php/topic,50783.msg424064.html#msg424064 (https://forum.fhem.de/index.php/topic,50783.msg424064.html#msg424064)

Du berechnest $result, verwendest es aber nicht.

fhem("setreading arbeitswegberechnung test $timestamp");;
Da bin ich mir nicht sicher. Ich verwende fhem("setreading arbeitswegberechnung test ". $timestamp);;
Titel: Antw:Readings Zeit berechnung
Beitrag von: accloginsell am 05 April 2019, 09:50:23
Hallo Zusammen,

Danke für die Antwort.
Habe es nun so versucht umzusetzen.

Leider kommt immer nur {time_str2num(ReadingsTimestamp("geofancy","lastLoc_nico","0"))}-{time_str2num(ReadingsTimestamp("geofancy","currLoc_nico","0"))} in telegram übermittelt.


([geofancy:lastLoc_nico] eq "Arbeit" and [geofancy:currLoc_nico] eq "Nina Freiham")(set telegram send [{time_str2num(ReadingsTimestamp("geofancy","lastLoc_nico","0"))}-{time_str2num(ReadingsTimestamp("geofancy","currLoc_nico","0"))}])

Hat Jemand eine Lösung dafür?
Titel: Antw:Readings Zeit berechnung
Beitrag von: Otto123 am 05 April 2019, 11:18:55
Hi,

wozu sollen die eckigen Klammern sein? set telegram send [...]

Wenn Du im set Befehl einen Perl Ausdruck auflösen willst  set telegram send {Perl Befehl} dann musst Du zusätzliche, runde Klammern verwenden.
set telegram send {(Perl Befehl)}

Findet man in der Doku (https://commandref.fhem.de/#set)  :D

Gruß Otto
Titel: Antw:Readings Zeit berechnung
Beitrag von: accloginsell am 08 April 2019, 11:28:53
Vielen Dank nun funktioniert es :)

Hast du gerade noch nen Tipp wie ich das auf zwei Nachkommastellen runden kann?
Titel: Antw:Readings Zeit berechnung
Beitrag von: Otto123 am 08 April 2019, 12:04:01
{sprintf "%.2f", "27.34567"}
Titel: Antw:Readings Zeit berechnung
Beitrag von: accloginsell am 09 April 2019, 08:14:07
Servus,

darauf bin auch gestoßen. Jedoch wie bekomme ich in diesen DOIF?

([geofancy:lastLoc_nico] eq "Arbeit" and [geofancy:currLoc_nico] eq "Zuhause")(set telegram send Fahrzeit von der Arbeit nach Hause: {(time_str2num(ReadingsTimestamp("geofancy","currLoc_nico","0"))-time_str2num(ReadingsTimestamp("geofancy","lastLoc_nico","0")))/60} Minuten)
Titel: Antw:Readings Zeit berechnung
Beitrag von: Otto123 am 09 April 2019, 11:53:53
Moin,

na relativ einfach:
{(Hier steht Dein_Perlausdruck)}
{sprintf "%.2f", Hier steht auch ein Perlausdruck}
Da Du im set Befehl arbeitest, mein Beispiel für sprintf aber für die Kommandozeile war, musst Du die Form wählen:
{(sprintf "%.2f", Dein_Perlausdruck)}

Gruß Otto
Titel: Antw:Readings Zeit berechnung
Beitrag von: accloginsell am 10 April 2019, 08:21:48
Perfekt :) DANKE!

für die Nachwelt.


([geofancy:lastLoc_nico] eq "Arbeit" and [geofancy:currLoc_nico] eq "Zuhause")(set telegram send Fahrzeit von der Arbeit nach Hause: {(sprintf "%.2f",(time_str2num(ReadingsTimestamp("geofancy","currLoc_nico","0"))-time_str2num(ReadingsTimestamp("geofancy","lastLoc_nico","0")))/60)} Minuten)