diff --git a/fhem/FHEM/22_HOMEMODE.pm b/fhem/FHEM/22_HOMEMODE.pm index ad0e29115..2f0f9c770 100644 --- a/fhem/FHEM/22_HOMEMODE.pm +++ b/fhem/FHEM/22_HOMEMODE.pm @@ -16,7 +16,7 @@ use Time::HiRes qw(gettimeofday); use HttpUtils; use vars qw{%attr %defs %modules $FW_CSRF}; -my $HOMEMODE_version = "1.2.1"; +my $HOMEMODE_version = "1.2.2"; my $HOMEMODE_Daytimes = "05:00|morning 10:00|day 14:00|afternoon 18:00|evening 23:00|night"; my $HOMEMODE_Seasons = "03.01|spring 06.01|summer 09.01|autumn 12.01|winter"; my $HOMEMODE_UserModes = "gotosleep,awoken,asleep"; @@ -2016,13 +2016,15 @@ sub HOMEMODE_replacePlaceholders($$;$) my $dursleep = ReadingsVal($resident,"durTimerSleep_cr",0); my $condition = ReadingsVal($sensor,"condition",""); my $conditionart = ReadingsVal($name,".be",""); - my $contactsOpen = ReadingsVal($name,"contactsOutsideOpen_hr",""); + my $contactsOpen = ReadingsVal($name,"contactsOutsideOpen",""); my $contactsOpenCt = ReadingsVal($name,"contactsOutsideOpen_ct",0); + my $contactsOpenHr = ReadingsVal($name,"contactsOutsideOpen_hr",0); my $dnd = ReadingsVal($name,"dnd","off") eq "on" ? 1 : 0; my $aeah = ReadingsVal($name,"anyoneElseAtHome","off") eq "on" ? 1 : 0; my $panic = ReadingsVal($name,"panic","off") eq "on" ? 1 : 0; - my $sensorsTampered = ReadingsVal($name,"sensorsTampered_hr",""); - my $sensorsTamperedCt = ReadingsVal($name,"sensorsTampered_ct",""); + my $tampered = ReadingsVal($name,"sensorsTampered_hr",""); + my $tamperedc = ReadingsVal($name,"sensorsTampered_ct",""); + my $tamperedhr = ReadingsVal($name,"sensorsTampered_hr",""); my $ice = ReadingsVal($name,"icewarning",0); my $ip = ReadingsVal($name,"publicIP",""); my $light = ReadingsVal($name,"light",0); @@ -2050,7 +2052,7 @@ sub HOMEMODE_replacePlaceholders($$;$) my $ppdevice = ReadingsVal($name,"lastPresentByPresenceDevice",""); my $paddress = InternalVal($pdevice,"ADDRESS",""); my $pressure = ReadingsVal($name,"pressure",""); - my $pressuretrend = ReadingsVal($sensor,"pressure_trend_txt",""); + my $pressuretrend = ReadingsVal($sensor,"pressureTrend",""); my $weatherlong = HOMEMODE_WeatherTXT($hash,AttrVal($name,"HomeTextWeatherLong","")); my $weathershort = HOMEMODE_WeatherTXT($hash,AttrVal($name,"HomeTextWeatherShort","")); my $forecast = HOMEMODE_ForecastTXT($hash); @@ -2133,8 +2135,10 @@ sub HOMEMODE_replacePlaceholders($$;$) $cmd =~ s/%LUMINANCETREND%/$luminancetrend/g; $cmd =~ s/%MODE%/$mode/g; $cmd =~ s/%MOTION%/$motion/g; + $cmd =~ s/%NAME%/$name/g; $cmd =~ s/%OPEN%/$contactsOpen/g; $cmd =~ s/%OPENCT%/$contactsOpenCt/g; + $cmd =~ s/%OPENHR%/$contactsOpenHr/g; $cmd =~ s/%RESIDENT%/$resident/g; $cmd =~ s/%PANIC%/$panic/g; $cmd =~ s/%PRESENT%/$pres/g; @@ -2156,7 +2160,9 @@ sub HOMEMODE_replacePlaceholders($$;$) $cmd =~ s/%SMOKE%/$smoke/g; $cmd =~ s/%SMOKECT%/$smokec/g; $cmd =~ s/%SMOKEHR%/$smokehr/g; - $cmd =~ s/%TAMPERED%/$sensorsTampered/g; + $cmd =~ s/%TAMPERED%/$tampered/g; + $cmd =~ s/%TAMPEREDCT%/$tamperedc/g; + $cmd =~ s/%TAMPEREDHR%/$tamperedhr/g; $cmd =~ s/%TEMPERATURE%/$temp/g; $cmd =~ s/%TEMPERATURETREND%/$temptrend/g; $cmd =~ s/%TOBE%/$conditionart/g; @@ -2228,7 +2234,7 @@ sub HOMEMODE_WeatherTXT($$) my $condition = ReadingsVal($weather,"condition",""); my $conditionart = ReadingsVal($name,".be",""); my $pressure = ReadingsVal($name,"pressure",""); - my $pressuretrend = ReadingsVal($weather,"pressure_trend_txt",""); + my $pressuretrend = ReadingsVal($weather,"pressureTrend",""); my $humi = ReadingsVal($name,"humidity",0); my $temp = ReadingsVal($name,"temperature",0); my $windchill = ReadingsVal($weather,"wind_chill",0); @@ -3027,7 +3033,7 @@ sub HOMEMODE_Smoke($;$$) my @sensors; foreach (split /,/,$hash->{SENSORSSMOKE}) { - push @sensors,$_ if (ReadingsVal($_,$r,"") eq $v) + push @sensors,$_ if (ReadingsVal($_,$r,"") =~ /^$v$/); } if ($trigger && $state) { @@ -3312,6 +3318,8 @@ sub HOMEMODE_Details($$$)
+

A german Wiki page is also available at https://wiki.fhem.de/wiki/Modul_HOMEMODE. There you can find lots of example code.

+

define [optional]