Guten Abend zusammen,
ich stehe glaube etwas auf dem Schlauch..
Ich würde gerne auf meine an einem Mobilgerät gestellte Weckzeit reagieren.
Ich habe mein Handy per AMAD-Device eingebunden und würde gerne das alarmclock-Device triggern.
Sobald sich der Tag oder die Uhrzeit ändern, möchte ich schauen auf welchen Tag und welche Uhrzeit der Wecker gestellt wurde und dementsprechend reagieren. Soweit in meinem Kopf. Leider scheitert es an der Umsetzung und ich finde den Fehler nicht.. Ich hoffe es kann mir jemand helfen..
([Huawei_Marvin:nextAlarmDay] | [Huawei_Marvin:nextAlarmTime]) {
my $TagMobil = ReadingsVal("Huawei_Marvin", "nextAlarmDay", "") ;
my $ZeitMobil = ReadingsVal("Huawei_Marvin", "nextAlarmTime", "") ;
fhem("set Pushover msg '$TagMobil $ZeitMobil'")
DOELSEIF ($TagMobil eq "Sa") { fhem("set Wecker_test AlarmTime_6 $ZeitMobil") ;; }
DOELSEIF ($TagMobil eq "So") { fhem("set Wecker_test AlarmTime_7 $ZeitMobil") ;; }
}
Liebe Grüße und vielen Dank,
Marvin
DOELSEIF ausserhalb des Perl Befehls verschieben
DOIF (Bedingung) {Perl Befehl}
DOELSEIF (Bedingung) {Befehl}
...
Das heisst aber, dass dein Konstrukt nicht funktionieren kann. Dann musst Du entweder Readings setzen (im ersten Befehl) und die dann in anderen Befehle benutzen, oder komplett auf Perl-Modus dein DOIF neu schreiben musst
Guten Tag,
danke für den Hinweis!
Ich hab mich bisher so gut wie nie mit der Perl-Ebene beschäftigt, muss ich dann wohl mal anfangen! :-)
So funktioniert es:
{ if (["_Marvin:nextAlarmDay"]||["_Marvin:nextAlarmTime"]){
my $TagMobil = (ReadingsVal("$DEVICE", "nextAlarmDay", ""));;
my $ZeitMobil = (ReadingsVal("$DEVICE", "nextAlarmTime", ""));;
fhem("set Pushover msg '$TagMobil $ZeitMobil'");;
{ if ($TagMobil eq "Sa"){fhem("set Wecker_test AlarmTime6_Saturday $ZeitMobil");;}}
{ if ($TagMobil eq "So"){fhem("set Wecker_test AlarmTime7_Sunday $ZeitMobil");;}}
}
}\
Liebe Grüße und ein schönes Wochenende,
Marvin