Zuhause-Status: Unterschied zwischen den Versionen

Aus FHEMWiki
Zeile 77: Zeile 77:
[[Wakeuplight]]
[[Wakeuplight]]
[[Licht bei Bedingungen einschalten]]
[[Licht bei Bedingungen einschalten]]
[[Kategorie:Code Snippets]]

Version vom 11. Mai 2013, 23:41 Uhr

Abhängig davon, ob man sich zuhause aufhält, schläft oder ausser Haus ist, sollen Geräte unterschiedlich geschaltet werden.

Dabei sollen

  1. beim Statuswechsel (also "ich komme nach hause", "ich gehe schlafen" etc) Geräte geschaltet werden
  2. regelmäßig geplante "at *" -Vorgänge ihr Verhalten auch davon abhängig machen, ob jemand zuhause ist oder nicht.

Der Status kann z. B. per Schalter gesetzt werden. Automatisiert geht das auch mit dem PRESENCE Modul

Lösungsansatz

Es wird eine Variable HomeStatus als dummy-device, also als Variable definiert.

Desweiteren werden ein 4-Tasten-Wandschalter fs20-s4a und eine 4-Tasten-Fernbedienung fs20-s4 mit identischem Hauscode und Tastencodes versehen, die Tasten angelernt und benannt in HomeStat1, HomeStat2, HomeStat3, HomeStat4. Der Wandschalter kommt neben die Wohnungstür, die Fernbedienung ans Bett.

Beim Drücken dieser Tasten wird HomeStatus auf 1, 2, 3 oder 4 gesetzt. Ausserdem werden die gemäß dem neuen Status benötigten bzw. nicht mehr benötigten Geräte ein- oder ausgeschaltet:


Bei Setzen von HomeStatus 1 (ich komme zuhause an)
- Media an
- Heizung auf Tagtemperatur
- WLAN an
Bei Setzen von HomeStatus 2 (ich gehe schlafen)
- Alle Lampen aus ausser Schlafzimmer
- Media aus
- Heizung auf Nachttemperatur
- WLAN aus
Bei Setzen von HomeStatus 3 (verlassen der Wohnung für kurze Zeit)
- Alle Lampen aus
- Media aus
- Heizung auf Nachttemperatur
- WLAN aus
Bei Setzen von HomeStatus 4 (ich verlasse die Wohnung für längere Zeit)
- Alles aus
- Heizung runterregeln auf 'Ferienprogramm'
- WLAN aus

Regelmäßig geschaltete Geräte berücksichtigen ebenfalls den HomeStatus, z.B. startet das Wakeuplight nur an Wochentagen und nur wenn ich zuhause bin, also der HomeStatus < 3 ist.


Codings

define HomeStatus dummy
attr HomeStatus room Wohnung
define whg_HomeStat1 FS20 696c 00
define whg_HomeStat2 FS20 696c 01
define whg_HomeStat3 FS20 696c 02
define whg_HomeStat4 FS20 696c 03

define Zuhause notify whg_HomeStat1 set HomeStatus 1;;trigger whg_Audio on;;set whg_WLAN,wz_MacMini on;;set ez_FHT desired-temp 21.0
define Schlafen notify whg_HomeStat2 set HomeStatus 2;;trigger whg_MediaAus off;;set ez_FHT desired-temp 19.0;;set ez_LichtAlle,wz_LichtAlle,ku_LichtAlle,whg_WLAN off
define KurzWeg notify whg_HomeStat3 set HomeStatus 3;;set ez_FHT desired-temp 18.5;;trigger whg_MediaAus off;;set whg_WLAN,Wohnung_Licht off
define LangeWeg notify whg_HomeStat4 set HomeStatus 4;;trigger whg_MediaAus off;;set Wohnung_Licht,whg_WLAN,wz_MacMini off;;set ez_FHT desired-temp 17.0

define wakeup at *07:00 {\
 {Log 3, ('wakeupLOG WE:     '.$we)}\
 {Log 3, ('wakeupLOG HomeStatus: '.(Value("HomeStatus")))}\
 if ((!$we) '''and (Value("HomeStatus") < 3''') {\
   {fhem("define wakeup2 at +00:18:00 set sz_Stehlampe on") }\
   {fhem("define wakeupOff at +00:45:00 set sz_Leselampe,sz_Stehlampe off") }\
   {fhem("set sz_Leselampe dim100% 1280") }\
   {Log 4, ("wakeupLOG: define wakeupOff at +00:45:00 set sz_Leselampe,sz_Stehlampe off")}\
 }\
 else {\
 {Log 3, ("wakeupLOG: no wakeup today.")}\
 }\
}

Weitere Beispiele

Wakeuplight Licht bei Bedingungen einschalten