FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Simon74 am 03 Juli 2014, 18:59:39

Titel: PERL Syntax: DEF Frage
Beitrag von: Simon74 am 03 Juli 2014, 18:59:39
Ich habe einen Homematic 6fach Taster und würde damit gerne Lautstärke des Enigma Receivers steuern.

Das Enigma Modul funktioniert benötigt jedoch fixe Werte zb. das funktioniert:
define Taster6_Taste3_S notify t5.wz.fs1.taste3:Short.* set t5.wz.receiver volume 50

Jetzt würde ich aber gerne ein Volume +- basteln zum dann auf 2 Tasten (shortpress) zu legen:
Die Frage ist die korrekte Syntax des folgenden Vorhabens a'la:

DEF:
t5.wz.fs1.taste3:Short.*
my $myVolume = (get t5.wz.receiver volume) +5
set t5.wz.receiver volume $myVolume


Gibt es FHEM Lektüre wo die FHEM (PERL) Syntax beschrieben ist ?
Danke
Titel: Antw:PERL Syntax: DEF Frage
Beitrag von: Puschel74 am 03 Juli 2014, 19:17:21
Hallo,

ZitatGibt es FHEM Lektüre wo die FHEM (PERL) Syntax beschrieben ist ?
FHEM hat keinen eigenen (Perl) Syntax.
FHEM ist in Perl geschrieben und daher kannst du jedes beliebige Anfängerbuch für Perl verwenden  ;)

Ich würde das so versuchen:

my $myVolume = ReadingsVal("t5.wz.receiver","volume","10");
my $Volumenew += 5;
set t5.wz.receiver volume $Volumenew


Ungetestet!

Du musst nur irgendwann auch wieder runter zählen  ;D

Grüße
Titel: Antw:PERL Syntax: DEF Frage
Beitrag von: Simon74 am 04 Juli 2014, 01:34:09
So funktioniert die Enigma Lautstärke Regelung wie gewünscht:
define Taster6_Taste3_S notify t5.wz.fs1.taste3:Short.* {my $myVolume=(ReadingsVal("t5.wz.receiver","volume","10")-10);;{fhem("set t5.wz.receiver volume $myVolume")}}
define Taster6_Taste4_S notify t5.wz.fs1.taste4:Short.* {my $myVolume=(ReadingsVal("t5.wz.receiver","volume","10")+5);;{fhem("set t5.wz.receiver volume $myVolume")}}
define Taster6_Taste3_L notify t5.wz.fs1.taste3:Long.1.* set t5.wz.receiver mute


:)