Hallo zusammen,
das hat mir jetzt einige Kopfschmerzen bereitet: Ich habe mehrere Notifies, die die aktuelle Uhrzeit mit folgendem Befehl in einer Variable speichern:
my $currentTime = sprintf("%02d:%02d", $hour, $min);
Irgendwann fiel mir auf, dass viele Vergleiche mit der aktuellen Zeit nicht funktionieren, woraufhin ich $currentTime geloggt habe. Es stellte sich raus, dass in manchen Notifies nicht die Uhrzeit generiert wurde, sondern Strings wie "902d:902d".
Im Endeffekt sieht es so aus: Ich habe ein Notify, wo folgendes funktioniert:
my $currentTime = sprintf("%02d:%02d", $hour, $min);
und zwei Notifies, wo es so aussehen muss, also mit doppelten Prozentzeichen:
my $currentTime = sprintf("%%02d:%%02d", $hour, $min);
Wie kann das sein? ???
schau mal in der commandref nach der veralteten bedeutung von % in den notifys.
du kannst das über das featurelevel attribt abstellen.
gruß
andre
Zitat von: justme1968 am 24 Juli 2015, 12:40:41
schau mal in der commandref nach der veralteten bedeutung von % in den notifys.
du kannst das über das featurelevel attribt abstellen.
Meinst du folgenden Absatz?
ZitatAchtung: Folgende Vorgehensweise ist abgekündigt, funktioniert bis featurelevel 5.6 und wird in einem zukünftigen Release von FHEM nicht mehr unterstützt. Wenn keine der oben genannten Variablen ($NAME/$EVENT/usw.) in der Anweisung gefunden wird, werden Platzhalter ersetzt.
Hast du einen Codeschnipsel, wie ich dieses Verhalten abstellen kann?
Einfach das Attribut featurelevel verwenden.
Ich habe das Featurelevel jetzt auf 5.7 gesetzt, scheint zu funktionieren. Vielen Dank für den Hinweis.
Woher weiß man denn, welches das aktuelle Featurelevel ist? Und was passiert, wenn fhem aktualisiert wird und weiterhin "5.7" festgelegt ist?