Autor Thema: [Gelöst] Endlosschleife in ElectricityCalculator wegen Zeitumstellung?  (Gelesen 3934 mal)

Offline Sailor

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2272
  • und es werden immer mehr...
Antw:[Gelöst] Endlosschleife in ElectricityCalculator wegen Zeitumstellung?
« Antwort #60 am: 11 November 2022, 12:23:40 »
Noch eleganter geht es so:

my @UseLibaries = qw( JSON
JSON::Parse
HttpUtils );


Naja, mit der Liste stoesst du dann aber an die Grenzen von qw()

Crypt::NaCl::Sodium qw( :utils )
Crypt::Argon2 qw/argon2i_raw/
File::Spec::Functions ':ALL'

Gruss
    Sailor
******************************
Man wird immer besser...

Offline Sailor

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2272
  • und es werden immer mehr...
Antw:[Gelöst] Endlosschleife in ElectricityCalculator wegen Zeitumstellung?
« Antwort #61 am: 11 November 2022, 12:26:14 »
...warum eigentlich nicht mit Bordmitteln? Rudi hat das schon in 90_at.pm und 92_FileLog.pm gelöst....
eine "generalisierte" form für 99_Utils:
# calculate number of seconds for given day
# input: 'YYYY-MM-DD HH:MM:SS' (like FHEM DateTime) or unix-Timestamp
# return: Numer of seconds for given day: 86400 (normal), 82800 or 90000 on DST day!
sub secondsToday($) {
        my $ts = shift;

        my $secToday = 0;
        if ($ts =~ /^[\d]+$/ix) { # unix TS
                $ts = FmtDateTime($ts); # convert unix TS into FHEM DateTime
        }
        my ($fy,$fm,$fd, undef) = split(/\D/,$ts,4);
        my $sec   = time_str2num("$fy-$fm-$fd 00:00:00");
        my $secTo = time_str2num("$fy-$fm-$fd 23:59:59") +1;
        $secToday = $secTo - $sec;
        return $secToday;
}
geht sicher noch eleganter....
l.g. erwin

Hallo Erwin

Stimmt, aber ich brauche auch den UNIX - Timestamp von der nächsten Mitternacht.
Insofern erschlage ich mit dem Code oben beides.

Trotzdem Danke für den Hinweis.

Gruß
    Sailor
******************************
Man wird immer besser...

Offline erwin

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 853
Antw:[Gelöst] Endlosschleife in ElectricityCalculator wegen Zeitumstellung?
« Antwort #62 am: 11 November 2022, 13:50:34 »
Zitat
Stimmt, aber ich brauche auch den UNIX - Timestamp von der nächsten Mitternacht.
der ist in meinem code versteckt unter $secTo.
l.g.erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzirl IP731, 1-Wire GW,...

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18891
Antw:[Gelöst] Endlosschleife in ElectricityCalculator wegen Zeitumstellung?
« Antwort #63 am: 11 November 2022, 14:26:23 »
Naja, mit der Liste stoesst du dann aber an die Grenzen von qw()

Ja, qw() vielleicht. Aber nicht an die Grenze einer direkten array-Definition

sub test{
use Data::Dumper;

my @UseLibraries = ( "Crypt::NaCl::Sodium qw( :utils )",
                     "Crypt::Argon2 qw/argon2i_raw/",
                     "File::Spec::Functions ':ALL'" );
return Dumper \@UseLibraries;
}

Aber: ich bin jetzt hier raus.

Du meinst immer noch, alles besser zu wissen und ignorierst deshalb die meisten gutgemeinten Tipps, die Dir hier gegeben werden (Beispiel: erwins Codeschnipsel, das Du Dir offenbar nichtmal genau angeschaut hast).
-----------------------
Mach es möglichst simpel und mach es richtig,
dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline isy

  • Sr. Member
  • ****
  • Beiträge: 936
Antw:[Gelöst] Endlosschleife in ElectricityCalculator wegen Zeitumstellung?
« Antwort #64 am: 11 November 2022, 16:02:07 »
Wenn ich es richtig verstehe, ist das Paket bereits on board:

Bei mir ist die Library jedenfalls auch bereits installiert, nur eine ältere Version:
libdatetime-format-builder-perl/oldstable,now 0.8100-2 all  [Installiert,automatisch]
libdatetime-format-iso8601-perl/oldstable,now 0.08-2 all  [Installiert,automatisch]
libdatetime-format-strptime-perl/oldstable,now 1.7600-1 all  [Installiert,automatisch]
libdatetime-locale-perl/oldstable,now 1:1.23-1 all  [Installiert,automatisch]
libdatetime-perl/oldstable,now 2:1.50-1+b1 armhf  [Installiert,automatisch]
libdatetime-timezone-perl/oldstable,now 1:2.23-1+2022e all  [Installiert,automatisch]

Die Version wird durch apt-get update / upgrade nicht erneuert, das ist aber ein anderes Thema, denke ich.
       
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19703
Antw:[Gelöst] Endlosschleife in ElectricityCalculator wegen Zeitumstellung?
« Antwort #65 am: 01 Dezember 2022, 09:44:05 »
Ergänzend: ...ein Ladung irritierter User wie in https://forum.fhem.de/index.php/topic,47909.msg1244457.html#msg1244457 und dem folgenden Beitrag zu generieren, obwohl diese vermeintlich dringende Notfallmaßnahme jetzt doch erst mal noch gar nicht sein muss (und wenn, dann ggf. schneller über das OS-Paket zu lösen wäre!).

Konkreter Vorschlag: Streiche die betreffenden Beiträge durch und mach einen Vermerk drunter, dass weitere News dann bei Gelegenheit folgen werden...

*aus gegebenem Anlass ein reminder*
M.E. wäre das weiter sinnvoll, diese Art "Tipp" als überholt zu markieren!
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files
Gefällt mir Gefällt mir x 1 Liste anzeigen