2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 09:16:53 +00:00

10_RESIDENTS: add readings for delayed wayhome

git-svn-id: https://svn.fhem.de/fhem/trunk@10459 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
jpawlowski 2016-01-11 01:25:06 +00:00
parent 4f19169cb8
commit 0afeffbf18

View File

@ -662,6 +662,7 @@ sub RESIDENTS_UpdateReadings (@) {
my $residentsDevs_gotosleep = "-"; my $residentsDevs_gotosleep = "-";
my $residentsDevs_wakeup = "-"; my $residentsDevs_wakeup = "-";
my $residentsDevs_wayhome = "-"; my $residentsDevs_wayhome = "-";
my $residentsDevs_wayhomeDelayed = "-";
my $residentsDevs_totalAbsent = "-"; my $residentsDevs_totalAbsent = "-";
my $residentsDevs_totalPresent = "-"; my $residentsDevs_totalPresent = "-";
my $residentsDevs_totalAbsentGuest = "-"; my $residentsDevs_totalAbsentGuest = "-";
@ -676,6 +677,7 @@ sub RESIDENTS_UpdateReadings (@) {
my $residents_gotosleep = "-"; my $residents_gotosleep = "-";
my $residents_wakeup = "-"; my $residents_wakeup = "-";
my $residents_wayhome = "-"; my $residents_wayhome = "-";
my $residents_wayhomeDelayed = "-";
my $residents_totalAbsent = "-"; my $residents_totalAbsent = "-";
my $residents_totalPresent = "-"; my $residents_totalPresent = "-";
my $residents_totalAbsentGuest = "-"; my $residents_totalAbsentGuest = "-";
@ -683,6 +685,7 @@ sub RESIDENTS_UpdateReadings (@) {
my $residents_totalAbsentRoommates = "-"; my $residents_totalAbsentRoommates = "-";
my $residents_totalPresentRoommates = "-"; my $residents_totalPresentRoommates = "-";
my $wayhome = 0; my $wayhome = 0;
my $wayhomeDelayed = 0;
my $wakeup = 0; my $wakeup = 0;
my $newstate; my $newstate;
@ -909,7 +912,7 @@ sub RESIDENTS_UpdateReadings (@) {
} }
if ( ReadingsVal( $roommate, "wakeup", "0" ) > 0 ) { if ( ReadingsVal( $roommate, "wakeup", "0" ) > 0 ) {
$wakeup += ReadingsVal( $roommate, "wakeup", "0" ); $wakeup++;
$residentsDevs_wakeup .= "," . $roommate $residentsDevs_wakeup .= "," . $roommate
if ( $residentsDevs_wakeup ne "-" ); if ( $residentsDevs_wakeup ne "-" );
$residentsDevs_wakeup = $roommate $residentsDevs_wakeup = $roommate
@ -921,7 +924,7 @@ sub RESIDENTS_UpdateReadings (@) {
} }
if ( ReadingsVal( $roommate, "wayhome", "0" ) > 0 ) { if ( ReadingsVal( $roommate, "wayhome", "0" ) > 0 ) {
$wayhome += ReadingsVal( $roommate, "wayhome", "0" ); $wayhome++;
$residentsDevs_wayhome .= "," . $roommate $residentsDevs_wayhome .= "," . $roommate
if ( $residentsDevs_wayhome ne "-" ); if ( $residentsDevs_wayhome ne "-" );
$residentsDevs_wayhome = $roommate $residentsDevs_wayhome = $roommate
@ -930,6 +933,21 @@ sub RESIDENTS_UpdateReadings (@) {
if ( $roommateName ne "" && $residents_wayhome ne "-" ); if ( $roommateName ne "" && $residents_wayhome ne "-" );
$residents_wayhome = $roommateName $residents_wayhome = $roommateName
if ( $roommateName ne "" && $residents_wayhome eq "-" ); if ( $roommateName ne "" && $residents_wayhome eq "-" );
if ( ReadingsVal( $roommate, "wayhome", "0" ) == 2 ) {
$wayhomeDelayed++;
$residentsDevs_wayhomeDelayed .= "," . $roommate
if ( $residentsDevs_wayhomeDelayed ne "-" );
$residentsDevs_wayhomeDelayed = $roommate
if ( $residentsDevs_wayhomeDelayed eq "-" );
$residents_wayhomeDelayed .= ", " . $roommateName
if ( $roommateName ne ""
&& $residents_wayhomeDelayed ne "-" );
$residents_wayhomeDelayed = $roommateName
if ( $roommateName ne ""
&& $residents_wayhomeDelayed eq "-" );
}
} }
} }
@ -1093,7 +1111,7 @@ sub RESIDENTS_UpdateReadings (@) {
} }
if ( ReadingsVal( $guest, "wakeup", "0" ) > 0 ) { if ( ReadingsVal( $guest, "wakeup", "0" ) > 0 ) {
$wakeup += ReadingsVal( $guest, "wakeup", "0" ); $wakeup++;
$residentsDevs_wakeup .= "," . $guest $residentsDevs_wakeup .= "," . $guest
if ( $residentsDevs_wakeup ne "-" ); if ( $residentsDevs_wakeup ne "-" );
$residentsDevs_wakeup = $guest $residentsDevs_wakeup = $guest
@ -1105,7 +1123,7 @@ sub RESIDENTS_UpdateReadings (@) {
} }
if ( ReadingsVal( $guest, "wayhome", "0" ) > 0 ) { if ( ReadingsVal( $guest, "wayhome", "0" ) > 0 ) {
$wayhome += ReadingsVal( $guest, "wakeup", "0" ); $wayhome++;
$residents_wayhome .= "," . $guest $residents_wayhome .= "," . $guest
if ( $residents_wayhome ne "-" ); if ( $residents_wayhome ne "-" );
$residents_wayhome = $guest if ( $residents_wayhome eq "-" ); $residents_wayhome = $guest if ( $residents_wayhome eq "-" );
@ -1114,16 +1132,20 @@ sub RESIDENTS_UpdateReadings (@) {
$residents_wayhome = $guestName $residents_wayhome = $guestName
if ( $guestName ne "" && $residents_wayhome eq "-" ); if ( $guestName ne "" && $residents_wayhome eq "-" );
$residentsDevs_totalAbsent .= "," . $guest if ( ReadingsVal( $guest, "wayhome", "0" ) == 2 ) {
if ( $residentsDevs_totalAbsent ne "-" ); $wayhomeDelayed++;
$residentsDevs_totalAbsent = $guest
if ( $residentsDevs_totalAbsent eq "-" ); $residentsDevs_wayhomeDelayed .= "," . $guest
$residents_totalAbsent .= ", " . $guestName if ( $residentsDevs_wayhomeDelayed ne "-" );
if ( $guestName ne "" $residentsDevs_wayhomeDelayed = $guest
&& $residents_totalAbsent ne "-" ); if ( $residentsDevs_wayhomeDelayed eq "-" );
$residents_totalAbsent = $guestName $residents_wayhomeDelayed .= ", " . $guestName
if ( $guestName ne "" if ( $guestName ne ""
&& $residents_totalAbsent eq "-" ); && $residents_wayhomeDelayed ne "-" );
$residents_wayhomeDelayed = $guestName
if ( $guestName ne ""
&& $residents_wayhomeDelayed eq "-" );
}
} }
} }
@ -1338,6 +1360,20 @@ sub RESIDENTS_UpdateReadings (@) {
if ( ReadingsVal( $name, "residentsTotalWayhomeNames", "" ) ne if ( ReadingsVal( $name, "residentsTotalWayhomeNames", "" ) ne
$residents_wayhome ); $residents_wayhome );
readingsBulkUpdate( $hash, "residentsTotalWayhomeDelayed", $wayhomeDelayed )
if ( ReadingsVal( $name, "residentsTotalWayhomeDelayed", "" ) ne
$wayhomeDelayed );
readingsBulkUpdate( $hash, "residentsTotalWayhomeDelayedDevs",
$residentsDevs_wayhomeDelayed )
if ( ReadingsVal( $name, "residentsTotalWayhomeDelayedDevs", "" ) ne
$residentsDevs_wayhomeDelayed );
readingsBulkUpdate( $hash, "residentsTotalWayhomeDelayedNames",
$residents_wayhomeDelayed )
if ( ReadingsVal( $name, "residentsTotalWayhomeDelayedNames", "" ) ne
$residents_wayhomeDelayed );
# #
# state calculation # state calculation
# #
@ -1840,6 +1876,15 @@ sub RESIDENTS_UpdateReadings (@) {
<li> <li>
<b>residentsTotalWayhomeNames</b> - device alias of all active residents who are currently on their way back home <b>residentsTotalWayhomeNames</b> - device alias of all active residents who are currently on their way back home
</li> </li>
<li>
<b>residentsTotalWayhomeDelayed</b> - number of all residents who are delayed on their way back home
</li>
<li>
<b>residentsTotalWayhomeDelayedDevs</b> - device name of all delayed residents who are currently on their way back home
</li>
<li>
<b>residentsTotalWayhomeDelayedNames</b> - device alias of all delayed residents who are currently on their way back home
</li>
<li> <li>
<b>state</b> - reflects the current state <b>state</b> - reflects the current state
</li> </li>
@ -2199,6 +2244,15 @@ sub RESIDENTS_UpdateReadings (@) {
<li> <li>
<b>residentsTotalWayhomeNames</b> - Gerätealias aller aktiven Bewohner, die momentan auf dem Weg zurück nach Hause sind <b>residentsTotalWayhomeNames</b> - Gerätealias aller aktiven Bewohner, die momentan auf dem Weg zurück nach Hause sind
</li> </li>
<li>
<b>residentsTotalWayhomeDelayed</b> - Summe aller Bewohner, die momentan mit Versp&auml;tung auf dem Weg zur&uuml;ck nach Hause sind
</li>
<li>
<b>residentsTotalWayhomeDelayedDevs</b> - Gerätename aller Bewohner, die momentan versp&auml;tet auf dem Weg zurück nach Hause sind
</li>
<li>
<b>residentsTotalWayhomeDelayedNames</b> - Gerätealias aller Bewohner, die momentan versp&auml;tet auf dem Weg zurück nach Hause sind
</li>
<li> <li>
<b>state</b> - gibt den aktuellen Status wieder <b>state</b> - gibt den aktuellen Status wieder
</li> </li>