Hallo zusammen,
ich habe gestern anhand von Beispielen aus der Commandref mein erstes DOIF gebaut und es hat sogar funktioniert. Plan ist, nur bei Anwesenheit von mir oder meiner Frau am Abend die Hintergrundbeleuchtung im Wohnzimmer einzuschalten, abhängig von der Dämmerung. Umgesetzt habe ich es so:
define di_test DOIF ([({sunset("HORIZON=0",0,"16:00","22:00")})] and ([Person1:state] eq "present" or [Person2:state] eq "present")) (set wz_Hintergrundbeleuchtung on)
Zur "gewünschten" Zeit wurde das Licht der Hintergrundbeleuchtung eingeschaltet. Das ODER hat auch funktioniert, da Person1 simuliert nicht anwesend war. Allerdings ist mir aufgefallen, dass im fhemlog seither alle 30 Sekunden folgende Logzeile kommt:
2015.06.14 22:37:35 1: PERL WARNING: Use of uninitialized value in string eq at fhem.pl line 4293.
2015.06.14 22:38:02 1: PERL WARNING: Use of uninitialized value in string eq at fhem.pl line 4293.
2015.06.14 22:38:37 1: PERL WARNING: Use of uninitialized value in string eq at fhem.pl line 4293.
In Zeile 4293 beginnt genau die Definition meines DOIF. Was ist falsch? Ja, ich gebe gern zu von Perl keine Ahnung zu haben. Vielleicht hat mir jemand einen Hinweis.
Danke und Grüße
Carsten
Hallo Carsten,
ich bin auch nicht der Perl Crack aber mir fallen zwei Dinge auf:
Ein Set runde Klammer erscheint mir um die geschweiften von sunset überflüssig.
sunset liefert eine Zeit. Du nimmst diesen Wert und machst eine direkte logische Verknüpfung mit den Personenstatus. Du müsstest den Status der Personen zu dieser Zeit abfragen.
Kann aber sein, das DOIF das trotzdem versteht.
Gruß Otto
Hallo,
habe mal die Klammer entfernt, FHEM meckert mal nicht deswegen und abwarten wie es heute Abend funktioniert.
Viele Grüße
Carsten
Person1:state ist noch nicht mit einem Wert belegt?
Test erfolgreich, keine PERL Warnings mehr im fhem.log. Es waren wohl tatsächlich die von Otto angemerkten Klammern die zuviel waren. Jetzt wird die Hintergrundbeleuchtung eingeschaltet, wenn eine der Personen anwesend ist (gelöst über das PRECENCE Modul).
Danke für den Schubser in die richtige Richtung
Carsten