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
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);;
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?
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
Vielen Dank nun funktioniert es :)
Hast du gerade noch nen Tipp wie ich das auf zwei Nachkommastellen runden kann?
{sprintf "%.2f", "27.34567"}
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)
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
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)