FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: OK_DE am 15 Januar 2016, 06:41:10

Titel: myUtils - Prüfen ob Device existiert ?
Beitrag von: OK_DE am 15 Januar 2016, 06:41:10
Hallo,

In fhem.cfg kann ich ja so überprüfen ob ein FHEM Device existiert:
fhem("delete WECKER_WECKEN_AT") if (defined($defs{'WECKER_WECKEN_AT'}));;;;

Ich möchte das ganze nun in einer meiner Funktionen in die myUtils verlagern um dynamisch FHEM Devices anzulegen.
Existiert ein Device schon z.B: WECKER_WECKEN_AT_0 soll WECKER_WECKEN_AT_1 angelegt werden.

my $index = 0;
while(defined($defs{'WECKER_WECKEN_AT_$index'})) {$index = $index + 1;}
fhem("define WECKER_WECKEN_AT_$index at $WECKEN_ZEIT {myUtils_Wecken($WECKEN_TAG,$WECKEN_SENDER)};;");



Leider wird nur einmailg WECKER_WECKEN_AT_0 angelegt.
Beim zweiten Aufruf der Funktion habe ich einen Fehler im Log das WECKER_WECKEN_AT_0 schon existiert.

Jemand eine Idee ???

Danke im Voraus

Titel: Antw:myUtils - Prüfen ob Device existiert ?
Beitrag von: CoolTux am 15 Januar 2016, 07:38:21

my $index = 0;
while(defined($defs{'WECKER_WECKEN_AT_$index'})) {$index = $index + 1;}
fhem("define WECKER_WECKEN_AT_$index at $WECKEN_ZEIT {myUtils_Wecken($WECKEN_TAG,$WECKEN_SENDER)};;");


Bau mal Debugging Ausgaben ein. Einmal innerhalb der Schleife und einmal ausserhalb. Dann wirst Deinen Fehler ganz schnell sehen    ;D
Titel: Antw:myUtils - Prüfen ob Device existiert ?
Beitrag von: betateilchen am 15 Januar 2016, 12:31:10
Und dann solltest Du mal perl-Grundlagendoku lesen, um den Unterschied zwischen ' und " bei alphanumerischen Werten zu verstehen.
Titel: Antw:myUtils - Prüfen ob Device existiert ?
Beitrag von: CoolTux am 15 Januar 2016, 12:56:53
So weit hatte ich noch gar nicht geschaut. Danke betateilchen für die Info



Grüße