Ich weiß, dass das 'if defined' schon ab und an behandelt wurde so z.B. hier http://forum.fhem.de/index.php?topic=13689.0 (http://forum.fhem.de/index.php?topic=13689.0) ,
aber irgendwie komme ich mit der Lösung nicht zurecht.
Mich stören die Meldungen im Log, dass ich meinen Timer erst definieren soll, bevor ich ihn lösche.
2014.09.22 18:11:53 3: delete gwc_reTriggerTimer : Please define gwc_reTriggerTimer first
Deshalb habe ich versucht mit
if(defined gwc_reTriggerTimer)
auf das ,vorhanden sein' des Timers zu prüfen, bevor ich ihn dann mit
fhem "delete gwc_reTriggerTimer"
lösche.
Im Ganzen sieht das dann so aus
if(defined gwc_reTriggerTimer) {fhem "delete gwc_reTriggerTimer"};;\
Leider läuft das nicht wie erwartet und ich bekomme folgende Meldung im Log:
2014.09.22 18:36:36 3: gwc_UpOff return value: Bareword "gwc_reTriggerTimer" not allowed while "strict subs" in use at (eval 8616) line 2, <GEN24210> line 4.
Der Versuch mit
if(defined "gwc_reTriggerTimer")
wie im oben aufgeführten Link angegeben läuft leider auch nicht – ein String in " " ist vermutlich immer 'definiert', so dass das if immer ausgeführt wird.
Wenn mir jemand sagen könnte, wo ich hier auf dem Schlauch stehe, würde mir das sehr helfen.
Merci schon mal.
Holger
Schau Dir mal diese Threads an: http://forum.fhem.de/index.php/topic,27011.0.html und http://forum.fhem.de/index.php/topic,27084.0.html
Dort ist es unter anderem von Andre (justme1968) näher auseinandergepflückt. Das von Dir verlinkte Beispiel von betateilchen hatte mich damals auch in die Irre geführt.
Stichwort: $defs{'objekt'}
Hallo krikan,
danke für den 'Schupser' - wobei ich sagen muss, der entscheidende Hinweis kam von Dir:
ZitatStichwort: $defs{'objekt'}
Für alle die es interessiert:
if(defined $defs{gwc_reTriggerTimer}) {fhem "delete gwc_reTriggerTimer"};;\
damit läuft's nun.
Grüße
Holger