mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 06:39:11 +00:00
22_HOMEMODE.pm: v1.1.10 - fix notifydev for HomeEventsHolidayDevices
git-svn-id: https://svn.fhem.de/fhem/trunk@15203 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
7efb59634d
commit
5c234e530c
@ -1,5 +1,6 @@
|
|||||||
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
|
||||||
# Do not insert empty lines here, update check depends on it.
|
# Do not insert empty lines here, update check depends on it.
|
||||||
|
- bugfix: 22_HOMEMODE: v1.1.10 - fix notifydev for HomeEventsHolidayDevices
|
||||||
- bugfix: 10_MQTT_DEVICE: fix set arguments
|
- bugfix: 10_MQTT_DEVICE: fix set arguments
|
||||||
- feature: 49_SSCam: V3.2.2, new command get listLog (SVS-Devs), minor fixes
|
- feature: 49_SSCam: V3.2.2, new command get listLog (SVS-Devs), minor fixes
|
||||||
- change: 77_SMAEM: V3.0.0, make SMAEM ready for multimeter usage
|
- change: 77_SMAEM: V3.0.0, make SMAEM ready for multimeter usage
|
||||||
|
@ -16,7 +16,7 @@ use Time::HiRes qw(gettimeofday);
|
|||||||
use HttpUtils;
|
use HttpUtils;
|
||||||
use vars qw{%attr %defs %modules $FW_CSRF};
|
use vars qw{%attr %defs %modules $FW_CSRF};
|
||||||
|
|
||||||
my $HOMEMODE_version = "1.1.9";
|
my $HOMEMODE_version = "1.1.10";
|
||||||
my $HOMEMODE_Daytimes = "05:00|morning 10:00|day 14:00|afternoon 18:00|evening 23:00|night";
|
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_Seasons = "03.01|spring 06.01|summer 09.01|autumn 12.01|winter";
|
||||||
my $HOMEMODE_UserModes = "gotosleep,awoken,asleep";
|
my $HOMEMODE_UserModes = "gotosleep,awoken,asleep";
|
||||||
@ -118,7 +118,7 @@ sub HOMEMODE_Undef($$)
|
|||||||
my ($hash,$arg) = @_;
|
my ($hash,$arg) = @_;
|
||||||
RemoveInternalTimer($hash);
|
RemoveInternalTimer($hash);
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
if (devspec2array("TYPE=HOMEMODE") == 1)
|
if (devspec2array("TYPE=HOMEMODE:FILTER=disable!=1") == 1)
|
||||||
{
|
{
|
||||||
HOMEMODE_cleanUserattr($hash,AttrVal($name,"HomeSensorsContact","")) if (AttrVal($name,"HomeSensorsContact",undef));
|
HOMEMODE_cleanUserattr($hash,AttrVal($name,"HomeSensorsContact","")) if (AttrVal($name,"HomeSensorsContact",undef));
|
||||||
HOMEMODE_cleanUserattr($hash,AttrVal($name,"HomeSensorsMotion","")) if (AttrVal($name,"HomeSensorsMotion",undef));
|
HOMEMODE_cleanUserattr($hash,AttrVal($name,"HomeSensorsMotion","")) if (AttrVal($name,"HomeSensorsMotion",undef));
|
||||||
@ -262,7 +262,7 @@ sub HOMEMODE_Notify($$)
|
|||||||
HOMEMODE_PowerEnergy($hash,$devname,$1,(split " ",$2)[0]);
|
HOMEMODE_PowerEnergy($hash,$devname,$1,(split " ",$2)[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (AttrVal($name,"HomeEventsHolidayDevices",undef) && grep(/^$devname$/,split /,/,AttrVal($name,"HomeEventsHolidayDevices","")) && grep /^state:\s/,@{$events})
|
if (AttrVal($name,"HomeEventsHolidayDevices",undef) && grep(/^$devname$/,devspec2array(AttrVal($name,"HomeEventsHolidayDevices","").":FILTER=disable!=1")) && grep /^state:\s/,@{$events})
|
||||||
{
|
{
|
||||||
foreach my $evt (@{$events})
|
foreach my $evt (@{$events})
|
||||||
{
|
{
|
||||||
@ -544,9 +544,9 @@ sub HOMEMODE_updateInternals($;$)
|
|||||||
my $holiday = HOMEMODE_AttrCheck($hash,"HomeEventsHolidayDevices");
|
my $holiday = HOMEMODE_AttrCheck($hash,"HomeEventsHolidayDevices");
|
||||||
if ($holiday)
|
if ($holiday)
|
||||||
{
|
{
|
||||||
foreach (devspec2array("$holiday:FILTER=disable!=1"))
|
foreach my $c (devspec2array("$holiday:FILTER=disable!=1"))
|
||||||
{
|
{
|
||||||
push @allMonitoredDevices,$_ if (!grep /^$_$/,@allMonitoredDevices);
|
push @allMonitoredDevices,$c if (!grep /^$c$/,@allMonitoredDevices);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
my $uwz = HOMEMODE_AttrCheck($hash,"HomeUWZ","");
|
my $uwz = HOMEMODE_AttrCheck($hash,"HomeUWZ","");
|
||||||
@ -1115,6 +1115,7 @@ sub HOMEMODE_Attributes($)
|
|||||||
push @attribs,"HomeCMDdaytime:textField-long";
|
push @attribs,"HomeCMDdaytime:textField-long";
|
||||||
push @attribs,"HomeCMDdnd-off:textField-long";
|
push @attribs,"HomeCMDdnd-off:textField-long";
|
||||||
push @attribs,"HomeCMDdnd-on:textField-long";
|
push @attribs,"HomeCMDdnd-on:textField-long";
|
||||||
|
push @attribs,"HomeCMDevent:textField-long";
|
||||||
push @attribs,"HomeCMDfhemINITIALIZED:textField-long";
|
push @attribs,"HomeCMDfhemINITIALIZED:textField-long";
|
||||||
push @attribs,"HomeCMDicewarning-on:textField-long";
|
push @attribs,"HomeCMDicewarning-on:textField-long";
|
||||||
push @attribs,"HomeCMDicewarning-off:textField-long";
|
push @attribs,"HomeCMDicewarning-off:textField-long";
|
||||||
@ -1230,8 +1231,7 @@ sub HOMEMODE_userattr($)
|
|||||||
{
|
{
|
||||||
push @userattrAll,"HomeCMDlocation-$_";
|
push @userattrAll,"HomeCMDlocation-$_";
|
||||||
}
|
}
|
||||||
push @userattrAll,"HomeCMDevent:textField-long" if ($specialevents);
|
foreach my $cal (devspec2array("$specialevents:FILTER=disable!=1"))
|
||||||
foreach my $cal (devspec2array($specialevents))
|
|
||||||
{
|
{
|
||||||
my $events = HOMEMODE_HolidayEvents($cal);
|
my $events = HOMEMODE_HolidayEvents($cal);
|
||||||
push @userattrAll,"HomeCMDevent-$cal-each";
|
push @userattrAll,"HomeCMDevent-$cal-each";
|
||||||
@ -1888,7 +1888,7 @@ sub HOMEMODE_replacePlaceholders($$;$)
|
|||||||
$cmd =~ s/%DND%/$dnd/g;
|
$cmd =~ s/%DND%/$dnd/g;
|
||||||
if (AttrVal($name,"HomeEventsHolidayDevices",undef))
|
if (AttrVal($name,"HomeEventsHolidayDevices",undef))
|
||||||
{
|
{
|
||||||
foreach my $cal (split /,/,AttrVal($name,"HomeEventsHolidayDevices",""))
|
foreach my $cal (devspec2array(AttrVal($name,"HomeEventsHolidayDevices","")))
|
||||||
{
|
{
|
||||||
my $state = ReadingsVal($name,"event-$cal","") ne "none" ? ReadingsVal($name,"event-$cal","") : 0;
|
my $state = ReadingsVal($name,"event-$cal","") ne "none" ? ReadingsVal($name,"event-$cal","") : 0;
|
||||||
$cmd =~ s/%$cal%/$state/g;
|
$cmd =~ s/%$cal%/$state/g;
|
||||||
@ -2697,8 +2697,8 @@ sub HOMEMODE_EventCommands($$$)
|
|||||||
}
|
}
|
||||||
HOMEMODE_execCMDs($hash,HOMEMODE_serializeCMD($hash,@commands));
|
HOMEMODE_execCMDs($hash,HOMEMODE_serializeCMD($hash,@commands));
|
||||||
}
|
}
|
||||||
|
readingsSingleUpdate($hash,"event-$cal",$event,1);
|
||||||
}
|
}
|
||||||
readingsSingleUpdate($hash,"event-$cal",$event,1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub HOMEMODE_UWZCommands($$)
|
sub HOMEMODE_UWZCommands($$)
|
||||||
@ -2883,14 +2883,8 @@ sub HOMEMODE_HolidayEvents($)
|
|||||||
{
|
{
|
||||||
my ($calendar) = @_;
|
my ($calendar) = @_;
|
||||||
my @events;
|
my @events;
|
||||||
my @errors;
|
|
||||||
my $fname = AttrVal("global","modpath",".")."/FHEM/".$calendar.".holiday";
|
my $fname = AttrVal("global","modpath",".")."/FHEM/".$calendar.".holiday";
|
||||||
my ($err,@holidayfile) = FileRead($fname);
|
my (undef,@holidayfile) = FileRead($fname);
|
||||||
if ($err)
|
|
||||||
{
|
|
||||||
push @errors,$err;
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
foreach (@holidayfile)
|
foreach (@holidayfile)
|
||||||
{
|
{
|
||||||
next if ($_ =~ /^\s*(#|$)/);
|
next if ($_ =~ /^\s*(#|$)/);
|
||||||
@ -2902,7 +2896,6 @@ sub HOMEMODE_HolidayEvents($)
|
|||||||
}
|
}
|
||||||
push @events,join("-",@parts);
|
push @events,join("-",@parts);
|
||||||
}
|
}
|
||||||
return (\@errors,"error") if (@errors);
|
|
||||||
return (\@events);
|
return (\@events);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user