gelöst - Doif im Perl Funktionsaufruf

Begonnen von tfriedrich85, 25 April 2020, 20:21:08

Vorheriges Thema - Nächstes Thema

tfriedrich85

Hallo zusammen,

ich nutze ein Doif um damit einen LED Stripe zu steuern, das funktioniert auch. Allerdings möchte ich die Farbe des Strips an die Tageszeit anpassen und habe mir dazu eine Funktion (Lichtfarbe) in myutilys geschrieben, die mir je nach Tageszeit einen Hex- Farbcode zurückliefert.
Ruft man die Funktion über die Befehlszeile auf wird der korrekte Farbcode ausgegeben.

Diesen Farbcode muss nun in ein "set" Befehl und das funktioniert nicht. Seht selbst

Der DOELSEIF für White funktioniert und soll als Beispiel dienen.


## cmd_21: White
DOELSEIF ([$SELF:effect] eq "white") (
set [$SELF:device] nfx line 1 149 FFFFFF
)
## cmd_22: Zeit
DOELSEIF ([$SELF:effect] eq "zeit") (
set [$SELF:device] nfx line 1 149 [{Lichtfarbe()}]  ## RGB
)


Ich bin sicher das ist nur ein Syntax Fehler...

tfriedrich85

Hallo,

ich bin ein Stück weitergekommen über ein:

DOIF_Readings - Farbe:{Lichtfarbe()}

## cmd_22: Zeit
DOELSEIF ([$SELF:effect] eq "zeit") (
set [$SELF:device] nfx line 1 149 [$SELF:Farbe]


Wie kann ich denn diese Readings regelmäßig aktualiesiern?

Gruß Tobias

Damian

Du kannst im ersten DOIF setzen:

set [$SELF:device] nfx line 1 149 {(Lichtfarbe())}  ## RGB

DOIF_Readings arbeiten nur  eventbasiert und nicht zeitgesteuert.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

tfriedrich85

Danke, für die Aufklärung der Syntax! Es funktioniert!
Gruße Tobias