FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: MarvinLu am 22 November 2019, 18:54:11

Titel: [gelöst] Problem mit verschachteltem DOIF
Beitrag von: MarvinLu am 22 November 2019, 18:54:11
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
Titel: Antw:Problem mit verschachteltem DOIF
Beitrag von: amenomade am 22 November 2019, 19:06:47
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
Titel: Antw:Problem mit verschachteltem DOIF
Beitrag von: MarvinLu am 23 November 2019, 13:00:00
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