Beleuchtung einschalten wenn ich nach Hause komme

Begonnen von reimundko, 16 Dezember 2017, 14:50:56

Vorheriges Thema - Nächstes Thema

Caleus

Hey Leute

ich wollte nun kein extra Thread aufmachen. Ich habe eine ähnliche Frage bzw Problem, und zwar habe ich nun aktuell folgendes in Benutzung

([[myTwilight:ss_weather]-23:00] and  [NBT:state] eq "present" or [PBT:state] eq "present")
( set wz.licht.regal RGB ffffff)


Also wenn wir zu Hause sind, soll es nichts machen, nur, wenn wir beide eine Zeit lang nicht zu Hause waren sagen wir mindestens 15 Minuten soll es in Weiß eingeschaltet werden, wenn wir nach Hause kommen, und zwar erst bei Dämmerung ich hoffe, man versteht, was ich meine?

Caleus

FHEM-User22

Moin Otto und alle anderen;

Zitat von: Otto123 am 16 Dezember 2017, 15:04:30
Hi,

einfach von mir ein Beispiel mit DOIFdefmod di_Hzg DOIF (([05:45-09:00|8] or [07:00-22:00|7] or [16:00-22:00|8]) and [AlleAnwesend] eq "present" and [Heizung] eq "an" and [SensorR2_Weather:temperature] < 23 and [SensorAussen:temperature] < 15) ((set HzgBad,HzgFlur,HzgKu on)) DOELSE ((set HzgBad,HzgFlur,HzgKu off))

Da ist alles drin was Du brauchst, Zeit, Anwesenheit, mehrere Randbedingungen ...

Gruß Otto

Supi, so ein Beispiel. Sowas hilft mir mehr als Verweise auf Wiki o.ä. Dort hat man gewöhnlich schon gesucht und ist nicht weitergekommen. Hier hat man etwas Funktionierendes (nachdem man die Devices angepasst hat)  und kann sich mit Veränderungen herantasten.

Dankeschön und ein schönes Wochenende
FHEM auf Raspberry Pi und Proxmox und... und.... und....

Otto123

Hi Caleus,

oder Bedingungen muss man meist separat klammern damit es funktioniert wie gewünscht. Ich kann leider nicht richtig erkennen, was Dir fehlt. Auch ist unklar ob NBT oder PBT die gewünschte Verzögerung von 15 min schon eingebaut hat.
Ansonsten kannst Du mit dem wait Attribute arbeiten. Da findest Du in der Commandref Beispiele.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Caleus

Hallo Otto

ich habe nun aufgeräumt  ;)

([[myTwilight:ss_weather]-23:00] and [Anwesenheit] eq "present")
( set wz.licht.regal RGB ffffff)


und "[Anwesenheit]"

sieht so aus

ATTR       presence
   CFGFN
   CHANGEDCNT 24152
   DEF        presence NBT PBT
   NAME       Anwesenheit
   NR         1079
   NTFY_ORDER 50-Anwesenheit
   STATE      present
   TYPE       structure
   READINGS:
     2018-10-16 17:13:30   LastDevice      PBT
     2018-10-16 17:13:30   LastDevice_Abs  PBT
     2018-10-16 17:13:30   state           present
Attributes:
   clientstate_behavior relative
   clientstate_priority present absent
   room       Server


So nun meine Frage:
Ich hätte es gerne so, dass wenn man eine Zeit weg war, dass das Licht im vorgegeben Zeitraum an geht, aber auch nur dann, und nicht wenn man Zuhause ist, da soll es nichts machen.

Caleus

Otto123

Hi,

kannst Du bitte ein list von dem DOIF posten? So sieht man quasi nix.

Und das was Du willst sollte einfach mit einem Event anstatt dem Status gehen, aber eigentlich sollte es auch so gehen.
Wenn Du nicht willst, dass in dem Zeitraum getriggert werden soll sondern nur von "present" dann musst Du einfach den Zeitraum in eine Abfrage ändern:
https://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Caleus

Natürlich bitte schön die List

Internals:
   DEF        ([[myTwilight:ss_civil]-23:00] and [Anwesenheit] eq "present")
