Maskieren von " in einem at

Begonnen von Dduieh, 18 August 2013, 18:57:41

Vorheriges Thema - Nächstes Thema

Dduieh

Hallo,

ich will in einem at eine eigene Methode (99_MyUtils.pm) aufrufen.
Die Methode erwartet einen String "abc" als Parameter.

Wenn ich den Befehl so schreibe:
{ ...
  fhem("define sz_Rollo_up at +00:00:01 {Rollo("sz_Rollo_Dummy 30")}");
... }
geht es nicht, da nach einem " der fhem Befehl zu ende ist.

Gibt es eine Möglichkeit das " zu maskieren?

Dietmar63

so:

{ ...
 my $temp = "sz_Rollo_Dummy 30";
 fhem("define sz_Rollo_up at +00:00:01 {Rollo($temp)}");
 ...
}

wahrscheinlich ist folgendes richtiger bestimmt einfacher(zwei Parameter):

{ ...
 my $temp = "sz_Rollo_Dummy";
 fhem("define sz_Rollo_up at +00:00:01 {Rollo($temp, 30)}");
 ...
}

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dduieh

Funktioniert leider nicht:

2013.08.18 19:13:00 3: Unmatched right curly bracket at (eval 348) line 1, at end of line
syntax error at (eval 348) line 1, near "} }"

Puschel74

Hallo,

dann hast du irgendwo ein } zuviel.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dietmar63

ich habe folgendes gemacht:


an();

sub an{
 my $temp = "sz_Rollo_Dummy";
 Log 3, "temp------------>$temp";
 fhem("define sz_Rollo_up at +00:00:01 {Rollo($temp, 30)}");

}
sub Rollo ($) {
}
sub fhem ($) {
      my($c) = @_;
      Log 3, "c------------>$c";

}


dies war der output:
temp------------>sz_Rollo_Dummy
c------------>define sz_Rollo_up at +00:00:01 {Rollo(sz_Rollo_Dummy, 30)}

Process completed, Exit Code 0.
Execution time: 00:00.140


Syntktisch also ok. funzt auch.
Vielleicht lässt sich dies nicht über die Oberfläche von fhem eingeben.

Ich erfasse mit einem ordentlichen Editor.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

betateilchen

fhem("define sz_Rollo_up at +00:00:01 {Rollo('sz_Rollo_Dummy 30')}");
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dduieh

Ja, hatte noch ein } drin.

Mit dem ' geht es aber auch.

Super vielen Dank an EUCH!!!