min/max für Strings

Begonnen von dt2510, 03 Januar 2024, 08:47:42

Vorheriges Thema - Nächstes Thema

dt2510

Mir ist gerade aufgefallen, dass ich seit einiger Zeit Fehlermeldungen bei der Erstellung von userReadings bekomme. Hier der Befehl zum Erstellen der userReadings:

activity { max("alive", map { $_ eq $NAME ? "alive" : ReadingsVal($_,"activity","alive") } split(",",$defs{$NAME}{NOTIFYDEV}) ) },
devicesDead { grep { $_ ne "$NAME" && ReadingsVal($_,"activity","alive") eq "dead" } split(",",$defs{$NAME}{NOTIFYDEV}) },
devices { join(",",grep { $_ ne "$NAME" && ReadingsVal($_,"activity","alive") eq "dead" } split(",",$defs{$NAME}{NOTIFYDEV})) }

Im Fehlerprotokoll steht folgende Meldung:

2024.01.01 00:00:20 1: PERL WARNING: Argument "alive" isn't numeric in subroutine entry at (eval 53655) line 1.
2024.01.01 00:00:20 3: eval: { max("alive", map { $_ eq $NAME ? "alive" : ReadingsVal($_,"activity","alive") } split(",",$defs{$NAME}{NOTIFYDEV}) ) }

Früher (Ende 2021 hab' ich erste Warnungen) hat das einwandfrei funktioniert, bzw. es funktioniert immer noch, aber ich bekomme die Warning im Log. Es gibt wohl anscheinend die Befehle minstr/maxstr in Perl, aber das kann FHEM nicht auswerten ... Was kann ich machen, damit mein Fehlerprotokoll nicht überquillt ?

rudolfkoenig

In 99_Utils.pm gibt es die Funktionen min/max (fuer Strings) und minNum/maxNum (fuer Zahlen).
Manche perl Module implementieren min/max fuer Zahlen.
Wenn einer der benutzent FHEM Module dieses Perl-Modul benutzt, dann bekommt man die o.g. Fehler.
Die Aufgabe waere jetzt das problematische FHEM- bzw. perl-Modul rauszufinden.