Twilight und Anwesenheitserkennung Licht einschalten

Begonnen von inesa394, 06 Juni 2014, 17:02:53

Vorheriges Thema - Nächstes Thema

inesa394

Hallo

Ich benutze das Modul Twilight um bei erkannter Anwesenheit (2 Handys) mein Licht
im Wohnzimmer einzuschalten.
Dazu habe ich mir dieses zusammengeschrieben nur leider funktioniert das nicht.
Es soll bei erkannter Anwesenheit von eines der beiden Handys das Licht bei
Dämmerung im Wohnzimmer angehen passiert aber leider nicht.
define mytwilight Twilight 47.763513 10.626353  1 702563
attr mytwilight group Umwelt
attr mytwilight room Status
define FileLog_Twilight FileLog ./log/Twilight-%Y.log mytwilight:light.*
define wohnzimmer_licht_an notify mytwilight:light.* {if($value{myTwilight}==7 && $value{"handy1"} eq "present " || $value{handy2} eq "present"){fhem("set Wohnzimmer_Stehlampe on-till 22:30")}}

Kann da jemand helfen was hier falsch ist. Vieleicht sollte man die Handy in ein Dummy packen und dann abfragen.
Inesa

herrmannj

Hi Inesa,

in der define schreibst Du twilight mit kleinem "t", im if mit grossem.

Außerdem must Du die "oder" Abfrage bei den mobiles einklammern.

vg
jörg

Dietmar63


define wohnzimmer_licht_an notify mytwilight:light.* {if($value{myTwilight}==7 && $value{"handy1"} eq "present " || $value{handy2} eq "present"){fhem("set Wohnzimmer_Stehlampe on-till 22:30")}}


ist syntaktisch falsch:
define wohnzimmer_licht_an notify mytwilight:light.* {if($value{myTwilight}==7 && $value{"handy1"} eq "present " || $value{handy2} eq "present"){fhem("set Wohnzimmer_Stehlampe on-till 22:30")}}

Der Code wird intern so ausgeführt, dass keine syntaktischen Fehler zu Tage treten.

Hier einige Tipps:
mit Twilight schaltet man am besten so das Licht ein:

define TwilightMessage1       notify Twilight.*:aktEvent:.*ss_weather.*      set StehlampeTisch on

so:
define TwilightMessage2      notify Twilight.*:aktEvent:.*                  {Log 3, "Nachricht von @: %"}
kannst du dir alle Events ansehen, die TW so wirft.

Eine so komplizierte Abfrage wie du sie angehängt hast, implementiert man am besten in der 99_myUtils.pm.
Alles was du dort machst wird syntaktisch geprüft. Am Besten über einen Editor direkt bearbeiten und per reload in fhem nachladen. Man kann es auch per Oberfläche durchführen. Es kann dann aber immer sein, dass man wg. syntaktischer Fehler nicht speichern kann. Also so:

define TwilightMessage1       notify Twilight.*:aktEvent:.*ss_weather.*   {lichtAnschalten()}
+ 99_myUtils.pm
sub lichtAnschalten() {
...
}


Das vermeidet viele Fehler und viel Frust.

Die Anwesenheit von Personen per Handy zu prüfen ist nicht sicher und wird dich manchmal enttäuschen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

inesa394

Hallo

Danke für die tips dann werde ich versuchen das mal auszulagen und hoffentlich den Syntaxfehler finden.
Habe übrigens RT und  Anwesenheitserkennung mit Handy in Betrieb was bisher
ganz gut funktioniert.
define ZufallsTimerSchlafzimmer RandomTimer *{sunset_abs("HORIZON=3")} Schlafzimmer_Nachttisch 22:45:00 200
attr ZufallsTimerSchlafzimmer disableCond (Value("handy1.dummy") eq "on")

Die abfrage geht da alllerding per dummy und nicht direkt mit Presence

porce

Hallo Inesa
habe genau das selbe Problem 2 Handys,Twiglight usw.. und würde es gern genau wie Du lösen, ....mach da schon seit Tagen rum und komme auf keinen grünen Zweig.
Hast du es mittlerweile zum laufen gebracht ? wen ja Wie ?? Wäre dir sehr dankbar !
Grüsse porce