98_HTTPMOD - Argument isn't numeric in addition (get*PollDelay)

Begonnen von loetmeister, 13 September 2025, 12:09:21

Vorheriges Thema - Nächstes Thema

loetmeister

Hallo,

ich bekomme die folgende Perl Warnung, wenn ich z.B. get1PollDelay == x2 setzte. (2x das Poll Intervall des HTTPMOD Device...)
So verstehe ich zumindest die Hilfe "PollDelay can be specified as seconds or as x[0-9]+ ...". Leider hatte ich kein Beispiel dazu gefunden. Eventuell ist die Syntax anders zu verstehen? Oder es ist ein Überbleibsel in der Hilfe und ist nicht mehr aktuell?
 ::)

PERL WARNING: Argument "x2" isn't numeric in addition (+) at ./FHEM/98_HTTPMOD.pm line 1406.
Zitatget[0-9]+PollDelay
if the value should not be read in each iteration (after the interval given to the define command), then a minimum delay can be specified with this attribute. This has only an effect if the above Poll attribute has also been set. Every time the update function is called, it checks if since this get has been read the last time, the defined delay has elapsed. If not, then it is skipped this time.
PollDelay can be specified as seconds or as x[0-9]+ which means a multiple of the interval in the define command.

Gruß,
Thomas


ergerd

Falls es hier um eine Multiplikation geht, multipliziert wird mit *
FHEM auf RasPi 4, ZigBee, 1Wire2WLAN, DS2423, Buderus KM200, Button+, LaCrosseGateway, PCA301, ConBee III, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys

betateilchen

Zitat von: ergerd am 13 September 2025, 12:28:41Falls es hier um eine Multiplikation geht, multipliziert wird mit *

Es geht hier nicht um eine reine mathematische Funktion, sondern um die Anwendung einer Attributsyntax in einem device.

Zitat von: loetmeister am 13 September 2025, 12:09:21Eventuell ist die Syntax anders zu verstehen?

Meines Erachtens hast Du das schon richtig verstanden. Um herauszufinden, warum es bei Dir nicht funktioniert, müsste man mal in den Modulcode schauen, was da passiert.
Funktioniert es denn, wenn Du einfach den Wert in Sekunden angibst? Also das Doppelte des definierten Intervalls?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

  Log3 $name, 5, "$name: GetUpdate checks if poll required for $getName ($getNum)";
  my $lastPoll = 0;
  $lastPoll = $hash->{lastpoll}{$getName} if ($hash->{lastpoll} && $hash->{lastpoll}{$getName});
  my $dueTime = $lastPoll + GetFAttr($name, 'get', $getNum, "PollDelay",0);

Im Code deutet für mich nichts darauf hin, dass ein Attributwert x2 überhaupt ausgewertet würde...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

loetmeister

Hallo betateilchen,

danke für die Antwort. Ich hatte auch einen Blick auf 98_HTTPMOD.pm line 1406 geworfen, und keine Umrechnung eines möglichen Multiplikators erkannt... daher der Gedanke es könnte sich einfach um veraltetet Dokumentation handeln?

Wenn ich den "PollDelay" in Sekunden angebe gibt es keine Probleme / log Einträge.

Gruß,
Thomas