Hallo,
ich habe folgenden Operator:
{\
my $Weather = ReadingsVal("Wetter","day_of_week",0);;\
if ($Weather eq Di){\
fhem("set Tag1 Dienstag")}}
Dieser soll verglichen werden, und dann einen dummy (Tag1) setzen.
Die Fehlermeldung lautet:
ZitatWettertempNotify return value: Bareword "Di" not allowed while "strict subs" in use at (eval 15600) line 3.
Was mache ich falsch?
vielen Dank im voraus
arokh12[/code]
Anführungszeichen vergessen
Zitat von: rapster am 06 Januar 2015, 16:39:15
Anführungszeichen vergessen
Stimmt, jetzt funktioniert es
Vielen Dank
arokh12
Nun habe ich das Problem, dass wenn ich den Operator mehrmals auswerten will mit folgenden Code:
{\
my $Weather = ReadingsVal("Wetter","day_of_week",0);;\
if ($Weather eq "Mo"){fhem ("set Tag1 Montag")};;\
if ($Weather eq "Di"){fhem ("set Tag1 Dienstag")};;\
if ($Weather eq "Mi"){fhem ("set Tag1 Mittwoch")};;\
if ($Weather eq "Do"){fhem ("set Tag1 Donnerstag")};;\
if ($Weather eq "Fr"){fhem ("set Tag1 Freitag")};;\
if ($Weather eq "Sa"){fhem ("set Tag1 Samstag")};;\
if ($Weather eq "So"){fhem ("set Tag1 Sonntag")}}
das ich flogende Fehlermeldung bekomme:
Unknown command my, try help.
IF: no left bracket: {fhem("set Tag1 Dienstag")}
IF: no left bracket: {fhem("set Tag1 Mittwoch")}
IF: no left bracket: {fhem("set Tag1 Donnerstag")}
IF: no left bracket: {fhem("set Tag1 Freitag")}
IF: no left bracket: {fhem("set Tag1 Samstag")}
IF: no left bracket: {fhem("set Tag1 Sonntag")}}
Unknown command my, try help.
Was mache ich falsch?
Vielen Dank im voruas
Hm, editierst du direkt in der cfg oder im Frontend? Im Frontend müssen Zeilenumbrüche und Semikolons nicht maskiert werden, in der cfg schon. Irgendeinen Syntaxfehler (Klammerung) hast du noch. Prinzipiell sollte es aber so gehen.
Gruß
Frank
Hi,
Eventuell hilft Dir dieser Ansatz. Ich habe es so gelöst.
Wetter:day_of_week.* {
fhem("set Tag1 ".kurzWtnachLang(ReadingsVal("Wetter","day_of_week",0)));
}
Und dann in 99_myUtils.pm diesen Code einfügen:
Zitat
sub kurzWtnachLang($)
{
my %wochentag = ('Mo' => 'Montag', 'Di' => 'Dienstag, ... 'So' => 'Sonntag');
return $wochentag {$_[0]};
}
Konnte es eben nicht kopieren ... muss noch mit restlichen Tagen ersetzt werden. Prinzip sollte aber soweit klar sein.
Gruß
Tino
Hallo zusammen,
für alle die das Thema finden und aus den obigen Antworten nicht recht schlau werden. ;)
Ich habe nach einigem probieren mit Yahoo Wetter folgendes gemacht:
1. In Yahoo Wetter das Attribut "userReading" gesetzt:
fc10_day_of_week {wochentag(ReadingsVal("YahooWetter","fc10_day_of_week",0));;},
fc9_day_of_week {wochentag(ReadingsVal("YahooWetter","fc9_day_of_week",0));;},
fc8_day_of_week {wochentag(ReadingsVal("YahooWetter","fc8_day_of_week",0));;},
fc7_day_of_week {wochentag(ReadingsVal("YahooWetter","fc7_day_of_week",0));;},
fc6_day_of_week {wochentag(ReadingsVal("YahooWetter","fc6_day_of_week",0));;},
fc5_day_of_week {wochentag(ReadingsVal("YahooWetter","fc5_day_of_week",0));;},
fc4_day_of_week {wochentag(ReadingsVal("YahooWetter","fc4_day_of_week",0));;},
fc3_day_of_week {wochentag(ReadingsVal("YahooWetter","fc3_day_of_week",0));;},
fc2_day_of_week {wochentag(ReadingsVal("YahooWetter","fc2_day_of_week",0));;},
fc1_day_of_week {wochentag(ReadingsVal("YahooWetter","fc1_day_of_week",0));;},
day_of_week {wochentag(ReadingsVal("YahooWetter","day_of_week",0));;}
2. Unter "Edit files" eine 99_myUtils.pm Datei erzeugt und darin folgenden Code eingegeben:
sub wochentag($) {
my %wochentag = ('Mo' => 'Montag', 'Di' => 'Dienstag', 'Mi' => 'Mittwoch', 'Do' => 'Donnerstag', 'Fr' => 'Freitag', 'Sa' => 'Samstag', 'So' => 'Sonntag');
return $wochentag {$_[0]};
}
Das gute ist, dass der Code so öfter verwendbar ist und nicht im ersten Teil eingebaut werden muss.
cRossi