[Gelöst]99_myUtils.pm und SwitchCase bringen fehlermeldung / funktionieren nicht

Begonnen von Gear, 17 August 2018, 17:40:36

Vorheriges Thema - Nächstes Thema

Gear

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
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

Otto123

Hallo Gear,

was denn jetzt -> ./FHEM/99_DisplayFrameUtils.pm
vs.
Wenn ich die 99_myUtils.pm speichere...

Welche Datei stimmt?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Gear

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.
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

betateilchen

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") }
  }
}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Gear

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 ") {"
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Gear

Verdammt ich hab das voll übersehen.. _-.-"
Danke jetzt geht es! =D
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <