Abwesendheitssteuererung

Begonnen von peterhie, 14 Juni 2016, 22:20:26

Vorheriges Thema - Nächstes Thema

peterhie

Hallo Gemeinde,

ich möchte durch ein/aus von Lampen in meinen Haus eine Anwesendheit simulieren.

Dazu habe ich einen Dummy-Schalter definiert Abwesend:
define Abwesend dummy
attr Abwesend room Abwesend
attr Abwesend webCmd on:off

Dann habe ich für jede Lampe folgendes definiert:
Funktion:
Abhängig vom Sonnenuntergang + Verzögerung und Abwesend=On solll die Lampe an gehen, dann zu Zeitpunkt X + Verzögerung wieder aus. Bei Abwesend=off soll nichts passieren.

Habe es so programiert:

define di_Abwesend_D2 DOIF ([({sunset("REAL", -1000)}+900+int(rand(600)))] and [Abwesend] eq "on") (set D2_EZ_OG on)
DOELSEIF ([([23:20]+int(rand(600)))]) (set D2_EZ_OG off)

Ohne   and [Abwesend] eq "on"  funktioniert es, was ist falsch?

hier noch die List-Ausgabe:
Internals:
   DEF        ([({sunset("REAL", -1)}+900+int(rand(600)))] and [Abwesend] eq "on") (set D2_EZ_OG on) DOELSEIF ([([23:20]+int(rand(600)))]) (set D2_EZ_OG off)
   NAME       di_Abwesend_D2
   NR         146
   NTFY_ORDER 50-di_Abwesend_D2
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2016-06-14 22:00:25   Device          Abwesend
     2016-06-14 20:48:21   cmd_event       timer_1
     2016-06-14 20:48:21   cmd_nr          1
     2016-06-14 22:00:25   e_Abwesend_STATE on
     2016-06-14 20:48:21   state           cmd_1
     2016-06-14 21:42:36   timer_1_c1      15.06.2016 21:48:28
     2016-06-14 21:19:06   timer_2_c2      14.06.2016 23:20:42
   Condition:
     0          DOIF_time_once($hash,$hash->{timer}{0},$wday,"") and InternalDoIf('Abwesend','STATE','') eq "on"
     1          DOIF_time_once($hash,$hash->{timer}{1},$wday,"")
   Days:
   Devices:
     0           Abwesend
     all         Abwesend
   Do:
     0:
       0          set D2_EZ_OG on
     1:
       0          set D2_EZ_OG off
     2:
   Helper:
     globalinit 1
     last_timer 2
     sleeptimer -1
   Internals:
     0           Abwesend:STATE
     all         Abwesend:STATE
   Itimer:
   Readings:
   Realtime:
     0          21:48:28
     1          23:20:42
   State:
   Time:
     0          ({sunset("REAL",-1)}+900+int(rand(600)))
     1          ([23:20]+int(rand(600)))
   Timecond:
     0          0
     1          1
   Timer:
     0          0
     1          0
   Timerfunc:
   Timers:
     0           0
     1           1
   Trigger:
Attributes:

CoolTux


     2016-06-14 22:00:25   Device          Abwesend
     2016-06-14 20:48:21   cmd_event       timer_1
     2016-06-14 20:48:21   cmd_nr          1
     2016-06-14 22:00:25   e_Abwesend_STATE on
     2016-06-14 20:48:21   state           cmd_1


Scheint doch zu gehen
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

peterhie

Kann es sein, das ich ein  attr di_Abwesend_D2 do always benötige da mein Dummy-schalter kein event auslöst, wenn er immer
auf on steht????

CoolTux

Besser ist es so zu machen das Du die Abwesenheit nur abfragst. Denn es soll ja nicht getriggert werden auf anwesend oder abwesend sondern auf die Uhrzeit. Die Uhrzeit ist ausschlaggebend das soll der Auslöser sein und dann soll nur abgefragt werden ob Du abwesend bist und nur wenn das auch noch gegeben ist soll geschalten werden.


[?Abwesend]
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net