define checkWindows notify checkWindows {
my $winKitchen=Value("[Name of the Shutter contact in the Kitchen]");
my $winSleepingroom=Value("[Name of the Shutter contact in the Sleepingroom]");
my $winLivingroom=Value("[Name of the Shutter contact in the Livingroom]");
my $winBath=Value("[Name of the Shutter contact in the Bathingroom]");
if (($winKitchen ne "closed") || ($winSleepingroom ne "closed") || ($winLivingroom ne "closed") || ($winBath ne "closed")) {
my $openWindows="";
if ($winKitchen ne "closed") { $openWindows="Kitchen "; }
if ($winSleepingroom ne "closed") { $openWindows=$openWindows . "Sleepingroom "; }
if ($winLivingroom ne "closed") { $openWindows=$openWindows . "Livingroom "; }
if ($winBath ne "closed") { $openWindows=$openWindows . "Bathingroom"; }
fhem("set push msg 'ATTENTION: Window(s) open!' '" . $openWindows . "' '[Push Device]' 1 ''");
} else {
fhem("set push msg 'SAVE' 'All windows are closed.' '[Push Device]' -1 ''");
}
}
Ich finde einfach den Fehler nicht.
Jedermal gibt es die Nachricht das ich die my Bereiche noch definiert habe.
Wonach sollen die Helfer suchen?
Du hast sicher mehr Infos (Fehlermeldungen aus dem Logfile) die du doch sicher noch posten könntest um den Helfenden die Hilfe nicht unnötig schwer zu machen.
Aber nach deinem gezeigten Code, und der nicht vorhandenen Hilfe deinerseits, würde ich mal sagen:
Value("[Name of the Shutter contact in the Kitchen]");
das wird sicher nicht korrekt aufgelöst.
Das ist mir aber nur auf die Schnelle ins Auge gestochen - den Rest schau ich mir mit so wenig Infos nicht auch noch an.
Edith: Es sei den du verrätst uns was es zu gewinnen gibt - der Titel lässt nämlich einen Gewinn vermuten wenn jemand den Fehler findet.
Mach die Eckigen Klammern weg bei der Variablendeklaration.
Ich gebe Puschel Recht.
Also was in den variablen steht ist nur als Beispiel gedacht.
my ($winKitchen)=Value("Balkon");
my ($winLivingroom)=Value("Wohnzimmer");
my ($winBath)=Value("Bad");
So sieht der Bereich eigentlich aus.
Error:Modul 99_FensterStatus_myUtils deactivated:
syntax error at ./FHEM/99_FensterStatus_myUtils.pm line 26, near "if"
Global symbol "$winKitchen" requires explicit package name at ./FHEM/99_FensterStatus_myUtils.pm line 26, <$fh> line 4.
Global symbol "$winSleepingroom" requires explicit package name at ./FHEM/99_FensterStatus_myUtils.pm line 26, <$fh> line 4.
Global symbol "$winLivingroom" requires explicit package name at ./FHEM/99_FensterStatus_myUtils.pm line 26, <$fh> line 4.
Global symbol "$winBath" requires explicit package name at ./FHEM/99_FensterStatus_myUtils.pm line 26, <$fh> line 4.
syntax error at ./FHEM/99_FensterStatus_myUtils.pm line 33, near "}"
Und das gibt der log dazu aus
Hast du dieses define checkWindows notify auch in der myUtils?
Mal ganz davon ab das das ganze 99_myUtils_Status.pm also nach 99 kommt myUtils
Informiere Dich bitte über 99_myUtils Aufbau
Oh, oh da ist ja so ziemlich ALLES daneben, schwer da was dazu zu sagen! Wie CoolTux und Puschel schon schrieb, sieh dir mal den Aufbau einer Utils an ---> WIKI
https://wiki.fhem.de/wiki/99_myUtils_anlegen
Achso und zur Klarstellung
define ist ein FHEM Befehl / notify ist ein FHEM-Konstrukt
in perl Modulen (und 99... irgendwas mit pm am Ende ist ein perl modul) muss perl Syntax stehen
Also würde ich auch noch ein bisschen über perl nachlesen, denn vermutlich möchteste Du komfortabler eine perl-Sequenz in einem notify verwenden.
Dazu sind zwei Schritte nötig --> perl subroutine in myutils (siehe Links oben) --> Gibt es auch Beispiele
und dann ein notify, das die perl-routine aufruft --> Dazu gibt es sogar in der commandref/wiki Beispiele