From 04b45973468599312b862f90a8655362947009d2 Mon Sep 17 00:00:00 2001 From: jpawlowski Date: Wed, 16 Dec 2015 10:29:04 +0000 Subject: [PATCH] RESIDENTStk.pm: more robust macro example; change Sonos audio commands to use new msg command git-svn-id: https://svn.fhem.de/fhem/trunk@10187 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/RESIDENTStk.pm | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/fhem/FHEM/RESIDENTStk.pm b/fhem/FHEM/RESIDENTStk.pm index 4b1f1d710..7fa178f57 100644 --- a/fhem/FHEM/RESIDENTStk.pm +++ b/fhem/FHEM/RESIDENTStk.pm @@ -22,13 +22,6 @@ # You should have received a copy of the GNU General Public License # along with fhem. If not, see . # -# -# Version: 1.0.2 -# -# Version History: -# - 1.0.0 - 2015-03-11 -# -- First release -# ############################################################################## no if $] >= 5.017011, warnings => 'experimental::smartmatch'; @@ -92,6 +85,16 @@ sub RESIDENTStk_wakeupSet($$) { my $macroNameAsleep = "Macro_" . $wakeupUserdevice . "_asleep"; my $macroNameAwoken = "Macro_" . $wakeupUserdevice . "_awoken"; + my $wakeupUserdeviceRealname = "Bewohner"; + + if (defined($defs{$wakeupUserdevice})) { + if ($defs{$wakeupUserdevice}{TYPE} eq "ROOMMATE") { + $wakeupUserdeviceRealname = AttrVal( AttrVal($NAME,"wakeupUserdevice",""), AttrVal( AttrVal($NAME,"wakeupUserdevice",""), "rr_realname", "group" ), $wakeupUserdeviceRealname ); + } elsif ($defs{$wakeupUserdevice}{TYPE} eq "GUEST") { + $wakeupUserdeviceRealname = AttrVal( AttrVal($NAME,"wakeupUserdevice",""), AttrVal( AttrVal($NAME,"wakeupUserdevice",""), "rg_realname", "group" ), $wakeupUserdeviceRealname ); + } + } + # check for required userattr attribute my $userattributes = "wakeupOffset:slider,0,1,120 wakeupDefaultTime:OFF,00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45 wakeupMacro wakeupUserdevice wakeupAtdevice wakeupResetSwitcher wakeupResetdays:multiple-strict,0,1,2,3,4,5,6 wakeupDays:multiple-strict,0,1,2,3,4,5,6 wakeupHolidays:andHoliday,orHoliday,andNoHoliday,orNoHoliday wakeupEnforced:0,1,2 wakeupWaitPeriod:slider,0,1,360"; @@ -168,7 +171,7 @@ if (\$EVTPART0 eq \"start\") {\ \ # fhem \"define atTmp_1_\$NAME at +00:10:00 set BR_Shutter:FILTER=pct<20 pct 20\";;\ # fhem \"define atTmp_2_\$NAME at +00:20:00 set BR_Shutter:FILTER=pct<40 pct 40\";;\ -# fhem \"define atTmp_4_\$NAME at +00:30:00 set Sonos_Bedroom Speak 33 de |Hint| Es ist \".\$EVTPART1.\" Uhr, Zeit zum aufstehen!;;;; set BR_FloorLamp:FILTER=pct<100 pct 100 60;;;; sleep 10;;;; set BR_Shutter:FILTER=pct<60 pct 60;;;; set Sonos_Bedroom:FILTER=Volume<10 Volume 10 10\";;\ +# fhem \"define atTmp_4_\$NAME at +00:30:00 msg audio \@Sonos_Bedroom |Hint| Es ist \".\$EVTPART1.\" Uhr, Zeit zum aufstehen!;;;; set BR_FloorLamp:FILTER=pct<100 pct 100 60;;;; sleep 10;;;; set BR_Shutter:FILTER=pct<60 pct 60;;;; set Sonos_Bedroom:FILTER=Volume<10 Volume 10 10\";;\ \ # if wake-up should be enforced\ if (\$EVTPART3) {\ @@ -360,12 +363,14 @@ if (\$EVTPART0 eq \"stop\") {\ ## via SONOS at Bedroom and stop playback elsewhere\ ##\ \ -#my \$nextWakeup = ReadingsVal(\"rr_Bewohner\",\"nextWakeup\",0);; -#my \$text = \"|Hint| Bewohner, es ist kein Wecker gestellt. Du könntest verschlafen! Trotzdem eine gute Nacht.\";; +#my \$nextWakeup = ReadingsVal(\"$wakeupUserdevice\",\"nextWakeup\",\"none\");; +#my \$text = \"|Hint| $wakeupUserdeviceRealname, es ist kein Wecker gestellt. Du könntest verschlafen! Trotzdem eine gute Nacht.\";; #if (\$nextWakeup ne \"OFF\") { -# \$text = \"|Hint| Bewohner, dein Wecker ist auf \$nextWakeup Uhr gestellt. Gute Nacht und schlaf gut.\";; +# \$text = \"|Hint| $wakeupUserdeviceRealname, dein Wecker ist auf \$nextWakeup Uhr gestellt. Gute Nacht und schlaf gut.\";; +#} +#if (\$nextWakeup ne \"none\") { +# fhem \"set Sonos_Bedroom RemoveMember Sonos_Bedroom;; sleep 0.5;; msg audio \@Sonos_Bedroom \$text\";;\ #} -#fhem \"set Sonos_Bedroom RemoveMember Sonos_Bedroom;; sleep 0.5;; set Sonos_Bedroom Speak 28 de \$text\";;\ \ }"; @@ -424,7 +429,7 @@ if (\$EVTPART0 eq \"stop\") {\ ##\ \ ## Play morning announcement via SONOS at Bedroom\ -#fhem \"set Sonos_Bedroom Stop;; set Sonos_Bedroom Speak 40 de |Hint| Guten Morgen, Bewohner.\";;\ +#fhem \"set Sonos_Bedroom Stop;; msg audio \@Sonos_Bedroom |Hint| Guten Morgen, $wakeupUserdeviceRealname<.\";;\ \ ## In 10 seconds, start webradio playback in Bedroom\ #fhem \"sleep 10;; set Sonos_Bedroom StartRadio /Charivari/;; sleep 2;; set Sonos_Bedroom Volume 15\";;\ @@ -630,7 +635,7 @@ if (\$EVTPART0 eq \"stop\") {\ ## In 90 minutes, switch House Mode to 'day' and\ ## play voice announcement via SONOS\ #if (!defined($defs{\"atTmp_HouseMode_day\"})) {\ -# fhem \"define atTmp_HouseMode_day at +01:30:00 {if (ReadingsVal(\\\"HouseMode\\\", \\\"state\\\", 0) ne \\\"day\\\") {fhem \\\"set Sonos_Kitchen Speak 40 de |Notification| Tagesmodus wird etabliert.;;;; sleep 10;;;; set HouseMode day\\\"}}\";;\ +# fhem \"define atTmp_HouseMode_day at +01:30:00 {if (ReadingsVal(\\\"HouseMode\\\", \\\"state\\\", 0) ne \\\"day\\\") {fhem \\\"msg audio \@Sonos_Kitchen Tagesmodus wird etabliert.;;;; sleep 10;;;; set HouseMode day\\\"}}\";;\ #}\ \ }";