mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 16:56:54 +00:00
RESIDENTStk: more robust regex for presenceDevices
git-svn-id: https://svn.fhem.de/fhem/trunk@14117 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
348c9fe900
commit
92dba1545a
@ -1030,7 +1030,7 @@ m/^([a-zA-Z\d._]+(:[A-Za-z\d_\.\-\/]+)?,?)([a-zA-Z\d._]+(:[A-Za-z\d_\.\-\/]+)?,?
|
|||||||
$attr{$name}{alias} = "Bewohner"
|
$attr{$name}{alias} = "Bewohner"
|
||||||
if ( !defined( $attr{$name}{alias} )
|
if ( !defined( $attr{$name}{alias} )
|
||||||
|| $attr{$name}{alias} eq "Residents" );
|
|| $attr{$name}{alias} eq "Residents" );
|
||||||
$attr{$name}{group} = "Haus Status"
|
$attr{$name}{group} = "Zuhause Status"
|
||||||
if ( !defined( $attr{$name}{group} )
|
if ( !defined( $attr{$name}{group} )
|
||||||
|| $attr{$name}{group} eq "Home State" );
|
|| $attr{$name}{group} eq "Home State" );
|
||||||
}
|
}
|
||||||
@ -1052,7 +1052,7 @@ m/^([a-zA-Z\d._]+(:[A-Za-z\d_\.\-\/]+)?,?)([a-zA-Z\d._]+(:[A-Za-z\d_\.\-\/]+)?,?
|
|||||||
|| $attr{$name}{alias} eq "Bewohner" );
|
|| $attr{$name}{alias} eq "Bewohner" );
|
||||||
$attr{$name}{group} = "Home State"
|
$attr{$name}{group} = "Home State"
|
||||||
if ( !defined( $attr{$name}{group} )
|
if ( !defined( $attr{$name}{group} )
|
||||||
|| $attr{$name}{group} eq "Haus Status" );
|
|| $attr{$name}{group} eq "Zuhause Status" );
|
||||||
}
|
}
|
||||||
|
|
||||||
$attr{$name}{devStateIcon} =
|
$attr{$name}{devStateIcon} =
|
||||||
@ -1112,7 +1112,7 @@ sub RESIDENTStk_Notify($$) {
|
|||||||
# DELETED would normally be handled by fhem.pl and imply
|
# DELETED would normally be handled by fhem.pl and imply
|
||||||
# DoModuleTrigger instead of DoInitDev to update module
|
# DoModuleTrigger instead of DoInitDev to update module
|
||||||
# init state
|
# init state
|
||||||
next if ($_ =~ /^DELETED/);
|
next if ( $_ =~ /^DELETED/ );
|
||||||
DoInitDev($name);
|
DoInitDev($name);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -1318,9 +1318,9 @@ m/^0|false|absent|disappeared|unavailable|unreachable|disconnected|1|true|presen
|
|||||||
for (@presenceDevices) {
|
for (@presenceDevices) {
|
||||||
my $r = "presence";
|
my $r = "presence";
|
||||||
my $d = $_;
|
my $d = $_;
|
||||||
if ( $d =~ m/^([a-zA-Z\d._]+)(?::([A-Za-z\d_\.\-\/]*))?$/ ) {
|
if ( $d =~ m/^([a-zA-Z\d._]+):(?:([A-Za-z\d_\.\-\/]*))?$/ ) {
|
||||||
$d = $1;
|
$d = $1;
|
||||||
$r = $2;
|
$r = $2 if ($2 && $2 ne "");
|
||||||
}
|
}
|
||||||
|
|
||||||
my $presenceState =
|
my $presenceState =
|
||||||
@ -3490,8 +3490,16 @@ sub RESIDENTStk_StopInternalTimers($) {
|
|||||||
RESIDENTStk_RemoveInternalTimer( "DurationTimer", $hash );
|
RESIDENTStk_RemoveInternalTimer( "DurationTimer", $hash );
|
||||||
}
|
}
|
||||||
|
|
||||||
sub RESIDENTStk_findResidentSlaves($) {
|
sub RESIDENTStk_findHomestateSlaves($) {
|
||||||
my ($hash) = @_;
|
my ($hash) = @_;
|
||||||
|
my $ret = "";
|
||||||
|
$ret .= AttrVal( $hash->{NAME}, "rh_residentsDevice", "" );
|
||||||
|
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub RESIDENTStk_findResidentSlaves($;$) {
|
||||||
|
my ( $hash, $ret ) = @_;
|
||||||
my $ROOMMATES;
|
my $ROOMMATES;
|
||||||
foreach ( devspec2array("TYPE=ROOMMATE") ) {
|
foreach ( devspec2array("TYPE=ROOMMATE") ) {
|
||||||
next
|
next
|
||||||
@ -3532,7 +3540,8 @@ sub RESIDENTStk_findResidentSlaves($) {
|
|||||||
$hash->{GUESTS} = $GUESTS;
|
$hash->{GUESTS} = $GUESTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $ret = "";
|
$ret = "" unless ($ret);
|
||||||
|
$ret .= "," unless ( $ret eq "" );
|
||||||
$ret .= $hash->{ROOMMATES} if ( $hash->{ROOMMATES} );
|
$ret .= $hash->{ROOMMATES} if ( $hash->{ROOMMATES} );
|
||||||
$ret .= "," unless ( $ret eq "" );
|
$ret .= "," unless ( $ret eq "" );
|
||||||
$ret .= $hash->{GUESTS} if ( $hash->{GUESTS} );
|
$ret .= $hash->{GUESTS} if ( $hash->{GUESTS} );
|
||||||
@ -3582,6 +3591,7 @@ sub RESIDENTStk_findDummySlaves($;$) {
|
|||||||
sub RESIDENTStk_GetPrefixFromType($) {
|
sub RESIDENTStk_GetPrefixFromType($) {
|
||||||
my ($name) = @_;
|
my ($name) = @_;
|
||||||
return "" unless ( defined($name) );
|
return "" unless ( defined($name) );
|
||||||
|
return "rh_" if ( GetType($name) eq "HOMESTATE" );
|
||||||
return "rgr_" if ( GetType($name) eq "RESIDENTS" );
|
return "rgr_" if ( GetType($name) eq "RESIDENTS" );
|
||||||
return "rr_" if ( GetType($name) eq "ROOMMATE" );
|
return "rr_" if ( GetType($name) eq "ROOMMATE" );
|
||||||
return "rg_" if ( GetType($name) eq "GUEST" );
|
return "rg_" if ( GetType($name) eq "GUEST" );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user