(set wz.licht.decke RGB ffffff)
   MODEL      FHEM
   NAME       commingHome
   NR         188
   NTFY_ORDER 50-commingHome
   STATE      disabled
   TYPE       DOIF
   READINGS:
     2018-10-15 06:42:48   Device          Anwesenheit
     2018-10-15 06:42:45   cmd             2
     2018-10-15 06:42:45   cmd_event       Anwesenheit
     2018-10-15 06:42:45   cmd_nr          2
     2018-10-15 06:42:48   e_Anwesenheit_STATE present
     2018-10-15 06:42:50   last_cmd        cmd_2
     2018-10-15 06:42:50   mode            disabled
     2018-10-15 06:42:50   state           disabled
     2018-10-16 00:00:01   timer_01_c01    16.10.2018 19:03:31
     2018-10-15 23:00:00   timer_02_c01    16.10.2018 23:00:00
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          DOIF_time($hash,0,1,$wday,$hms) and InternalDoIf($hash,'Anwesenheit','STATE') eq "present"
   days:
   devices:
     0           Anwesenheit
     all         Anwesenheit
   do:
     0:
       0          set wz.licht.decke RGB ffffff
     1:
   helper:
     event      present
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   Anwesenheit
     timerevent present
     triggerDev Anwesenheit
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: Anwesenheit
       state: cmd_2
     timerevents:
       present
     timereventsState:
       state: present
     triggerEvents:
       present
     triggerEventsState:
       state: present
   internals:
     0           Anwesenheit:STATE
     all         Anwesenheit:STATE
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   itimer:
     all         myTwilight
   localtime:
     0          1539709411
     1          1539723600
   readings:
   realtime:
     0          19:03:31
     1          23:00:00
   time:
     0          [myTwilight:ss_civil]
     1          23:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1539709411:
       localtime  1539709411
       hash:
     1539723600:
       localtime  1539723600
       hash:
   uiState:
   uiTable:
Attributes:


Caleus

Otto123

Versuch mal diese Änderung ob es das macht was Du willst.
([?[myTwilight:ss_civil]-23:00] and [Anwesenheit:"present"]) (set wz.licht.decke RGB ffffff) DOELSEIF ([23:10])

Er sollte so in deinem Zeitraum einmalig triggern wenn "present" kommt und dann an dem Tag nie wieder.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Caleus

Hallo Otto123

ich danke dir, ich habe es nun mal in benutzung, bin echt gespannt.

Caleus

Caleus

Tja leider ist da wohl noch ein Fehler, also wir sind beide zu Hause, und es war auch keiner weg, aber leider wird trotzdem getriggert.

Caleus

Otto123

Weil dein presence Gerät immer wieder Events erzeugt.
Du musst setzen:
attr Anwesenheit event-on-change-reading state

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CoolTux

Ich würde aber nicht unbedingt Anwesenheit dafür nehmen, das ist ja ein Structure. Dann lieber gleich direkt bei den Devices das Attribut setzen welche in der structure stehen.
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

Caleus

Hallo Cooltux

danke für dein Tipp, aber wie darf ich das verstehen bzw wie sollte ich das umsetzten? Es handelt sich hier ja um unsere Handys deren Status sich ja immer wieder mal ändert und das auch für andere Abfragen.

Caleus

CoolTux

Du setzt das Attribut event-on-change-reading state bei jedem Deiner PRESENCE Devices.
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

Caleus

Ich glaube ich verstehe den hintergrund.

Es wird also nicht kontinuierlicher ins log geschrieben, sondern erst wenn Present oder Absent eintreten richtig?

Caleus

Otto123

#29
Zitat von: Caleus am 16 Oktober 2018, 19:35:23
Es handelt sich hier ja um unsere Handys deren Status sich ja immer wieder mal ändert und das auch für andere Abfragen.
Du verstehst das Prinzip falsch, es geht nicht darum wenn sich der Status ändert. Es geht darum wenn die Abfrage der Geräte immer wieder das Gleiche (also present) ergibt, soll dies zu keinem neuen Event führen. Nimm den Eventmonitor und schau Dir die Events an.

Du solltest die Presence Information auch noch glätten, present sofort und absent z.B. um 5 min verzögert. Sonst wirst Du nicht froh  :D

Diese Trockenübung hier ist nicht mehr ganz aktuell, aber das Prinzip gilt bei mir immer noch.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz