Hallo,
Habe ein paar Probleme mit einer Zeitschaltuhr.
Die einfache Schaltung geht, aber erweitert um eine Anwesenheit nicht, hat jemand eine Idee?
Funktioniert
{ fhem("set Alarmanlagen_Dummy closed") if (!$we) }
Keine Funktion
{ fhem("set Alarmanlagen_Dummy closed") if (!$we) && ([DirkAnwesend] eq:"present") }
eq:
Richtig eq und Leerzeichen
und die Klammersetzung stimmt nicht
Hallo,
das es nachgestelltes if gibt, habe ich mittlerweile gelernt - mögen tu ich es immer noch nicht. Den : hinter eq verstehe ich nicht - zudem würde ich die beiden Bedingungen nach dem if klammern um auszuschließen, das perl da etwas anderes draus macht.
Warum alle Welt runter auf Perl geht um Vergleiche zu machen - es gibt doch genug Möglichkeiten das mit fhem zu machen. Entweder IF oder DOIF - wobei ich in diesem Fall mir mal DOIF ansehen würde.
Gruß Christoph
Zitat von: Bennemannc am 02 Februar 2016, 22:40:38
Warum alle Welt runter auf Perl geht um Vergleiche zu machen
Weil perl einfach logischer zu verstehen ist. Aber wenn schon perl, dann bitte konsequent.
{ fhem("set Alarmanlagen_Dummy closed") if ((!$we) && Value("DirkAnwesend") eq "present") }
Genau! Perl rules!
Und wer das nachgestellte if nicht mag, zieht es eben nach vorne:
{ !$we && Value("DirkAnwesend") eq "present" && fhem("set Alarmanlagen_Dummy closed") }
Zitat{ !$we && Value("DirkAnwesend") eq "present" && fhem("set Alarmanlagen_Dummy closed") }
@turo: Ist das dein Ernst?
Äh? Ja? Das tut doch! (Oder hätte ich doch erst meinen Kaffee zu Ende trinken sollen?) Nutzt die short circuit evaluation des "&&" Operators.
Ich meinte eher, das hier im Anfängerforum zu posten. Kann man machen, ein if kann man aber auch anders voran stellen. Ich möchte mal wissen, welchen Anfänger das nicht verwirrt.
OK, da könntest Du Recht haben, dass das für manchen etwas harter Tobak ist. Aber "Anfängerforum" heisst doch nicht unbedingt "Programmieranfänger-Forum"? Und eine alternative Lösung mag ja für manchen der Anreiz sein, sich mal etwas tiefer mit Perl zu beschäftigen.
Es fehlte vielleicht der Disclaimer: "Das ist eine Alternative! Die müsst Ihr nicht verstehen! Sucht Euch die Lösung aus, die Ihr mögt und versteht und auch handhaben könnt!"
(Ich wollte eigentlich primär auf das "ich mag kein nachgestelltes if" eingehen.)
Hallo,
Danke nochmals für die Hilfe, dies hat es auch getan, bis vor ca. Einer Woche.
Irgendwie schaltet nichts mehr. Haben sich irgendwelche Änderungen eingeschlichen welche ich im Urlaub übersehen habe?
*22:00:00 { fhem("set Alarmanlagen_Dummy closed") if ((!$we) && Value("DirkAnwesend") eq "present") }