[Gelöst] Endlosschleife in ElectricityCalculator wegen Zeitumstellung?

Begonnen von KyleK, 31 Oktober 2022, 00:09:53

Vorheriges Thema - Nächstes Thema

Sailor

Zitat von: betateilchen am 11 November 2022, 09:32:04
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...

Sailor

Zitat von: erwin am 11 November 2022, 11:40:43
...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...

erwin

ZitatStimmt, 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, Weinzierl IP731, 1-Wire GW,...

betateilchen

Zitat von: Sailor am 11 November 2022, 12:23:40
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).
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

isy

Zitat von: rob am 10 November 2022, 10:08:47
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

Beta-User

Zitat von: Beta-User am 09 November 2022, 17:34:59
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-elitedesk@Debian 12, 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