Hallo Zusammen!
Ich verwende in einer Perl-DOIF Routine fhem_set() um einen Dimmerwert einzustellen. Dabei erhalte ich immer folgende Warning:
warning condition c01: Argument "set 66" isn't numeric in numeric lt (<) at FHEM/Color.pm line 508.
Das Gleiche passiert auch wenn ich fhem('set...') statt fhem_set() verwende. Kann mir jemand sagen, ob
- das Ganze überhaupt ein Problem ist
- der Fehler im Color.pm oder DOIF liegt
- ich den Fehler beheben kann/sollte
Wenn ich meine Logs anschaue müsste der Fehler auch auf der Kommandozeile geschehen. Allerdings sehe ich ihn da nicht. Ich habe mal ein Listing für einen ganz einfachen Testcase angehängt.
Gruß Reinhard
Internals:
CFGFN
DEF {
fhem_set('MQTT2_Tas_LED05 Dimmer 66');
}
FUUID 61896ae5-f33f-dca3-91a5-12ee552b86952b48
MODEL Perl
NAME testDOIF
NOTIFYDEV global
NR 2420
NTFY_ORDER 50-testDOIF
STATE initialized
TYPE DOIF
VERSION 24905 2021-09-01 18:35:54
READINGS:
2021-11-08 19:53:03 block_01 executed
2021-11-08 19:53:02 mode enabled
2021-11-08 19:53:02 state initialized
2021-11-08 19:53:03 warning condition c01: Argument "set 66" isn't numeric in numeric lt (<) at FHEM/Color.pm line 508.
Regex:
accu:
collect:
condition:
0
fhem_set('MQTT2_Tas_LED05 Dimmer 66');
helper:
DEVFILTER ^global$
NOTIFYDEV global
globalinit 1
last_timer 0
sleeptimer -1
perlblock:
0 block_01
uiState:
uiTable:
Attributes:
Die Warnung kommt aus color.pm. Dort in der Zeile 508 wird etwas verglichen, was nicht numerisch ist.
Ähm, richtig :)
Ich merke gerade, da habe ich mich ungeschickt ausgedrückt. Das im Color der Vergleich schief geht war mir klar. Im Event Log steht folgende Zeile:
MQTT2_DEVICE MQTT2_Tas_LED05 Dimmer: set 66
Woraufhin dann die Warning kommt. Sendet DOIF den Befehl falsch oder hat Color.pm vor dem Vergleich nicht richtig gefiltert? Ich kenne mich in den Untiefen von FHEM zu wenig aus um das beurteilen zu können und hatte auf einen Tipp gehofft. Irgendwo muss ich anfangen zu suchen, haben deswegen hier angefangen. Deine Antwort interpretiere ich jetzt so, dass auf DOIF Seite wohl nicht der Fehler ist und ich mich an den Owner von Color.pm wenden sollte, richtig?
Zitat von: Reinhard.M am 08 November 2021, 21:23:13
Ähm, richtig :)
Ich merke gerade, da habe ich mich ungeschickt ausgedrückt. Das im Color der Vergleich schief geht war mir klar. Im Event Log steht folgende Zeile:
MQTT2_DEVICE MQTT2_Tas_LED05 Dimmer: set 66
Woraufhin dann die Warning kommt. Sendet DOIF den Befehl falsch oder hat Color.pm vor dem Vergleich nicht richtig gefiltert? Ich kenne mich in den Untiefen von FHEM zu wenig aus um das beurteilen zu können und hatte auf einen Tipp gehofft. Irgendwo muss ich anfangen zu suchen, haben deswegen hier angefangen. Deine Antwort interpretiere ich jetzt so, dass auf DOIF Seite wohl nicht der Fehler ist und ich mich an den Owner von Color.pm wenden sollte, richtig?
Dann teste es mal im DOIF mit:
fhem ('set MQTT2_Tas_LED05 Dimmer 66');
Danke für die schnelle Antwort, hatte ich bereits getestet (siehe oben).
Auf der Suche nach einem passenderen Forum bin ich über folgenden Eintrag gestolpert:
https://forum.fhem.de/index.php/topic,123614.msg1181779.html#msg1181779 (https://forum.fhem.de/index.php/topic,123614.msg1181779.html#msg1181779)
Beta-User hat dort eine gepatchte Color.pm eingestellt mit der der Fehler behoben ist (bereits getestet). Ich werde diesen Thread also auf gelöst setzen, der Link zur Lösung ist ja hier enthalten.
Gruß Reinhard