Hauptmenü

[Gelöst] fhem_set Problem

Begonnen von Reinhard.M, 08 November 2021, 20:18:32

Vorheriges Thema - Nächstes Thema

Reinhard.M

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:

Damian

Die Warnung kommt aus color.pm. Dort in der Zeile 508 wird etwas verglichen, was nicht numerisch ist.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Reinhard.M

Ä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?

Damian

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');
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Reinhard.M

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
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