HH:MM:SS bis zu einer Endzeit - evtl. Sommerzeit Problematik

Begonnen von holsteiner-kiel, 30 August 2022, 14:43:51

Vorheriges Thema - Nächstes Thema

holsteiner-kiel

Hallo zusammen,

ich komme leider absolut nicht weiter.

Ich möchte eine Zeit im Format HH:MM:SS erhalten, in der ich die Zeit bis zu einer definierten Endzeit errechne.

Die Endzeit liegt mir vor im Format
2022-08-30T09:24:03+00:00

Nun habe ich folgendes geschrieben:
MQTT2_waschmaschine_washer_completion_time:*
{
   my $Endzeit_sec=time_str2num($EVENT);
   my $timenow=time();
   my $diff=$Endzeit_sec - $timenow;
   my $diff_time=FmtTime($diff);

    fhem ("set Waschmaschine_Restzeit $diff_time");
}

Insgesamt scheint das zu funktionieren, allerdings bekomme ich einen Wert heraus, der genau 1 Stunde zu hoch ist. Ich gehe von einer Sommerzeit-Problematik aus. Irgendwer eine idee?

Vielen Dank vorab!

Viele Grüße!

Otto123

#1
Hi,

das liegt an FmtTime
{ FmtTime(time()) }liefert die aktuelle Uhrzeit richtig "local" formatiert

{ FmtTime(3600) }liefert 2:00

Idee: {strftime("%H:%M",gmtime(3600))} aber vielleicht gibt es bessere ;)

FmtTime  in fhem.pl arbeitet mit localtime
sub
FmtTime($)
{
  my @t = localtime(shift);
  return sprintf("%02d:%02d:%02d", $t[2], $t[1], $t[0]);
}


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz