Guten Tag Zusammen,
ich bin gerade dabei die Rückgabewerde meines Nextion-Displays auszuwerten.
If Else fände ich in diesem Fall eher mehr aufwand als ne lange Switch Case abfrage zu verwenden.
Ich habe in meiner 99_myUtils.pm folgende Funktion die durch ein Notify gestartet wird:
sub
DisplayFrame_WZ_Receiving_Utils($)
{
my ($VarValue) = @_;
switch ($VarValue)
{
case 1273
{
fhem("set BU.LightScene scene ON");
}
case 1274
{
fhem("set BU.LightScene scene OFF");
}
}
}
Ich bekomme die Rückgabe in die Funktion, daran liegt es nicht.
Wenn ich die 99_myUtils.pm speichere, bekomme ich folgende Fehlermeldung angezeigt:
ERROR:
syntax error at ./FHEM/99_DisplayFrameUtils.pm line 188, near ") {" syntax error at ./FHEM/99_DisplayFrameUtils.pm line 193, near "case 1274"
Ich weiß echt nicht, was ich falsch mache oder was das Problem ist.
Ich hoffe ihr könnt mir helfen.
Viele Grüße und Danke
Gear
Hallo Gear,
was denn jetzt -> ./FHEM/99_DisplayFrameUtils.pm
vs.
Wenn ich die 99_myUtils.pm speichere...
Welche Datei stimmt?
Gruß Otto
Ach, ich hab die "Test-Datei" "99_DisplayFrameUtils.pm" verwendet, weil ich schauen wollte ob es an der "99_myUtils.pm" selber liegt, sry mein Fehler.
Die Funktion liegt natürlich in der "99_myUtils.pm"
Da kommt die gleiche Fehlermeldung.
Otto, das ist doch völlig egal. Der Syntaxfehler kommt mit Sicherheit nicht vom Dateinamen.
switch/case ist mindestens seit 2011 deprecated.
use feature qw(switch);
sub DisplayFrame_WZ_Receiving_Utils($) {
my ($VarValue) = @_;
given($VarValue) {
when (1273) { fhem("set BU.LightScene scene ON") }
when (1274) { fhem("set BU.LightScene scene OFF") }
}
}
Danke, jedoch kommt der Fehler mit given when auch.
ERROR:
syntax error at ./FHEM/99_myUtils.pm line 97, near ") {" syntax error at ./FHEM/99_myUtils.pm line 97, near ") {"
das "use feature qw(switch);" steht da nicht zum Spass...
Verdammt ich hab das voll übersehen.. _-.-"
Danke jetzt geht es! =D