2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-01 01:09:47 +00:00

75_MSG: improved absence detection for message gateway devices (forum topic,39983.msg562710.html#msg562710)

git-svn-id: https://svn.fhem.de/fhem/trunk@13123 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
jpawlowski 2017-01-17 12:13:08 +00:00
parent 7aea568591
commit b2d3803496

View File

@ -1608,44 +1608,38 @@ m/^@?([A-Za-z0-9._]+):([A-Za-z0-9._\-\/@+]*):?([A-Za-z0-9._\-\/@+]*)$/
$routeStatus = "UNDEFINED"; $routeStatus = "UNDEFINED";
} }
elsif ( $type[$i] ne "mail" elsif ( $type[$i] ne "mail"
&& AttrVal( $gatewayDev, "disable", "0" ) eq && IsDisabled($gatewayDev) )
"1" )
{ {
$routeStatus = "DISABLED"; $routeStatus = "DISABLED";
} }
elsif ( elsif (
$type[$i] ne "mail" $type[$i] ne "mail"
&& ( && (
ReadingsVal( $gatewayDev, "power", "on" ) ReadingsVal( $gatewayDev, "presence",
eq "off" "present" ) =~
|| ReadingsVal( $gatewayDev, "presence", m/^(0|absent|disappeared|unauthorized|disconnected|unreachable)$/i
"present" ) eq "absent"
|| ReadingsVal( $gatewayDev, "presence",
"appeared" ) eq "disappeared"
|| ReadingsVal( $gatewayDev, "state", || ReadingsVal( $gatewayDev, "state",
"present" ) eq "absent" "present" ) =~
|| ReadingsVal( $gatewayDev, "state", m/^(absent|disappeared|unauthorized|disconnected|unreachable)$/i
"connected" ) eq "unauthorized" || ( $defs{$gatewayDev}{STATE}
|| ReadingsVal( $gatewayDev, "state", && $defs{$gatewayDev}{STATE} =~
"connected" ) eq "disconnected" m/^(absent|disappeared|unauthorized|disconnected|unreachable)$/i
|| ReadingsVal( $gatewayDev, "state", )
"reachable" ) eq "unreachable"
|| ReadingsVal(
$gatewayDev, "available", "1"
) eq "0"
|| ReadingsVal( $gatewayDev, "available", || ReadingsVal( $gatewayDev, "available",
"yes" ) eq "no" "yes" ) =~ m/^(0|no)$/i
|| ReadingsVal(
$gatewayDev, "reachable", "1"
) eq "0"
|| ReadingsVal( $gatewayDev, "reachable", || ReadingsVal( $gatewayDev, "reachable",
"yes" ) eq "no" "yes" ) =~ m/^(0|no)$/i
) )
) )
{ {
$routeStatus = "UNAVAILABLE"; $routeStatus = "UNAVAILABLE";
} }
elsif ( $type[$i] eq "screen"
&& ReadingsVal( $gatewayDev, "power", "on" ) =~
m/^(0|off)$/i )
{
$routeStatus = "OFF";
}
elsif ($type[$i] eq "audio" elsif ($type[$i] eq "audio"
&& $annState ne "long" && $annState ne "long"
&& $annState ne "short" ) && $annState ne "short" )