FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: blofield am 03 September 2015, 15:52:30

Titel: Perlnachhilfe: Prototype Fehler in Subroutine
Beitrag von: blofield am 03 September 2015, 15:52:30
Hallo Forum,

ich bin seit 2 Jahren begeisterter FHEM User. Meine Installation ist recht komplex aber funktioniert tadellos. Bis ich meine erste Subroutine für ein MilightDevice geschrieben habe, welches mir Probleme verursacht, weil ich mangels Perl Erfahrung den Fehler nicht finden kann.

Problem:
2015.09.03 14:49:47 1: PERL WARNING: Prototype mismatch: sub main::sleep (;@) vs (@) at ./FHEM/99_myUtils.pm line 102.
Die Routine funktioniert aber!? Jedoch bringt sie scheinbar jedes xte mal FHEM zum Stillstand, das letzte was dann im Log steht ist "GLOBAL sleepwell defined".

Subroutine in 99_myUtils.pm :
sub sleep(@) {
my @dev=@_;
{ fhem("set @dev on; set @dev rgb FFFFFF; define sleepwell at +00:30:00 {sleepwell ('@dev') if (Value('@dev') ne 'off')}")}
}

sub sleepwell(@) {
my @dev=@_;
my @color=("FFFF54","E86602","D40000","C2046F","9D02B5","4F00A8","000480","330033");
my $i=0;

foreach (@color) { if ($i == 0)
{ fhem("set @dev rgb FFFFFF; define sleepOff at +00:32:00 set @dev off 15"); }
else
{ fhem("set @dev rgb $color[$i] 120 q"); }
$i++;}
}


Welcher Perlmeister kann mich erleuchten...

Danke.
blofield
Titel: Antw:Perlnachhilfe: Prototype Fehler in Subroutine
Beitrag von: Wzut am 03 September 2015, 16:03:35
der Name sleep für das eigene Kind war keine gute Idee , mach mal ein sub schlafen daraus :)
Hintergrund : Highlander Prinzip -> "es kann nur Einen geben" :)
Titel: Antw:Perlnachhilfe: Prototype Fehler in Subroutine
Beitrag von: blofield am 03 September 2015, 16:34:31
Gelöst:

es kann nur Einen geben!


Danke!
blofield.